Conjugate() public méthode

public Conjugate ( ) : Quaternion
Résultat Quaternion
Exemple #1
0
        public static void RotateAround(ref Vector3 vector, ref Vector3 axis, float angle, out Vector3 result)
        {
            // rotate into world space
            var quaternion = Quaternion.FromRotationAxis(axis, 0);

            Quaternion.Conjugate(ref quaternion, out quaternion);
            Vector3.Transform(ref vector, ref quaternion, out result);

            // rotate back to vector space
            Quaternion.FromRotationAxis(ref axis, angle, out quaternion);
            Vector3.Transform(ref result, ref quaternion, out result);
        }
Exemple #2
0
        public Vector3 RotateAround(Vector3 axis, float angle)
        {
            // rotate into world space
            var quaternion = Quaternion.FromRotationAxis(axis, 0);

            Quaternion.Conjugate(ref quaternion, out quaternion);
            var worldSpaceVector = this.Transform(quaternion);

            // rotate back to vector space
            Quaternion.FromRotationAxis(ref axis, angle, out quaternion);
            Vector3.Transform(ref worldSpaceVector, ref quaternion, out worldSpaceVector);
            return(worldSpaceVector);
        }
Exemple #3
0
 public static void Invert(ref RigidTransform3 transform, out RigidTransform3 result)
 {
     Quaternion.Conjugate(ref transform.Orientation, out result.Orientation);
     Vector3.Transform(ref transform.Position, ref result.Orientation, out result.Position);
     result.Position = -result.Position;
 }
Exemple #4
0
 public static void TransformInversed(ref Vector3 vector, ref RigidTransform3 transform, out Vector3 result)
 {
     result = vector - transform.Position;
     Quaternion.Conjugate(ref transform.Orientation, out transform.Orientation);
     Vector3.Transform(ref vector, ref transform.Orientation, out result);
 }