QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RPasteOperation.h
Go to the documentation of this file.
1
20#ifndef RPASTEOPERATION_H
21#define RPASTEOPERATION_H
22
23#include "operations_global.h"
24
25#include "RClipboardOperation.h"
26#include "RVector.h"
27
28class RDocument;
29class RPolyline;
30class RTransaction;
31
40public:
41 RPasteOperation(RDocument& sourceDocument);
42 virtual ~RPasteOperation() {
43 }
44
45 void setOffsets(const QList<RVector>& offsets) {
46 this->offsets = offsets;
47 }
48 void setRotations(const QList<double>& rotations) {
49 this->rotations = rotations;
50 }
51 void setCenters(const QList<RVector>& centers) {
52 this->centers = centers;
53 }
54
55 void setOffset(const RVector& offset) {
56 if (this->offsets.isEmpty()) {
57 this->offsets << offset;
58 }
59 else {
60 this->offsets[0] = offset;
61 }
62 }
64 if (this->offsets.isEmpty()) {
65 return RVector::invalid;
66 }
67 else {
68 return this->offsets[0];
69 }
70 }
71 void setScale(double scale) {
72 this->scale = scale;
73 }
74 double getScale() {
75 return this->scale;
76 }
77 void setRotation(double rotation) {
78 if (this->rotations.isEmpty()) {
79 this->rotations << rotation;
80 }
81 else {
82 this->rotations[0] = rotation;
83 }
84 }
85 double getRotation() {
86 if (this->rotations.isEmpty()) {
87 return 0.0;
88 }
89 else {
90 return this->rotations[0];
91 }
92 }
93 void setCenter(const RVector& centers) {
94 if (this->centers.isEmpty()) {
95 this->centers << centers;
96 }
97 else {
98 this->centers[0] = centers;
99 }
100 }
102 if (this->centers.isEmpty()) {
103 return RVector(0,0);
104 }
105 else {
106 return this->centers[0];
107 }
108 }
109 void setFlipHorizontal(bool flipHorizontal) {
110 this->flipHorizontal = flipHorizontal;
111 }
113 return this->flipHorizontal;
114 }
115 void setFlipVertical(bool flipVertical) {
116 this->flipVertical = flipVertical;
117 }
119 return this->flipVertical;
120 }
121 void setToCurrentLayer(bool toCurrentLayer) {
122 this->toCurrentLayer = toCurrentLayer;
123 }
125 return this->toCurrentLayer;
126 }
127 void setOverwriteLayers(bool overwriteLayers) {
128 this->overwriteLayers = overwriteLayers;
129 }
131 return this->overwriteLayers;
132 }
133 void setOverwriteBlocks(bool overwriteBlocks) {
134 this->overwriteBlocks = overwriteBlocks;
135 }
137 return this->overwriteBlocks;
138 }
139 void setBlockName(const QString& blockName) {
140 this->blockName = blockName;
141 }
142 QString getBlockName() {
143 return this->blockName;
144 }
145 void setLayerName(const QString& layerName) {
146 this->layerName = layerName;
147 }
148 QString getLayerName() {
149 return this->layerName;
150 }
151 void setAttribute(const QString& tag, const QString& value) {
152 attributes.insert(tag, value);
153 }
154 void setProperty(const QString& name, const QString& value) {
155 properties.insert(name, value);
156 }
157 void setBlockProperty(const QString& name, const QString& value) {
158 blockProperties.insert(name, value);
159 }
160
161 virtual RTransaction apply(RDocument& document, bool preview = false);
162
163 RPolyline getBoundary(double unitFactor);
164
165private:
167 QList<RVector> offsets;
168 double scale;
169 QList<double> rotations;
170 QList<RVector> centers;
176 QString blockName;
177 QString layerName;
181};
182
184
185#endif
Q_DECLARE_METATYPE(RMath *)
Definition RDebug.h:38
Base class for clipboard related operations (copy, cut, paste).
Definition RClipboardOperation.h:48
virtual RTransaction apply(RDocument &document, bool preview=false)
Applies this operation to selection in the given document.
Definition RClipboardOperation.h:53
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Implementation of an operation that pastes the clipboard at a given reference point.
Definition RPasteOperation.h:39
bool getOverwriteBlocks()
Definition RPasteOperation.h:136
void setFlipVertical(bool flipVertical)
Definition RPasteOperation.h:115
QList< double > rotations
Definition RPasteOperation.h:169
void setRotation(double rotation)
Definition RPasteOperation.h:77
bool overwriteLayers
Definition RPasteOperation.h:174
RDocument & sourceDocument
Definition RPasteOperation.h:166
bool getOverwriteLayers()
Definition RPasteOperation.h:130
double getScale()
Definition RPasteOperation.h:74
double scale
Definition RPasteOperation.h:168
QString blockName
Definition RPasteOperation.h:176
bool getFlipVertical()
Definition RPasteOperation.h:118
QList< RVector > offsets
Definition RPasteOperation.h:167
RVector getOffset()
Definition RPasteOperation.h:63
void setFlipHorizontal(bool flipHorizontal)
Definition RPasteOperation.h:109
QString layerName
Definition RPasteOperation.h:177
bool getFlipHorizontal()
Definition RPasteOperation.h:112
void setBlockProperty(const QString &name, const QString &value)
Definition RPasteOperation.h:157
bool flipHorizontal
Definition RPasteOperation.h:171
QList< RVector > centers
Definition RPasteOperation.h:170
bool flipVertical
Definition RPasteOperation.h:172
void setCenters(const QList< RVector > &centers)
Definition RPasteOperation.h:51
void setOverwriteLayers(bool overwriteLayers)
Definition RPasteOperation.h:127
void setProperty(const QString &name, const QString &value)
Definition RPasteOperation.h:154
QString getBlockName()
Definition RPasteOperation.h:142
QMap< QString, QString > properties
Definition RPasteOperation.h:179
bool getToCurrentLayer()
Definition RPasteOperation.h:124
void setOffsets(const QList< RVector > &offsets)
Definition RPasteOperation.h:45
void setOverwriteBlocks(bool overwriteBlocks)
Definition RPasteOperation.h:133
void setScale(double scale)
Definition RPasteOperation.h:71
QMap< QString, QString > attributes
Definition RPasteOperation.h:178
bool toCurrentLayer
Definition RPasteOperation.h:173
void setRotations(const QList< double > &rotations)
Definition RPasteOperation.h:48
bool overwriteBlocks
Definition RPasteOperation.h:175
void setAttribute(const QString &tag, const QString &value)
Definition RPasteOperation.h:151
QString getLayerName()
Definition RPasteOperation.h:148
double getRotation()
Definition RPasteOperation.h:85
void setLayerName(const QString &layerName)
Definition RPasteOperation.h:145
QMap< QString, QString > blockProperties
Definition RPasteOperation.h:180
virtual ~RPasteOperation()
Definition RPasteOperation.h:42
void setToCurrentLayer(bool toCurrentLayer)
Definition RPasteOperation.h:121
void setOffset(const RVector &offset)
Definition RPasteOperation.h:55
void setBlockName(const QString &blockName)
Definition RPasteOperation.h:139
RVector getCenter()
Definition RPasteOperation.h:101
void setCenter(const RVector &centers)
Definition RPasteOperation.h:93
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
Transaction implementation.
Definition RTransaction.h:73
Represents a 3d vector (x/y/z).
Definition RVector.h:47
static const RVector invalid
invalid vector
Definition RVector.h:335
void scale(void e, void factor, void focusPoint)
Scales the given entity or shape by the given factor with the given focus point.
Definition simple_modify.js:15
#define QCADOPERATIONS_EXPORT
Definition operations_global.h:10