QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
REllipseEntity.h
Go to the documentation of this file.
1 
20 #ifndef RELLIPSEENTITY_H
21 #define RELLIPSEENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "REllipseData.h"
27 #include "RLineweight.h"
28 
29 class RDocument;
30 class RExporter;
31 
40 
41 public:
52 
65 
72 
74 
75 public:
76  REllipseEntity(RDocument* document, const REllipseData& data,
77  RObject::Id objectId = RObject::INVALID_ID);
78  virtual ~REllipseEntity();
79 
80  static void init();
81 
82  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
84  }
85 
86  virtual REllipseEntity* clone() const {
87  return new REllipseEntity(*this);
88  }
89 
90  virtual RS::EntityType getType() const {
91  return RS::EntityEllipse;
92  }
93 
94  void setShape(const REllipse& e);
95 
96  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
97  RTransaction* transaction=NULL);
98  QPair<QVariant, RPropertyAttributes> getProperty(
99  RPropertyTypeId& propertyTypeId,
100  bool humanReadable = false, bool noAttributes = false);
101 
102  virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
103 
104  virtual REllipseData& getData() {
105  return data;
106  }
107 
108  virtual const REllipseData& getData() const {
109  return data;
110  }
111 
112  RVector getCenter() const {
113  return data.getCenter();
114  }
115 
117  return data.getMajorPoint();
118  }
119 
120  double getMajorRadius() const {
121  return data.getMajorRadius();
122  }
123 
124  double getMinorRadius() const {
125  return data.getMinorRadius();
126  }
127 
128  double getRatio() const {
129  return data.getRatio();
130  }
131 
132  double getAngle() const {
133  return data.getAngle();
134  }
135 
136  void setRatio(double ratio) {
137  data.setRatio(ratio);
138  }
139 
140  double getStartAngle() const {
141  return data.getStartAngle();
142  }
143 
144  double getStartParam() const {
145  return data.getStartParam();
146  }
147 
148  void setStartParam(double param) {
149  data.setStartParam(param);
150  }
151 
152  double getEndAngle() const {
153  return data.getEndAngle();
154  }
155 
156  double getEndParam() const {
157  return data.getEndParam();
158  }
159 
160  void setEndParam(double param) {
161  data.setEndParam(param);
162  }
163 
164  double getAngleLength() const {
165  return data.getAngleLength();
166  }
167 
168  bool isReversed() const {
169  return data.isReversed();
170  }
171 
172  void setReversed(bool reversed) {
173  data.setReversed(reversed);
174  }
175 
177  return data.getStartPoint();
178  }
179 
181  return data.getEndPoint();
182  }
183 
184  bool isFullEllipse() const {
185  return data.isFullEllipse();
186  }
187 
188  virtual bool reverse() {
189  return data.reverse();
190  }
191 
192  double getParamTo(const RVector& pos) {
193  return data.getParamTo(pos);
194  }
195 
196  RS::Ending getTrimEnd(const RVector& coord,
197  const RVector& trimPoint) {
198  return data.getTrimEnd(coord, trimPoint);
199  }
200 
201  void trimStartPoint(const RVector& p) {
202  return data.trimStartPoint(p);
203  }
204 
205  void trimEndPoint(const RVector& p) {
206  return data.trimEndPoint(p);
207  }
208 
209  double getLength() const {
210  return data.getLength();
211  }
212 
213  double getSweep() const {
214  return data.getSweep();
215  }
216 
217  RVector getPointAt(double angle) const {
218  return data.getPointAt(angle);
219  }
220 
221 protected:
222  virtual void print(QDebug dbg) const;
223 
224 protected:
226 };
227 
229 Q_DECLARE_METATYPE(QSharedPointer<REllipseEntity>)
230 Q_DECLARE_METATYPE(QSharedPointer<REllipseEntity>*)
231 
232 #endif