QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
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
28class RDocument;
29class RExporter;
30
39
40public:
54
67
68public:
71 virtual ~RBlockReferenceEntity();
72
73 static void init();
74
76 return RS::EntityBlockRef;
77 }
78
82
83 virtual QSharedPointer<RObject> clone() const {
84 return QSharedPointer<RObject>(new RBlockReferenceEntity(*this));
85 }
86
87 QSharedPointer<RBlockReferenceEntity> cloneToBlockReferenceEntity() const {
88 return QSharedPointer<RBlockReferenceEntity>(new RBlockReferenceEntity(*this));
89 }
90
91 virtual QSet<RPropertyTypeId> getPropertyTypeIds(RPropertyAttributes::Option option = RPropertyAttributes::NoOptions) const;
92
93 virtual bool setProperty(RPropertyTypeId propertyTypeId,
94 const QVariant& value, RTransaction* transaction=NULL);
95 virtual QPair<QVariant, RPropertyAttributes> getProperty(
96 RPropertyTypeId& propertyTypeId,
97 bool humanReadable = false, bool noAttributes = false, bool showOnRequest = false);
98
99// virtual void setSelected(bool on);
100
101 virtual void exportEntity(RExporter& e, bool preview = false, bool forceSelected=false) const;
102
104 return data;
105 }
106
107 virtual const RBlockReferenceData& getData() const {
108 return data;
109 }
110
112 return data.getPosition();
113 }
114
115 void setPosition(const RVector& pos) {
116 data.setPosition(pos);
117 }
118
120 return data.getScaleFactors();
121 }
122
123 void setScaleFactors(const RVector sf) {
124 data.setScaleFactors(sf);
125 }
126
127 double getRotation() const {
128 return data.getRotation();
129 }
130
131 void setRotation(double r) {
132 data.setRotation(r);
133 }
134
135 int getColumnCount() const {
136 return data.getColumnCount();
137 }
138 void setColumnCount(int c) {
139 data.setColumnCount(c);
140 }
141
142 int getRowCount() const {
143 return data.getRowCount();
144 }
145 void setRowCount(int c) {
146 data.setRowCount(c);
147 }
148
149 double getColumnSpacing() const {
150 return data.getColumnSpacing();
151 }
152 void setColumnSpacing(double s) {
153 data.setColumnSpacing(s);
154 }
155
156 double getRowSpacing() const {
157 return data.getRowSpacing();
158 }
159 void setRowSpacing(double s) {
160 data.setRowSpacing(s);
161 }
162
164 data.setReferencedBlockId(blockId);
165 }
166
167 void setReferencedBlockName(const QString& blockName) {
168 data.setReferencedBlockName(blockName);
169 }
170
171 bool hasBlockOwnership() const {
172 return data.hasBlockOwnership();
173 }
174
176 return data.getReferencedBlockId();
177 }
178
179 QString getReferencedBlockName() const {
180 return data.getReferencedBlockName();
181 }
182
183 //virtual bool rotate(double rotation, const RVector& center = RDEFAULT_RVECTOR);
184
185 virtual void update() const {
186 data.update();
187 }
188
189 void update(RObject::Id entityId) const {
190 data.update(entityId);
191 }
192
193 QSharedPointer<REntity> queryEntity(RObject::Id entityId, bool transform = false, bool ignoreAttDef = true) const {
194 return data.queryEntity(entityId, transform, ignoreAttDef);
195 }
196
197 bool applyTransformationTo(REntity& entity) const {
198 return data.applyTransformationTo(entity);
199 }
200
204 bool applyTransformationTo(QSharedPointer<REntity>& entity) const {
205 return data.applyTransformationTo(entity);
206 }
207
208 RVector mapToBlock(const RVector& v) const {
209 return data.mapToBlock(v);
210 }
211
215 virtual void print(QDebug dbg) const;
216
217protected:
219 mutable int recursionDepth;
220};
221
223Q_DECLARE_METATYPE(QSharedPointer<RBlockReferenceEntity>)
224Q_DECLARE_METATYPE(QSharedPointer<RBlockReferenceEntity>*)
225
226#endif
Q_DECLARE_METATYPE(RMath *)
Defines the geometry and appearance of a block reference entity.
Definition RBlockReferenceData.h:43
Block reference entity.
Definition RBlockReferenceEntity.h:38
void setColumnSpacing(double s)
Definition RBlockReferenceEntity.h:152
static RPropertyTypeId PropertyColor
Definition RBlockReferenceEntity.h:51
static RPropertyTypeId PropertyColumnCount
Definition RBlockReferenceEntity.h:63
static RPropertyTypeId PropertyLinetype
Definition RBlockReferenceEntity.h:48
static RPropertyTypeId PropertyDisplayedColor
Definition RBlockReferenceEntity.h:52
void setScaleFactors(const RVector sf)
Definition RBlockReferenceEntity.h:123
static RPropertyTypeId PropertyRowCount
Definition RBlockReferenceEntity.h:64
static RPropertyTypeId PropertyScaleY
Definition RBlockReferenceEntity.h:60
static RPropertyTypeId PropertyPositionZ
Definition RBlockReferenceEntity.h:58
int getColumnCount() const
Definition RBlockReferenceEntity.h:135
virtual void update() const
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Definition RBlockReferenceEntity.h:185
QString getReferencedBlockName() const
Definition RBlockReferenceEntity.h:179
QSharedPointer< REntity > queryEntity(RObject::Id entityId, bool transform=false, bool ignoreAttDef=true) const
Definition RBlockReferenceEntity.h:193
static RPropertyTypeId PropertyPositionY
Definition RBlockReferenceEntity.h:57
static RPropertyTypeId PropertyLinetypeScale
Definition RBlockReferenceEntity.h:49
RBlockReferenceData data
Definition RBlockReferenceEntity.h:218
RObject::Id getReferencedBlockId() const
Definition RBlockReferenceEntity.h:175
void update(RObject::Id entityId) const
Definition RBlockReferenceEntity.h:189
double getRowSpacing() const
Definition RBlockReferenceEntity.h:156
virtual QSharedPointer< RObject > clone() const
Definition RBlockReferenceEntity.h:83
virtual const RBlockReferenceData & getData() const
Definition RBlockReferenceEntity.h:107
static RPropertyTypeId PropertyRowSpacing
Definition RBlockReferenceEntity.h:66
static RPropertyTypeId PropertyProtected
Definition RBlockReferenceEntity.h:43
static RPropertyTypeId PropertyWorkingSet
Definition RBlockReferenceEntity.h:44
static RPropertyTypeId PropertyType
Definition RBlockReferenceEntity.h:45
static RPropertyTypeId PropertyPositionX
Definition RBlockReferenceEntity.h:56
RVector mapToBlock(const RVector &v) const
Definition RBlockReferenceEntity.h:208
static RPropertyTypeId PropertyReferencedBlock
Definition RBlockReferenceEntity.h:55
static RPropertyTypeId PropertyColumnSpacing
Definition RBlockReferenceEntity.h:65
void setReferencedBlockId(RObject::Id blockId)
Definition RBlockReferenceEntity.h:163
RVector getPosition() const
Definition RBlockReferenceEntity.h:111
static RPropertyTypeId PropertyCustom
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RBlockReferenceEntity.h:41
static RPropertyTypeId PropertyRotation
Definition RBlockReferenceEntity.h:62
void setReferencedBlockName(const QString &blockName)
Definition RBlockReferenceEntity.h:167
static RPropertyTypeId PropertyDrawOrder
Definition RBlockReferenceEntity.h:53
static RPropertyTypeId PropertyLineweight
Definition RBlockReferenceEntity.h:50
static RPropertyTypeId PropertyScaleX
Definition RBlockReferenceEntity.h:59
RVector getScaleFactors() const
Definition RBlockReferenceEntity.h:119
void setPosition(const RVector &pos)
Definition RBlockReferenceEntity.h:115
void setRotation(double r)
Definition RBlockReferenceEntity.h:131
void setRowCount(int c)
Definition RBlockReferenceEntity.h:145
static RS::EntityType getRtti()
Definition RBlockReferenceEntity.h:75
static RPropertyTypeId PropertyLayer
Definition RBlockReferenceEntity.h:47
QSharedPointer< RBlockReferenceEntity > cloneToBlockReferenceEntity() const
Definition RBlockReferenceEntity.h:87
int getRowCount() const
Definition RBlockReferenceEntity.h:142
double getRotation() const
Definition RBlockReferenceEntity.h:127
int recursionDepth
Definition RBlockReferenceEntity.h:219
bool hasBlockOwnership() const
Definition RBlockReferenceEntity.h:171
static RPropertyTypeId PropertyBlock
Definition RBlockReferenceEntity.h:46
void setColumnCount(int c)
Definition RBlockReferenceEntity.h:138
double getColumnSpacing() const
Definition RBlockReferenceEntity.h:149
virtual RBlockReferenceData & getData()
Definition RBlockReferenceEntity.h:103
static RPropertyTypeId PropertyHandle
Definition RBlockReferenceEntity.h:42
void setRowSpacing(double s)
Definition RBlockReferenceEntity.h:159
static QSet< RPropertyTypeId > getStaticPropertyTypeIds()
Definition RBlockReferenceEntity.h:79
bool applyTransformationTo(REntity &entity) const
Definition RBlockReferenceEntity.h:197
bool applyTransformationTo(QSharedPointer< REntity > &entity) const
Definition RBlockReferenceEntity.h:204
static RPropertyTypeId PropertyScaleZ
Definition RBlockReferenceEntity.h:61
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Base class for all entity classes.
Definition REntity.h:63
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition REntity.cpp:236
static void init()
Definition REntity.cpp:89
virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
Sets the given property to the given value.
Definition REntity.cpp:338
virtual void exportEntity(RExporter &e, bool preview=false, bool forceSelected=false) const =0
Exports the entity to the given exporter.
virtual void print(QDebug dbg) const
Stream operator for QDebug.
Definition REntity.cpp:487
Abstract base class for exporters.
Definition RExporter.h:78
int Id
Definition RObject.h:69
virtual QSet< RPropertyTypeId > getPropertyTypeIds(RPropertyAttributes::Option option=RPropertyAttributes::NoOptions) const
Definition RObject.cpp:486
Option
Definition RPropertyAttributes.h:44
@ NoOptions
Definition RPropertyAttributes.h:45
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RPropertyTypeId.h:54
static QSet< RPropertyTypeId > getPropertyTypeIds(RS::EntityType type, RPropertyAttributes::Option=RPropertyAttributes::NoOptions)
Gets all property type IDs that where registered for the given class.
Definition RPropertyTypeId.cpp:283
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityBlockRef
Block reference.
Definition RS.h:246
Transaction implementation.
Definition RTransaction.h:73
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADCORE_EXPORT
Definition core_global.h:10
char s
Definition opennurbs_string.cpp:32
#define NULL
Definition opennurbs_system.h:256