QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
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
28class RDocument;
29class RExporter;
30
39 Q_DECLARE_TR_FUNCTIONS(RLeaderEntity)
40
41public:
55
62
65
68
69public:
70 RLeaderEntity(RDocument* document, const RLeaderData& data);
71 RLeaderEntity(const RLeaderEntity& other);
72 virtual ~RLeaderEntity();
73
74 static void init();
75
77 return RS::EntityLeader;
78 }
79
80 static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
82 }
83
84 virtual QSharedPointer<RObject> clone() const {
85 return QSharedPointer<RObject>(new RLeaderEntity(*this));
86 }
87
88 QSharedPointer<RLeaderEntity> cloneToLeaderEntity() const {
89 return QSharedPointer<RLeaderEntity>(new RLeaderEntity(*this));
90 }
91
92 virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
93 RTransaction* transaction=NULL);
94 virtual QPair<QVariant, RPropertyAttributes> getProperty(
95 RPropertyTypeId& propertyTypeId,
96 bool humanReadable = false, bool noAttributes = false, bool showOnRequest = false);
97
98 virtual RLeaderData& getData() {
99 return data;
100 }
101
103 data = d;
104 }
105
106 virtual const RLeaderData& getData() const {
107 return data;
108 }
109
110 int getClosestSegment(const RVector& point) const {
111 return data.getClosestSegment(point);
112 }
113
114 bool reverse() {
115 return data.reverse();
116 }
117
118 void setArrowHead(bool on) {
119 data.setArrowHead(on);
120 }
121
122 bool hasArrowHead() const {
123 return data.hasArrowHead();
124 }
125
126 void setSplineShaped(bool on) {
127 data.setSplineShaped(on);
128 }
129
130 bool isSplineShaped() const {
131 return data.isSplineShaped();
132 }
133
134 void clear() {
135 data.clear();
136 }
137
138 void normalize() {
139 data.normalize();
140 }
141
142 int countVertices() const {
143 return data.countVertices();
144 }
145
146 void appendVertex(const RVector& vertex, double bulge=0.0) {
147 Q_UNUSED(bulge);
148 data.appendVertex(vertex);
149 }
150
151 void prependVertex(const RVector& vertex, double bulge=0.0) {
152 Q_UNUSED(bulge);
153 data.prependVertex(vertex);
154 }
155
156 void insertVertex(int index, const RVector& vertex) {
157 data.insertVertex(index, vertex);
158 }
159
160 void insertVertexAt(const RVector& vertex) {
161 data.insertVertexAt(vertex);
162 }
163
164 RVector getVertexAt(int i) const {
165 return data.getVertexAt(i);
166 }
167
168 void setVertexAt(int i, const RVector& v) {
169 data.setVertexAt(i, v);
170 }
171
173 data.removeLastVertex();
174 }
175
176 void removeVertex(int index) {
177 data.removeVertex(index);
178 }
179
180 int countSegments() const {
181 return data.countSegments();
182 }
183
184 QSharedPointer<RShape> getSegmentAt(int i) const {
185 return data.getSegmentAt(i);
186 }
187
188 double getBulgeAt(int i) const {
189 return data.getBulgeAt(i);
190 }
191
192 void setBulgeAt(int i, double b) {
193 data.setBulgeAt(i, b);
194 }
195
196 double getDirection1() const {
197 return data.getDirection1();
198 }
199
200 double getDirection2() const {
201 return data.getDirection2();
202 }
203
205 return data.getEndPoint();
206 }
207
209 return data.getStartPoint();
210 }
211
212 void setClosed(bool on) {
213 data.setClosed(on);
214 }
215
216 bool isClosed() const {
217 return data.isClosed();
218 }
219
220 double getDimscale() const {
221 return data.getDimscale();
222 }
223
224 void setDimscale(double v) {
225 data.setDimscale(v);
226 }
227
228 double getDimasz(bool scale=true) const {
229 return data.getDimasz(scale);
230 }
231
232 void setDimasz(double v) {
233 data.setDimasz(v);
234 }
235
236 QList<QSharedPointer<RShape> > getExploded() const {
237 return data.getExploded();
238 }
239
241 return data.getDimLeaderBlockId();
242 }
244 data.setDimLeaderBlockId(id);
245 }
246
248 data.clearStyleOverrides();
249 }
250
251 virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
252
253protected:
254 virtual void print(QDebug dbg) const;
255
256protected:
258};
259
261Q_DECLARE_METATYPE(QSharedPointer<RLeaderEntity>)
262Q_DECLARE_METATYPE(QSharedPointer<RLeaderEntity>*)
263
264#endif
Q_DECLARE_METATYPE(RMath *)
int i
Copyright (c) 2011-2018 by Andrew Mustun.
Definition autostart.js:32
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Base class for all entity classes.
Definition REntity.h:63
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition REntity.cpp:236
static void init()
Definition REntity.cpp:89
virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
Sets the given property to the given value.
Definition REntity.cpp:338
virtual void exportEntity(RExporter &e, bool preview=false, bool forceSelected=false) const =0
Exports the entity to the given exporter.
virtual void print(QDebug dbg) const
Stream operator for QDebug.
Definition REntity.cpp:487
Abstract base class for exporters.
Definition RExporter.h:78
Leader entity data class.
Definition RLeaderData.h:42
Leader entity class.
Definition RLeaderEntity.h:38
static RPropertyTypeId PropertyDisplayedColor
Definition RLeaderEntity.h:53
static RPropertyTypeId PropertyVertexNX
Definition RLeaderEntity.h:59
RVector getVertexAt(int i) const
Definition RLeaderEntity.h:164
static RPropertyTypeId PropertySplineShaped
Definition RLeaderEntity.h:57
bool isSplineShaped() const
Definition RLeaderEntity.h:130
static RS::EntityType getRtti()
Definition RLeaderEntity.h:76
static RPropertyTypeId PropertyType
Definition RLeaderEntity.h:46
double getBulgeAt(int i) const
Definition RLeaderEntity.h:188
bool reverse()
Definition RLeaderEntity.h:114
static RPropertyTypeId PropertyDimscale
Definition RLeaderEntity.h:63
static RPropertyTypeId PropertyDimasz
Definition RLeaderEntity.h:64
int getClosestSegment(const RVector &point) const
Definition RLeaderEntity.h:110
RLeaderData data
Definition RLeaderEntity.h:257
void setBulgeAt(int i, double b)
Definition RLeaderEntity.h:192
double getDirection1() const
Definition RLeaderEntity.h:196
QSharedPointer< RShape > getSegmentAt(int i) const
Definition RLeaderEntity.h:184
QList< QSharedPointer< RShape > > getExploded() const
Definition RLeaderEntity.h:236
static RPropertyTypeId PropertyHandle
Definition RLeaderEntity.h:43
QSharedPointer< RLeaderEntity > cloneToLeaderEntity() const
Definition RLeaderEntity.h:88
void normalize()
Definition RLeaderEntity.h:138
static RPropertyTypeId PropertyVertexNZ
Definition RLeaderEntity.h:61
void setDimLeaderBlockId(RObject::Id id)
Definition RLeaderEntity.h:243
static RPropertyTypeId PropertyWorkingSet
Definition RLeaderEntity.h:45
static RPropertyTypeId PropertyColor
Definition RLeaderEntity.h:52
static RPropertyTypeId PropertyBlock
Definition RLeaderEntity.h:47
static RPropertyTypeId PropertyArrowHead
Definition RLeaderEntity.h:56
static RPropertyTypeId PropertyTotalLength
Definition RLeaderEntity.h:67
void setVertexAt(int i, const RVector &v)
Definition RLeaderEntity.h:168
void setDimasz(double v)
Definition RLeaderEntity.h:232
bool hasArrowHead() const
Definition RLeaderEntity.h:122
static RPropertyTypeId PropertyProtected
Definition RLeaderEntity.h:44
void prependVertex(const RVector &vertex, double bulge=0.0)
Definition RLeaderEntity.h:151
virtual const RLeaderData & getData() const
Definition RLeaderEntity.h:106
RVector getEndPoint() const
Definition RLeaderEntity.h:204
void clear()
Definition RLeaderEntity.h:134
void clearStyleOverrides()
Definition RLeaderEntity.h:247
void setData(RLeaderData &d)
Definition RLeaderEntity.h:102
void insertVertex(int index, const RVector &vertex)
Definition RLeaderEntity.h:156
double getDirection2() const
Definition RLeaderEntity.h:200
static RPropertyTypeId PropertyLinetype
Definition RLeaderEntity.h:49
void removeVertex(int index)
Definition RLeaderEntity.h:176
static RPropertyTypeId PropertyVertexNY
Definition RLeaderEntity.h:60
static RPropertyTypeId PropertyDimLeaderBlock
Definition RLeaderEntity.h:58
void removeLastVertex()
Definition RLeaderEntity.h:172
virtual QSharedPointer< RObject > clone() const
Definition RLeaderEntity.h:84
static QSet< RPropertyTypeId > getStaticPropertyTypeIds()
Definition RLeaderEntity.h:80
void setArrowHead(bool on)
Definition RLeaderEntity.h:118
static RPropertyTypeId PropertyLineweight
Definition RLeaderEntity.h:51
int countSegments() const
Definition RLeaderEntity.h:180
static RPropertyTypeId PropertyDrawOrder
Definition RLeaderEntity.h:54
void setSplineShaped(bool on)
Definition RLeaderEntity.h:126
void setClosed(bool on)
Definition RLeaderEntity.h:212
void setDimscale(double v)
Definition RLeaderEntity.h:224
double getDimasz(bool scale=true) const
Definition RLeaderEntity.h:228
double getDimscale() const
Definition RLeaderEntity.h:220
bool isClosed() const
Definition RLeaderEntity.h:216
static RPropertyTypeId PropertyCustom
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RLeaderEntity.h:42
static RPropertyTypeId PropertyLinetypeScale
Definition RLeaderEntity.h:50
int countVertices() const
Definition RLeaderEntity.h:142
static RPropertyTypeId PropertyLength
Definition RLeaderEntity.h:66
RVector getStartPoint() const
Definition RLeaderEntity.h:208
virtual RLeaderData & getData()
Definition RLeaderEntity.h:98
void appendVertex(const RVector &vertex, double bulge=0.0)
Definition RLeaderEntity.h:146
RObject::Id getDimLeaderBlockId() const
Definition RLeaderEntity.h:240
static RPropertyTypeId PropertyLayer
Definition RLeaderEntity.h:48
void insertVertexAt(const RVector &vertex)
Definition RLeaderEntity.h:160
int Id
Definition RObject.h:69
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RPropertyTypeId.h:54
static QSet< RPropertyTypeId > getPropertyTypeIds(RS::EntityType type, RPropertyAttributes::Option=RPropertyAttributes::NoOptions)
Gets all property type IDs that where registered for the given class.
Definition RPropertyTypeId.cpp:283
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityLeader
Leader.
Definition RS.h:275
Transaction implementation.
Definition RTransaction.h:73
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADENTITY_EXPORT
Definition entity_global.h:10
void scale(void e, void factor, void focusPoint)
Scales the given entity or shape by the given factor with the given focus point.
Definition simple_modify.js:15
#define NULL
Definition opennurbs_system.h:256