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;
}