QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDimLinearData.h
Go to the documentation of this file.
1
20#ifndef RDIMLINEARDATA_H
21#define RDIMLINEARDATA_H
22
23#include "entity_global.h"
24
25#include "RDimensionData.h"
26#include "RVector.h"
27
28class RDocument;
29class RLine;
30class RPolyline;
31
40 friend class RDimLinearEntity;
41
42protected:
43 RDimLinearData(RDocument* document, const RDimLinearData& data);
44
45public:
46 RDimLinearData(RDocument* document = NULL);
47 RDimLinearData(const RDimensionData& dimData,
48 const RVector& extensionPoint1,
49 const RVector& extensionPoint2);
50
51 virtual RS::EntityType getType() const {
53 }
54 virtual bool isValid() const;
55 virtual bool isSane() const;
56
57 virtual void setDefinitionPoint(const RVector& p) {
58 definitionPoint = p;
59 recomputeDefinitionPoint(extensionPoint1, extensionPoint2, extensionPoint1, extensionPoint2);
60 update();
61 }
62
63 void setExtensionPoint1(const RVector& p) {
64 extensionPoint1 = p;
65 }
66
68 return extensionPoint1;
69 }
70
71 void setExtensionPoint2(const RVector& p) {
72 extensionPoint2 = p;
73 }
74
76 return extensionPoint2;
77 }
78
80 const RVector& oldExtPoint1, const RVector& oldExtPoint2,
81 const RVector& newExtPoint1, const RVector& newExtPoint2) {
82 Q_UNUSED(oldExtPoint1)
83 Q_UNUSED(oldExtPoint2)
84 Q_UNUSED(newExtPoint1)
85 Q_UNUSED(newExtPoint2)
86 }
87
88// virtual void recomputeDefinitionPoint(const RVector& oldDimLineGrip, const RVector& newDimLineGrip) {
89// Q_UNUSED(oldDimLineGrip)
90// Q_UNUSED(newDimLineGrip)
91// }
92
93 virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
94
95 virtual bool move(const RVector& offset);
96 virtual bool rotate(double rotation, const RVector& center);
97 virtual bool scale(const RVector& scaleFactors, const RVector& center);
98 virtual bool mirror(const RLine& axis);
99 virtual bool stretch(const RPolyline& area, const RVector& offset);
100
101 //virtual void updateTextData() const;
102
103 virtual void to2D() {
105 extensionPoint1.z = 0.0;
106 extensionPoint2.z = 0.0;
107 }
108
109protected:
114};
115
118Q_DECLARE_METATYPE(QSharedPointer<RDimLinearData>)
119
120#endif
Q_DECLARE_METATYPE(RMath *)
Linear dimension entity data base class.
Definition RDimLinearData.h:39
RVector extensionPoint2
Definition point.
Definition RDimLinearData.h:113
virtual void recomputeDefinitionPoint(const RVector &oldExtPoint1, const RVector &oldExtPoint2, const RVector &newExtPoint1, const RVector &newExtPoint2)
Definition RDimLinearData.h:79
RVector extensionPoint1
Definition point.
Definition RDimLinearData.h:111
void setExtensionPoint2(const RVector &p)
Definition RDimLinearData.h:71
void setExtensionPoint1(const RVector &p)
Definition RDimLinearData.h:63
RVector getExtensionPoint1() const
Definition RDimLinearData.h:67
virtual RS::EntityType getType() const
Definition RDimLinearData.h:51
virtual void setDefinitionPoint(const RVector &p)
Definition RDimLinearData.h:57
RVector getExtensionPoint2() const
Definition RDimLinearData.h:75
virtual void to2D()
Definition RDimLinearData.h:103
Linear dimension entity base class.
Definition RDimLinearEntity.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 bool isValid() const
Definition RDimensionData.cpp:442
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
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
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityDimLinear
Any linear dimension.
Definition RS.h:263
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADENTITY_EXPORT
Definition entity_global.h:10
#define NULL
Definition opennurbs_system.h:256