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:
51 
64 
71 
73 
74 public:
75  REllipseEntity(RDocument* document, const REllipseData& data,
76  RObject::Id objectId = RObject::INVALID_ID);
77  virtual ~REllipseEntity();
78 
79  static void init();
80 
81  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
83  }
84 
85  virtual REllipseEntity* clone() const {
86  return new REllipseEntity(*this);
87  }
88 
89  virtual RS::EntityType getType() const {
90  return RS::EntityEllipse;
91  }
92 
93  void setShape(const REllipse& e);
94 
95  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
96  RTransaction* transaction=NULL);
97  QPair<QVariant, RPropertyAttributes> getProperty(
98  RPropertyTypeId& propertyTypeId,
99  bool humanReadable = false, bool noAttributes = false);
100 
101  virtual void exportEntity(RExporter& e, bool preview=false) const;
102 
103  virtual REllipseData& getData() {
104  return data;
105  }
106 
107  virtual const REllipseData& getData() const {
108  return data;
109  }
110 
111  RVector getCenter() const {
112  return data.getCenter();
113  }
114 
116  return data.getMajorPoint();
117  }
118 
119  double getMajorRadius() const {
120  return data.getMajorRadius();
121  }
122 
123  double getMinorRadius() const {
124  return data.getMinorRadius();
125  }
126 
127  double getRatio() const {
128  return data.getRatio();
129  }
130 
131  double getAngle() const {
132  return data.getAngle();
133  }
134 
135  void setRatio(double ratio) {
136  data.setRatio(ratio);
137  }
138 
139  double getStartAngle() const {
140  return data.getStartAngle();
141  }
142 
143  double getStartParam() const {
144  return data.getStartParam();
145  }
146 
147  void setStartParam(double param) {
148  data.setStartParam(param);
149  }
150 
151  double getEndAngle() const {
152  return data.getEndAngle();
153  }
154 
155  double getEndParam() const {
156  return data.getEndParam();
157  }
158 
159  void setEndParam(double param) {
160  data.setEndParam(param);
161  }
162 
163  double getAngleLength() const {
164  return data.getAngleLength();
165  }
166 
167  bool isReversed() const {
168  return data.isReversed();
169  }
170 
171  void setReversed(bool reversed) {
172  data.setReversed(reversed);
173  }
174 
176  return data.getStartPoint();
177  }
178 
180  return data.getEndPoint();
181  }
182 
183  bool isFullEllipse() const {
184  return data.isFullEllipse();
185  }
186 
187  virtual bool reverse() {
188  return data.reverse();
189  }
190 
191  double getParamTo(const RVector& pos) {
192  return data.getParamTo(pos);
193  }
194 
195  RS::Ending getTrimEnd(const RVector& coord,
196  const RVector& trimPoint) {
197  return data.getTrimEnd(coord, trimPoint);
198  }
199 
200  void trimStartPoint(const RVector& p) {
201  return data.trimStartPoint(p);
202  }
203 
204  void trimEndPoint(const RVector& p) {
205  return data.trimEndPoint(p);
206  }
207 
208  double getLength() const {
209  return data.getLength();
210  }
211 
212  double getSweep() const {
213  return data.getSweep();
214  }
215 
216  RVector getPointAt(double angle) const {
217  return data.getPointAt(angle);
218  }
219 
220 protected:
221  virtual void print(QDebug dbg) const;
222 
223 protected:
225 };
226 
228 Q_DECLARE_METATYPE(QSharedPointer<REllipseEntity>)
229 Q_DECLARE_METATYPE(QSharedPointer<REllipseEntity>*)
230 
231 #endif