31 #ifndef SEEN_SVG_PATH_H
32 #define SEEN_SVG_PATH_H
41 virtual void moveTo(
Point p) = 0;
42 virtual void lineTo(
Point p) = 0;
45 virtual void arcTo(
double rx,
double ry,
double angle,
46 bool large_arc,
bool sweep,
Point p) = 0;
47 virtual void closePath() = 0;
48 virtual void finish() = 0;
54 template <
typename OutputIterator>
58 : _in_path(
false), _out(out) {}
60 void moveTo(
Point p) {
66 void lineTo(
Point p) {
67 _path.template appendNew<LineSegment>(p);
71 _path.template appendNew<QuadraticBezier>(c, p);
75 _path.template appendNew<CubicBezier>(c0, c1, p);
78 void arcTo(
double rx,
double ry,
double angle,
79 bool large_arc,
bool sweep,
Point p)
81 _path.template appendNew<SVGEllipticalArc>(rx, ry, angle,
105 typedef std::back_insert_iterator<std::vector<Path> > iter;
109 std::vector<Path> _pathset;
112 std::vector<Path>
const &peek()
const {
return _pathset;}
Definition: svg-path.h:107
Definition: svg-path.h:55
Cartesian point.
Definition: point.h:20
Definition: svg-path.h:39