QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RHatchEntity.h
Go to the documentation of this file.
1 
20 #ifndef RHATCHENTITY_H
21 #define RHATCHENTITY_H
22 
23 #include "entity_global.h"
24 
25 #include "REntity.h"
26 #include "RHatchData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39 
40 public:
51 
53 
57 
60 
64 
65 public:
66  RHatchEntity(RDocument* document, const RHatchData& data,
67  RObject::Id objectId = RObject::INVALID_ID);
68  virtual ~RHatchEntity();
69 
70  static void init();
71 
72  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
74  }
75 
76  virtual RHatchEntity* clone() const;
77 
78  virtual RS::EntityType getType() const {
79  return RS::EntityHatch;
80  }
81 
82  bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
83  RTransaction* transaction=NULL);
84  bool setBoundaryVector(RObject::XYZ xyz, const QVariant& value, bool condition);
85  RVector setComponent(const RVector& p, double v, RObject::XYZ xyz);
86 
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, bool forceSelected=false) const;
92 
93  virtual RHatchData& getData() {
94  return data;
95  }
96 
97  virtual const RHatchData& getData() const {
98  return data;
99  }
100 
101  QList<RPainterPath> getPainterPaths(bool draft = false) const {
102  return data.getPainterPaths(draft);
103  }
104 
105  virtual int getComplexity() const {
106  return data.getComplexity();
107  }
108 
109  void newLoop() {
110  data.newLoop();
111  }
112 
113  void addBoundary(QSharedPointer<RShape> shape) {
114  data.addBoundary(shape);
115  }
116 
117  int getLoopCount() const {
118  return data.getLoopCount();
119  }
120 
121  bool isSolid() const {
122  return data.isSolid();
123  }
124 
125  void setSolid(bool on) {
126  data.setSolid(on);
127  }
128 
129  double getScale() const {
130  return data.getScale();
131  }
132 
133  void setScale(double s) {
134  data.setScale(s);
135  }
136 
137  double getAngle() const {
138  return data.getAngle();
139  }
140 
141  void setAngle(double a) {
142  data.setAngle(a);
143  }
144 
146  return data.getOriginPoint();
147  }
148 
149  void setOriginPoint(const RVector& op) {
150  data.setOriginPoint(op);
151  }
152 
153  QString getPatternName() const {
154  return data.getPatternName();
155  }
156 
157  void setPatternName(const QString& n) {
158  data.setPatternName(n);
159  }
160 
161  QList<QSharedPointer<RShape> > getLoopBoundary(int index) const {
162  return data.getLoopBoundary(index);
163  }
164 
165  virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false) const {
166  return data.getShapes(queryBox);
167  }
168 
169  virtual QList<QSharedPointer<RShape> > getExploded() const {
170  return data.getExploded();
171  }
172 
173 protected:
174  virtual void print(QDebug dbg) const;
175 
176 protected:
178 };
179 
181 Q_DECLARE_METATYPE(QSharedPointer<RHatchEntity>)
182 Q_DECLARE_METATYPE(QSharedPointer<RHatchEntity>*)
183 
184 #endif