public static uint hash(double3x4 v)
 {
     return(csum(fold_to_uint(v.c0) * uint3(0xE7579997u, 0xEF7D56C7u, 0x66F38F0Bu) +
                 fold_to_uint(v.c1) * uint3(0x624256A3u, 0x5292ADE1u, 0xD2E590E5u) +
                 fold_to_uint(v.c2) * uint3(0xF25BE857u, 0x9BC17CE7u, 0xC8B86851u) +
                 fold_to_uint(v.c3) * uint3(0x64095221u, 0xADF428FFu, 0xA3977109u)) + 0x745ED837u);
 }
 public static uint3 hashwide(double3x4 v)
 {
     return((fold_to_uint(v.c0) * uint3(0x9CDC88F5u, 0xFA62D721u, 0x7E4DB1CFu) +
             fold_to_uint(v.c1) * uint3(0x68EEE0F5u, 0xBC3B0A59u, 0x816EFB5Du) +
             fold_to_uint(v.c2) * uint3(0xA24E82B7u, 0x45A22087u, 0xFC104C3Bu) +
             fold_to_uint(v.c3) * uint3(0x5FFF6B19u, 0x5E6CBF3Bu, 0xB546F2A5u)) + 0xBBCF63E7u);
 }
示例#3
0
 public int3x4(double3x4 v)
 {
     this.c0 = (int3)v.c0;
     this.c1 = (int3)v.c1;
     this.c2 = (int3)v.c2;
     this.c3 = (int3)v.c3;
 }
示例#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;
 }
示例#5
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);
 }
示例#6
0
 public static uint hash(double3x4 v)
 {
     return(csum(fold_to_uint(v.c0) * uint3(0xA88D187Du, 0xCF6EBA1Du, 0x9D88E5A1u) +
                 fold_to_uint(v.c1) * uint3(0xEADF0775u, 0x747A9D7Bu, 0x4111F799u) +
                 fold_to_uint(v.c2) * uint3(0xB5F05AF1u, 0xFD80290Bu, 0x8B65ADB7u) +
                 fold_to_uint(v.c3) * uint3(0xDFF4F563u, 0x7069770Du, 0xD1224537u)) + 0xE99ED6F3u);
 }
 public static uint3 hashwide(double3x4 v)
 {
     return((fold_to_uint(v.c0) * uint3(0xA10D9E27u, 0x568DAAA9u, 0x7530254Fu) +
             fold_to_uint(v.c1) * uint3(0x9F090439u, 0x5E9F85C9u, 0x8C4CA03Fu) +
             fold_to_uint(v.c2) * uint3(0xB8D969EDu, 0xAC5DB57Bu, 0xA91A02EDu) +
             fold_to_uint(v.c3) * uint3(0xB3C49313u, 0xF43A9ABBu, 0x84E7E01Bu)) + 0x8E055BE5u);
 }
 public static uint hash(double3x4 v)
 {
     return(csum(fold_to_uint(v.c0) * uint3(0x713BD06Fu, 0x753AD6ADu, 0xD19764C7u) +
                 fold_to_uint(v.c1) * uint3(0xB5D0BF63u, 0xF9102C5Fu, 0x9881FB9Fu) +
                 fold_to_uint(v.c2) * uint3(0x56A1530Du, 0x804B722Du, 0x738E50E5u) +
                 fold_to_uint(v.c3) * uint3(0x4FC93C25u, 0xCD0445A5u, 0xD2B90D9Bu)) + 0xD35C9B2Du);
 }
 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));
 }
示例#10
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));
        }
示例#11
0
 public static int3x4 int3x4(double3x4 v)
 {
     return(new int3x4(v));
 }
示例#12
0
 public static float3x4 float3x4(double3x4 v)
 {
     return(new float3x4(v));
 }
示例#13
0
 public static uint3x4 uint3x4(double3x4 v)
 {
     return(new uint3x4(v));
 }