BEPUutilities2.Matrix3x3.Transpose C# (CSharp) Метод

Transpose() приватный Метод

private Transpose ( M m, M transposed ) : void
m M
transposed M
Результат void
        static unsafe void Transpose(M* m, M* transposed)
        {
            //A weird function! Why?
            //1) Missing some helpful instructions for actual SIMD accelerated transposition.
            //2) Difficult to get SIMD types to generate competitive codegen due to lots of componentwise access.

            float m12 = m->M12;
            float m13 = m->M13;
            float m23 = m->M23;
            transposed->M11 = m->M11;
            transposed->M12 = m->M21;
            transposed->M13 = m->M31;

            transposed->M21 = m12;
            transposed->M22 = m->M22;
            transposed->M23 = m->M32;

            transposed->M31 = m13;
            transposed->M32 = m23;
            transposed->M33 = m->M33;
        }

Same methods

Matrix3x3::Transpose ( Matrix3x3 m, Matrix3x3 transposed ) : void

Usage Example

Пример #1
0
 public static void InvertRigid(ref AffineTransform transform, out AffineTransform inverse)
 {
     Matrix3x3.Transpose(ref transform.LinearTransform, out inverse.LinearTransform);
     Matrix3x3.Transform(ref transform.Translation, ref inverse.LinearTransform, out inverse.Translation);
     inverse.Translation = -inverse.Translation;
 }