- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

CDRPath.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* libcdr
3 * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License or as specified alternatively below. You may obtain a copy of
8 * the License at http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * Major Contributor(s):
16 * Copyright (C) 2012 Fridrich Strba <fridrich.strba@bluewin.ch>
17 *
18 *
19 * All Rights Reserved.
20 *
21 * For minor contributions see the git repository.
22 *
23 * Alternatively, the contents of this file may be used under the terms of
24 * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
25 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
26 * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
27 * instead of those above.
28 */
29
30 #ifndef __CDRPATH_H__
31 #define __CDRPATH_H__
32
33 #include <vector>
34 #include <libwpd/libwpd.h>
35
36 #include "CDRTypes.h"
37
38 namespace libcdr
39 {
40
41 class CDRPathElement
42 {
43 public:
44 CDRPathElement() {}
45 virtual ~CDRPathElement() {}
46 virtual void writeOut(WPXPropertyListVector &vec) const = 0;
47 virtual void transform(const CDRTransform &trafo) = 0;
48 virtual CDRPathElement *clone() = 0;
49 };
50
51
52 class CDRPath : public CDRPathElement
53 {
54 public:
55 CDRPath() : m_elements() {}
56 CDRPath(const CDRPath &path);
57 ~CDRPath();
58
59 void appendMoveTo(double x, double y);
60 void appendLineTo(double x, double y);
61 void appendCubicBezierTo(double x1, double y1, double x2, double y2, double x, double y);
62 void appendQuadraticBezierTo(double x1, double y1, double x, double y);
63 void appendSplineTo(std::vector<std::pair<double, double> > &points);
64 void appendArcTo(double rx, double ry, double rotation, bool longAngle, bool sweep, double x, double y);
65 void appendClosePath();
66 void appendPath(const CDRPath &path);
67
68 void writeOut(WPXPropertyListVector &vec) const;
69 void transform(const CDRTransform &trafo);
70 CDRPathElement *clone();
71
72 void clear();
73 bool empty();
74
75 private:
76 std::vector<CDRPathElement *> m_elements;
77 };
78
79 } // namespace libcdr
80
81 #endif /* __CDRPATH_H__ */
82 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libcdr::CDRPath::clear
void clear()
Definition: CDRPath.cpp:421
libcdr::CDRPathElement::~CDRPathElement
virtual ~CDRPathElement()
Definition: CDRPath.h:45
libcdr::CDRPath
Definition: CDRPath.h:52
libcdr::CDRPath::appendLineTo
void appendLineTo(double x, double y)
Definition: CDRPath.cpp:357
libcdr::CDRPath::~CDRPath
~CDRPath()
Definition: CDRPath.cpp:393
libcdr::CDRPath::CDRPath
CDRPath()
Definition: CDRPath.h:55
libcdr::CDRPath::appendSplineTo
void appendSplineTo(std::vector< std::pair< double, double > > &points)
Definition: CDRPath.cpp:377
libcdr::CDRPath::appendMoveTo
void appendMoveTo(double x, double y)
Definition: CDRPath.cpp:352
libcdr::CDRPath::appendPath
void appendPath(const CDRPath &path)
Definition: CDRPath.cpp:398
libcdr::CDRPath::writeOut
void writeOut(WPXPropertyListVector &vec) const
Definition: CDRPath.cpp:404
libcdr::CDRPathElement::transform
virtual void transform(const CDRTransform &trafo)=0
libcdr::CDRPath::appendCubicBezierTo
void appendCubicBezierTo(double x1, double y1, double x2, double y2, double x, double y)
Definition: CDRPath.cpp:362
libcdr::CDRPath::appendQuadraticBezierTo
void appendQuadraticBezierTo(double x1, double y1, double x, double y)
Definition: CDRPath.cpp:367
libcdr::CDRPath::appendArcTo
void appendArcTo(double rx, double ry, double rotation, bool longAngle, bool sweep, double x, double y)
Definition: CDRPath.cpp:372
libcdr::CDRPath::appendClosePath
void appendClosePath()
Definition: CDRPath.cpp:382
libcdr::CDRPathElement::clone
virtual CDRPathElement * clone()=0
libcdr::CDRPathElement::writeOut
virtual void writeOut(WPXPropertyListVector &vec) const =0
libcdr::CDRPathElement::CDRPathElement
CDRPathElement()
Definition: CDRPath.h:44
libcdr::CDRPath::empty
bool empty()
Definition: CDRPath.cpp:429
libcdr::CDRPathElement
Definition: CDRPath.h:41
libcdr::CDRPath::m_elements
std::vector< CDRPathElement * > m_elements
Definition: CDRPath.h:76
CDRTypes.h
libcdr::CDRPath::clone
CDRPathElement * clone()
Definition: CDRPath.cpp:416
libcdr::CDRPath::transform
void transform(const CDRTransform &trafo)
Definition: CDRPath.cpp:410
libcdr::CDRTransform
Definition: CDRTypes.h:40