예제 #1
0
 public static bool3x3 transpose(bool3x3 v)
 {
     return(bool3x3(
                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));
 }
예제 #2
0
 public uint3x3(bool3x3 v)
 {
     this.c0 = math.select(new uint3(0u), new uint3(1u), v.c0);
     this.c1 = math.select(new uint3(0u), new uint3(1u), v.c1);
     this.c2 = math.select(new uint3(0u), new uint3(1u), v.c2);
 }
예제 #3
0
 public static uint3x3 uint3x3(bool3x3 v)
 {
     return(new uint3x3(v));
 }
예제 #4
0
 public int3x3(bool3x3 v)
 {
     this.c0 = math.select(new int3(0), new int3(1), v.c0);
     this.c1 = math.select(new int3(0), new int3(1), v.c1);
     this.c2 = math.select(new int3(0), new int3(1), v.c2);
 }
예제 #5
0
 public static int3x3 int3x3(bool3x3 v)
 {
     return(new int3x3(v));
 }
예제 #6
0
 public float3x3(bool3x3 v)
 {
     this.c0 = math.select(new float3(sfloat.Zero), new float3(sfloat.One), v.c0);
     this.c1 = math.select(new float3(sfloat.Zero), new float3(sfloat.One), v.c1);
     this.c2 = math.select(new float3(sfloat.Zero), new float3(sfloat.One), v.c2);
 }
예제 #7
0
 public static float3x3 float3x3(bool3x3 v)
 {
     return(new float3x3(v));
 }
예제 #8
0
 public static uint3 hashwide(bool3x3 v)
 {
     return(select(uint3(0x816EFB5Du, 0xA24E82B7u, 0x45A22087u), uint3(0xFC104C3Bu, 0x5FFF6B19u, 0x5E6CBF3Bu), v.c0) +
            select(uint3(0xB546F2A5u, 0xBBCF63E7u, 0xC53F4755u), uint3(0x6985C229u, 0xE133B0B3u, 0xC3E0A3B9u), v.c1) +
            select(uint3(0xFE31134Fu, 0x712A34D7u, 0x9D77A59Bu), uint3(0x4942CA39u, 0xB40EC62Du, 0x565ED63Fu), v.c2));
 }
예제 #9
0
 public static uint hash(bool3x3 v)
 {
     return(csum(select(uint3(0xE7579997u, 0xEF7D56C7u, 0x66F38F0Bu), uint3(0x624256A3u, 0x5292ADE1u, 0xD2E590E5u), v.c0) +
                 select(uint3(0xF25BE857u, 0x9BC17CE7u, 0xC8B86851u), uint3(0x64095221u, 0xADF428FFu, 0xA3977109u), v.c1) +
                 select(uint3(0x745ED837u, 0x9CDC88F5u, 0xFA62D721u), uint3(0x7E4DB1CFu, 0x68EEE0F5u, 0xBC3B0A59u), v.c2)));
 }