Пример #1
0
        public static AffineVector3 ApplyMap(AffineVector3 Vec1, AffineMatrix3 Matrix)
        {
            float[] Return = new float[4];
            for (int row = 0; row < 4; row++)
            {
                AffineVector3 RowVector = new AffineVector3(
                    Matrix.values[row, 0],
                    Matrix.values[row, 1],
                    Matrix.values[row, 2],
                    Matrix.values[row, 3]);
                Return[row] = AffineVector3.Dot(RowVector, Vec1);;
            }

            return(new AffineVector3(Return[0], Return[1], Return[2], Return[3]));
        }
Пример #2
0
        public void ApplyMap(AffineMatrix3 Map)
        {
            float[,] values = new float[4, 4];

            for (int row = 0; row < 4; row++)
            {
                AffineVector3 RowVector = new AffineVector3(
                    Map.values[row, 0],
                    Map.values[row, 1],
                    Map.values[row, 2],
                    Map.values[row, 3]);
                for (int col = 0; col < 4; col++)
                {
                    AffineVector3 ColVector = new AffineVector3(
                        this.values[0, col],
                        this.values[1, col],
                        this.values[2, col],
                        this.values[3, col]);
                    values[row, col] = AffineVector3.Dot(RowVector, ColVector);
                }
            }

            this.values = values;
        }