/// <summary>
 /// Calculates values for this state as interpolated between states passed
 /// </summary>
 /// <param name="psFrom"></param>
 /// <param name="psTo"></param>
 /// <param name="step"></param>
 public void Interpolation(VoxelModelPartState psFrom, VoxelModelPartState psTo, float step)
 {
     Vector3.Lerp(ref psFrom._translation, ref psTo._translation, step, out _translation);
     Vector3.Lerp(ref psFrom._rotationOffset, ref psTo._rotationOffset, step, out _rotationOffset);
     Vector3.Lerp(ref psFrom._scale, ref psTo._scale, step, out _scale);
     Quaternion.Slerp(ref psFrom._rotation, ref psTo._rotation, step, out _rotation);
     _transform = null;
 }
 public VoxelModelPartState(VoxelModelPartState copyFrom)
 {
     ActiveFrame    = copyFrom.ActiveFrame;
     Scale          = copyFrom.Scale;
     Rotation       = copyFrom.Rotation;
     Translation    = copyFrom.Translation;
     RotationOffset = copyFrom.RotationOffset;
     BoundingBox    = copyFrom.BoundingBox;
 }