QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RBlockReferenceEntity.h
Go to the documentation of this file.
1 
20 #ifndef RBLOCKREFERENCEENTITY_H
21 #define RBLOCKREFERENCEENTITY_H
22 
23 #include "core_global.h"
24 
25 #include "REntity.h"
26 #include "RBlockReferenceData.h"
27 
28 class RDocument;
29 class RExporter;
30 
39 
40 public:
50 
59 
60 public:
62  RObject::Id objectId = RObject::INVALID_ID);
63  virtual ~RBlockReferenceEntity();
64 
65  static void init();
66 
67  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
69  }
70 
71  virtual RBlockReferenceEntity* clone() const {
72  return new RBlockReferenceEntity(*this);
73  }
74 
75  virtual RS::EntityType getType() const {
76  return RS::EntityBlockRef;
77  }
78 
79  virtual QSet<RPropertyTypeId> getPropertyTypeIds() const;
80 
81  virtual bool setProperty(RPropertyTypeId propertyTypeId,
82  const QVariant& value, RTransaction* transaction=NULL);
83  virtual QPair<QVariant, RPropertyAttributes> getProperty(
84  RPropertyTypeId& propertyTypeId,
85  bool humanReadable = false, bool noAttributes = false);
86 
87 // virtual void setSelected(bool on);
88 
89  virtual void exportEntity(RExporter& e, bool preview = false) const;
90 
92  return data;
93  }
94 
95  virtual const RBlockReferenceData& getData() const {
96  return data;
97  }
98 
99  RVector getPosition() const {
100  return data.getPosition();
101  }
102 
104  return data.getScaleFactors();
105  }
106 
107  void setScaleFactors(const RVector sf) {
108  data.setScaleFactors(sf);
109  }
110 
111  double getRotation() const {
112  return data.getRotation();
113  }
114 
116  data.setReferencedBlockId(blockId);
117  }
118 
120  return data.getReferencedBlockId();
121  }
122 
123  QString getReferencedBlockName() const {
124  return data.getReferencedBlockName();
125  }
126 
127  //virtual bool rotate(double rotation, const RVector& center = RDEFAULT_RVECTOR);
128 
129  virtual void update() const {
130  data.update();
131  }
132 
133  void update(REntity::Id entityId) const {
134  data.update(entityId);
135  }
136 
137  QSharedPointer<REntity> queryEntity(REntity::Id entityId) const {
138  return data.queryEntity(entityId);
139  }
140 
141  bool applyTransformationTo(REntity& entity) const {
142  return data.applyTransformationTo(entity);
143  }
144 
145  RVector mapToBlock(const RVector& v) const {
146  return data.mapToBlock(v);
147  }
148 
152  virtual void print(QDebug dbg) const;
153 
154 protected:
156  mutable int recursionDepth;
157 };
158 
163 
164 #endif