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:
51 
64 
66 
67 public:
68  RSolidEntity(RDocument* document, const RSolidData& data,
69  RObject::Id objectId = RObject::INVALID_ID);
70  virtual ~RSolidEntity();
71 
72  static void init();
73 
74  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
76  }
77 
78  virtual RSolidEntity* clone() const {
79  return new RSolidEntity(*this);
80  }
81 
82  virtual RS::EntityType getType() const {
83  return RS::EntitySolid;
84  }
85 
86  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
87  RTransaction* transaction=NULL);
88  QPair<QVariant, RPropertyAttributes> getProperty(
89  RPropertyTypeId& propertyTypeId,
90  bool humanReadable = false, bool noAttributes = false);
91 
92  virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
93 
94  virtual RSolidData& getData() {
95  return data;
96  }
97 
98  virtual const RSolidData& getData() const {
99  return data;
100  }
101 
102  RVector getVertexAt(int i) const {
103  return data.getVertexAt(i);
104  }
105 
106  int countVertices() const {
107  return data.countVertices();
108  }
109 
111  return data.getStartPoint();
112  }
113 
115  return data.getEndPoint();
116  }
117 
118  double getDirection1() const {
119  return data.getDirection1();
120  }
121 
122  double getDirection2() const {
123  return data.getDirection2();
124  }
125 
126  bool reverse() {
127  return data.reverse();
128  }
129 
130  RS::Ending getTrimEnd(const RVector& coord,
131  const RVector& trimPoint) {
132  return data.getTrimEnd(coord, trimPoint);
133  }
134 
135  void trimStartPoint(const RVector& p) {
136  return data.trimStartPoint(p);
137  }
138  void trimEndPoint(const RVector& p) {
139  return data.trimEndPoint(p);
140  }
141 
142  double getLength() const {
143  return data.getLength();
144  }
145 
146 protected:
147  virtual void print(QDebug dbg) const;
148 
149 protected:
151 };
152 
154 Q_DECLARE_METATYPE(QSharedPointer<RSolidEntity>)
155 Q_DECLARE_METATYPE(QSharedPointer<RSolidEntity>*)
156 
157 #endif