QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RLeaderEntity.h
Go to the documentation of this file.
1 
20 #ifndef RLEADERENTITY_H
21 #define RLEADERENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "RLeaderData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39  Q_DECLARE_TR_FUNCTIONS(RLeaderEntity)
40 
41 public:
52 
57 
58 public:
59  RLeaderEntity(RDocument* document, const RLeaderData& data,
60  RObject::Id objectId = RObject::INVALID_ID);
61  virtual ~RLeaderEntity();
62 
63  static void init();
64 
65  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
67  }
68 
69  virtual RLeaderEntity* clone() const {
70  return new RLeaderEntity(*this);
71  }
72 
73  virtual RS::EntityType getType() const {
74  return RS::EntityLeader;
75  }
76 
77  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
78  RTransaction* transaction=NULL);
79  QPair<QVariant, RPropertyAttributes> getProperty(
80  RPropertyTypeId& propertyTypeId,
81  bool humanReadable = false, bool noAttributes = false);
82 
83  virtual RLeaderData& getData() {
84  return data;
85  }
86 
87  void setData(RLeaderData& d) {
88  data = d;
89  }
90 
91  virtual const RLeaderData& getData() const {
92  return data;
93  }
94 
95  void setArrowHead(bool on) {
96  data.setArrowHead(on);
97  }
98 
99  bool hasArrowHead() const {
100  return data.hasArrowHead();
101  }
102 
103  void clear() {
104  data.clear();
105  }
106 
107  void normalize() {
108  data.normalize();
109  }
110 
111  int countVertices() const {
112  return data.countVertices();
113  }
114 
115  void appendVertex(const RVector& vertex, double bulge=0.0) {
116  Q_UNUSED(bulge);
117  data.appendVertex(vertex);
118  }
119 
120  void prependVertex(const RVector& vertex, double bulge=0.0) {
121  Q_UNUSED(bulge);
122  data.prependVertex(vertex);
123  }
124 
125  void insertVertex(int index, const RVector& vertex) {
126  data.insertVertex(index, vertex);
127  }
128 
129  RVector getVertexAt(int i) const {
130  return data.getVertexAt(i);
131  }
132 
133  void setVertexAt(int i, const RVector& v) {
134  data.setVertexAt(i, v);
135  }
136 
138  data.removeLastVertex();
139  }
140 
141  void removeVertex(int index) {
142  data.removeVertex(index);
143  }
144 
145  int countSegments() const {
146  return data.countSegments();
147  }
148 
149  QSharedPointer<RShape> getSegmentAt(int i) const {
150  return data.getSegmentAt(i);
151  }
152 
153  double getBulgeAt(int i) const {
154  return data.getBulgeAt(i);
155  }
156 
157  void setBulgeAt(int i, double b) {
158  data.setBulgeAt(i, b);
159  }
160 
161  double getDirection1() const {
162  return data.getDirection1();
163  }
164 
165  double getDirection2() const {
166  return data.getDirection2();
167  }
168 
170  return data.getEndPoint();
171  }
172 
174  return data.getStartPoint();
175  }
176 
177  void setClosed(bool on) {
178  data.setClosed(on);
179  }
180 
181  bool isClosed() const {
182  return data.isClosed();
183  }
184 
185  QList<QSharedPointer<RShape> > getExploded() const {
186  return data.getExploded();
187  }
188 
189  virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
190 
191 protected:
192  virtual void print(QDebug dbg) const;
193 
194 protected:
196 };
197 
199 Q_DECLARE_METATYPE(QSharedPointer<RLeaderEntity>)
200 Q_DECLARE_METATYPE(QSharedPointer<RLeaderEntity>*)
201 
202 #endif