コード例 #1
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static global::glm.Mat3 invert(global::glm.Mat3 src, global::glm.Mat3 dest)
        {
            double c00 = ((src._11 * src._22) - (src._21 * src._12));
            double c01 = ((src._10 * src._22) - (src._20 * src._12));
            double c02 = ((src._10 * src._21) - (src._20 * src._11));
            double det = (((src._00 * c00) - (src._01 * c01)) + (src._02 * c02));

            if ((global::System.Math.Abs(((double)(det))) < global::glm.GLM.EPSILON))
            {
                throw global::haxe.lang.HaxeException.wrap("determinant is too small");
            }

            double c10    = ((src._01 * src._22) - (src._21 * src._02));
            double c11    = ((src._00 * src._22) - (src._20 * src._02));
            double c12    = ((src._00 * src._21) - (src._20 * src._01));
            double c20    = ((src._01 * src._12) - (src._11 * src._02));
            double c21    = ((src._00 * src._12) - (src._10 * src._02));
            double c22    = ((src._00 * src._11) - (src._10 * src._01));
            double invdet = (1.0 / det);

            dest._00 = (c00 * invdet);
            dest._01 = (-(c01) * invdet);
            dest._02 = (c02 * invdet);
            dest._10 = (-(c10) * invdet);
            dest._11 = (c11 * invdet);
            dest._12 = (-(c12) * invdet);
            dest._20 = (c20 * invdet);
            dest._21 = (-(c21) * invdet);
            dest._22 = (c22 * invdet);
            return(dest);
        }
コード例 #2
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static double determinant(global::glm.Mat3 src)
        {
            double c00 = ((src._11 * src._22) - (src._21 * src._12));
            double c01 = ((src._10 * src._22) - (src._20 * src._12));
            double c02 = ((src._10 * src._21) - (src._20 * src._11));

            return(((src._00 * c00) - (src._01 * c01)) + (src._02 * c02));
        }
コード例 #3
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static global::glm.Vec3 multVec(global::glm.Mat3 m, global::glm.Vec3 v, global::glm.Vec3 dest)
        {
            double x = v.x;
            double y = v.y;
            double z = v.z;

            dest.x = (((m._00 * x) + (m._10 * y)) + (m._20 * z));
            dest.y = (((m._01 * x) + (m._11 * y)) + (m._21 * z));
            dest.z = (((m._02 * x) + (m._12 * y)) + (m._22 * z));
            return(dest);
        }
コード例 #4
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static global::glm.Vec3 multVecOp(global::glm.Mat3 m, global::glm.Vec3 v)
        {
            global::glm.Vec3 dest = new global::glm.Vec3(default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>));
            double           x    = v.x;
            double           y    = v.y;
            double           z    = v.z;

            dest.x = (((m._00 * x) + (m._10 * y)) + (m._20 * z));
            dest.y = (((m._01 * x) + (m._11 * y)) + (m._21 * z));
            dest.z = (((m._02 * x) + (m._12 * y)) + (m._22 * z));
            return(dest);
        }
コード例 #5
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static global::glm.Mat3 multMatOp(global::glm.Mat3 a, global::glm.Mat3 b)
        {
            global::glm.Mat3 dest = new global::glm.Mat3(default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>));
            global::glm.Mat3 _a   = null;
            global::glm.Mat3 _b   = null;
            if ((dest == a))
            {
                global::glm.Mat3 dest1 = new global::glm.Mat3(default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>));
                dest1._00 = a._00;
                dest1._10 = a._10;
                dest1._20 = a._20;
                dest1._01 = a._01;
                dest1._11 = a._11;
                dest1._21 = a._21;
                dest1._02 = a._02;
                dest1._12 = a._12;
                dest1._22 = a._22;
                _a        = dest1;
                _b        = b;
            }
            else if ((dest == b))
            {
                _a = a;
                global::glm.Mat3 dest2 = new global::glm.Mat3(default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>), default(global::haxe.lang.Null <double>));
                dest2._00 = b._00;
                dest2._10 = b._10;
                dest2._20 = b._20;
                dest2._01 = b._01;
                dest2._11 = b._11;
                dest2._21 = b._21;
                dest2._02 = b._02;
                dest2._12 = b._12;
                dest2._22 = b._22;
                _b        = dest2;
            }
            else
            {
                _a = a;
                _b = b;
            }

            dest._00 = (((_a._00 * _b._00) + (_a._10 * _b._01)) + (_a._20 * _b._02));
            dest._10 = (((_a._00 * _b._10) + (_a._10 * _b._11)) + (_a._20 * _b._12));
            dest._20 = (((_a._00 * _b._20) + (_a._10 * _b._21)) + (_a._20 * _b._22));
            dest._01 = (((_a._01 * _b._00) + (_a._11 * _b._01)) + (_a._21 * _b._02));
            dest._11 = (((_a._01 * _b._10) + (_a._11 * _b._11)) + (_a._21 * _b._12));
            dest._21 = (((_a._01 * _b._20) + (_a._11 * _b._21)) + (_a._21 * _b._22));
            dest._02 = (((_a._02 * _b._00) + (_a._12 * _b._01)) + (_a._22 * _b._02));
            dest._12 = (((_a._02 * _b._10) + (_a._12 * _b._11)) + (_a._22 * _b._12));
            dest._22 = (((_a._02 * _b._20) + (_a._12 * _b._21)) + (_a._22 * _b._22));
            return(dest);
        }
コード例 #6
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
 public static global::glm.Mat3 copy(global::glm.Mat3 src, global::glm.Mat3 dest)
 {
     dest._00 = src._00;
     dest._10 = src._10;
     dest._20 = src._20;
     dest._01 = src._01;
     dest._11 = src._11;
     dest._21 = src._21;
     dest._02 = src._02;
     dest._12 = src._12;
     dest._22 = src._22;
     return(dest);
 }
コード例 #7
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
 public static global::glm.Mat3 identity(global::glm.Mat3 dest)
 {
     unchecked {
         dest._00 = ((double)(1));
         dest._10 = ((double)(0));
         dest._20 = ((double)(0));
         dest._01 = ((double)(0));
         dest._11 = ((double)(1));
         dest._21 = ((double)(0));
         dest._02 = ((double)(0));
         dest._12 = ((double)(0));
         dest._22 = ((double)(1));
         return(dest);
     }
 }
コード例 #8
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static global::glm.Mat3 transpose(global::glm.Mat3 src, global::glm.Mat3 dest)
        {
            double src_r1c0 = src._01;
            double src_r2c0 = src._02;
            double src_r2c1 = src._12;

            dest._00 = src._00;
            dest._01 = src._10;
            dest._02 = src._20;
            dest._10 = src_r1c0;
            dest._11 = src._11;
            dest._12 = src._21;
            dest._20 = src_r2c0;
            dest._21 = src_r2c1;
            dest._22 = src._22;
            return(dest);
        }
コード例 #9
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
        public static void __hx_ctor_glm_Mat3(global::glm.Mat3 __hx_this, global::haxe.lang.Null <double> _r0c0, global::haxe.lang.Null <double> _r0c1, global::haxe.lang.Null <double> _r0c2, global::haxe.lang.Null <double> _r1c0, global::haxe.lang.Null <double> _r1c1, global::haxe.lang.Null <double> _r1c2, global::haxe.lang.Null <double> _r2c0, global::haxe.lang.Null <double> _r2c1, global::haxe.lang.Null <double> _r2c2)
        {
            double __temp__r2c220 = ((!(_r2c2.hasValue)) ? (((double)(0))) : ((_r2c2).@value));
            double __temp__r2c119 = ((!(_r2c1.hasValue)) ? (((double)(0))) : ((_r2c1).@value));
            double __temp__r2c018 = ((!(_r2c0.hasValue)) ? (((double)(0))) : ((_r2c0).@value));
            double __temp__r1c217 = ((!(_r1c2.hasValue)) ? (((double)(0))) : ((_r1c2).@value));
            double __temp__r1c116 = ((!(_r1c1.hasValue)) ? (((double)(0))) : ((_r1c1).@value));
            double __temp__r1c015 = ((!(_r1c0.hasValue)) ? (((double)(0))) : ((_r1c0).@value));
            double __temp__r0c214 = ((!(_r0c2.hasValue)) ? (((double)(0))) : ((_r0c2).@value));
            double __temp__r0c113 = ((!(_r0c1.hasValue)) ? (((double)(0))) : ((_r0c1).@value));
            double __temp__r0c012 = ((!(_r0c0.hasValue)) ? (((double)(0))) : ((_r0c0).@value));

            __hx_this._00 = __temp__r0c012;
            __hx_this._01 = __temp__r1c015;
            __hx_this._02 = __temp__r2c018;
            __hx_this._10 = __temp__r0c113;
            __hx_this._11 = __temp__r1c116;
            __hx_this._12 = __temp__r2c119;
            __hx_this._20 = __temp__r0c214;
            __hx_this._21 = __temp__r1c217;
            __hx_this._22 = __temp__r2c220;
        }
コード例 #10
0
ファイル: Mat3.cs プロジェクト: fnunnari/YALLAH
 public bool @equals(global::glm.Mat3 b)
 {
     return(!(((((((((((global::System.Math.Abs(((double)((this._00 - b._00)))) >= global::glm.GLM.EPSILON) || (global::System.Math.Abs(((double)((this._10 - b._10)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._20 - b._20)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._01 - b._01)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._11 - b._11)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._21 - b._21)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._02 - b._02)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._12 - b._12)))) >= global::glm.GLM.EPSILON)) || (global::System.Math.Abs(((double)((this._22 - b._22)))) >= global::glm.GLM.EPSILON)))));
 }