| // Copyright 2014 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #ifndef XFA_FXBARCODE_COMMON_BC_COMMONPERSPECTIVETRANSFORM_H_ |
| #define XFA_FXBARCODE_COMMON_BC_COMMONPERSPECTIVETRANSFORM_H_ |
| |
| #include "core/fxcrt/include/fx_basic.h" |
| |
| class CBC_CommonPerspectiveTransform { |
| public: |
| CBC_CommonPerspectiveTransform(FX_FLOAT a11, |
| FX_FLOAT a21, |
| FX_FLOAT a31, |
| FX_FLOAT a12, |
| FX_FLOAT a22, |
| FX_FLOAT a32, |
| FX_FLOAT a13, |
| FX_FLOAT a23, |
| FX_FLOAT a33); |
| virtual ~CBC_CommonPerspectiveTransform(); |
| static CBC_CommonPerspectiveTransform* QuadrilateralToQuadrilateral( |
| FX_FLOAT x0, |
| FX_FLOAT y0, |
| FX_FLOAT x1, |
| FX_FLOAT y1, |
| FX_FLOAT x2, |
| FX_FLOAT y2, |
| FX_FLOAT x3, |
| FX_FLOAT y3, |
| FX_FLOAT x0p, |
| FX_FLOAT y0p, |
| FX_FLOAT x1p, |
| FX_FLOAT y1p, |
| FX_FLOAT x2p, |
| FX_FLOAT y2p, |
| FX_FLOAT x3p, |
| FX_FLOAT y3p); |
| static CBC_CommonPerspectiveTransform* SquareToQuadrilateral(FX_FLOAT x0, |
| FX_FLOAT y0, |
| FX_FLOAT x1, |
| FX_FLOAT y1, |
| FX_FLOAT x2, |
| FX_FLOAT y2, |
| FX_FLOAT x3, |
| FX_FLOAT y3); |
| static CBC_CommonPerspectiveTransform* QuadrilateralToSquare(FX_FLOAT x0, |
| FX_FLOAT y0, |
| FX_FLOAT x1, |
| FX_FLOAT y1, |
| FX_FLOAT x2, |
| FX_FLOAT y2, |
| FX_FLOAT x3, |
| FX_FLOAT y3); |
| CBC_CommonPerspectiveTransform* BuildAdjoint(); |
| CBC_CommonPerspectiveTransform* Times(CBC_CommonPerspectiveTransform& other); |
| void TransformPoints(CFX_FloatArray* points); |
| |
| private: |
| FX_FLOAT m_a11, m_a12, m_a13, m_a21, m_a22, m_a23, m_a31, m_a32, m_a33; |
| }; |
| |
| #endif // XFA_FXBARCODE_COMMON_BC_COMMONPERSPECTIVETRANSFORM_H_ |