10#ifndef __VSDGEOMETRYLIST_H__
11#define __VSDGEOMETRYLIST_H__
55 void addGeometry(
unsigned id,
unsigned level,
const std::optional<bool> &noFill,
56 const std::optional<bool> &noLine,
const std::optional<bool> &noShow);
57 void addEmpty(
unsigned id,
unsigned level);
58 void addMoveTo(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y);
59 void addLineTo(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y);
60 void addArcTo(
unsigned id,
unsigned level,
const std::optional<double> &x2,
const std::optional<double> &y2,
61 const std::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 std::optional<double> &x2,
const std::optional<double> &y2,
67 const std::optional<double> &knot,
const std::optional<double> &knotPrev,
const std::optional<double> &weight,
68 const std::optional<double> &weightPrev,
const std::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, std::optional<double> &x, std::optional<double> &y, std::optional<PolylineData> &data);
73 void addEllipse(
unsigned id,
unsigned level,
const std::optional<double> &cx,
const std::optional<double> &cy,
74 const std::optional<double> &xleft,
const std::optional<double> &yleft,
75 const std::optional<double> &xtop,
const std::optional<double> &ytop);
76 void addEllipticalArcTo(
unsigned id,
unsigned level,
const std::optional<double> &x3,
const std::optional<double> &y3,
77 const std::optional<double> &x2,
const std::optional<double> &y2,
78 const std::optional<double> &angle,
const std::optional<double> &ecc);
79 void addSplineStart(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y,
80 const std::optional<double> &secondKnot,
const std::optional<double> &firstKnot,
81 const std::optional<double> &lastKnot,
const std::optional<unsigned> °ree);
82 void addSplineKnot(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y,
83 const std::optional<double> &knot);
84 void addInfiniteLine(
unsigned id,
unsigned level,
const std::optional<double> &x1,
const std::optional<double> &y1,
85 const std::optional<double> &x2,
const std::optional<double> &y2);
86 void addRelCubBezTo(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y,
87 const std::optional<double> &a,
const std::optional<double> &b,
88 const std::optional<double> &c,
const std::optional<double> &d);
89 void addRelEllipticalArcTo(
unsigned id,
unsigned level,
const std::optional<double> &x3,
const std::optional<double> &y3,
90 const std::optional<double> &x2,
const std::optional<double> &y2,
91 const std::optional<double> &angle,
const std::optional<double> &ecc);
92 void addRelMoveTo(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y);
93 void addRelLineTo(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y);
94 void addRelQuadBezTo(
unsigned id,
unsigned level,
const std::optional<double> &x,
const std::optional<double> &y,
95 const std::optional<double> &a,
const std::optional<double> &b);
114 std::map<unsigned, std::unique_ptr<VSDGeometryListElement>>
m_elements;
#define MINUS_ONE
Definition VSDTypes.h:18
Definition VSDCollector.h:21
Definition VSDGeometryList.h:27
void setLevel(unsigned level)
Definition VSDGeometryList.h:38
unsigned m_id
Definition VSDGeometryList.h:43
virtual unsigned getDataID() const
Definition VSDGeometryList.h:34
virtual void handle(VSDCollector *collector) const =0
unsigned m_level
Definition VSDGeometryList.h:44
virtual ~VSDGeometryListElement()
Definition VSDGeometryList.h:31
VSDGeometryListElement(unsigned id, unsigned level)
Definition VSDGeometryList.h:29
virtual VSDGeometryListElement * clone()=0
~VSDGeometryList()
Definition VSDGeometryList.cpp:593
std::vector< unsigned > m_elementsOrder
Definition VSDGeometryList.h:115
std::map< unsigned, std::unique_ptr< VSDGeometryListElement > > m_elements
Definition VSDGeometryList.h:114
void addRelCubBezTo(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y, const std::optional< double > &a, const std::optional< double > &b, const std::optional< double > &c, const std::optional< double > &d)
Definition VSDGeometryList.cpp:814
void addSplineKnot(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y, const std::optional< double > &knot)
Definition VSDGeometryList.cpp:781
std::vector< unsigned > getElementsOrder() const
Definition VSDGeometryList.h:104
VSDGeometryList & operator=(const VSDGeometryList &geomList)
Definition VSDGeometryList.cpp:581
void addEmpty(unsigned id, unsigned level)
Definition VSDGeometryList.cpp:613
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:663
void addEllipse(unsigned id, unsigned level, const std::optional< double > &cx, const std::optional< double > &cy, const std::optional< double > &xleft, const std::optional< double > &yleft, const std::optional< double > &xtop, const std::optional< double > &ytop)
Definition VSDGeometryList.cpp:721
void addArcTo(unsigned id, unsigned level, const std::optional< double > &x2, const std::optional< double > &y2, const std::optional< double > &bow)
Definition VSDGeometryList.cpp:647
void addLineTo(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y)
Definition VSDGeometryList.cpp:633
void handle(VSDCollector *collector) const
Definition VSDGeometryList.cpp:905
unsigned count() const
Definition VSDGeometryList.h:108
void setElementsOrder(const std::vector< unsigned > &m_elementsOrder)
Definition VSDGeometryList.cpp:898
bool empty() const
Definition VSDGeometryList.h:99
void addRelLineTo(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y)
Definition VSDGeometryList.cpp:868
void clear()
Definition VSDGeometryList.cpp:936
void addRelEllipticalArcTo(unsigned id, unsigned level, const std::optional< double > &x3, const std::optional< double > &y3, const std::optional< double > &x2, const std::optional< double > &y2, const std::optional< double > &angle, const std::optional< double > &ecc)
Definition VSDGeometryList.cpp:834
void addEllipticalArcTo(unsigned id, unsigned level, const std::optional< double > &x3, const std::optional< double > &y3, const std::optional< double > &x2, const std::optional< double > &y2, const std::optional< double > &angle, const std::optional< double > &ecc)
Definition VSDGeometryList.cpp:741
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:695
void resetLevel(unsigned level)
Definition VSDGeometryList.cpp:954
void addRelMoveTo(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y)
Definition VSDGeometryList.cpp:854
void addGeometry(unsigned id, unsigned level, const std::optional< bool > &noFill, const std::optional< bool > &noLine, const std::optional< bool > &noShow)
Definition VSDGeometryList.cpp:597
void addRelQuadBezTo(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y, const std::optional< double > &a, const std::optional< double > &b)
Definition VSDGeometryList.cpp:882
VSDGeometryList()
Definition VSDGeometryList.cpp:567
void addSplineStart(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y, const std::optional< double > &secondKnot, const std::optional< double > &firstKnot, const std::optional< double > &lastKnot, const std::optional< unsigned > °ree)
Definition VSDGeometryList.cpp:761
VSDGeometryListElement * getElement(unsigned index) const
Definition VSDGeometryList.cpp:942
void addInfiniteLine(unsigned id, unsigned level, const std::optional< double > &x1, const std::optional< double > &y1, const std::optional< double > &x2, const std::optional< double > &y2)
Definition VSDGeometryList.cpp:797
void addMoveTo(unsigned id, unsigned level, const std::optional< double > &x, const std::optional< double > &y)
Definition VSDGeometryList.cpp:618
Definition libvisio_utils.h:47