10 #ifndef __VSDGEOMETRYLIST_H__ 
   11 #define __VSDGEOMETRYLIST_H__ 
   18 #include <boost/optional.hpp> 
   55   void addGeometry(
unsigned id, 
unsigned level, 
const boost::optional<bool> &noFill,
 
   56                    const boost::optional<bool> &noLine, 
const boost::optional<bool> &noShow);
 
   57   void addEmpty(
unsigned id, 
unsigned level);
 
   58   void addMoveTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y);
 
   59   void addLineTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y);
 
   60   void addArcTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x2, 
const boost::optional<double> &y2,
 
   61                 const boost::optional<double> &bow);
 
   62   void addNURBSTo(
unsigned id, 
unsigned level, 
double x2, 
double y2, 
unsigned char xType, 
unsigned char yType, 
unsigned degree,
 
   63                   const std::vector<std::pair<double, double> > &controlPoints, 
const std::vector<double> &knotVector,
 
   64                   const std::vector<double> &weights);
 
   65   void addNURBSTo(
unsigned id, 
unsigned level, 
double x2, 
double y2, 
double knot, 
double knotPrev, 
double weight, 
double weightPrev, 
unsigned dataID);
 
   66   void addNURBSTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x2, 
const boost::optional<double> &y2,
 
   67                   const boost::optional<double> &knot, 
const boost::optional<double> &knotPrev, 
const boost::optional<double> &weight,
 
   68                   const boost::optional<double> &weightPrev, 
const boost::optional<NURBSData> &data);
 
   69   void addPolylineTo(
unsigned id , 
unsigned level, 
double x, 
double y, 
unsigned char xType, 
unsigned char yType,
 
   70                      const std::vector<std::pair<double, double> > &points);
 
   71   void addPolylineTo(
unsigned id , 
unsigned level, 
double x, 
double y, 
unsigned dataID);
 
   72   void addPolylineTo(
unsigned id , 
unsigned level, boost::optional<double> &x, boost::optional<double> &y, boost::optional<PolylineData> &data);
 
   73   void addEllipse(
unsigned id, 
unsigned level, 
const boost::optional<double> &cx, 
const boost::optional<double> &cy,
 
   74                   const boost::optional<double> &xleft, 
const boost::optional<double> &yleft,
 
   75                   const boost::optional<double> &xtop, 
const boost::optional<double> &ytop);
 
   76   void addEllipticalArcTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x3, 
const boost::optional<double> &y3,
 
   77                           const boost::optional<double> &x2, 
const boost::optional<double> &y2,
 
   78                           const boost::optional<double> &angle, 
const boost::optional<double> &ecc);
 
   79   void addSplineStart(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y,
 
   80                       const boost::optional<double> &secondKnot, 
const boost::optional<double> &firstKnot,
 
   81                       const boost::optional<double> &lastKnot, 
const boost::optional<unsigned> °ree);
 
   82   void addSplineKnot(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y,
 
   83                      const boost::optional<double> &knot);
 
   84   void addInfiniteLine(
unsigned id, 
unsigned level, 
const boost::optional<double> &x1, 
const boost::optional<double> &y1,
 
   85                        const boost::optional<double> &x2, 
const boost::optional<double> &y2);
 
   86   void addRelCubBezTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y,
 
   87                       const boost::optional<double> &a, 
const boost::optional<double> &b,
 
   88                       const boost::optional<double> &c, 
const boost::optional<double> &d);
 
   89   void addRelEllipticalArcTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x3, 
const boost::optional<double> &y3,
 
   90                              const boost::optional<double> &x2, 
const boost::optional<double> &y2,
 
   91                              const boost::optional<double> &angle, 
const boost::optional<double> &ecc);
 
   92   void addRelMoveTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y);
 
   93   void addRelLineTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y);
 
   94   void addRelQuadBezTo(
unsigned id, 
unsigned level, 
const boost::optional<double> &x, 
const boost::optional<double> &y,
 
   95                        const boost::optional<double> &a, 
const boost::optional<double> &b);
 
  121 #endif // __VSDGEOMETRYLIST_H__ 
std::map< unsigned, VSDGeometryListElement * > m_elements
Definition: VSDGeometryList.h:115
VSDGeometryListElement * getElement(unsigned index) const 
Definition: VSDGeometryList.cpp:965
VSDGeometryList()
Definition: VSDGeometryList.cpp:566
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:667
void resetLevel(unsigned level)
Definition: VSDGeometryList.cpp:988
VSDGeometryList & operator=(const VSDGeometryList &geomList)
Definition: VSDGeometryList.cpp:581
void addSplineKnot(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< double > &knot)
Definition: VSDGeometryList.cpp:794
void addEmpty(unsigned id, unsigned level)
Definition: VSDGeometryList.cpp:613
std::vector< unsigned > getElementsOrder() const 
Definition: VSDGeometryList.h:104
void handle(VSDCollector *collector) const 
Definition: VSDGeometryList.cpp:925
void setElementsOrder(const std::vector< unsigned > &m_elementsOrder)
Definition: VSDGeometryList.cpp:918
unsigned m_level
Definition: VSDGeometryList.h:44
Definition: VSDCollector.h:20
void clear()
Definition: VSDGeometryList.cpp:957
void setLevel(unsigned level)
Definition: VSDGeometryList.h:38
bool empty() const 
Definition: VSDGeometryList.h:99
unsigned count() const 
Definition: VSDGeometryList.h:108
virtual ~VSDGeometryListElement()
Definition: VSDGeometryList.h:31
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:850
VSDGeometryListElement(unsigned id, unsigned level)
Definition: VSDGeometryList.h:29
unsigned m_id
Definition: VSDGeometryList.h:43
void addArcTo(unsigned id, unsigned level, const boost::optional< double > &x2, const boost::optional< double > &y2, const boost::optional< double > &bow)
Definition: VSDGeometryList.cpp:650
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:811
Definition: VSDGeometryList.h:26
std::vector< unsigned > m_elementsOrder
Definition: VSDGeometryList.h:116
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:702
#define MINUS_ONE
Definition: VSDTypes.h:19
Definition: libvisio_utils.h:73
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:829
void addRelLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:886
void addLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:635
void clearElement(unsigned id)
Definition: VSDGeometryList.cpp:977
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:596
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:752
~VSDGeometryList()
Definition: VSDGeometryList.cpp:591
void addRelMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:871
void addMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:619
virtual unsigned getDataID() const 
Definition: VSDGeometryList.h:34
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:731
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:773
Definition: VSDGeometryList.h:47
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:901