Code/BoBiCo Soft-Physics/SoftBoneJointState.cs

Runtime state container for a single soft-physics bone joint. Stores rest-pose data (length, local pose vector, local rest transform, gravity normal) and per-frame simulation history (previous positions, rotations, velocities and flags) used by the soft-bone simulation.

using System;

/// <summary>Runtime state for one simulated SoftBone joint.</summary>
public sealed class SoftBoneJointState
{
	public BoneCollection.Bone Bone;

	// Rest-pose data
	public float Length;
	public Vector3 LocalPoseVector;
	public Transform RestTransformLocal;
	public Vector3 OriginalLocalGravityNormal;

	// Per-frame state. Positions are renderer-local unless suffixed with World.
	public Vector3 PreviousBegin;
	public Vector3 PreviousEnd;
	public Vector3 PreviousAnimatedBegin;
	public Rotation PreviousAnimatedRotation;
	public Rotation PreviousSimulationRotation;
	public Vector3 ImmobileEnd;
	public Vector3 PreviousEndWorld;
	public Vector3 PreviousVector;
	public Vector3 PreviousVelocity;
	public bool HasHistory;
}