Code

Cleaned up virtual destructor problem and compile warnings.
[inkscape.git] / src / extension / internal / libwpg / 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  */
22 /* "This product is not manufactured, approved, or supported by
23  * Corel Corporation or Corel Corporation Limited."
24  */
26 #ifndef __WPGPATH_H__
27 #define __WPGPATH_H__
29 #include "WPGPoint.h"
31 namespace libwpg
32 {
34 class WPGPathElement
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         
50         WPGPathElement(): type(NullElement) {}
51 };
53 class WPGPathPrivate;
55 class WPGPath
56 {
57 public:
59         bool closed;
60         
61         WPGPath();
62         
63         ~WPGPath();
64         
65         WPGPath(const WPGPath&);
66         
67         WPGPath& operator=(const WPGPath&);
68         
69         unsigned count() const;
70         
71         WPGPathElement element(unsigned index) const;
72         
73         void moveTo(const WPGPoint& point);
74         
75         void lineTo(const WPGPoint& point);
77         void curveTo(const WPGPoint& c1, const WPGPoint& c2, const WPGPoint& endPoint);
78         
79         void addElement(const WPGPathElement& element);
80         
81         void append(const WPGPath& path);
82         
83 private:
84         WPGPathPrivate *d;
85 };
87 } // namespace libwpg
89 #endif // __WPGPATH_H__