Scribus
Open source desktop publishing at your fingertips
WPGPath.h
1 /* libwpg
2  * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02111-1301 USA
18  *
19  * For further information visit http://libwpg.sourceforge.net
20  */
21 
22 /* "This product is not manufactured, approved, or supported by
23  * Corel Corporation or Corel Corporation Limited."
24  */
25 
26 #ifndef __WPGPATH_H__
27 #define __WPGPATH_H__
28 
29 #include "WPGPoint.h"
30 
31 namespace libwpg
32 {
33 
35 {
36 public:
37  typedef enum
38  {
39  NullElement,
40  MoveToElement,
41  LineToElement,
42  CurveToElement
43  } Type;
44 
45  Type type;
46  WPGPoint point;
47  WPGPoint extra1;
48  WPGPoint extra2;
49 
51 };
52 
53 class WPGPathPrivate;
54 
55 class WPGPath
56 {
57 public:
58 
59  bool closed;
60  bool framed;
61  bool filled;
62 
63  WPGPath();
64 
65  ~WPGPath();
66 
67  WPGPath(const WPGPath&);
68 
69  WPGPath& operator=(const WPGPath&);
70 
71  unsigned count() const;
72 
73  WPGPathElement element(unsigned index) const;
74 
75  void moveTo(const WPGPoint& point);
76 
77  void lineTo(const WPGPoint& point);
78 
79  void curveTo(const WPGPoint& c1, const WPGPoint& c2, const WPGPoint& endPoint);
80 
81  void addElement(const WPGPathElement& elem);
82 
83  void append(const WPGPath& path);
84 
85 private:
86  WPGPathPrivate *d;
87 };
88 
89 } // namespace libwpg
90 
91 #endif // __WPGPATH_H__
Definition: WPGPoint.h:34
Definition: WPGPath.cpp:34
Definition: WPGPath.h:55
Definition: WPGBinaryData.h:34
Definition: WPGPath.h:34