QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RDimensionEntity.h
Go to the documentation of this file.
1 
20 #ifndef RDIMENSIONENTITY_H
21 #define RDIMENSIONENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "RDimensionData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39 
40  Q_DECLARE_TR_FUNCTIONS(RDimensionEntity)
41 
42 public:
53 
63 
67  //static RPropertyTypeId PropertyHeight;
68  //static RPropertyTypeId PropertyAngle;
69  //static RPropertyTypeId PropertyLineSpacingFactor;
70  //static RPropertyTypeId PropertyHAlign;
71  //static RPropertyTypeId PropertyVAlign;
72 
75 
76 public:
78  virtual ~RDimensionEntity();
79 
80  static void init();
81 
82  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
84  }
85 
86  virtual RS::EntityType getType() const {
87  return RS::EntityDimension;
88  }
89 
90  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
91  RTransaction* transaction=NULL);
92  QPair<QVariant, RPropertyAttributes> getProperty(
93  RPropertyTypeId& propertyTypeId,
94  bool humanReadable = false, bool noAttributes = false);
95 
96  virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
97 
98  virtual RDimensionData& getData() = 0;
99 
100  virtual const RDimensionData& getData() const = 0;
101 
102  virtual bool isValid() const {
103  return getData().isValid();
104  }
105 
106  void setDefinitionPoint(const RVector& p) {
107  getData().setDefinitionPoint(p);
108  }
109 
111  return getData().getDefinitionPoint();
112  }
113 
114  void setText(const QString& t) {
115  getData().setText(t);
116  }
117 
118  QString getText() const {
119  return getData().getText();
120  }
121 
122  QString getMeasurement(bool resolveAutoMeasurement = true) const {
123  return getData().getMeasurement(resolveAutoMeasurement);
124  }
125 
127  return getData().getTextData();
128  }
129 
130  void setTextPosition(const RVector& p) {
131  getData().setTextPosition(p);
132  }
133 
135  return getData().getTextPosition();
136  }
137 
138  void setFontName(const QString& fn) {
139  getData().setFontName(fn);
140  }
141 
142  QString getFontName() const {
143  return getData().getFontName();
144  }
145 
146  bool hasCustomTextPosition() const {
147  return getData().hasCustomTextPosition();
148  }
149 
150  void setCustomTextPosition(bool on) {
151  getData().setCustomTextPosition(on);
152  }
153 
155  return getData().getLineSpacingStyle();
156  }
157 
158  double getLineSpacingFactor() const {
159  return getData().getLineSpacingFactor();
160  }
161 
162  double getTextAngle() const {
163  return getData().getTextAngle();
164  }
165 
166  double getLinearFactor() const {
167  return getData().getLinearFactor();
168  }
169 
170  void setLinearFactor(double f) {
171  getData().setLinearFactor(f);
172  }
173 
174 protected:
175  virtual void print(QDebug dbg) const;
176 };
177 
179 Q_DECLARE_METATYPE(QSharedPointer<RDimensionEntity>)
180 Q_DECLARE_METATYPE(QSharedPointer<RDimensionEntity>*)
181 
182 #endif