QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDimAngular2LData.h
Go to the documentation of this file.
1
20#ifndef RDIMANGULAR2LDATA_H
21#define RDIMANGULAR2LDATA_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 RDimAngular2LEntity;
41
42protected:
43 RDimAngular2LData(RDocument* document, const RDimAngular2LData& data);
44
45public:
47 RDimAngular2LData(const RDimensionData& dimData,
48 const RVector& extensionLine1Start,
49 const RVector& extensionLine1End,
50 const RVector& extensionLine2Start,
51 const RVector& dimArcPosition);
52
53 virtual RS::EntityType getType() const {
55 }
56 virtual bool isValid() const;
57 virtual bool isSane() const;
58
60 extensionLine1Start = p;
61 update();
62 }
63
65 return extensionLine1Start;
66 }
67
69 extensionLine1End = p;
70 update();
71 }
72
74 return extensionLine1End;
75 }
76
78 extensionLine2Start = p;
79 update();
80 }
81
83 return extensionLine2Start;
84 }
85
88 }
89
91 return getDefinitionPoint();
92 }
93
94 void setDimArcPosition(const RVector& p) {
95 dimArcPosition = p;
96 update();
97 }
98
100 return dimArcPosition;
101 }
102
103 virtual QList<RRefPoint> getReferencePoints(RS::ProjectionRenderingHint hint = RS::RenderTop) const;
104
105 virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
106
107 virtual bool move(const RVector& offset);
108 virtual bool rotate(double rotation, const RVector& center);
109 virtual bool scale(const RVector& scaleFactors, const RVector& center);
110 virtual bool mirror(const RLine& axis);
111
112 bool getAngles(double& ang1, double& ang2,
113 bool& reversed,
114 RVector& p1, RVector& p2) const;
115 RVector getCenter() const;
116
117 virtual void to2D() {
119 extensionLine1Start.z = 0.0;
120 extensionLine1End.z = 0.0;
121 extensionLine2Start.z = 0.0;
122 dimArcPosition.z = 0.0;
123 }
124
125private:
134};
135
139Q_DECLARE_METATYPE(QSharedPointer<RDimAngular2LData>)
140
141#endif
Q_DECLARE_METATYPE(RMath *)
Angular dimension entity from 2 lines data class.
Definition RDimAngular2LData.h:39
RVector extensionLine1End
End point of first extension line.
Definition RDimAngular2LData.h:129
RVector extensionLine1Start
Start point of first extension line.
Definition RDimAngular2LData.h:127
void setExtensionLine1Start(const RVector &p)
Definition RDimAngular2LData.h:59
RVector getExtensionLine2Start() const
Definition RDimAngular2LData.h:82
RVector extensionLine2Start
Start point of second extension line.
Definition RDimAngular2LData.h:131
void setDimArcPosition(const RVector &p)
Definition RDimAngular2LData.h:94
RVector getExtensionLine1End() const
Definition RDimAngular2LData.h:73
virtual void to2D()
Definition RDimAngular2LData.h:117
void setExtensionLine2End(const RVector &p)
Definition RDimAngular2LData.h:86
void setExtensionLine1End(const RVector &p)
Definition RDimAngular2LData.h:68
RVector getExtensionLine2End() const
Definition RDimAngular2LData.h:90
RVector getDimArcPosition() const
Definition RDimAngular2LData.h:99
virtual RS::EntityType getType() const
Definition RDimAngular2LData.h:53
RVector dimArcPosition
Arc position.
Definition RDimAngular2LData.h:133
void setExtensionLine2Start(const RVector &p)
Definition RDimAngular2LData.h:77
RVector getExtensionLine1Start() const
Definition RDimAngular2LData.h:64
Angular dimension entity from 2 lines class.
Definition RDimAngular2LEntity.h:38
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 bool getAngles(double &ang1, double &ang2, bool &reversed, RVector &p1, RVector &p2) const =0
virtual RVector getCenter() const =0
virtual bool isValid() const
Definition RDimAngularData.cpp:44
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const
Definition RDimAngularData.cpp:58
Base class for dimension entity data classes.
Definition RDimensionData.h:44
virtual bool rotate(double rotation, const RVector &center)
Definition RDimensionData.cpp:567
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 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 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
@ EntityDimAngular2L
Angular Dimension from 2 lines.
Definition RS.h:269
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