Ejemplo n.º 1
0
 public uint3x4(double3x4 v)
 {
     this.c0 = (uint3)v.c0;
     this.c1 = (uint3)v.c1;
     this.c2 = (uint3)v.c2;
     this.c3 = (uint3)v.c3;
 }
Ejemplo n.º 2
0
 public static uint3 hashwide(double3x4 v)
 {
     return((fold_to_uint(v.c0) * uint3(0xB139D651u, 0xE7579997u, 0xEF7D56C7u) +
             fold_to_uint(v.c1) * uint3(0x66F38F0Bu, 0x624256A3u, 0x5292ADE1u) +
             fold_to_uint(v.c2) * uint3(0xD2E590E5u, 0xF25BE857u, 0x9BC17CE7u) +
             fold_to_uint(v.c3) * uint3(0xC8B86851u, 0x64095221u, 0xADF428FFu)) + 0xA3977109u);
 }
Ejemplo n.º 3
0
 public static uint hash(double3x4 v)
 {
     return(csum(fold_to_uint(v.c0) * uint3(0xEE390C97u, 0x9C8A2F05u, 0x4DDC6509u) +
                 fold_to_uint(v.c1) * uint3(0x7CF083CBu, 0x5C4D6CEDu, 0xF9137117u) +
                 fold_to_uint(v.c2) * uint3(0xE857DCE1u, 0xF62213C5u, 0x9CDAA959u) +
                 fold_to_uint(v.c3) * uint3(0xAA269ABFu, 0xD54BA36Fu, 0xFD0847B9u)) + 0x8189A683u);
 }
Ejemplo n.º 4
0
 public float3x4(double3x4 v)
 {
     this.c0 = (float3)v.c0;
     this.c1 = (float3)v.c1;
     this.c2 = (float3)v.c2;
     this.c3 = (float3)v.c3;
 }
Ejemplo n.º 5
0
 public static double4x3 transpose(double3x4 v)
 {
     return(double4x3(
                v.c0.x, v.c0.y, v.c0.z,
                v.c1.x, v.c1.y, v.c1.z,
                v.c2.x, v.c2.y, v.c2.z,
                v.c3.x, v.c3.y, v.c3.z));
 }
Ejemplo n.º 6
0
        // Fast matrix inverse for rigid transforms (Orthonormal basis and translation)
        public static double3x4 fastinverse(double3x4 m)
        {
            double3 c0  = m.c0;
            double3 c1  = m.c1;
            double3 c2  = m.c2;
            double3 pos = m.c3;

            double3 r0 = double3(c0.x, c1.x, c2.x);
            double3 r1 = double3(c0.y, c1.y, c2.y);
            double3 r2 = double3(c0.z, c1.z, c2.z);

            pos = -(r0 * pos.x + r1 * pos.y + r2 * pos.z);

            return(double3x4(r0, r1, r2, pos));
        }
Ejemplo n.º 7
0
 public static uint3x4 uint3x4(double3x4 v)
 {
     return(new uint3x4(v));
 }
Ejemplo n.º 8
0
 public static int3x4 int3x4(double3x4 v)
 {
     return(new int3x4(v));
 }
Ejemplo n.º 9
0
 public static float3x4 float3x4(double3x4 v)
 {
     return(new float3x4(v));
 }