QCAD
Open Source 2D CAD
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 "RDocument.h"
26 #include "RDimLinearData.h"
27 #include "RVector.h"
28 
37  friend class RDimOrdinateEntity;
38 
39 protected:
41 
42 public:
44  RDimOrdinateData(const RDimensionData& dimData,
45  const RVector& leaderEndPoint,
46  const RVector& definingPoint);
47 
48  virtual RS::EntityType getType() const {
49  return RS::EntityDimOrdinate;
50  }
51  virtual bool isValid() const;
52  virtual bool isSane() const;
53 
54  virtual RBox getBoundingBox(bool ignoreEmpty) const;
55 
56  void setLeaderEndPoint(const RVector& p) {
57  leaderEndPoint = p;
58  }
59 
61  return leaderEndPoint;
62  }
63 
64  void setOrigin(const RVector& p) {
66  }
67 
68  RVector getOrigin() const {
69  return getDefinitionPoint();
70  }
71 
72  void setDefiningPoint(const RVector& p) {
73  definingPoint = p;
74  }
75 
77  return definingPoint;
78  }
79 
81  xType = true;
82  }
83 
85  xType = false;
86  }
87 
88  bool isMeasuringXAxis() const {
89  return xType;
90  }
91 
92  virtual QList<RRefPoint> getReferencePoints(RS::ProjectionRenderingHint hint = RS::RenderTop) const;
93 
94  virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
95 
96  virtual bool move(const RVector& offset);
97  virtual bool rotate(double rotation, const RVector& center);
98  virtual bool scale(const RVector& scaleFactors, const RVector& center);
99  virtual bool mirror(const RLine& axis);
100  virtual bool stretch(const RPolyline& area, const RVector& offset);
101 
102  virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false, bool segment = false) const;
103  virtual double getMeasuredValue() const;
104  virtual QString getAutoLabel() const;
105 
106 private:
109 
112 
114  bool xType;
115 };
116 
120 Q_DECLARE_METATYPE(QSharedPointer<RDimOrdinateData>)
121 
122 #endif
RDimOrdinateData::getLeaderEndPoint
RVector getLeaderEndPoint() const
Definition: RDimOrdinateData.h:60
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
RDimOrdinateData::getDefiningPoint
RVector getDefiningPoint() const
Definition: RDimOrdinateData.h:76
RDimLinearData.h
RDimensionData::getDefinitionPoint
RVector getDefinitionPoint() const
Definition: RDimensionData.h:71
RDimOrdinateEntity
Ordinate dimension entity class.
Definition: RDimOrdinateEntity.h:38
RVector
Represents a 3d vector (x/y/z).
Definition: RVector.h:46
RDimOrdinateData::leaderEndPoint
RVector leaderEndPoint
End point of leader.
Definition: RDimOrdinateData.h:111
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
RDimensionData::setDefinitionPoint
virtual void setDefinitionPoint(const RVector &p)
Definition: RDimensionData.h:66
RObject::document
RDocument * document
Definition: RObject.h:341
RDimensionData::isSane
virtual bool isSane() const
Definition: RDimensionData.cpp:129
RDimOrdinateEntity::data
RDimOrdinateData data
Definition: RDimOrdinateEntity.h:153
QCADENTITY_EXPORT
#define QCADENTITY_EXPORT
Definition: entity_global.h:10
RLine
Low-level mathematical representation of a line.
Definition: RLine.h:41
RDimOrdinateData::getType
virtual RS::EntityType getType() const
Definition: RDimOrdinateData.h:48
RDimensionData::scale
virtual bool scale(const RVector &scaleFactors, const RVector &center)
Definition: RDimensionData.cpp:261
RDimOrdinateData::isMeasuringXAxis
bool isMeasuringXAxis() const
Definition: RDimOrdinateData.h:88
RDocument.h
RDimOrdinateData::definingPoint
RVector definingPoint
Defining point (feature location)
Definition: RDimOrdinateData.h:108
RDimensionData::rotate
virtual bool rotate(double rotation, const RVector &center)
Definition: RDimensionData.cpp:250
RVector.h
RDimOrdinateData::setLeaderEndPoint
void setLeaderEndPoint(const RVector &p)
Definition: RDimOrdinateData.h:56
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(RMath *)
RDimensionData::getBoundingBox
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition: RDimensionData.cpp:105
RDimOrdinateData
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDimOrdinateData.h:36
RDimOrdinateData::xType
bool xType
True: measures x-value, false: y-value.
Definition: RDimOrdinateData.h:114
RDimOrdinateData::setMeasuringXAxis
void setMeasuringXAxis()
Definition: RDimOrdinateData.h:80
RDimOrdinateData::setDefiningPoint
void setDefiningPoint(const RVector &p)
Definition: RDimOrdinateData.h:72
RDimOrdinateData::setMeasuringYAxis
void setMeasuringYAxis()
Definition: RDimOrdinateData.h:84
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
RDimensionData::getReferencePoints
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const
Definition: RDimensionData.cpp:180
RDimOrdinateData::setOrigin
void setOrigin(const RVector &p)
Definition: RDimOrdinateData.h:64
RDimensionData::getMeasuredValue
virtual double getMeasuredValue() const
Definition: RDimensionData.h:226
RDimensionData::getAutoLabel
virtual QString getAutoLabel() const
Definition: RDimensionData.h:227
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
RDimOrdinateData::getOrigin
RVector getOrigin() const
Definition: RDimOrdinateData.h:68
RDimensionData
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RDimensionData.h:38
RS::ProjectionRenderingHint
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition: RS.h:185
RDEFAULT_RBOX
#define RDEFAULT_RBOX
Definition: RBox.h:32
RS::EntityDimOrdinate
@ EntityDimOrdinate
Ordinate Dimension.
Definition: RS.h:168
REntityData::getShapes
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false) const
Definition: REntityData.h:113
RS::RenderTop
@ RenderTop
Definition: RS.h:186
RBox
Represents a box e.g.
Definition: RBox.h:43
entity_global.h
RPolyline
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition: RPolyline.h:49