示例#1
0
            public double[] GetRightDirMtx()
            {
                double CP, SP, CY, SY;

                SinCos(out SP, out CP, DegreesToRadians(Pitch));
                SinCos(out SY, out CY, DegreesToRadians(Yaw));
                FVector V     = new FVector(CP * CY, CP * SY, SP);
                FVector up    = new FVector(0, 0, 1);
                FVector right = V.CrossProduct(up);

                FRotator outRot = new FRotator(0, 0, 0);

                return(outRot.MakeFromX(right));
            }
示例#2
0
            public double[] GetLeftDirMtx()
            {
                double CP, SP, CY, SY;

                SinCos(out SP, out CP, DegreesToRadians(Pitch));
                SinCos(out SY, out CY, DegreesToRadians(Yaw));
                FVector V     = new FVector(CP * CY, CP * SY, SP);
                FVector up    = new FVector(0, 0, 1);
                FVector right = V.CrossProduct(up);
                FVector left  = right;

                left.X *= -1.0 * right.X;
                left.Y *= -1.0 * right.Y;
                left.Z *= -1.0 * right.Z;
                FRotator outRot = new FRotator(0, 0, 0);

                return(outRot.MakeFromX(left));
            }