QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RCircleEntity.h
Go to the documentation of this file.
1
20#ifndef RCIRCLENTITY_H
21#define RCIRCLENTITY_H
22
23#include "entity_global.h"
24
25#include "REntity.h"
26#include "RCircleData.h"
27
28class RDocument;
29class RExporter;
30
39
40public:
58
63
64public:
65 RCircleEntity(RDocument* document, const RCircleData& data);
66 RCircleEntity(const RCircleEntity& other);
67 virtual ~RCircleEntity();
68
69 static void init();
70
72 return RS::EntityCircle;
73 }
74
75 static QSet<RPropertyTypeId> getStaticPropertyTypeIds() {
77 }
78
79 virtual QSharedPointer<RObject> clone() const {
80 return QSharedPointer<RObject>(new RCircleEntity(*this));
81 }
82
83 QSharedPointer<RCircleEntity> cloneToCircleEntity() const {
84 return QSharedPointer<RCircleEntity>(new RCircleEntity(*this));
85 }
86
87 virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
88 RTransaction* transaction=NULL);
89 virtual QPair<QVariant, RPropertyAttributes> getProperty(
90 RPropertyTypeId& propertyTypeId,
91 bool humanReadable = false, bool noAttributes = false, bool showOnRequest = false);
92
93 virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
94
95 virtual QSharedPointer<REntity> scaleNonUniform(const RVector& scaleFactors, const RVector& center);
96
97 virtual RCircleData& getData() {
98 return data;
99 }
100
101 virtual const RCircleData& getData() const {
102 return data;
103 }
104
106 return data.getCenter();
107 }
108
109 double getRadius() const {
110 return data.getRadius();
111 }
112
113 void setRadius(double radius) {
114 data.setRadius(radius);
115 }
116
117 double getLength() const {
118 return data.getLength();
119 }
120
121protected:
122 virtual void print(QDebug dbg) const;
123
124protected:
126};
127
129Q_DECLARE_METATYPE(QSharedPointer<RCircleEntity>)
130Q_DECLARE_METATYPE(QSharedPointer<RCircleEntity>*)
131
132#endif
Q_DECLARE_METATYPE(RMath *)
Stores and manages all data that defines the geometry and appearance of a circle entity.
Definition RCircleData.h:44
Circle entity.
Definition RCircleEntity.h:38
double getRadius() const
Definition RCircleEntity.h:109
static RPropertyTypeId PropertyCenterZ
Definition RCircleEntity.h:56
static QSet< RPropertyTypeId > getStaticPropertyTypeIds()
Definition RCircleEntity.h:75
static RPropertyTypeId PropertyCircumference
Definition RCircleEntity.h:60
virtual const RCircleData & getData() const
Definition RCircleEntity.h:101
static RPropertyTypeId PropertyType
Definition RCircleEntity.h:45
static RPropertyTypeId PropertyCenterX
Definition RCircleEntity.h:54
static RPropertyTypeId PropertyRadius
Definition RCircleEntity.h:57
static RPropertyTypeId PropertyTotalArea
Definition RCircleEntity.h:62
QSharedPointer< RCircleEntity > cloneToCircleEntity() const
Definition RCircleEntity.h:83
static RPropertyTypeId PropertyBlock
Definition RCircleEntity.h:46
static RPropertyTypeId PropertyCustom
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RCircleEntity.h:41
static RPropertyTypeId PropertyLinetype
Definition RCircleEntity.h:48
void setRadius(double radius)
Definition RCircleEntity.h:113
double getLength() const
Definition RCircleEntity.h:117
static RPropertyTypeId PropertyLineweight
Definition RCircleEntity.h:50
static RPropertyTypeId PropertyWorkingSet
Definition RCircleEntity.h:44
RCircleData data
Definition RCircleEntity.h:125
static RPropertyTypeId PropertyDiameter
Definition RCircleEntity.h:59
static RPropertyTypeId PropertyCenterY
Definition RCircleEntity.h:55
static RPropertyTypeId PropertyHandle
Definition RCircleEntity.h:42
virtual QSharedPointer< RObject > clone() const
Definition RCircleEntity.h:79
static RPropertyTypeId PropertyDisplayedColor
Definition RCircleEntity.h:52
static RPropertyTypeId PropertyColor
Definition RCircleEntity.h:51
static RPropertyTypeId PropertyArea
Definition RCircleEntity.h:61
static RS::EntityType getRtti()
Definition RCircleEntity.h:71
static RPropertyTypeId PropertyProtected
Definition RCircleEntity.h:43
RVector getCenter() const
Definition RCircleEntity.h:105
static RPropertyTypeId PropertyLinetypeScale
Definition RCircleEntity.h:49
static RPropertyTypeId PropertyDrawOrder
Definition RCircleEntity.h:53
virtual RCircleData & getData()
Definition RCircleEntity.h:97
static RPropertyTypeId PropertyLayer
Definition RCircleEntity.h:47
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
virtual QSharedPointer< REntity > scaleNonUniform(const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
Definition REntity.cpp:471
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
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
@ EntityCircle
Circle.
Definition RS.h:254
Transaction implementation.
Definition RTransaction.h:73
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADENTITY_EXPORT
Definition entity_global.h:10
#define NULL
Definition opennurbs_system.h:256