Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxgraphics / src / fx_path_generator.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 __H_FX_PATH_GENERATOR__\r
8 #define __H_FX_PATH_GENERATOR__\r
9 class CFX_PathGenerator : public CFX_Object\r
10 {\r
11 public:\r
12     CFX_PathGenerator();\r
13     void Create();\r
14     ~CFX_PathGenerator();\r
15     CFX_PathData *GetPathData() const\r
16     {\r
17         return m_pPathData;\r
18     }\r
19     void AddPathData(CFX_PathData *path_data);\r
20     void AddPathData(FX_PATHPOINT *points, int count);\r
21     void MoveTo(FX_FLOAT x, FX_FLOAT y);\r
22     void LineTo(FX_FLOAT x, FX_FLOAT y);\r
23     void BezierTo(FX_FLOAT ctrl_x1, FX_FLOAT ctrl_y1,\r
24                   FX_FLOAT ctrl_x2, FX_FLOAT ctrl_y2, FX_FLOAT to_x, FX_FLOAT to_y);\r
25     void Close();\r
26     void ArcTo(FX_FLOAT x, FX_FLOAT y, FX_FLOAT width, FX_FLOAT height,\r
27                FX_FLOAT start_angle, FX_FLOAT sweep_angle);\r
28 \r
29     void AddLine(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2);\r
30     void AddBezier(FX_FLOAT start_x, FX_FLOAT start_y,\r
31                    FX_FLOAT ctrl_x1, FX_FLOAT ctrl_y1, FX_FLOAT ctrl_x2, FX_FLOAT ctrl_y2,\r
32                    FX_FLOAT end_x, FX_FLOAT end_y);\r
33     void AddRectangle(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2);\r
34     void AddEllipse(FX_FLOAT x, FX_FLOAT y, FX_FLOAT width, FX_FLOAT height);\r
35     void AddArc(FX_FLOAT x, FX_FLOAT y, FX_FLOAT width, FX_FLOAT height,\r
36                 FX_FLOAT start_angle, FX_FLOAT sweep_angle);\r
37     void AddPie(FX_FLOAT x, FX_FLOAT y, FX_FLOAT width, FX_FLOAT height,\r
38                 FX_FLOAT start_angle, FX_FLOAT sweep_angle);\r
39 protected:\r
40     CFX_PathData *m_pPathData;\r
41 };\r
42 #endif\r