QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDimArcLengthData.h
Go to the documentation of this file.
1
20#ifndef RDIMARCLENGTHDATA_H
21#define RDIMARCLENGTHDATA_H
22
23#include "entity_global.h"
24
25#include "RDimAngularData.h"
26#include "RVector.h"
27
28class RDocument;
29class RLine;
30class RRefPoint;
31
40 friend class RDimArcLengthEntity;
41
42protected:
43 RDimArcLengthData(RDocument* document, const RDimArcLengthData& data);
44
45public:
47 RDimArcLengthData(const RDimensionData& dimData,
48 const RVector& center,
49 const RVector& extensionLine1End,
50 const RVector& extensionLine2End);
51
52 virtual RS::EntityType getType() const {
54 }
55 virtual bool isValid() const;
56 virtual bool isSane() const;
57
59 return center;
60 }
61
62 void setCenter(const RVector& p) {
63 center = p;
64 }
65
66 double getRadius() const;
67
69 extensionLine1End = p;
70 }
71
73 return extensionLine1End;
74 }
75
77 extensionLine2End = p;
78 }
79
81 return extensionLine2End;
82 }
83
84 void setDimArcPosition(const RVector& p) {
86 }
87
89 return getDefinitionPoint();
90 }
91
92 void setArcSymbolType(int t) {
93 arcSymbolType = t;
94 }
95
96 int getArcSymbolType() const {
97 return arcSymbolType;
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
109 virtual bool getAngles(double& ang1, double& ang2,
110 bool& reversed,
111 RVector& p1, RVector& p2) const;
112
113 virtual double getMeasuredValue() const;
114 virtual QString getAutoLabel() const;
115 virtual QString getMeasurement(bool resolveAutoMeasurement = true) const;
116
117 virtual void to2D() {
119 center.z = 0.0;
120 extensionLine1End.z = 0.0;
121 extensionLine2End.z = 0.0;
122 }
123
124private:
135};
136
140Q_DECLARE_METATYPE(QSharedPointer<RDimArcLengthData>)
141
142#endif
Q_DECLARE_METATYPE(RMath *)
Angular dimension entity data base class.
Definition RDimAngularData.h:39
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 RDimAngularData.cpp:69
virtual bool isSane() const
Definition RDimAngularData.cpp:51
virtual QString getAutoLabel() const
Definition RDimAngularData.cpp:134
virtual bool getAngles(double &ang1, double &ang2, bool &reversed, RVector &p1, RVector &p2) const =0
virtual double getMeasuredValue() const
Definition RDimAngularData.cpp:130
virtual bool isValid() const
Definition RDimAngularData.cpp:44
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const
Definition RDimAngularData.cpp:58
Arc length dimension entity data class.
Definition RDimArcLengthData.h:39
RVector getCenter() const
Definition RDimArcLengthData.h:58
int getArcSymbolType() const
Definition RDimArcLengthData.h:96
void setCenter(const RVector &p)
Definition RDimArcLengthData.h:62
RVector getExtensionLine1End() const
Definition RDimArcLengthData.h:72
RVector extensionLine2End
End point of second extension line.
Definition RDimArcLengthData.h:130
void setExtensionLine2End(const RVector &p)
Definition RDimArcLengthData.h:76
RVector center
Start point of first extension line.
Definition RDimArcLengthData.h:126
void setArcSymbolType(int t)
Definition RDimArcLengthData.h:92
void setExtensionLine1End(const RVector &p)
Definition RDimArcLengthData.h:68
RVector getDimArcPosition() const
Definition RDimArcLengthData.h:88
virtual void to2D()
Definition RDimArcLengthData.h:117
RVector extensionLine1End
End point of first extension line.
Definition RDimArcLengthData.h:128
void setDimArcPosition(const RVector &p)
Definition RDimArcLengthData.h:84
virtual RS::EntityType getType() const
Definition RDimArcLengthData.h:52
int arcSymbolType
Arc position is definitionPoint.
Definition RDimArcLengthData.h:134
RVector getExtensionLine2End() const
Definition RDimArcLengthData.h:80
Arc length dimension entity class.
Definition RDimArcLengthEntity.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 QString getMeasurement(bool resolveAutoMeasurement=true) const
Definition RDimensionData.cpp:857
virtual void setDefinitionPoint(const RVector &p)
Definition RDimensionData.h:161
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 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 void to2D()
Definition REntityData.cpp:342
Low-level mathematical representation of a line.
Definition RLine.h:41
Represents a reference point of an entity.
Definition RRefPoint.h:18
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityDimArcLength
Arc Length Dimension.
Definition RS.h:271
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