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);
    96   void setElementsOrder(
const std::vector<unsigned> &m_elementsOrder);
   101     return (m_elements.empty());
   106     return m_elementsOrder;
   110     return (
unsigned)m_elements.size();
   112   void resetLevel(
unsigned level);
   114   void clearElement(
unsigned id);
   121 #endif // __VSDGEOMETRYLIST_H__ std::map< unsigned, VSDGeometryListElement * > m_elements
Definition: VSDGeometryList.h:115
virtual unsigned getDataID() const
Definition: VSDGeometryList.h:34
unsigned m_level
Definition: VSDGeometryList.h:44
Definition: VSDCollector.h:20
void setLevel(unsigned level)
Definition: VSDGeometryList.h:38
virtual ~VSDGeometryListElement()
Definition: VSDGeometryList.h:31
VSDGeometryListElement(unsigned id, unsigned level)
Definition: VSDGeometryList.h:29
unsigned m_id
Definition: VSDGeometryList.h:43
std::vector< unsigned > getElementsOrder() const
Definition: VSDGeometryList.h:104
bool empty() const
Definition: VSDGeometryList.h:99
unsigned count() const
Definition: VSDGeometryList.h:108
Definition: VSDGeometryList.h:26
std::vector< unsigned > m_elementsOrder
Definition: VSDGeometryList.h:116
#define MINUS_ONE
Definition: VSDTypes.h:18
Definition: libvisio_utils.h:48
virtual void handle(VSDCollector *collector) const =0
virtual VSDGeometryListElement * clone()=0
Definition: VSDGeometryList.h:47