Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxbarcode / src / include / BC_CommonPerspectiveTransform.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _BC_COMMONPERSPECTIVETRANSFORM_H_\r
8 #define _BC_COMMONPERSPECTIVETRANSFORM_H_\r
9 class CBC_CommonPerspectiveTransform;\r
10 class CBC_CommonPerspectiveTransform : public CFX_Object\r
11 {\r
12 public:\r
13     CBC_CommonPerspectiveTransform(FX_FLOAT a11, FX_FLOAT a21, FX_FLOAT a31,\r
14                                    FX_FLOAT a12, FX_FLOAT a22, FX_FLOAT a32,\r
15                                    FX_FLOAT a13, FX_FLOAT a23, FX_FLOAT a33);\r
16     virtual ~CBC_CommonPerspectiveTransform();\r
17     static CBC_CommonPerspectiveTransform *QuadrilateralToQuadrilateral(FX_FLOAT x0, FX_FLOAT y0,\r
18             FX_FLOAT x1, FX_FLOAT y1,\r
19             FX_FLOAT x2, FX_FLOAT y2,\r
20             FX_FLOAT x3, FX_FLOAT y3,\r
21             FX_FLOAT x0p, FX_FLOAT y0p,\r
22             FX_FLOAT x1p, FX_FLOAT y1p,\r
23             FX_FLOAT x2p, FX_FLOAT y2p,\r
24             FX_FLOAT x3p, FX_FLOAT y3p);\r
25     static CBC_CommonPerspectiveTransform *SquareToQuadrilateral(FX_FLOAT x0, FX_FLOAT y0,\r
26             FX_FLOAT x1, FX_FLOAT y1,\r
27             FX_FLOAT x2, FX_FLOAT y2,\r
28             FX_FLOAT x3, FX_FLOAT y3);\r
29     static CBC_CommonPerspectiveTransform *QuadrilateralToSquare(FX_FLOAT x0, FX_FLOAT y0,\r
30             FX_FLOAT x1, FX_FLOAT y1,\r
31             FX_FLOAT x2, FX_FLOAT y2,\r
32             FX_FLOAT x3, FX_FLOAT y3);\r
33     CBC_CommonPerspectiveTransform *BuildAdjoint();\r
34     CBC_CommonPerspectiveTransform *Times(CBC_CommonPerspectiveTransform &other);\r
35     void TransformPoints(CFX_FloatArray *points);\r
36 private:\r
37     FX_FLOAT m_a11, m_a12, m_a13, m_a21, m_a22, m_a23, m_a31, m_a32, m_a33;\r
38 };\r
39 #endif\r