QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RCircleEntity.h
Go to the documentation of this file.
1 
20 #ifndef RCIRCLENTITY_H
21 #define RCIRCLENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "RCircleData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39 
40 public:
55 
59 
60 public:
61  RCircleEntity(RDocument* document, const RCircleData& data,
62  RObject::Id objectId = RObject::INVALID_ID);
63  virtual ~RCircleEntity();
64 
65  static void init();
66 
67  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
69  }
70 
71  virtual RCircleEntity* clone() const {
72  return new RCircleEntity(*this);
73  }
74 
75  virtual RS::EntityType getType() const {
76  return RS::EntityCircle;
77  }
78 
79  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
80  RTransaction* transaction=NULL);
81  QPair<QVariant, RPropertyAttributes> getProperty(
82  RPropertyTypeId& propertyTypeId,
83  bool humanReadable = false, bool noAttributes = false);
84 
85  virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
86 
87  virtual RCircleData& getData() {
88  return data;
89  }
90 
91  virtual const RCircleData& getData() const {
92  return data;
93  }
94 
95  RVector getCenter() const {
96  return data.getCenter();
97  }
98 
99  double getRadius() const {
100  return data.getRadius();
101  }
102 
103  void setRadius(double radius) {
104  data.setRadius(radius);
105  }
106 
107  double getLength() const {
108  return data.getLength();
109  }
110 
111 protected:
112  virtual void print(QDebug dbg) const;
113 
114 protected:
116 };
117 
119 Q_DECLARE_METATYPE(QSharedPointer<RCircleEntity>)
120 Q_DECLARE_METATYPE(QSharedPointer<RCircleEntity>*)
121 
122 #endif