QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDimOrdinateData.h
Go to the documentation of this file.
1
20#ifndef RDIMORDINATEDATA_H
21#define RDIMORDINATEDATA_H
22
23#include "entity_global.h"
24
25#include "RDimensionData.h"
26#include "RLine.h"
27#include "RVector.h"
28
29class RDocument;
30class RRefPoint;
31class RPolyline;
32
41 friend class RDimOrdinateEntity;
42
43protected:
44 RDimOrdinateData(RDocument* document, const RDimOrdinateData& data);
45
46public:
48 RDimOrdinateData(const RDimensionData& dimData,
49 const RVector& leaderEndPoint,
50 const RVector& definingPoint);
51
52 virtual RS::EntityType getType() const {
54 }
55 virtual bool isValid() const;
56 virtual bool isSane() const;
57
58 virtual RBox getBoundingBox(bool ignoreEmpty) const;
59
60 void setLeaderEndPoint(const RVector& p) {
61 leaderEndPoint = p;
62 update();
63 }
64
66 return leaderEndPoint;
67 }
68
69 void setOrigin(const RVector& p) {
71 }
72
74 return getDefinitionPoint();
75 }
76
77 void setDefiningPoint(const RVector& p) {
78 definingPoint = p;
79 update();
80 }
81
83 return definingPoint;
84 }
85
87 xType = true;
88 update();
89 }
90
92 xType = false;
93 update();
94 }
95
96 bool isMeasuringXAxis() const {
97 return xType;
98 }
99
100 virtual QList<RRefPoint> getReferencePoints(RS::ProjectionRenderingHint hint = RS::RenderTop) const;
101
102 virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
103
104 virtual bool move(const RVector& offset);
105 virtual bool rotate(double rotation, const RVector& center);
106 virtual bool scale(const RVector& scaleFactors, const RVector& center);
107 virtual bool mirror(const RLine& axis);
108 virtual bool stretch(const RPolyline& area, const RVector& offset);
109
110 //virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false, bool segment = false, QList<RObject::Id>* entityIds = NULL) const;
111 virtual double getMeasuredValue() const;
112 virtual QString getAutoLabel() const;
113
114 virtual void to2D() {
116 definingPoint.z = 0.0;
117 leaderEndPoint.z = 0.0;
118 }
119
120private:
123
126
128 bool xType;
129};
130
134Q_DECLARE_METATYPE(QSharedPointer<RDimOrdinateData>)
135
136#endif
Q_DECLARE_METATYPE(RMath *)
Represents a box e.g.
Definition RBox.h:46
Ordinate dimension entity data class.
Definition RDimOrdinateData.h:40
virtual void to2D()
Definition RDimOrdinateData.h:114
void setOrigin(const RVector &p)
Definition RDimOrdinateData.h:69
RVector leaderEndPoint
End point of leader.
Definition RDimOrdinateData.h:125
void setMeasuringXAxis()
Definition RDimOrdinateData.h:86
bool xType
True: measures x-value, false: y-value.
Definition RDimOrdinateData.h:128
RVector getOrigin() const
Definition RDimOrdinateData.h:73
RVector getDefiningPoint() const
Definition RDimOrdinateData.h:82
bool isMeasuringXAxis() const
Definition RDimOrdinateData.h:96
void setMeasuringYAxis()
Definition RDimOrdinateData.h:91
void setLeaderEndPoint(const RVector &p)
Definition RDimOrdinateData.h:60
void setDefiningPoint(const RVector &p)
Definition RDimOrdinateData.h:77
RVector getLeaderEndPoint() const
Definition RDimOrdinateData.h:65
virtual RS::EntityType getType() const
Definition RDimOrdinateData.h:52
RVector definingPoint
Defining point (feature location)
Definition RDimOrdinateData.h:122
Ordinate dimension entity class.
Definition RDimOrdinateEntity.h:38
Base class for dimension entity data classes.
Definition RDimensionData.h:44
virtual bool rotate(double rotation, const RVector &center)
Definition RDimensionData.cpp:567
virtual bool isSane() const
Definition RDimensionData.cpp:446
virtual void to2D()
Definition RDimensionData.cpp:1010
virtual QString getAutoLabel() const
Definition RDimensionData.h:568
virtual bool isValid() const
Definition RDimensionData.cpp:442
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition RDimensionData.cpp:116
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const
Definition RDimensionData.cpp:497
virtual void setDefinitionPoint(const RVector &p)
Definition RDimensionData.h:161
virtual double getMeasuredValue() const
Definition RDimensionData.h:567
virtual bool moveReferencePoint(const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
Moves the given reference point to the given target point or does nothing if this entity has no refer...
Definition RDimensionData.cpp:529
virtual bool move(const RVector &offset)
Moves this entity by the given offset.
Definition RDimensionData.cpp:557
virtual bool mirror(const RLine &axis)
Definition RDimensionData.cpp:609
virtual void update() const
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Definition RDimensionData.cpp:846
virtual bool scale(const RVector &scaleFactors, const RVector &center)
Definition RDimensionData.cpp:578
RVector getDefinitionPoint() const
Definition RDimensionData.h:166
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
virtual bool stretch(const RPolyline &area, const RVector &offset)
Stretches the end points of this entity that are inside area by offset.
Definition REntityData.cpp:740
Low-level mathematical representation of a line.
Definition RLine.h:41
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
Represents a reference point of an entity.
Definition RRefPoint.h:18
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityDimOrdinate
Ordinate Dimension.
Definition RS.h:272
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition RS.h:293
@ RenderTop
Definition RS.h:294
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADENTITY_EXPORT
Definition entity_global.h:10