VSDGeometryList.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libvisio project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef __VSDGEOMETRYLIST_H__
11 #define __VSDGEOMETRYLIST_H__
12 
13 #include <vector>
14 #include <map>
15 #include <vector>
16 #include <functional>
17 #include <algorithm>
18 #include <boost/optional.hpp>
19 #include "VSDTypes.h"
20 
21 namespace libvisio
22 {
23 
24 class VSDCollector;
25 
27 {
28 public:
29  VSDGeometryListElement(unsigned id, unsigned level)
30  : m_id(id), m_level(level) {}
32  virtual void handle(VSDCollector *collector) const = 0;
33  virtual VSDGeometryListElement *clone() = 0;
34  virtual unsigned getDataID() const
35  {
36  return MINUS_ONE;
37  }
38  void setLevel(unsigned level)
39  {
40  m_level = level;
41  }
42 protected:
43  unsigned m_id;
44  unsigned m_level;
45 };
46 
48 {
49 public:
51  VSDGeometryList(const VSDGeometryList &geomList);
53  VSDGeometryList &operator=(const VSDGeometryList &geomList);
54 
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> &degree);
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);
97  void handle(VSDCollector *collector) const;
98  void clear();
99  bool empty() const
100  {
101  return (m_elements.empty());
102  }
103  VSDGeometryListElement *getElement(unsigned index) const;
104  std::vector<unsigned> getElementsOrder() const
105  {
106  return m_elementsOrder;
107  }
108  unsigned count() const
109  {
110  return (unsigned)m_elements.size();
111  }
112  void resetLevel(unsigned level);
113 private:
114  void clearElement(unsigned id);
115  std::map<unsigned, VSDGeometryListElement *> m_elements;
116  std::vector<unsigned> m_elementsOrder;
117 };
118 
119 } // namespace libvisio
120 
121 #endif // __VSDGEOMETRYLIST_H__
122 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libvisio::VSDCollector::collectNURBSTo
virtual void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree, const std::vector< std::pair< double, double > > &ctrlPnts, const std::vector< double > &kntVec, const std::vector< double > &weights)=0
libvisio::VSDSplineStart::m_y
double m_y
Definition: VSDGeometryList.cpp:210
libvisio::VSDGeometry::VSDGeometry
VSDGeometry(unsigned id, unsigned level, const boost::optional< bool > &noFill, const boost::optional< bool > &noLine, const boost::optional< bool > &noShow)
Definition: VSDGeometryList.cpp:21
libvisio::VSDRelLineTo
Definition: VSDGeometryList.cpp:281
libvisio::VSDCollector::collectArcTo
virtual void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow)=0
libvisio::VSDNURBSTo1::m_yType
unsigned m_yType
Definition: VSDGeometryList.cpp:116
libvisio::VSDMoveTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:329
libvisio::VSDInfiniteLine::~VSDInfiniteLine
~VSDInfiniteLine() override
Definition: VSDGeometryList.cpp:235
libvisio::VSDInfiniteLine::VSDInfiniteLine
VSDInfiniteLine(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:231
libvisio::VSDRelEllipticalArcTo::m_x2
double m_x2
Definition: VSDGeometryList.cpp:266
VSDGeometryList.h
libvisio::VSDSplineStart::m_lastKnot
double m_lastKnot
Definition: VSDGeometryList.cpp:211
libvisio::VSDCollector::collectLineTo
virtual void collectLineTo(unsigned id, unsigned level, double x, double y)=0
libvisio::VSDPolylineTo2
Definition: VSDGeometryList.cpp:171
libvisio::VSDPolylineTo2::VSDPolylineTo2
VSDPolylineTo2(unsigned id, unsigned level, double x, double y, unsigned dataID)
Definition: VSDGeometryList.cpp:173
libvisio::VSDSplineStart::m_secondKnot
double m_secondKnot
Definition: VSDGeometryList.cpp:211
libvisio::VSDGeometryListElement::setLevel
void setLevel(unsigned level)
Definition: VSDGeometryList.h:38
libvisio::VSDPolylineTo3::VSDPolylineTo3
VSDPolylineTo3(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< PolylineData > &data)
Definition: VSDGeometryList.cpp:187
libvisio::VSDRelCubBezTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:512
libvisio::VSDGeometryList::clear
void clear()
Definition: VSDGeometryList.cpp:957
libvisio::VSDPolylineTo1::VSDPolylineTo1
VSDPolylineTo1(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, std::vector< std::pair< double, double > > points)
Definition: VSDGeometryList.cpp:159
libvisio::VSDNURBSTo3::m_knot
double m_knot
Definition: VSDGeometryList.cpp:152
libvisio::VSDGeometryList::addMoveTo
void addMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:619
libvisio::VSDCollector::collectRelCubBezTo
virtual void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d)=0
libvisio::VSDCollector::collectRelQuadBezTo
virtual void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b)=0
libvisio::VSDPolylineTo1::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:430
libvisio::VSDGeometryList::empty
bool empty() const
Definition: VSDGeometryList.h:99
libvisio::VSDPolylineTo3::m_x
double m_x
Definition: VSDGeometryList.cpp:195
libvisio::VSDGeometryList::addEllipse
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
libvisio::VSDNURBSTo2::getDataID
unsigned getDataID() const override
Definition: VSDGeometryList.cpp:413
libvisio::VSDArcTo::m_y2
double m_y2
Definition: VSDGeometryList.cpp:73
libvisio::VSDCollector::collectSplineEnd
virtual void collectSplineEnd()=0
libvisio::VSDGeometryListElement::m_level
unsigned m_level
Definition: VSDGeometryList.h:44
libvisio::VSDGeometryList::addNURBSTo
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
libvisio::VSDPolylineTo2::m_x
double m_x
Definition: VSDGeometryList.cpp:181
libvisio::VSDGeometryList::addLineTo
void addLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:635
libvisio::VSDNURBSTo2::m_y2
double m_y2
Definition: VSDGeometryList.cpp:133
libvisio::VSDGeometryList::getElement
VSDGeometryListElement * getElement(unsigned index) const
Definition: VSDGeometryList.cpp:965
libvisio::VSDEllipse::m_cx
double m_cx
Definition: VSDGeometryList.cpp:88
libvisio::VSDRelEllipticalArcTo::m_angle
double m_angle
Definition: VSDGeometryList.cpp:266
libvisio::VSDNURBSTo2::m_dataID
unsigned m_dataID
Definition: VSDGeometryList.cpp:132
libvisio::VSDCollector
Definition: VSDCollector.h:21
libvisio::VSDRelQuadBezTo::m_x
double m_x
Definition: VSDGeometryList.cpp:301
libvisio::VSDGeometryList::addRelQuadBezTo
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
libvisio::VSDRelEllipticalArcTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:524
libvisio::VSDRelLineTo::m_y
double m_y
Definition: VSDGeometryList.cpp:288
libvisio::VSDPolylineTo2::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:442
libvisio::VSDCollector::collectGeometry
virtual void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow)=0
libvisio::VSDSplineKnot::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:483
libvisio::VSDCollector::collectSplineKnot
virtual void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot)=0
libvisio::VSDGeometry::m_noShow
bool m_noShow
Definition: VSDGeometryList.cpp:30
libvisio::VSDNURBSTo3::VSDNURBSTo3
VSDNURBSTo3(unsigned id, unsigned level, const boost::optional< double > &x2, const boost::optional< double > &y2, const boost::optional< double > &knot, const boost::optional< double > &knotPrev, const boost::optional< double > &weight, const boost::optional< double > &weightPrev, const boost::optional< NURBSData > &data)
Definition: VSDGeometryList.cpp:141
libvisio::VSDNURBSTo3
Definition: VSDGeometryList.cpp:139
libvisio::VSDEllipticalArcTo::m_x2
double m_x2
Definition: VSDGeometryList.cpp:102
libvisio::VSDEllipticalArcTo::m_ecc
double m_ecc
Definition: VSDGeometryList.cpp:102
libvisio::VSDEllipse::m_cy
double m_cy
Definition: VSDGeometryList.cpp:88
libvisio::VSDRelCubBezTo::m_y
double m_y
Definition: VSDGeometryList.cpp:251
libvisio::VSDRelEllipticalArcTo::VSDRelEllipticalArcTo
VSDRelEllipticalArcTo(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:257
libvisio::VSDPolylineTo1
Definition: VSDGeometryList.cpp:157
libvisio::VSDEllipticalArcTo::m_y2
double m_y2
Definition: VSDGeometryList.cpp:102
libvisio::VSDGeometry::m_noFill
bool m_noFill
Definition: VSDGeometryList.cpp:28
libvisio::VSDEllipticalArcTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:378
libvisio::VSDInfiniteLine::m_y1
double m_y1
Definition: VSDGeometryList.cpp:238
libvisio::VSDEmpty::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:319
libvisio::VSDRelEllipticalArcTo::m_ecc
double m_ecc
Definition: VSDGeometryList.cpp:266
libvisio::VSDEllipticalArcTo::m_angle
double m_angle
Definition: VSDGeometryList.cpp:102
libvisio::VSDPolylineTo3
Definition: VSDGeometryList.cpp:185
libvisio::VSDRelLineTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:542
libvisio::VSDSplineStart::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:471
libvisio::VSDPolylineTo1::~VSDPolylineTo1
~VSDPolylineTo1() override
Definition: VSDGeometryList.cpp:161
libvisio::VSDPolylineTo2::m_y
double m_y
Definition: VSDGeometryList.cpp:181
libvisio::VSDEllipse
Definition: VSDGeometryList.cpp:77
libvisio::VSDRelQuadBezTo
Definition: VSDGeometryList.cpp:292
libvisio::VSDGeometryListElement::handle
virtual void handle(VSDCollector *collector) const =0
libvisio::VSDEllipticalArcTo::m_y3
double m_y3
Definition: VSDGeometryList.cpp:102
libvisio::VSDSplineKnot::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:488
libvisio::VSDGeometryList::addSplineKnot
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
libvisio::VSDGeometryListElement::VSDGeometryListElement
VSDGeometryListElement(unsigned id, unsigned level)
Definition: VSDGeometryList.h:29
libvisio::VSDSplineStart::m_degree
unsigned m_degree
Definition: VSDGeometryList.cpp:212
libvisio::VSDArcTo
Definition: VSDGeometryList.cpp:66
libvisio::VSDSplineStart::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:477
libvisio::VSDSplineKnot::VSDSplineKnot
VSDSplineKnot(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y, const boost::optional< double > &knot)
Definition: VSDGeometryList.cpp:218
libvisio::VSDPolylineTo2::getDataID
unsigned getDataID() const override
Definition: VSDGeometryList.cpp:453
libvisio::VSDSplineStart
Definition: VSDGeometryList.cpp:199
libvisio::VSDSplineStart::m_firstKnot
double m_firstKnot
Definition: VSDGeometryList.cpp:211
libvisio::VSDGeometryList::clearElement
void clearElement(unsigned id)
Definition: VSDGeometryList.cpp:977
libvisio::VSDGeometryList::addInfiniteLine
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
libvisio::VSDRelQuadBezTo::VSDRelQuadBezTo
VSDRelQuadBezTo(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:294
libvisio::VSDSplineStart::VSDSplineStart
VSDSplineStart(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 > &degree)
Definition: VSDGeometryList.cpp:201
libvisio::VSDCollector::collectRelEllipticalArcTo
virtual void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d)=0
libvisio::VSDNURBSTo2::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:402
libvisio::VSDRelLineTo::m_x
double m_x
Definition: VSDGeometryList.cpp:288
libvisio::VSDGeometryList::handle
void handle(VSDCollector *collector) const
Definition: VSDGeometryList.cpp:925
libvisio::VSDInfiniteLine::m_y2
double m_y2
Definition: VSDGeometryList.cpp:238
libvisio::VSDPolylineTo3::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:465
libvisio::VSDRelEllipticalArcTo::~VSDRelEllipticalArcTo
~VSDRelEllipticalArcTo() override
Definition: VSDGeometryList.cpp:263
libvisio::VSDRelMoveTo::~VSDRelMoveTo
~VSDRelMoveTo() override
Definition: VSDGeometryList.cpp:274
libvisio::VSDRelQuadBezTo::~VSDRelQuadBezTo
~VSDRelQuadBezTo() override
Definition: VSDGeometryList.cpp:298
libvisio::VSDPolylineTo3::m_data
PolylineData m_data
Definition: VSDGeometryList.cpp:194
libvisio::VSDLineTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:348
libvisio::VSDEllipse::m_xtop
double m_xtop
Definition: VSDGeometryList.cpp:88
libvisio::VSDGeometryList::addEllipticalArcTo
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
VSDTypes.h
libvisio::VSDGeometryList::addGeometry
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
libvisio::VSDNURBSTo3::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:424
libvisio::VSDEllipse::m_yleft
double m_yleft
Definition: VSDGeometryList.cpp:88
libvisio::VSDMoveTo::m_x
double m_x
Definition: VSDGeometryList.cpp:51
libvisio::VSDCollector::collectPolylineTo
virtual void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, const std::vector< std::pair< double, double > > &points)=0
VSDCollector.h
libvisio::VSDGeometryList::m_elementsOrder
std::vector< unsigned > m_elementsOrder
Definition: VSDGeometryList.h:116
libvisio::VSDPolylineTo1::m_yType
unsigned m_yType
Definition: VSDGeometryList.cpp:166
libvisio::VSDGeometryList::addPolylineTo
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
libvisio::VSDCollector::collectEllipse
virtual void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop)=0
libvisio::VSDRelCubBezTo::~VSDRelCubBezTo
~VSDRelCubBezTo() override
Definition: VSDGeometryList.cpp:248
libvisio::VSDGeometryList::addRelMoveTo
void addRelMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:871
libvisio::VSDGeometryList::addRelEllipticalArcTo
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
libvisio::VSDGeometryList::~VSDGeometryList
~VSDGeometryList()
Definition: VSDGeometryList.cpp:591
libvisio::VSDMoveTo::~VSDMoveTo
~VSDMoveTo() override
Definition: VSDGeometryList.cpp:48
libvisio::VSDGeometryListElement::clone
virtual VSDGeometryListElement * clone()=0
libvisio::VSDLineTo
Definition: VSDGeometryList.cpp:55
libvisio::VSDGeometryList::addEmpty
void addEmpty(unsigned id, unsigned level)
Definition: VSDGeometryList.cpp:613
libvisio::VSDRelCubBezTo::m_b
double m_b
Definition: VSDGeometryList.cpp:251
libvisio::VSDRelCubBezTo
Definition: VSDGeometryList.cpp:242
libvisio::VSDNURBSTo1::m_knotVector
std::vector< double > m_knotVector
Definition: VSDGeometryList.cpp:119
libvisio::VSDPolylineTo2::~VSDPolylineTo2
~VSDPolylineTo2() override
Definition: VSDGeometryList.cpp:175
libvisio::VSDArcTo::~VSDArcTo
~VSDArcTo() override
Definition: VSDGeometryList.cpp:70
libvisio::VSDGeometryList::addRelCubBezTo
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
libvisio::VSDGeometryList::addArcTo
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
libvisio::VSDNURBSTo1::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:396
libvisio::VSDPolylineTo1::m_xType
unsigned m_xType
Definition: VSDGeometryList.cpp:166
libvisio::VSDRelCubBezTo::m_d
double m_d
Definition: VSDGeometryList.cpp:251
libvisio::VSDInfiniteLine::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:494
libvisio::VSDRelMoveTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:530
libvisio::VSDNURBSTo1::m_xType
unsigned m_xType
Definition: VSDGeometryList.cpp:116
libvisio::VSDMoveTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:335
libvisio::VSDCollector::collectRelLineTo
virtual void collectRelLineTo(unsigned id, unsigned level, double x, double y)=0
libvisio::VSDEmpty::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:324
libvisio::VSDNURBSTo1
Definition: VSDGeometryList.cpp:106
libvisio::VSDSplineKnot::m_knot
double m_knot
Definition: VSDGeometryList.cpp:225
libvisio::VSDRelEllipticalArcTo
Definition: VSDGeometryList.cpp:255
libvisio::VSDEmpty::~VSDEmpty
~VSDEmpty() override
Definition: VSDGeometryList.cpp:38
libvisio::VSDEllipticalArcTo::m_x3
double m_x3
Definition: VSDGeometryList.cpp:102
libvisio::VSDPolylineTo1::m_points
std::vector< std::pair< double, double > > m_points
Definition: VSDGeometryList.cpp:167
libvisio::VSDPolylineTo1::m_x
double m_x
Definition: VSDGeometryList.cpp:165
libvisio::VSDGeometryList::setElementsOrder
void setElementsOrder(const std::vector< unsigned > &m_elementsOrder)
Definition: VSDGeometryList.cpp:918
libvisio::VSDPolylineTo2::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:448
libvisio::VSDRelEllipticalArcTo::m_x3
double m_x3
Definition: VSDGeometryList.cpp:266
libvisio::VSDSplineKnot::~VSDSplineKnot
~VSDSplineKnot() override
Definition: VSDGeometryList.cpp:221
libvisio::VSDGeometryList
Definition: VSDGeometryList.h:48
libvisio::VSDGeometry::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:307
libvisio::VSDGeometryListElement
Definition: VSDGeometryList.h:27
libvisio::VSDEllipticalArcTo::VSDEllipticalArcTo
VSDEllipticalArcTo(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:94
libvisio::VSDGeometryListElement::getDataID
virtual unsigned getDataID() const
Definition: VSDGeometryList.h:34
libvisio::VSDRelCubBezTo::m_x
double m_x
Definition: VSDGeometryList.cpp:251
libvisio::VSDSplineKnot::m_y
double m_y
Definition: VSDGeometryList.cpp:224
libvisio::VSDNURBSTo1::VSDNURBSTo1
VSDNURBSTo1(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree, std::vector< std::pair< double, double > > controlPoints, std::vector< double > knotVector, std::vector< double > weights)
Definition: VSDGeometryList.cpp:108
libvisio::VSDNURBSTo1::m_weights
std::vector< double > m_weights
Definition: VSDGeometryList.cpp:119
libvisio::VSDEllipse::VSDEllipse
VSDEllipse(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:79
libvisio::VSDRelEllipticalArcTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:518
libvisio::VSDRelMoveTo::m_y
double m_y
Definition: VSDGeometryList.cpp:277
libvisio::VSDGeometryList::operator=
VSDGeometryList & operator=(const VSDGeometryList &geomList)
Definition: VSDGeometryList.cpp:581
libvisio::VSDRelMoveTo::VSDRelMoveTo
VSDRelMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:272
libvisio::VSDPolylineTo1::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:436
libvisio::PolylineData
Definition: VSDTypes.h:123
libvisio::VSDArcTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:354
libvisio::VSDCollector::collectEllipticalArcTo
virtual void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc)=0
libvisio::VSDSplineKnot
Definition: VSDGeometryList.cpp:216
libvisio::VSDRelCubBezTo::m_c
double m_c
Definition: VSDGeometryList.cpp:251
libvisio::VSDGeometry::m_noLine
bool m_noLine
Definition: VSDGeometryList.cpp:29
libvisio::VSDEmpty
Definition: VSDGeometryList.cpp:34
libvisio::VSDNURBSTo1::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:390
libvisio::VSDRelLineTo::VSDRelLineTo
VSDRelLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:283
libvisio::VSDPolylineTo3::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:459
libvisio::VSDRelQuadBezTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:560
libvisio::VSDEllipse::m_xleft
double m_xleft
Definition: VSDGeometryList.cpp:88
libvisio::VSDEmpty::VSDEmpty
VSDEmpty(unsigned id, unsigned level)
Definition: VSDGeometryList.cpp:36
libvisio::VSDNURBSTo3::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:418
libvisio::VSDArcTo::VSDArcTo
VSDArcTo(unsigned id, unsigned level, const boost::optional< double > &x2, const boost::optional< double > &y2, const boost::optional< double > &bow)
Definition: VSDGeometryList.cpp:68
libvisio::VSDRelCubBezTo::VSDRelCubBezTo
VSDRelCubBezTo(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:244
libvisio::VSDSplineKnot::m_x
double m_x
Definition: VSDGeometryList.cpp:224
libvisio::VSDArcTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:360
libvisio::VSDGeometry
Definition: VSDGeometryList.cpp:19
libvisio::VSDGeometryList::addSplineStart
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 > &degree)
Definition: VSDGeometryList.cpp:773
libvisio::VSDNURBSTo3::m_knotPrev
double m_knotPrev
Definition: VSDGeometryList.cpp:152
libvisio::VSDNURBSTo2::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:408
libvisio::VSDRelQuadBezTo::m_b
double m_b
Definition: VSDGeometryList.cpp:301
libvisio::VSDRelCubBezTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:506
libvisio::VSDNURBSTo1::m_y2
double m_y2
Definition: VSDGeometryList.cpp:115
libvisio::VSDMoveTo::m_y
double m_y
Definition: VSDGeometryList.cpp:51
libvisio::VSDRelLineTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:548
libvisio::VSDLineTo::~VSDLineTo
~VSDLineTo() override
Definition: VSDGeometryList.cpp:59
libvisio::VSDGeometryList::m_elements
std::map< unsigned, VSDGeometryListElement * > m_elements
Definition: VSDGeometryList.h:115
libvisio::VSDNURBSTo2
Definition: VSDGeometryList.cpp:123
libvisio::VSDRelEllipticalArcTo::m_y2
double m_y2
Definition: VSDGeometryList.cpp:266
libvisio::VSDGeometryList::getElementsOrder
std::vector< unsigned > getElementsOrder() const
Definition: VSDGeometryList.h:104
libvisio::VSDGeometryList::addRelLineTo
void addRelLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:886
libvisio::VSDGeometry::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:313
libvisio::VSDEllipticalArcTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:384
libvisio::VSDGeometryList::resetLevel
void resetLevel(unsigned level)
Definition: VSDGeometryList.cpp:988
libvisio::VSDRelQuadBezTo::m_y
double m_y
Definition: VSDGeometryList.cpp:301
libvisio::VSDNURBSTo3::m_data
NURBSData m_data
Definition: VSDGeometryList.cpp:150
libvisio::VSDNURBSTo1::m_x2
double m_x2
Definition: VSDGeometryList.cpp:115
libvisio::VSDRelMoveTo
Definition: VSDGeometryList.cpp:270
libvisio::VSDRelMoveTo::m_x
double m_x
Definition: VSDGeometryList.cpp:277
libvisio::VSDInfiniteLine::m_x1
double m_x1
Definition: VSDGeometryList.cpp:238
libvisio::VSDGeometry::~VSDGeometry
~VSDGeometry() override
Definition: VSDGeometryList.cpp:25
libvisio::VSDInfiniteLine
Definition: VSDGeometryList.cpp:229
libvisio::VSDNURBSTo3::m_weightPrev
double m_weightPrev
Definition: VSDGeometryList.cpp:153
libvisio::VSDGeometryListElement::~VSDGeometryListElement
virtual ~VSDGeometryListElement()
Definition: VSDGeometryList.h:31
libvisio::VSDNURBSTo2::~VSDNURBSTo2
~VSDNURBSTo2() override
Definition: VSDGeometryList.cpp:127
libvisio::VSDPolylineTo1::m_y
double m_y
Definition: VSDGeometryList.cpp:165
libvisio::VSDNURBSTo2::m_x2
double m_x2
Definition: VSDGeometryList.cpp:133
libvisio::VSDNURBSTo1::~VSDNURBSTo1
~VSDNURBSTo1() override
Definition: VSDGeometryList.cpp:111
libvisio::VSDNURBSTo2::m_weight
double m_weight
Definition: VSDGeometryList.cpp:135
libvisio::VSDEllipticalArcTo::~VSDEllipticalArcTo
~VSDEllipticalArcTo() override
Definition: VSDGeometryList.cpp:99
libvisio::VSDNURBSTo2::m_weightPrev
double m_weightPrev
Definition: VSDGeometryList.cpp:135
libvisio::VSDGeometryListElement::m_id
unsigned m_id
Definition: VSDGeometryList.h:43
libvisio::VSDInfiniteLine::m_x2
double m_x2
Definition: VSDGeometryList.cpp:238
libvisio::VSDRelMoveTo::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:536
libvisio::VSDRelCubBezTo::m_a
double m_a
Definition: VSDGeometryList.cpp:251
MINUS_ONE
#define MINUS_ONE
Definition: VSDTypes.h:18
libvisio::VSDCollector::collectSplineStart
virtual void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree)=0
libvisio::VSDEllipticalArcTo
Definition: VSDGeometryList.cpp:92
libvisio::VSDCollector::collectRelMoveTo
virtual void collectRelMoveTo(unsigned id, unsigned level, double x, double y)=0
libvisio::VSDNURBSTo1::m_degree
unsigned m_degree
Definition: VSDGeometryList.cpp:117
libvisio::VSDNURBSTo3::m_y2
double m_y2
Definition: VSDGeometryList.cpp:151
libvisio::VSDNURBSTo3::~VSDNURBSTo3
~VSDNURBSTo3() override
Definition: VSDGeometryList.cpp:146
libvisio::VSDNURBSTo3::m_weight
double m_weight
Definition: VSDGeometryList.cpp:153
libvisio::VSDEllipse::~VSDEllipse
~VSDEllipse() override
Definition: VSDGeometryList.cpp:85
libvisio::VSDRelQuadBezTo::m_a
double m_a
Definition: VSDGeometryList.cpp:301
libvisio::VSDNURBSTo2::m_knot
double m_knot
Definition: VSDGeometryList.cpp:134
libvisio::VSDLineTo::VSDLineTo
VSDLineTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:57
libvisio::VSDArcTo::m_bow
double m_bow
Definition: VSDGeometryList.cpp:73
libvisio::VSDLineTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:342
libvisio::VSDGeometryList::VSDGeometryList
VSDGeometryList()
Definition: VSDGeometryList.cpp:566
libvisio::VSDRelLineTo::~VSDRelLineTo
~VSDRelLineTo() override
Definition: VSDGeometryList.cpp:285
libvisio::VSDMoveTo
Definition: VSDGeometryList.cpp:44
libvisio_utils.h
libvisio::VSDCollector::collectMoveTo
virtual void collectMoveTo(unsigned id, unsigned level, double x, double y)=0
libvisio::VSDPolylineTo3::~VSDPolylineTo3
~VSDPolylineTo3() override
Definition: VSDGeometryList.cpp:190
libvisio::VSDMoveTo::VSDMoveTo
VSDMoveTo(unsigned id, unsigned level, const boost::optional< double > &x, const boost::optional< double > &y)
Definition: VSDGeometryList.cpp:46
libvisio::VSDPolylineTo2::m_dataID
unsigned m_dataID
Definition: VSDGeometryList.cpp:180
libvisio::VSDRelQuadBezTo::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:554
libvisio::VSDRelEllipticalArcTo::m_y3
double m_y3
Definition: VSDGeometryList.cpp:266
libvisio::VSDNURBSTo2::m_knotPrev
double m_knotPrev
Definition: VSDGeometryList.cpp:134
libvisio::NURBSData
Definition: VSDTypes.h:96
libvisio::VSDNURBSTo2::VSDNURBSTo2
VSDNURBSTo2(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID)
Definition: VSDGeometryList.cpp:125
libvisio::VSDNURBSTo1::m_controlPoints
std::vector< std::pair< double, double > > m_controlPoints
Definition: VSDGeometryList.cpp:118
libvisio::VSDCollector::collectInfiniteLine
virtual void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2)=0
libvisio::VSDEllipse::m_ytop
double m_ytop
Definition: VSDGeometryList.cpp:88
libvisio::VSDLineTo::m_x
double m_x
Definition: VSDGeometryList.cpp:62
libvisio::VSDArcTo::m_x2
double m_x2
Definition: VSDGeometryList.cpp:73
libvisio::VSDSplineStart::~VSDSplineStart
~VSDSplineStart() override
Definition: VSDGeometryList.cpp:206
ASSIGN_OPTIONAL
#define ASSIGN_OPTIONAL(t, u)
Definition: VSDTypes.h:17
libvisio::VSDNURBSTo3::m_x2
double m_x2
Definition: VSDGeometryList.cpp:151
libvisio
Definition: libvisio_utils.h:49
libvisio::VSDEllipse::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:372
libvisio::VSDEllipse::handle
void handle(VSDCollector *collector) const override
Definition: VSDGeometryList.cpp:366
libvisio::VSDSplineStart::m_x
double m_x
Definition: VSDGeometryList.cpp:210
libvisio::VSDGeometryList::count
unsigned count() const
Definition: VSDGeometryList.h:108
libvisio::VSDLineTo::m_y
double m_y
Definition: VSDGeometryList.cpp:62
libvisio::VSDInfiniteLine::clone
VSDGeometryListElement * clone() override
Definition: VSDGeometryList.cpp:500
libvisio::VSDPolylineTo3::m_y
double m_y
Definition: VSDGeometryList.cpp:195

Generated for libvisio by doxygen 1.8.20