QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RUcs.h
Go to the documentation of this file.
1
20#ifndef RUCS_H
21#define RUCS_H
22
23#include "core_global.h"
24
25#include "RObject.h"
26#include "RVector.h"
27#include "RPropertyTypeId.h"
28
29class RDocument;
30
31
42public:
53
54public:
55 RUcs() : RObject(), origin(0,0,0), xAxisDirection(1,0,0), yAxisDirection(0,1,0) {
56 }
57
59 RDocument* document,
60 const QString& name,
61 const RVector& origin,
62 const RVector& xAxisDirection,
63 const RVector& yAxisDirection
64 ) : RObject(document),
65 name(name),
66 origin(origin),
67 xAxisDirection(xAxisDirection),
68 yAxisDirection(yAxisDirection) {
69 }
70
71 virtual ~RUcs() {
72 }
73
74 static void init();
75
77 return RS::ObjectUcs;
78 }
79
80 virtual RS::EntityType getType() const {
81 return RS::ObjectUcs;
82 }
83
84 virtual QSharedPointer<RObject> clone() const {
85 return QSharedPointer<RObject>(new RUcs(*this));
86 }
87
88 QSharedPointer<RUcs> cloneToUcs() const {
89 return QSharedPointer<RUcs>(new RUcs(*this));
90 }
91
92 virtual QPair<QVariant, RPropertyAttributes> getProperty(
93 RPropertyTypeId& propertyTypeId,
94 bool humanReadable = false, bool noAttributes = false, bool showOnRequest = false);
95 virtual bool setProperty(RPropertyTypeId propertyTypeId,
96 const QVariant& value, RTransaction* transaction=NULL);
97
98 void setOrigin(const RVector& o) {
99 origin = o;
100 }
101
102 void setXAxisDirection(const RVector& x) {
103 xAxisDirection = x;
104 }
105
106 void setYAxisDirection(const RVector& y) {
107 yAxisDirection = y;
108 }
109
110 RVector getZAxisDirection();
111
112 RVector mapFromUcs(const RVector& positionUcs);
113 RVector mapToUcs(const RVector& positionWcs);
114
115public:
116 QString name;
120};
121
122QCADCORE_EXPORT QDebug operator<<(QDebug dbg, const RUcs& u);
123
126Q_DECLARE_METATYPE(QSharedPointer<RUcs>)
127Q_DECLARE_METATYPE(QSharedPointer<RUcs>*)
128
129#endif
Q_DECLARE_METATYPE(RMath *)
QCADCORE_EXPORT QDebug operator<<(QDebug dbg, const RUcs &u)
Stream operator for QDebug.
Definition RUcs.cpp:196
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
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition RObject.cpp:136
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RPropertyTypeId.h:54
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ ObjectUcs
Definition RS.h:237
Transaction implementation.
Definition RTransaction.h:73
Represents a user coordinate system (UCS) in a drawing.
Definition RUcs.h:41
virtual RS::EntityType getType() const
Definition RUcs.h:80
static RPropertyTypeId PropertyOriginX
Definition RUcs.h:44
RUcs()
Definition RUcs.h:55
virtual ~RUcs()
Definition RUcs.h:71
RVector yAxisDirection
Definition RUcs.h:119
static RPropertyTypeId PropertyXAxisDirectionZ
Definition RUcs.h:49
static RPropertyTypeId PropertyYAxisDirectionZ
Definition RUcs.h:52
static RPropertyTypeId PropertyName
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RUcs.h:43
QString name
Definition RUcs.h:116
static RPropertyTypeId PropertyOriginY
Definition RUcs.h:45
RVector xAxisDirection
Definition RUcs.h:118
static RPropertyTypeId PropertyXAxisDirectionX
Definition RUcs.h:47
void setYAxisDirection(const RVector &y)
Definition RUcs.h:106
RVector origin
Definition RUcs.h:117
QSharedPointer< RUcs > cloneToUcs() const
Definition RUcs.h:88
void setXAxisDirection(const RVector &x)
Definition RUcs.h:102
static RPropertyTypeId PropertyOriginZ
Definition RUcs.h:46
virtual QSharedPointer< RObject > clone() const
Definition RUcs.h:84
void setOrigin(const RVector &o)
Definition RUcs.h:98
static RPropertyTypeId PropertyYAxisDirectionY
Definition RUcs.h:51
static RPropertyTypeId PropertyXAxisDirectionY
Definition RUcs.h:48
RUcs(RDocument *document, const QString &name, const RVector &origin, const RVector &xAxisDirection, const RVector &yAxisDirection)
Definition RUcs.h:58
static RS::EntityType getRtti()
Definition RUcs.h:76
static RPropertyTypeId PropertyYAxisDirectionX
Definition RUcs.h:50
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