QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDimensionData.h
Go to the documentation of this file.
1
20#ifndef RDIMENSIONDATA_H
21#define RDIMENSIONDATA_H
22
23#include "entity_global.h"
24
25#include "RColor.h"
26#include "RDimStyleData.h"
27#include "REntityData.h"
28#include "RTextData.h"
29#include "RVector.h"
30
31class RDocument;
32class RLine;
33class RRefPoint;
35
45 friend class RDimensionEntity;
46
47protected:
48 RDimensionData(RDocument* document, const RDimensionData& data);
49
50public:
51 RDimensionData(RDocument* document = NULL);
52 RDimensionData(const RVector& definitionPoint,
53 const RVector& textPositionCenter,
54 RS::VAlign valign,
55 RS::HAlign halign,
56 RS::TextLineSpacingStyle lineSpacingStyle,
57 double lineSpacingFactor,
58 const QString& text,
59 const QString& fontName,
60 double textRotation);
61
62// ~RDimensionData() {
63// if (overrides!=NULL) {
64// delete overrides;
65// overrides = NULL;
66// }
67// }
68
69// RDimensionData(const RDimensionData& other) {
70// *this = other;
71// }
72
73// RDimensionData& operator =(const RDimensionData& other) {
74// //*this = other;
75
76// definitionPoint = other.definitionPoint;
77// textPositionCenter = other.textPositionCenter;
78// textPositionSide = other.textPositionSide;
79// valign = other.valign;
80// halign = other.halign;
81// lineSpacingStyle = other.lineSpacingStyle;
82// lineSpacingFactor = other.lineSpacingFactor;
83// text = other.text;
84// upperTolerance = other.upperTolerance;
85// lowerTolerance = other.lowerTolerance;
86// fontName = other.fontName;
87// dimBlockName = other.dimBlockName;
88// defaultAngle = other.defaultAngle;
89// textAngle = other.textAngle;
90// dimlunitOverride = other.dimlunitOverride;
91// arrow1Flipped = other.arrow1Flipped;
92// arrow2Flipped = other.arrow2Flipped;
93// extLineFix = other.extLineFix;
94// extLineFixLength = other.extLineFixLength;
95// dirty = other.dirty;
96// textData = other.textData;
97// boundingBox = other.boundingBox;
98// dimLineLength = other.dimLineLength;
99// arrow1Pos = other.arrow1Pos;
100// arrow2Pos = other.arrow2Pos;
101// autoTextPos = other.autoTextPos;
102// shapes = other.shapes;
103
104// overrides = NULL;
105// if (other.hasOverrides()) {
106// this->makeOverrides();
107// *this->overrides = *other.overrides;
108// }
109// }
110
111 virtual RS::EntityType getType() const {
112 return RS::EntityDimension;
113 }
114 virtual RBox getBoundingBox(bool ignoreEmpty=false) const;
115
116 void render() const;
117
118 void updateBoundingBox(const RBox& box) const {
119 boundingBox = box;
120 }
121 void updateTextPositionCenter(const RVector& p) const {
122 textPositionCenter = p;
123 }
124 void updateTextPositionSide(const RVector& p) const {
125 textPositionSide = p;
126 }
127 void updateTextData(const RTextData& d) const {
128 textData = d;
129 }
130 void updateShapes(const QList<QSharedPointer<RShape> >& s) const {
131 shapes = s;
132 }
133 void updateArrowPos1(const RVector& p) const {
134 arrow1Pos = p;
135 }
136 void updateArrowPos2(const RVector& p) const {
137 arrow2Pos = p;
138 }
139
141 overrides.clear();
142 update();
143 }
144
145 virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false, bool segment = false, QList<RObject::Id>* entityIds = NULL) const {
146 Q_UNUSED(queryBox)
147 Q_UNUSED(ignoreComplex)
148 Q_UNUSED(segment)
149 Q_UNUSED(entityIds)
150
151 render();
152
153 return shapes;
154 }
155
156 virtual RVector getPointOnEntity() const;
157
158 virtual bool isValid() const;
159 virtual bool isSane() const;
160
161 virtual void setDefinitionPoint(const RVector& p) {
162 definitionPoint = p;
163 update();
164 }
165
167 return definitionPoint;
168 }
169
170 void setText(const QString& t) {
171 text = t;
172 update();
173 }
174
175 QString getText() const {
176 return text;
177 }
178
179 void setUpperTolerance(const QString& t) {
180 upperTolerance = t;
181 update();
182 }
183
184 QString getUpperTolerance() const {
185 return upperTolerance;
186 }
187
188 void setLowerTolerance(const QString& t) {
189 lowerTolerance = t;
190 update();
191 }
192
193 QString getLowerTolerance() const {
194 return lowerTolerance;
195 }
196
197 void setTextPosition(const RVector& p) {
198 if (p.isSane()) {
199 textPositionCenter = p;
200 }
201 textPositionSide = RVector::invalid;
202 update();
203 }
204
205 //virtual RVector getTextPosition() const = 0;
206
207 virtual RVector getTextPosition() const {
208 if (textPositionSide.isValid()) {
209 return textPositionSide;
210 }
211 else {
212 return textPositionCenter;
213 }
214 }
215
216 void setFontName(const QString& fn) {
217 fontName = fn;
218 update();
219 }
220
221 QString getFontName() const {
222 return fontName;
223 }
224
225// void setTextColor(const RColor& tc) {
226// textColor = tc;
227// update();
228// }
229
230// RColor getTextColor() const {
231// return textColor;
232// }
233
234 void setDimBlockName(const QString& bn) {
235 dimBlockName = bn;
236 //update();
237 }
238
239 QString getDimBlockName() const {
240 return dimBlockName;
241 }
242
243 bool hasOverrides() const {
244 return overrides.isValid();
245 }
246
248 return overrides.hasOverride(key);
249 }
250
252 return overrides;
253 }
254
255// void makeOverrides() {
256// if (overrides==NULL) {
257// overrides = new RDimStyleData();
258// }
259// }
260
261 void setDimXVariant(RS::KnownVariable key, const QVariant& v);
262 void setDimXDouble(RS::KnownVariable key, double v);
263 void setDimXInt(RS::KnownVariable key, int v);
264 void setDimXBool(RS::KnownVariable key, bool v);
265 void setDimXColor(RS::KnownVariable key, const RColor& v);
266
267 QVariant getDimXVariant(RS::KnownVariable key) const;
268 QVariant getVariantOverride(RS::KnownVariable key) const;
269
270 double getDimXDouble(RS::KnownVariable key) const;
271 double getDoubleOverride(RS::KnownVariable key) const;
272
273 int getDimXInt(RS::KnownVariable key) const;
274 int getIntOverride(RS::KnownVariable key) const;
275
276 bool getDimXBool(RS::KnownVariable key) const;
277 bool getBoolOverride(RS::KnownVariable key) const;
278
279 RColor getDimXColor(RS::KnownVariable key) const;
280 RColor getColorOverride(RS::KnownVariable key) const;
281
282 double getDimlfac() const {
283 return getDimXDouble(RS::DIMLFAC);
284 }
285
286 void setDimlfac(double f) {
287 setDimXDouble(RS::DIMLFAC, f);
288 }
289
290 double getLinearFactor() const {
291 return getDimlfac();
292 }
293 void setLinearFactor(double f) {
294 setDimlfac(f);
295 }
296
297 double getDimscale() const {
298 return getDimXDouble(RS::DIMSCALE);
299 }
300
301 void setDimscale(double f) {
302 setDimXDouble(RS::DIMSCALE, f);
303 }
304
305 bool isArrow1Flipped() const {
306 return arrow1Flipped;
307 }
308 void setArrow1Flipped(bool on) {
309 arrow1Flipped = on;
310 }
311 bool isArrow2Flipped() const {
312 return arrow2Flipped;
313 }
314 void setArrow2Flipped(bool on) {
315 arrow2Flipped = on;
316 }
317
318 bool isExtLineFix() const {
319 return extLineFix;
320 }
321 void setExtLineFix(bool on) {
322 extLineFix = on;
323 }
324
325 double getExtLineFixLength() const {
326 return extLineFixLength;
327 }
328 void setExtLineFixLength(double v) {
329 extLineFixLength = v;
330 }
331
332 void adjustExtensionLineFixLength(RLine& extLine1, RLine& extLine2, bool addDimExe = true) const;
333
334 bool hasSpaceForArrows() const;
335
336 virtual double getDistanceTo(const RVector& point, bool limited = true, double range = 0.0, bool draft = false, double strictRange = RMAXDOUBLE) const;
337 virtual bool intersectsWith(const RShape& shape) const;
338
339 virtual QList<RRefPoint> getReferencePoints(RS::ProjectionRenderingHint hint = RS::RenderTop) const;
340
341 virtual bool clickReferencePoint(const RVector& referencePoint);
342 virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
343
344 virtual bool move(const RVector& offset);
345 virtual bool rotate(double rotation, const RVector& center);
346 virtual bool scale(const RVector& scaleFactors, const RVector& center);
347 virtual void scaleVisualProperties(double scaleFactor);
348 virtual bool mirror(const RLine& axis);
349
350 double getDimexo() const {
351 return getDimXDouble(RS::DIMEXO) * getDimscale();
352 }
353 void setDimexo(double v) {
354 setDimXDouble(RS::DIMEXO, v);
355 }
356 double getDimexe() const {
357 return getDimXDouble(RS::DIMEXE) * getDimscale();
358 }
359 void setDimexe(double v) {
360 setDimXDouble(RS::DIMEXE, v);
361 }
362 double getDimasz() const {
363 return getDimXDouble(RS::DIMASZ) * getDimscale();
364 }
365 void setDimasz(double v) {
366 setDimXDouble(RS::DIMASZ, v);
367 }
368 double getDimdli() const {
369 return getDimXDouble(RS::DIMDLI) * getDimscale();
370 }
371 void setDimdli(double v) {
372 setDimXDouble(RS::DIMDLI, v);
373 }
374 double getDimgap() const {
375 return getDimXDouble(RS::DIMGAP) * getDimscale();
376 }
377 void setDimgap(double v) {
378 setDimXDouble(RS::DIMGAP, v);
379 }
380 double getDimtxt() const {
381 return getDimXDouble(RS::DIMTXT) * getDimscale();
382 }
383 void setDimtxt(double t) {
384 setDimXDouble(RS::DIMTXT, t);
385 }
386 int getDimlunit() const {
387 return getDimXInt(RS::DIMLUNIT);
388 }
389 void setDimlunit(int l) {
390 setDimXInt(RS::DIMLUNIT, l);
391
392 //makeOverrides();
393 //overrides.setDimlunit(l);
394 //update();
395
396// dimlunitOverride = l;
397// update();
398 }
399 int getDimjust() const {
400 return getDimXInt(RS::DIMJUST);
401 }
405 int getDimtad() const {
406 return getDimXInt(RS::DIMTAD);
407 }
408 void setDimtad(int v) {
409 setDimXInt(RS::DIMTAD, v);
410 }
414 bool getDimtih() const {
415 return getDimXBool(RS::DIMTIH);
416 }
417 void setDimtih(bool v) {
418 setDimXBool(RS::DIMTIH, v);
419 }
420 double getDimtsz() const {
421 return getDimXDouble(RS::DIMTSZ) * getDimscale();
422 }
423 void setDimtsz(double t) {
424 setDimXDouble(RS::DIMTSZ, t);
425 }
426 int getDimzin() const {
427 return getDimXInt(RS::DIMZIN);
428 }
429 void setDimzin(int v) {
430 setDimXInt(RS::DIMZIN, v);
431 }
432 int getDimaunit() const {
433 return getDimXInt(RS::DIMAUNIT);
434 }
435 void setDimaunit(int v) {
436 setDimXInt(RS::DIMAUNIT, v);
437 }
438 int getDimadec() const {
439 return getDimXInt(RS::DIMADEC);
440 }
441 void setDimadec(int v) {
442 setDimXInt(RS::DIMADEC, v);
443 }
444 int getDimdec() const {
445 return getDimXInt(RS::DIMDEC);
446 }
447 void setDimdec(int v) {
448 setDimXInt(RS::DIMDEC, v);
449 }
450 int getDimazin() const {
451 return getDimXInt(RS::DIMAZIN);
452 }
453 void setDimazin(int v) {
454 setDimXInt(RS::DIMAZIN, v);
455 }
456 int getDimdsep() const {
457 return getDimXInt(RS::DIMDSEP);
458 }
459 void setDimdsep(int v) {
460 setDimXInt(RS::DIMDSEP, v);
461 }
463 return getDimXColor(RS::DIMCLRT);
464 }
465 void setDimclrt(const RColor& v) {
466 setDimXColor(RS::DIMCLRT, v);
467 }
468
469 bool useArchTick() const {
470 return getDimXDouble(RS::DIMTSZ) > 0.0;
471 }
472
473 int getDimblk() const {
474 return getDimXInt(RS::DIMBLK);
475 }
476
477 QString getDimblkName() const;
478
479
480
481// template<class T>
482// T getDimX(RS::KnownVariable key, T def) const {
483// T dimX = 0;
484
485// // get value from override:
486// if (hasOverride(key)) {
487// if (typeid(T) == typeid(double)) {
488// return getDoubleOverride(key);
489// }
490// else if (typeid(T) == typeid(int)) {
491// return getIntOverride(key);
492// }
493// else if (typeid(T) == typeid(RColor)) {
494// return getColorOverride(key);
495// }
496// }
497
498// if (document!=NULL) {
499// QSharedPointer<RDimStyle> dimStyle = document->queryDimStyleDirect();
500// if (!dimStyle.isNull()) {
501// // get value from dimension style:
502// if (typeid(T) == typeid(double)) {
503// dimX = dimStyle->getDouble(key);
504// }
505// if (typeid(T) == typeid(int)) {
506// dimX = dimStyle->getInt(key);
507// }
508// }
509// else {
510// // TODO: get value from document (should never happen):
511// Q_ASSERT(false);
522// }
523// }
524// else {
525// qWarning() << "RDimensionData::getDimexo: no document";
526// }
527
528// return dimX;
529// }
530
532 if (var==RS::DIMEXO) {
533 return true;
534 }
535
536 return false;
537 }
538
539 bool hasCustomTextPosition() const;
540 void setCustomTextPosition(bool on);
541
543 return lineSpacingStyle;
544 }
545
546 double getLineSpacingFactor() const {
547 return lineSpacingFactor;
548 }
549
550 double getTextRotation() const {
551 return textRotation;
552 }
553
554 void setTextRotation(double r) {
555 textRotation = r;
556 }
557
558// QList<QSharedPointer<RShape> > getDimensionLineShapes(
559// const RVector& p1, const RVector& p2,
560// bool arrow1, bool arrow2) const;
561// virtual QList<QSharedPointer<RShape> > getArrow(
562// const RVector& position, double direction) const;
563 RTextData& getTextData(bool noRender = false) const;
564 RTextData& initTextData() const;
565 //virtual void updateTextData() const;
566 virtual QString getMeasurement(bool resolveAutoMeasurement = true) const;
567 virtual double getMeasuredValue() const { return 0.0; }
568 virtual QString getAutoLabel() const { return ""; }
569 QString formatLabel(double distance) const;
570 QString formatAngleLabel(double textAngle) const;
571 //virtual void updateFromTextPosition() = 0;
572
573 virtual void update() const;
574
575 QSharedPointer<RBlockReferenceEntity> getDimensionBlockReference() const;
576 bool hasDimensionBlockReference() const;
577
578 virtual void to2D();
579
580protected:
603 QString text;
609 QString fontName;
611 //RColor textColor;
613 mutable QString dimBlockName;
614
615 mutable double defaultAngle;
618
619 // RDimStyleData for overrides:
621
622 //double linearFactor;
623 //double dimScaleOverride;
624 //double dimtxtOverride;
625 //int dimlunitOverride;
626
629
632
633 mutable bool dirty;
636
637 mutable double dimLineLength;
640
642 mutable bool autoTextPos;
643
644 mutable QList<QSharedPointer<RShape> > shapes;
645};
646
649Q_DECLARE_METATYPE(QSharedPointer<RDimensionData>)
650
651#endif
#define RDEFAULT_RBOX
Definition RBox.h:35
Q_DECLARE_METATYPE(RMath *)
#define RMAXDOUBLE
Definition RMath.h:66
Block reference entity.
Definition RBlockReferenceEntity.h:38
Represents a box e.g.
Definition RBox.h:46
Color.
Definition RColor.h:43
Copyright (c) 2011-2021 by Andrew Mustun.
Definition RDimStyleData.h:38
Base class for dimension entity data classes.
Definition RDimensionData.h:44
void updateBoundingBox(const RBox &box) const
Definition RDimensionData.h:118
RVector textPositionSide
Middle point of dimension text when automatically moved to the side for lack of space.
Definition RDimensionData.h:589
void updateShapes(const QList< QSharedPointer< RShape > > &s) const
Definition RDimensionData.h:130
void setArrow2Flipped(bool on)
Definition RDimensionData.h:314
double getLinearFactor() const
Definition RDimensionData.h:290
void setUpperTolerance(const QString &t)
Definition RDimensionData.h:179
RDimStyleData getOverrides() const
Definition RDimensionData.h:251
void setLowerTolerance(const QString &t)
Definition RDimensionData.h:188
void setLinearFactor(double f)
Definition RDimensionData.h:293
void setDimscale(double f)
Definition RDimensionData.h:301
RVector textPositionCenter
Middle point of dimension text.
Definition RDimensionData.h:584
RTextData textData
Definition RDimensionData.h:634
RBox boundingBox
Definition RDimensionData.h:635
bool arrow1Flipped
Definition RDimensionData.h:627
RDimStyleData overrides
Definition RDimensionData.h:620
double getDimlfac() const
Definition RDimensionData.h:282
void setDimtxt(double t)
Definition RDimensionData.h:383
void setDimaunit(int v)
Definition RDimensionData.h:435
double getDimtxt() const
Definition RDimensionData.h:380
void setDimBlockName(const QString &bn)
Definition RDimensionData.h:234
void setDimazin(int v)
Definition RDimensionData.h:453
RVector definitionPoint
Definition point.
Definition RDimensionData.h:582
bool extLineFix
Definition RDimensionData.h:630
void setDimdli(double v)
Definition RDimensionData.h:371
void setDimdec(int v)
Definition RDimensionData.h:447
virtual RVector getTextPosition() const
Definition RDimensionData.h:207
void setDimtsz(double t)
Definition RDimensionData.h:423
QString getUpperTolerance() const
Definition RDimensionData.h:184
virtual QString getAutoLabel() const
Definition RDimensionData.h:568
QString getLowerTolerance() const
Definition RDimensionData.h:193
void setDimadec(int v)
Definition RDimensionData.h:441
void setDimtih(bool v)
Definition RDimensionData.h:417
void updateTextData(const RTextData &d) const
Definition RDimensionData.h:127
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false, QList< RObject::Id > *entityIds=NULL) const
Definition RDimensionData.h:145
bool isArrow1Flipped() const
Definition RDimensionData.h:305
void setExtLineFix(bool on)
Definition RDimensionData.h:321
void updateTextPositionCenter(const RVector &p) const
Definition RDimensionData.h:121
QList< QSharedPointer< RShape > > shapes
Definition RDimensionData.h:644
void setDimlunit(int l)
Definition RDimensionData.h:389
void setArrow1Flipped(bool on)
Definition RDimensionData.h:308
bool isExtLineFix() const
Definition RDimensionData.h:318
void clearStyleOverrides()
Definition RDimensionData.h:140
void setDimtad(int v)
Definition RDimensionData.h:408
void setDimexe(double v)
Definition RDimensionData.h:359
double getDimasz() const
Definition RDimensionData.h:362
void setFontName(const QString &fn)
Definition RDimensionData.h:216
double getTextRotation() const
Definition RDimensionData.h:550
int getDimblk() const
Definition RDimensionData.h:473
int getDimdsep() const
Definition RDimensionData.h:456
bool arrow2Flipped
Definition RDimensionData.h:628
double extLineFixLength
Definition RDimensionData.h:631
RS::VAlign valign
Vertical alignment.
Definition RDimensionData.h:591
QString upperTolerance
Upper tolerance limit.
Definition RDimensionData.h:605
bool isArrow2Flipped() const
Definition RDimensionData.h:311
void setDimclrt(const RColor &v)
Definition RDimensionData.h:465
RS::TextLineSpacingStyle getLineSpacingStyle() const
Definition RDimensionData.h:542
void setDimexo(double v)
Definition RDimensionData.h:353
void setTextRotation(double r)
Definition RDimensionData.h:554
double getDimscale() const
Definition RDimensionData.h:297
QString getText() const
Definition RDimensionData.h:175
int getDimdec() const
Definition RDimensionData.h:444
double getDimexe() const
Definition RDimensionData.h:356
int getDimzin() const
Definition RDimensionData.h:426
int getDimaunit() const
Definition RDimensionData.h:432
void setTextPosition(const RVector &p)
Definition RDimensionData.h:197
int getDimazin() const
Definition RDimensionData.h:450
int getDimadec() const
Definition RDimensionData.h:438
virtual void setDefinitionPoint(const RVector &p)
Definition RDimensionData.h:161
bool autoTextPos
True if the textPosition should be automatically calculated.
Definition RDimensionData.h:642
double lineSpacingFactor
Line spacing factor.
Definition RDimensionData.h:597
double dimLineLength
Definition RDimensionData.h:637
double getDimtsz() const
Definition RDimensionData.h:420
QString text
Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank s...
Definition RDimensionData.h:603
int getDimtad() const
Definition RDimensionData.h:405
void updateArrowPos1(const RVector &p) const
Definition RDimensionData.h:133
virtual double getMeasuredValue() const
Definition RDimensionData.h:567
bool useArchTick() const
Definition RDimensionData.h:469
int getDimjust() const
Definition RDimensionData.h:399
RVector arrow2Pos
Definition RDimensionData.h:639
RS::TextLineSpacingStyle lineSpacingStyle
Line spacing style.
Definition RDimensionData.h:595
double getExtLineFixLength() const
Definition RDimensionData.h:325
void setExtLineFixLength(double v)
Definition RDimensionData.h:328
QString dimBlockName
Dimension text color.
Definition RDimensionData.h:613
double getDimexo() const
Definition RDimensionData.h:350
virtual RS::EntityType getType() const
Definition RDimensionData.h:111
RVector arrow1Pos
Definition RDimensionData.h:638
void setDimgap(double v)
Definition RDimensionData.h:377
RColor getDimclrt() const
Definition RDimensionData.h:462
double textRotation
Rotation angle of dimension text away from default orientation.
Definition RDimensionData.h:617
void updateArrowPos2(const RVector &p) const
Definition RDimensionData.h:136
QString getDimBlockName() const
Definition RDimensionData.h:239
bool getDimtih() const
Definition RDimensionData.h:414
int getDimlunit() const
Definition RDimensionData.h:386
void setDimasz(double v)
Definition RDimensionData.h:365
bool hasOverride(RS::KnownVariable key) const
Definition RDimensionData.h:247
bool hasOverrides() const
Definition RDimensionData.h:243
bool dirty
Definition RDimensionData.h:633
void setDimzin(int v)
Definition RDimensionData.h:429
RS::HAlign halign
Horizontal alignment.
Definition RDimensionData.h:593
void updateTextPositionSide(const RVector &p) const
Definition RDimensionData.h:124
QString fontName
Dimension font name.
Definition RDimensionData.h:609
QString getFontName() const
Definition RDimensionData.h:221
double defaultAngle
Definition RDimensionData.h:615
double getDimdli() const
Definition RDimensionData.h:368
double getDimgap() const
Definition RDimensionData.h:374
void setDimlfac(double f)
Definition RDimensionData.h:286
void setDimdsep(int v)
Definition RDimensionData.h:459
bool isDimXScaled(RS::KnownVariable var) const
Definition RDimensionData.h:531
QString lowerTolerance
Lower tolerance limit.
Definition RDimensionData.h:607
double getLineSpacingFactor() const
Definition RDimensionData.h:546
void setText(const QString &t)
Definition RDimensionData.h:170
RVector getDefinitionPoint() const
Definition RDimensionData.h:166
Base class for dimension entity classes.
Definition RDimensionEntity.h:38
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Base class for all entity data classes.
Definition REntityData.h:65
virtual void to2D()
Definition REntityData.cpp:342
virtual bool isSane() const
Definition REntityData.h:100
virtual bool move(const RVector &offset)
Moves this entity by the given offset.
Definition REntityData.cpp:675
virtual RVector getPointOnEntity() const
Definition REntityData.cpp:372
virtual double getDistanceTo(const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const
Definition REntityData.cpp:299
virtual bool moveReferencePoint(const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier)=0
Moves the given reference point to the given target point or does nothing if this entity has no refer...
virtual bool intersectsWith(const RShape &shape) const
Definition REntityData.cpp:582
virtual void scaleVisualProperties(double scaleFactor)
Definition REntityData.cpp:709
virtual bool isValid() const
Definition REntityData.h:97
virtual bool mirror(const RLine &axis)
Definition REntityData.cpp:715
virtual bool rotate(double rotation, const RVector &center=RDEFAULT_RVECTOR)
Definition REntityData.cpp:685
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const =0
virtual bool clickReferencePoint(const RVector &referencePoint)
Called when user clicks a reference point.
Definition REntityData.h:386
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition REntityData.cpp:313
virtual void update() const
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Definition REntityData.h:415
virtual bool scale(const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
Definition REntityData.cpp:695
Low-level mathematical representation of a line.
Definition RLine.h:41
Represents a reference point of an entity.
Definition RRefPoint.h:18
VAlign
Vertical alignments.
Definition RS.h:332
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityDimension
Any Dimension.
Definition RS.h:262
TextLineSpacingStyle
Line spacing style for texts.
Definition RS.h:363
HAlign
Horizontal alignments.
Definition RS.h:342
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition RS.h:293
@ RenderTop
Definition RS.h:294
KnownVariable
Well established document variables.
Definition RS.h:501
@ DIMEXE
Definition RS.h:546
@ DIMSCALE
Definition RS.h:563
@ DIMZIN
Controls display of leading / trailing zeros for linear dimensions.
Definition RS.h:590
@ DIMCLRT
Definition RS.h:539
@ DIMGAP
Distance between dimension text and dimension lines, negative for box.
Definition RS.h:550
@ DIMEXO
Definition RS.h:547
@ DIMAUNIT
Formatting of angular dimensions.
Definition RS.h:530
@ DIMDSEP
Decimal separator in dimensions.
Definition RS.h:545
@ DIMTIH
Definition RS.h:573
@ DIMTSZ
Archtick size or 0 for arrows.
Definition RS.h:582
@ DIMLFAC
Definition RS.h:554
@ DIMTAD
Vertical position of dimension label.
Definition RS.h:570
@ DIMADEC
Decimal places in angular dimensions.
Definition RS.h:517
@ DIMJUST
Vertical position of dimension label.
Definition RS.h:552
@ DIMAZIN
Controls display of leading / trailing zeros for angular dimensions.
Definition RS.h:532
@ DIMLUNIT
Formatting of linear dimensions.
Definition RS.h:557
@ DIMBLK
Definition RS.h:533
@ DIMTXT
Dimension text size.
Definition RS.h:586
@ DIMDEC
Decimal places in linear dimensions.
Definition RS.h:541
@ DIMDLI
Definition RS.h:543
@ DIMASZ
Definition RS.h:527
Interface for geometrical shape classes.
Definition RShape.h:72
Text entity data class.
Definition RTextData.h:38
Represents a 3d vector (x/y/z).
Definition RVector.h:47
static const RVector invalid
invalid vector
Definition RVector.h:335
bool isSane() const
Definition RVector.cpp:72
#define QCADENTITY_EXPORT
Definition entity_global.h:10
char s
Definition opennurbs_string.cpp:32
#define NULL
Definition opennurbs_system.h:256