Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fdp / src / fde / fde_geobject.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 _FDE_GRAPHOBJS_IMP\r
8 #define _FDE_GRAPHOBJS_IMP\r
9 #ifndef _FDEPLUS\r
10 #include "../../../foxitlib.h"\r
11 class CFDE_GEFontMgr;\r
12 class CFDE_Path : public IFDE_Path, public CFX_Target\r
13 {\r
14 public:\r
15     virtual void                        Release()\r
16     {\r
17         FDE_Delete this;\r
18     }\r
19 \r
20     virtual FX_BOOL                     StartFigure();\r
21     virtual FX_BOOL                     CloseFigure();\r
22 \r
23     virtual void                        AddBezier(const CFX_PointsF &points);\r
24     virtual void                        AddBeziers(const CFX_PointsF &points);\r
25     virtual void                        AddCurve(const CFX_PointsF &points, FX_BOOL bClosed, FX_FLOAT fTension = 0.5f);\r
26     virtual void                        AddEllipse(const CFX_RectF &rect);\r
27     virtual void                        AddLines(const CFX_PointsF &points);\r
28     virtual void                        AddLine(const CFX_PointF &pt1, const CFX_PointF &pt2);\r
29     virtual     void                    AddPath(const IFDE_Path *pSrc, FX_BOOL bConnect);\r
30     virtual void                        AddPolygon(const CFX_PointsF &points);\r
31     virtual void                        AddRectangle(const CFX_RectF &rect);\r
32     virtual void                        GetBBox(CFX_RectF &bbox) const;\r
33     virtual void                        GetBBox(CFX_RectF &bbox, FX_FLOAT fLineWidth, FX_FLOAT fMiterLimit) const;\r
34     FX_PATHPOINT*                       AddPoints(int32_t iCount);\r
35     FX_PATHPOINT*                       GetLastPoint(int32_t iCount = 1) const;\r
36     FX_BOOL                                     FigureClosed() const;\r
37     void                                        MoveTo(FX_FLOAT fx, FX_FLOAT fy);\r
38     void                                        LineTo(FX_FLOAT fx, FX_FLOAT fy);\r
39     void                                        BezierTo(const CFX_PointF &p1, const CFX_PointF &p2, const CFX_PointF &p3);\r
40     void                                        ArcTo(FX_BOOL bStart, const CFX_RectF &rect, FX_FLOAT startAngle, FX_FLOAT endAngle);\r
41     void                                        MoveTo(const CFX_PointF &p0)\r
42     {\r
43         MoveTo(p0.x, p0.y);\r
44     }\r
45     void                                        LineTo(const CFX_PointF &p1)\r
46     {\r
47         LineTo(p1.x, p1.y);\r
48     }\r
49     void                                        GetCurveTangents(const CFX_PointsF &points, CFX_PointsF &tangents, FX_BOOL bClosed, FX_FLOAT fTension) const;\r
50     CFX_PathData                        m_Path;\r
51 };\r
52 #endif\r
53 #endif\r