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:
51 
60 
61 public:
63  RObject::Id objectId = RObject::INVALID_ID);
64  virtual ~RBlockReferenceEntity();
65 
66  static void init();
67 
68  static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
70  }
71 
72  virtual RBlockReferenceEntity* clone() const {
73  return new RBlockReferenceEntity(*this);
74  }
75 
76  virtual RS::EntityType getType() const {
77  return RS::EntityBlockRef;
78  }
79 
80  virtual QSet<RPropertyTypeId> getPropertyTypeIds() const;
81 
82  virtual bool setProperty(RPropertyTypeId propertyTypeId,
83  const QVariant& value, RTransaction* transaction=NULL);
84  virtual QPair<QVariant, RPropertyAttributes> getProperty(
85  RPropertyTypeId& propertyTypeId,
86  bool humanReadable = false, bool noAttributes = false);
87 
88 // virtual void setSelected(bool on);
89 
90  virtual void exportEntity(RExporter& e, bool preview = false, bool forceSelected=false) const;
91 
93  return data;
94  }
95 
96  virtual const RBlockReferenceData& getData() const {
97  return data;
98  }
99 
101  return data.getPosition();
102  }
103 
105  return data.getScaleFactors();
106  }
107 
108  void setScaleFactors(const RVector sf) {
109  data.setScaleFactors(sf);
110  }
111 
112  double getRotation() const {
113  return data.getRotation();
114  }
115 
117  data.setReferencedBlockId(blockId);
118  }
119 
121  return data.getReferencedBlockId();
122  }
123 
124  QString getReferencedBlockName() const {
125  return data.getReferencedBlockName();
126  }
127 
128  //virtual bool rotate(double rotation, const RVector& center = RDEFAULT_RVECTOR);
129 
130  virtual void update() const {
131  data.update();
132  }
133 
134  void update(REntity::Id entityId) const {
135  data.update(entityId);
136  }
137 
138  QSharedPointer<REntity> queryEntity(REntity::Id entityId) const {
139  return data.queryEntity(entityId);
140  }
141 
142  bool applyTransformationTo(REntity& entity) const {
143  return data.applyTransformationTo(entity);
144  }
145 
146  RVector mapToBlock(const RVector& v) const {
147  return data.mapToBlock(v);
148  }
149 
153  virtual void print(QDebug dbg) const;
154 
155 protected:
157  mutable int recursionDepth;
158 };
159 
163 
164 #endif