QCAD
Open Source 2D CAD
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 "RDocument.h"
26 #include "RDimensionData.h"
27 #include "RVector.h"
28 
37  friend class RDimLinearEntity;
38 
39 protected:
41 
42 public:
44  RDimLinearData(const RDimensionData& dimData,
45  const RVector& extensionPoint1,
46  const RVector& extensionPoint2);
47 
48  virtual RS::EntityType getType() const {
49  return RS::EntityDimLinear;
50  }
51  virtual bool isValid() const;
52  virtual bool isSane() const;
53 
54  virtual void setDefinitionPoint(const RVector& p) {
55  definitionPoint = p;
56  recomputeDefinitionPoint(extensionPoint1, extensionPoint2, extensionPoint1, extensionPoint2);
57  update();
58  }
59 
60  void setExtensionPoint1(const RVector& p) {
61  extensionPoint1 = p;
62  }
63 
65  return extensionPoint1;
66  }
67 
68  void setExtensionPoint2(const RVector& p) {
69  extensionPoint2 = p;
70  }
71 
73  return extensionPoint2;
74  }
75 
77  const RVector& oldExtPoint1, const RVector& oldExtPoint2,
78  const RVector& newExtPoint1, const RVector& newExtPoint2) {
79  Q_UNUSED(oldExtPoint1)
80  Q_UNUSED(oldExtPoint2)
81  Q_UNUSED(newExtPoint1)
82  Q_UNUSED(newExtPoint2)
83  }
84 
85 // virtual void recomputeDefinitionPoint(const RVector& oldDimLineGrip, const RVector& newDimLineGrip) {
86 // Q_UNUSED(oldDimLineGrip)
87 // Q_UNUSED(newDimLineGrip)
88 // }
89 
90  virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
91 
92  virtual bool move(const RVector& offset);
93  virtual bool rotate(double rotation, const RVector& center);
94  virtual bool scale(const RVector& scaleFactors, const RVector& center);
95  virtual bool mirror(const RLine& axis);
96  virtual bool stretch(const RPolyline& area, const RVector& offset);
97 
98  virtual void updateTextData() const;
99 
100 protected:
105 };
106 
109 Q_DECLARE_METATYPE(QSharedPointer<RDimLinearData>)
110 
111 #endif
RDimensionData::move
virtual bool move(const RVector &offset)
Moves this entity by the given offset.
Definition: RDimensionData.cpp:240
REntityData::stretch
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:636
RDimensionData.h
RDimLinearData::getExtensionPoint2
RVector getExtensionPoint2() const
Definition: RDimLinearData.h:72
RVector
Represents a 3d vector (x/y/z).
Definition: RVector.h:46
RS::EntityType
EntityType
Entity types used for property handling / filtering.
Definition: RS.h:125
RDimensionData::mirror
virtual bool mirror(const RLine &axis)
Definition: RDimensionData.cpp:287
RDimLinearData::extensionPoint1
RVector extensionPoint1
Definition point.
Definition: RDimLinearData.h:102
RObject::document
RDocument * document
Definition: RObject.h:341
RDimensionData::isSane
virtual bool isSane() const
Definition: RDimensionData.cpp:129
QCADENTITY_EXPORT
#define QCADENTITY_EXPORT
Definition: entity_global.h:10
RLine
Low-level mathematical representation of a line.
Definition: RLine.h:41
RDimensionData::updateTextData
virtual void updateTextData() const
Definition: RDimensionData.cpp:680
RDimensionData::scale
virtual bool scale(const RVector &scaleFactors, const RVector &center)
Definition: RDimensionData.cpp:261
RDimLinearData::recomputeDefinitionPoint
virtual void recomputeDefinitionPoint(const RVector &oldExtPoint1, const RVector &oldExtPoint2, const RVector &newExtPoint1, const RVector &newExtPoint2)
Definition: RDimLinearData.h:76
RDimensionData::update
virtual void update() const
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Definition: RDimensionData.cpp:589
RDocument.h
RDimensionData::rotate
virtual bool rotate(double rotation, const RVector &center)
Definition: RDimensionData.cpp:250
RS::EntityDimLinear
@ EntityDimLinear
Any linear dimension.
Definition: RS.h:159
RVector.h
RDimLinearData::setDefinitionPoint
virtual void setDefinitionPoint(const RVector &p)
Definition: RDimLinearData.h:54
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(RMath *)
RDimLinearData::setExtensionPoint1
void setExtensionPoint1(const RVector &p)
Definition: RDimLinearData.h:60
RDimLinearData::getType
virtual RS::EntityType getType() const
Definition: RDimLinearData.h:48
RDimensionData::isValid
virtual bool isValid() const
Definition: RDimensionData.cpp:125
RDocument
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition: RDocument.h:72
RDimLinearData
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDimLinearData.h:36
RDimLinearData::extensionPoint2
RVector extensionPoint2
Definition point.
Definition: RDimLinearData.h:104
RDimensionData::moveReferencePoint
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:212
RDimensionData
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDimensionData.h:38
RDimLinearData::getExtensionPoint1
RVector getExtensionPoint1() const
Definition: RDimLinearData.h:64
entity_global.h
RDimLinearData::setExtensionPoint2
void setExtensionPoint2(const RVector &p)
Definition: RDimLinearData.h:68
RDimLinearEntity
Linear dimension entity base class.
Definition: RDimLinearEntity.h:38
RPolyline
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition: RPolyline.h:49