Exemplo n.º 1
0
        public void TestTransformLookAt(float px, float py, float pz, float lx, float ly, float lz, float ux, float uy, float uz)
        {
            _float4 pos = new _float4 { x = px, y = py, z = pz, w = 0.0f };
            _float4 look = new _float4 { x = lx, y = ly, z = lz, w = 0.0f };
            _float4 up = new _float4 { x = ux, y = uy, z = uz, w = 0.0f };

            _Transform laxfm = _Transform.LookAt(pos, look, up);

            PrintTransform(laxfm);
        }
Exemplo n.º 2
0
        public _Transform(
			float a, float b, float c, float d,
			float e, float f, float g, float h,
			float i, float j, float k, float l,
			float m, float n, float o, float p
		)
        {
            x = new _float4(a, b, c, d);
            y = new _float4(e, f, g, h);
            z = new _float4(i, j, k, l);
            w = new _float4(m, n, o, p);
        }
Exemplo n.º 3
0
        public void TestF4Div(float a, float b, float c)
        {
            _float4 _f1 = new _float4(a, b, c, 0.0f);
            float4 f1 = new float4(a, b, c, 0.0f);
            _float4 _f2 = new _float4(a, b, c, 0.0f);
            float4 f2 = new float4(a, b, c, 0.0f);

            _float4 _f3 = _f1 + _f2;
            float4 f3 = f1 + f2;

            Assert.AreEqual(f3.x, _f3.x);
            Assert.AreEqual(f3.y, _f3.y);
            Assert.AreEqual(f3.z, _f3.z);
            Assert.AreEqual(f3.w, _f3.w);
        }
Exemplo n.º 4
0
        public void TestF4Div(float a, float b, float c)
        {
            _float4 _f1 = new _float4(a, b, c, 0.0f);
            float4  f1  = new float4(a, b, c, 0.0f);
            _float4 _f2 = new _float4(a, b, c, 0.0f);
            float4  f2  = new float4(a, b, c, 0.0f);

            _float4 _f3 = _f1 + _f2;
            float4  f3  = f1 + f2;


            Assert.AreEqual(f3.x, _f3.x);
            Assert.AreEqual(f3.y, _f3.y);
            Assert.AreEqual(f3.z, _f3.z);
            Assert.AreEqual(f3.w, _f3.w);
        }
Exemplo n.º 5
0
        public void TestTransformLookAt(float px, float py, float pz, float lx, float ly, float lz, float ux, float uy, float uz)
        {
            _float4 pos = new _float4 {
                x = px, y = py, z = pz, w = 0.0f
            };
            _float4 look = new _float4 {
                x = lx, y = ly, z = lz, w = 0.0f
            };
            _float4 up = new _float4 {
                x = ux, y = uy, z = uz, w = 0.0f
            };

            _Transform laxfm = _Transform.LookAt(pos, look, up);

            PrintTransform(laxfm);
        }
Exemplo n.º 6
0
        unsafe public void TestInitFloat4_Float4(float a, float b, float c, float d)
        {
            float4  f4  = new float4(a, b, c, d);
            _float4 _f4 = new _float4(a, b, c, d);

            byte *addr = (byte *)&_f4;

            Console.WriteLine("Size:      {0}", sizeof(_float4));
            Console.WriteLine("x Offset: {0}", (byte *)&_f4.x - addr);
            Console.WriteLine("y Offset: {0}", (byte *)&_f4.y - addr);
            Console.WriteLine("z Offset: {0}", (byte *)&_f4.z - addr);
            Console.WriteLine("w Offset: {0}", (byte *)&_f4.w - addr);

            Console.WriteLine("morjeeens");

            Assert.AreEqual(f4.x, _f4.x);
            Assert.AreEqual(f4.y, _f4.y);
            Assert.AreEqual(f4.z, _f4.z);
            Assert.AreEqual(f4.w, _f4.w);
        }
Exemplo n.º 7
0
        public _float4 this[int index]
        {
            get
            {
                switch (index)
                {
                    case 0:
                        return x;
                    case 1:
                        return y;
                    case 2:
                        return z;
                    case 3:
                        return w;
                    default:
                        throw new IndexOutOfRangeException("Only 0-3 are acceptable");
                }
            }
            set
            {
                switch (index)
                {
                    case 0:
                        x = value;
                        break;
                    case 1:
                        y = value;
                        break;
                    case 2:
                        z = value;
                        break;
                    case 3:
                        w = value;
                        break;
                    default:
                        throw new IndexOutOfRangeException("Only 0-3 are acceptable");
                }

            }
        }
Exemplo n.º 8
0
        public unsafe void TestInitFloat4_Float4(float a, float b, float c, float d)
        {
            float4 f4 = new float4(a, b, c, d);
            _float4 _f4 = new _float4(a, b, c, d);

            byte* addr = (byte*)&_f4;
            Console.WriteLine("Size:      {0}", sizeof(_float4));
            Console.WriteLine("x Offset: {0}", (byte*)&_f4.x - addr);
            Console.WriteLine("y Offset: {0}", (byte*)&_f4.y - addr);
            Console.WriteLine("z Offset: {0}", (byte*)&_f4.z - addr);
            Console.WriteLine("w Offset: {0}", (byte*)&_f4.w - addr);

            Console.WriteLine("morjeeens");

            Assert.AreEqual(f4.x, _f4.x);
            Assert.AreEqual(f4.y, _f4.y);
            Assert.AreEqual(f4.z, _f4.z);
            Assert.AreEqual(f4.w, _f4.w);
        }
Exemplo n.º 9
0
        public static _Transform RotateAroundAxis(float angle, _float4 axis)
        {
            _Transform res = new _Transform();
            _tfmApi.cycles_tfm_rotate_around_axis(angle, axis, ref res);

            return res;
        }
Exemplo n.º 10
0
        public static _Transform LookAt(_float4 position, _float4 look, _float4 up)
        {
            _Transform res = new _Transform();
            _tfmApi.cycles_tfm_lookat(position, look, up, ref res);

            return res;
        }