31 #ifndef __VSDGEOMETRYLIST_H__
32 #define __VSDGEOMETRYLIST_H__
39 #include <boost/optional.hpp>
76 void addGeometry(
unsigned id,
unsigned level,
const boost::optional<bool> &noFill,
77 const boost::optional<bool> &noLine,
const boost::optional<bool> &noShow);
78 void addEmpty(
unsigned id,
unsigned level);
79 void addMoveTo(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y);
80 void addLineTo(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y);
81 void addArcTo(
unsigned id,
unsigned level,
const boost::optional<double> &x2,
const boost::optional<double> &y2,
82 const boost::optional<double> &bow);
83 void addNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
unsigned char xType,
unsigned char yType,
unsigned degree,
84 const std::vector<std::pair<double, double> > &controlPoints,
const std::vector<double> &knotVector,
85 const std::vector<double> &weights);
86 void addNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
double knot,
double knotPrev,
double weight,
double weightPrev,
unsigned dataID);
87 void addNURBSTo(
unsigned id,
unsigned level,
const boost::optional<double> &x2,
const boost::optional<double> &y2,
88 const boost::optional<double> &knot,
const boost::optional<double> &knotPrev,
const boost::optional<double> &weight,
89 const boost::optional<double> &weightPrev,
const boost::optional<NURBSData> &data);
90 void addPolylineTo(
unsigned id ,
unsigned level,
double x,
double y,
unsigned char xType,
unsigned char yType,
91 const std::vector<std::pair<double, double> > &points);
92 void addPolylineTo(
unsigned id ,
unsigned level,
double x,
double y,
unsigned dataID);
93 void addPolylineTo(
unsigned id ,
unsigned level, boost::optional<double> &x, boost::optional<double> &y, boost::optional<PolylineData> &data);
94 void addEllipse(
unsigned id,
unsigned level,
const boost::optional<double> &cx,
const boost::optional<double> &cy,
95 const boost::optional<double> &xleft,
const boost::optional<double> &yleft,
96 const boost::optional<double> &xtop,
const boost::optional<double> &ytop);
97 void addEllipticalArcTo(
unsigned id,
unsigned level,
const boost::optional<double> &x3,
const boost::optional<double> &y3,
98 const boost::optional<double> &x2,
const boost::optional<double> &y2,
99 const boost::optional<double> &angle,
const boost::optional<double> &ecc);
100 void addSplineStart(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y,
101 const boost::optional<double> &secondKnot,
const boost::optional<double> &firstKnot,
102 const boost::optional<double> &lastKnot,
const boost::optional<unsigned> °ree);
103 void addSplineKnot(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y,
104 const boost::optional<double> &knot);
105 void addInfiniteLine(
unsigned id,
unsigned level,
const boost::optional<double> &x1,
const boost::optional<double> &y1,
106 const boost::optional<double> &x2,
const boost::optional<double> &y2);
107 void addRelCubBezTo(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y,
108 const boost::optional<double> &a,
const boost::optional<double> &b,
109 const boost::optional<double> &c,
const boost::optional<double> &d);
110 void addRelEllipticalArcTo(
unsigned id,
unsigned level,
const boost::optional<double> &x3,
const boost::optional<double> &y3,
111 const boost::optional<double> &x2,
const boost::optional<double> &y2,
112 const boost::optional<double> &angle,
const boost::optional<double> &ecc);
113 void addRelMoveTo(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y);
114 void addRelLineTo(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y);
115 void addRelQuadBezTo(
unsigned id,
unsigned level,
const boost::optional<double> &x,
const boost::optional<double> &y,
116 const boost::optional<double> &a,
const boost::optional<double> &b);
142 #endif // __VSDGEOMETRYLIST_H__
std::map< unsigned, VSDGeometryListElement * > m_elements
Definition: VSDGeometryList.h:136
VSDGeometryListElement * getElement(unsigned index) const
Definition: VSDGeometryList.cpp:986
VSDGeometryList()
Definition: VSDGeometryList.cpp:587
void addNURBSTo(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree, const std::vector< std::pair< double, double > > &controlPoints, const std::vector< double > &knotVector, const std::vector< double > &weights)
Definition: VSDGeometryList.cpp:688
void resetLevel(unsigned level)
Definition: VSDGeometryList.cpp:1009
VSDGeometryList & operator=(const VSDGeometryList &geomList)
Definition: VSDGeometryList.cpp:602
void addSplineKnot(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< double > &knot)
Definition: VSDGeometryList.cpp:815
void addEmpty(unsigned id, unsigned level)
Definition: VSDGeometryList.cpp:634
std::vector< unsigned > getElementsOrder() const
Definition: VSDGeometryList.h:125
void handle(VSDCollector *collector) const
Definition: VSDGeometryList.cpp:946
void setElementsOrder(const std::vector< unsigned > &m_elementsOrder)
Definition: VSDGeometryList.cpp:939
unsigned m_level
Definition: VSDGeometryList.h:65
Definition: VSDCollector.h:41
void clear()
Definition: VSDGeometryList.cpp:978
void setLevel(unsigned level)
Definition: VSDGeometryList.h:59
bool empty() const
Definition: VSDGeometryList.h:120
unsigned count() const
Definition: VSDGeometryList.h:129
virtual ~VSDGeometryListElement()
Definition: VSDGeometryList.h:52
void addRelEllipticalArcTo(unsigned id, unsigned level, const boost::optional< double > &x3, const boost::optional< double > &y3, const boost::optional< double > &x2, const boost::optional< double > &y2, const boost::optional< double > &angle, const boost::optional< double > &ecc)
Definition: VSDGeometryList.cpp:871
VSDGeometryListElement(unsigned id, unsigned level)
Definition: VSDGeometryList.h:50
unsigned m_id
Definition: VSDGeometryList.h:64
void addArcTo(unsigned id, unsigned level, const boost::optional< double > &x2, const boost::optional< double > &y2, const boost::optional< double > &bow)
Definition: VSDGeometryList.cpp:671
void addInfiniteLine(unsigned id, unsigned level, const boost::optional< double > &x1, const boost::optional< double > &y1, const boost::optional< double > &x2, const boost::optional< double > &y2)
Definition: VSDGeometryList.cpp:832
Definition: VSDGeometryList.h:47
std::vector< unsigned > m_elementsOrder
Definition: VSDGeometryList.h:137
void addPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, const std::vector< std::pair< double, double > > &points)
Definition: VSDGeometryList.cpp:723
#define MINUS_ONE
Definition: VSDTypes.h:39
void addRelCubBezTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< double > &a, const boost::optional< double > &b, const boost::optional< double > &c, const boost::optional< double > &d)
Definition: VSDGeometryList.cpp:850
void addRelLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:907
void addLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:656
void clearElement(unsigned id)
Definition: VSDGeometryList.cpp:998
virtual void handle(VSDCollector *collector) const =0
void addGeometry(unsigned id, unsigned level, const boost::optional< bool > &noFill, const boost::optional< bool > &noLine, const boost::optional< bool > &noShow)
Definition: VSDGeometryList.cpp:617
void addEllipticalArcTo(unsigned id, unsigned level, const boost::optional< double > &x3, const boost::optional< double > &y3, const boost::optional< double > &x2, const boost::optional< double > &y2, const boost::optional< double > &angle, const boost::optional< double > &ecc)
Definition: VSDGeometryList.cpp:773
~VSDGeometryList()
Definition: VSDGeometryList.cpp:612
void addRelMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:892
void addMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:640
virtual unsigned getDataID() const
Definition: VSDGeometryList.h:55
virtual VSDGeometryListElement * clone()=0
void addEllipse(unsigned id, unsigned level, const boost::optional< double > &cx, const boost::optional< double > &cy, const boost::optional< double > &xleft, const boost::optional< double > &yleft, const boost::optional< double > &xtop, const boost::optional< double > &ytop)
Definition: VSDGeometryList.cpp:752
void addSplineStart(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< double > &secondKnot, const boost::optional< double > &firstKnot, const boost::optional< double > &lastKnot, const boost::optional< unsigned > °ree)
Definition: VSDGeometryList.cpp:794
Definition: VSDGeometryList.h:68
void addRelQuadBezTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< double > &a, const boost::optional< double > &b)
Definition: VSDGeometryList.cpp:922