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:
52 
62 
66  //static RPropertyTypeId PropertyHeight;
67  //static RPropertyTypeId PropertyAngle;
68  //static RPropertyTypeId PropertyLineSpacingFactor;
69  //static RPropertyTypeId PropertyHAlign;
70  //static RPropertyTypeId PropertyVAlign;
71 
74 
75 public:
77  virtual ~RDimensionEntity();
78 
79  static void init();
80 
81  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
83  }
84 
85  virtual RS::EntityType getType() const {
86  return RS::EntityDimension;
87  }
88 
89  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
90  RTransaction* transaction=NULL);
91  QPair<QVariant, RPropertyAttributes> getProperty(
92  RPropertyTypeId& propertyTypeId,
93  bool humanReadable = false, bool noAttributes = false);
94 
95  virtual void exportEntity(RExporter& e, bool preview=false) const;
96 
97  virtual RDimensionData& getData() = 0;
98 
99  virtual const RDimensionData& getData() const = 0;
100 
101  virtual bool isValid() const {
102  return getData().isValid();
103  }
104 
105  void setDefinitionPoint(const RVector& p) {
106  getData().setDefinitionPoint(p);
107  }
108 
110  return getData().getDefinitionPoint();
111  }
112 
113  void setText(const QString& t) {
114  getData().setText(t);
115  }
116 
117  QString getText() const {
118  return getData().getText();
119  }
120 
121  QString getMeasurement(bool resolveAutoMeasurement = true) const {
122  return getData().getMeasurement(resolveAutoMeasurement);
123  }
124 
126  return getData().getTextData();
127  }
128 
129  void setTextPosition(const RVector& p) {
130  getData().setTextPosition(p);
131  }
132 
134  return getData().getTextPosition();
135  }
136 
137  void setFontName(const QString& fn) {
138  getData().setFontName(fn);
139  }
140 
141  QString getFontName() const {
142  return getData().getFontName();
143  }
144 
145  bool hasCustomTextPosition() const {
146  return getData().hasCustomTextPosition();
147  }
148 
149  void setCustomTextPosition(bool on) {
150  getData().setCustomTextPosition(on);
151  }
152 
154  return getData().getLineSpacingStyle();
155  }
156 
157  double getLineSpacingFactor() const {
158  return getData().getLineSpacingFactor();
159  }
160 
161  double getTextAngle() const {
162  return getData().getTextAngle();
163  }
164 
165  double getLinearFactor() const {
166  return getData().getLinearFactor();
167  }
168 
169  void setLinearFactor(double f) {
170  getData().setLinearFactor(f);
171  }
172 
173 protected:
174  virtual void print(QDebug dbg) const;
175 };
176 
178 Q_DECLARE_METATYPE(QSharedPointer<RDimensionEntity>)
179 Q_DECLARE_METATYPE(QSharedPointer<RDimensionEntity>*)
180 
181 #endif