///<summary>
 /// Inverts an affine transform.
 ///</summary>
 ///<param name="transform">Transform to invert.</param>
 /// <param name="inverse">Inverse of the transform.</param>
 public static void Invert(ref AffineTransform transform, out AffineTransform inverse)
 {
     Matrix3x3.Invert(ref transform.LinearTransform, out inverse.LinearTransform);
     Matrix3x3.Transform(ref transform.Translation, ref inverse.LinearTransform, out inverse.Translation);
     Vector3.Negate(ref inverse.Translation, out inverse.Translation);
 }
 /// <summary>
 /// Inverts a rigid transform.
 /// </summary>
 /// <param name="transform">Transform to invert.</param>
 /// <param name="inverse">Inverse of the transform.</param>
 public static void Invert(ref RigidTransform transform, out RigidTransform inverse)
 {
     Quaternion.Conjugate(ref transform.Orientation, out inverse.Orientation);
     Vector3.Transform(ref transform.Position, ref inverse.Orientation, out inverse.Position);
     Vector3.Negate(ref inverse.Position, out inverse.Position);
 }