QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RSolidEntity.h
Go to the documentation of this file.
1 
20 #ifndef RSOLIDENTITY_H
21 #define RSOLIDENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "RSolidData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39 
40 public:
50 
63 
65 
66 public:
67  RSolidEntity(RDocument* document, const RSolidData& data,
68  RObject::Id objectId = RObject::INVALID_ID);
69  virtual ~RSolidEntity();
70 
71  static void init();
72 
73  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
75  }
76 
77  virtual RSolidEntity* clone() const {
78  return new RSolidEntity(*this);
79  }
80 
81  virtual RS::EntityType getType() const {
82  return RS::EntitySolid;
83  }
84 
85  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
86  RTransaction* transaction=NULL);
87  QPair<QVariant, RPropertyAttributes> getProperty(
88  RPropertyTypeId& propertyTypeId,
89  bool humanReadable = false, bool noAttributes = false);
90 
91  virtual void exportEntity(RExporter& e, bool preview=false) const;
92 
93  virtual RSolidData& getData() {
94  return data;
95  }
96 
97  virtual const RSolidData& getData() const {
98  return data;
99  }
100 
101  RVector getVertexAt(int i) const {
102  return data.getVertexAt(i);
103  }
104 
105  int countVertices() const {
106  return data.countVertices();
107  }
108 
110  return data.getStartPoint();
111  }
112 
114  return data.getEndPoint();
115  }
116 
117  double getDirection1() const {
118  return data.getDirection1();
119  }
120 
121  double getDirection2() const {
122  return data.getDirection2();
123  }
124 
125  bool reverse() {
126  return data.reverse();
127  }
128 
129  RS::Ending getTrimEnd(const RVector& coord,
130  const RVector& trimPoint) {
131  return data.getTrimEnd(coord, trimPoint);
132  }
133 
134  void trimStartPoint(const RVector& p) {
135  return data.trimStartPoint(p);
136  }
137  void trimEndPoint(const RVector& p) {
138  return data.trimEndPoint(p);
139  }
140 
141  double getLength() const {
142  return data.getLength();
143  }
144 
145 protected:
146  virtual void print(QDebug dbg) const;
147 
148 protected:
150 };
151 
153 Q_DECLARE_METATYPE(QSharedPointer<RSolidEntity>)
154 Q_DECLARE_METATYPE(QSharedPointer<RSolidEntity>*)
155 
156 #endif