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:
51 
56 
57 public:
58  RLeaderEntity(RDocument* document, const RLeaderData& data,
59  RObject::Id objectId = RObject::INVALID_ID);
60  virtual ~RLeaderEntity();
61 
62  static void init();
63 
64  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
66  }
67 
68  virtual RLeaderEntity* clone() const {
69  return new RLeaderEntity(*this);
70  }
71 
72  virtual RS::EntityType getType() const {
73  return RS::EntityLeader;
74  }
75 
76  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
77  RTransaction* transaction=NULL);
78  QPair<QVariant, RPropertyAttributes> getProperty(
79  RPropertyTypeId& propertyTypeId,
80  bool humanReadable = false, bool noAttributes = false);
81 
82  virtual RLeaderData& getData() {
83  return data;
84  }
85 
86  void setData(RLeaderData& d) {
87  data = d;
88  }
89 
90  virtual const RLeaderData& getData() const {
91  return data;
92  }
93 
94  void setArrowHead(bool on) {
95  data.setArrowHead(on);
96  }
97 
98  bool hasArrowHead() const {
99  return data.hasArrowHead();
100  }
101 
102  void clear() {
103  data.clear();
104  }
105 
106  void normalize() {
107  data.normalize();
108  }
109 
110  int countVertices() const {
111  return data.countVertices();
112  }
113 
114  void appendVertex(const RVector& vertex) {
115  data.appendVertex(vertex);
116  }
117 
118  void prependVertex(const RVector& vertex) {
119  data.prependVertex(vertex);
120  }
121 
122  void insertVertex(int index, const RVector& vertex) {
123  data.insertVertex(index, vertex);
124  }
125 
126  RVector getVertexAt(int i) const {
127  return data.getVertexAt(i);
128  }
129 
131  data.removeLastVertex();
132  }
133 
134  void removeVertex(int index) {
135  data.removeVertex(index);
136  }
137 
138  int countSegments() const {
139  return data.countSegments();
140  }
141 
142  QSharedPointer<RShape> getSegmentAt(int i) const {
143  return data.getSegmentAt(i);
144  }
145 
146  double getBulgeAt(int i) const {
147  return data.getBulgeAt(i);
148  }
149 
150  void setBulgeAt(int i, double b) {
151  data.setBulgeAt(i, b);
152  }
153 
154  double getDirection1() const {
155  return data.getDirection1();
156  }
157 
158  double getDirection2() const {
159  return data.getDirection2();
160  }
161 
163  return data.getEndPoint();
164  }
165 
167  return data.getStartPoint();
168  }
169 
170  void setClosed(bool on) {
171  data.setClosed(on);
172  }
173 
174  bool isClosed() const {
175  return data.isClosed();
176  }
177 
178  QList<QSharedPointer<RShape> > getExploded() const {
179  return data.getExploded();
180  }
181 
182  virtual void exportEntity(RExporter& e, bool preview=false) const;
183 
184 protected:
185  virtual void print(QDebug dbg) const;
186 
187 protected:
189 };
190 
192 Q_DECLARE_METATYPE(QSharedPointer<RLeaderEntity>)
193 Q_DECLARE_METATYPE(QSharedPointer<RLeaderEntity>*)
194 
195 #endif