コード例 #1
0
ファイル: T2P.cs プロジェクト: dronab/libtiff.net
        private static void compose_pdf_page_orient_flip(T2P_BOX boxp, Orientation orientation)
        {
            if (boxp.x1 > boxp.x2)
            {
                float f = boxp.x1;
                boxp.x1 = boxp.x2;
                boxp.x2 = f;
            }

            if (boxp.y1 > boxp.y2)
            {
                float f = boxp.y1;
                boxp.y1 = boxp.y2;
                boxp.y2 = f;
            }
            
            float[] m1 = new float[9];
            boxp.mat[0] = m1[0] = boxp.x2 - boxp.x1;
            boxp.mat[1] = m1[1] = 0.0F;
            boxp.mat[2] = m1[2] = 0.0F;
            boxp.mat[3] = m1[3] = 0.0F;
            boxp.mat[4] = m1[4] = boxp.y2 - boxp.y1;
            boxp.mat[5] = m1[5] = 0.0F;
            boxp.mat[6] = m1[6] = boxp.x1;
            boxp.mat[7] = m1[7] = boxp.y1;
            boxp.mat[8] = m1[8] = 1.0F;

            switch (orientation)
            {
                case Orientation.LEFTTOP:
                    boxp.mat[0] = 0.0F;
                    boxp.mat[1] = 0.0F - m1[4];
                    boxp.mat[3] = 0.0F - m1[0];
                    boxp.mat[4] = 0.0F;
                    boxp.mat[6] += m1[0];
                    boxp.mat[7] += m1[4];
                    break;

                case Orientation.RIGHTTOP:
                    boxp.mat[0] = 0.0F;
                    boxp.mat[1] = 0.0F - m1[4];
                    boxp.mat[3] = m1[0];
                    boxp.mat[4] = 0.0F;
                    boxp.mat[7] += m1[4];
                    break;

                case Orientation.RIGHTBOT:
                    boxp.mat[0] = 0.0F;
                    boxp.mat[1] = m1[4];
                    boxp.mat[3] = m1[0];
                    boxp.mat[4] = 0.0F;
                    break;

                case Orientation.LEFTBOT:
                    boxp.mat[0] = 0.0F;
                    boxp.mat[1] = m1[4];
                    boxp.mat[3] = 0.0F - m1[0];
                    boxp.mat[4] = 0.0F;
                    boxp.mat[6] += m1[0];
                    break;
            }
        }