public static (Vector3, Vector3) GetVelocityAndAngularVelocity(TransformSample startSample, TransformSample endSample, float duration) { return(ToLinearVelocity(startSample.Position, endSample.Position, duration), ToAngularVelocity(startSample.Rotation, endSample.Rotation, duration)); }
public static TransformSample Interpolate(TransformSample start, TransformSample fin, float time) { float alpha = Mathf.Clamp01(Mathf.InverseLerp(start.SampleTime, fin.SampleTime, time)); return(new TransformSample(Vector3.Lerp(start.Position, fin.Position, alpha), Quaternion.Slerp(start.Rotation, fin.Rotation, alpha), time, (int)Mathf.Lerp((float)start.FrameIndex, (float)fin.FrameIndex, alpha))); }