QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RCircleData.h
Go to the documentation of this file.
1 #ifndef RCIRCLEDATA_H
2 #define RCIRCLEDATA_H
3 
4 #include "RBox.h"
5 #include "RDocument.h"
6 #include "REntity.h"
7 #include "RPoint.h"
8 #include "RVector.h"
9 #include "RCircle.h"
10 
18 class RCircleData: public REntityData, protected RCircle {
19 
20  friend class RCircleEntity;
21 
22 protected:
24 
25 public:
26  RCircleData();
27  RCircleData(const RCircle& circle);
28  RCircleData(const RVector& center, double radius);
29 
31  return *this;
32  }
33 
34  RVector getCenter() const {
35  return RCircle::getCenter();
36  }
37  double getRadius() const {
38  return RCircle::getRadius();
39  }
40 
41  virtual QList<RVector> getReferencePoints(
43  virtual bool moveReferencePoint(const RVector& referencePoint,
44  const RVector& targetPoint);
45 
46  virtual RShape* castToShape() {
47  return this;
48  }
49 
50  virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX) const {
51  Q_UNUSED(queryBox)
52 
53  return QList<QSharedPointer<RShape> >() <<
54  QSharedPointer<RShape>(new RCircle(*this));
55  }
56 
57 };
58 
60 Q_DECLARE_METATYPE(QSharedPointer<RCircleData>)
61 
62 #endif