QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RBlock.h
Go to the documentation of this file.
1
20#ifndef RBLOCK_H
21#define RBLOCK_H
22
23#include "core_global.h"
24
25#include <QString>
26
27#include "RObject.h"
28#include "RS.h"
29#include "RVector.h"
30#include "RPropertyTypeId.h"
31
32class RDocument;
33class RTransaction;
34
43public:
55
56public:
57 RBlock();
58
59 RBlock(RDocument* document, const QString& name, const RVector& origin);
60
61 virtual ~RBlock();
62
63 static void init();
64
66 return RS::ObjectBlock;
67 }
68
69 virtual RS::EntityType getType() const {
70 return RS::ObjectBlock;
71 }
72
73 virtual QSharedPointer<RObject> clone() const {
74 return QSharedPointer<RObject>(new RBlock(*this));
75 }
76
77 QSharedPointer<RBlock> cloneToBlock() const {
78 return QSharedPointer<RBlock>(new RBlock(*this));
79 }
80
81 QString getName() const {
82 return name;
83 }
84
85 void setName(const QString& n);
86
87 void setOwnedByReference(bool on) {
88 ownedByReference = on;
89 }
90
91 bool isOwnedByReference() const {
92 return ownedByReference;
93 }
94
95 bool isFrozen() const {
96 return frozen;
97 }
98
99 void setFrozen(bool on) {
100 if (!isModelSpace()) {
101 frozen = on;
102 }
103 }
104
105 bool isAnonymous() const {
106 return anonymous;
107 }
108
109 void setAnonymous(bool on) {
110 if (!isModelSpace()) {
111 anonymous = on;
112 }
113 }
114
115 bool isPixelUnit() const {
116 return pixelUnit;
117 }
118
119 void setPixelUnit(bool on) {
120 pixelUnit = on;
121 }
122
123 void setOrigin(const RVector& origin) {
124 this->origin = origin;
125 }
126
128 return origin;
129 }
130
131 bool isModelSpace() const {
132 return QString::compare(name, modelSpaceName, Qt::CaseInsensitive)==0;
133 }
134
135 bool hasLayout() const {
136 return layoutId != RObject::INVALID_ID;
137 }
138
139 void setLayoutId(RObject::Id layoutId) {
140 this->layoutId = layoutId;
141 }
142
144 return layoutId;
145 }
146
147 QString getLayoutName() const;
148
149 virtual QPair<QVariant, RPropertyAttributes> getProperty(RPropertyTypeId& propertyTypeId,
150 bool humanReadable = false, bool noAttributes = false, bool showOnRequest = false);
151 virtual bool setProperty(RPropertyTypeId propertyTypeId,
152 const QVariant& value, RTransaction* transaction=NULL);
153
154 virtual void setCustomProperty(const QString& title, const QString& key, const QVariant& value);
155
156public:
157 static const QString modelSpaceName;
158 static const QString paperSpaceName;
159
160protected:
164 virtual void print(QDebug dbg) const;
165
166private:
167 QString name;
168 bool frozen;
174};
175
176
177Q_DECLARE_METATYPE(QSharedPointer<RBlock>)
178Q_DECLARE_METATYPE(QSharedPointer<RBlock>*)
181
182#endif
Q_DECLARE_METATYPE(RMath *)
Represents a block definition in a drawing.
Definition RBlock.h:42
virtual QSharedPointer< RObject > clone() const
Definition RBlock.h:73
void setOwnedByReference(bool on)
Definition RBlock.h:87
bool hasLayout() const
Definition RBlock.h:135
bool isPixelUnit() const
Definition RBlock.h:115
bool isAnonymous() const
Definition RBlock.h:105
RVector origin
Definition RBlock.h:171
static RPropertyTypeId PropertyOwnedByReference
Definition RBlock.h:54
void setAnonymous(bool on)
Definition RBlock.h:109
static const QString paperSpaceName
Definition RBlock.h:158
QString getName() const
Definition RBlock.h:81
static RS::EntityType getRtti()
Definition RBlock.h:65
static RPropertyTypeId PropertyName
Definition RBlock.h:47
RObject::Id getLayoutId() const
Definition RBlock.h:143
static RPropertyTypeId PropertyType
Definition RBlock.h:45
static RPropertyTypeId PropertyCustom
Definition RBlock.h:44
static RPropertyTypeId PropertyFrozen
Definition RBlock.h:48
void setOrigin(const RVector &origin)
Definition RBlock.h:123
static const QString modelSpaceName
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RBlock.h:157
static RPropertyTypeId PropertyOriginZ
Definition RBlock.h:52
static RPropertyTypeId PropertyLayout
Definition RBlock.h:53
static RPropertyTypeId PropertyOriginX
Definition RBlock.h:50
void setLayoutId(RObject::Id layoutId)
Definition RBlock.h:139
static RPropertyTypeId PropertyOriginY
Definition RBlock.h:51
virtual RS::EntityType getType() const
Definition RBlock.h:69
bool ownedByReference
Definition RBlock.h:173
static RPropertyTypeId PropertyPixelUnit
Definition RBlock.h:49
void setFrozen(bool on)
Definition RBlock.h:99
bool pixelUnit
Definition RBlock.h:170
bool anonymous
Definition RBlock.h:169
QString name
Definition RBlock.h:167
bool isFrozen() const
Definition RBlock.h:95
static RPropertyTypeId PropertyHandle
Definition RBlock.h:46
RVector getOrigin() const
Definition RBlock.h:127
bool isModelSpace() const
Definition RBlock.h:131
void setPixelUnit(bool on)
Definition RBlock.h:119
QSharedPointer< RBlock > cloneToBlock() const
Definition RBlock.h:77
bool isOwnedByReference() const
Definition RBlock.h:91
RObject::Id layoutId
Definition RBlock.h:172
bool frozen
Definition RBlock.h:168
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Abstract base class for all objects.
Definition RObject.h:64
static void init()
Definition RObject.cpp:68
virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
Sets the given property to the given value.
Definition RObject.cpp:180
static const Id INVALID_ID
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RObject.h:70
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition RObject.cpp:136
int Id
Definition RObject.h:69
virtual void print(QDebug dbg) const
Stream operator for QDebug.
Definition RObject.cpp:719
virtual void setCustomProperty(const QString &title, const QString &key, const QVariant &value)
Sets a custom property with the given name.
Definition RObject.cpp:600
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RPropertyTypeId.h:54
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ ObjectBlock
Definition RS.h:233
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
#define NULL
Definition opennurbs_system.h:256