QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RImageData.h
Go to the documentation of this file.
1
20#ifndef RIMAGEDATA_H
21#define RIMAGEDATA_H
22
23#include "entity_global.h"
24
25#include "RBox.h"
26#include "REntityData.h"
27#include "RLine.h"
28#include "RVector.h"
29
30class RDocument;
31class RRefPoint;
32
42
43 friend class RImageEntity;
44
45protected:
46 RImageData(RDocument* document, const RImageData& data);
47
48public:
49 RImageData();
50 RImageData(const RImageData& other);
51 RImageData(const QString& fileName,
52 const RVector& insertionPoint,
53 const RVector& uVector,
54 const RVector& vVector,
55 int brightness,
56 int contrast,
57 int fade);
58 virtual ~RImageData();
59
60 virtual RS::EntityType getType() const {
61 return RS::EntityImage;
62 }
63 RImageData& operator=(const RImageData& other);
64
65 virtual RBox getBoundingBox(bool ignoreEmpty=false) const;
66
67 virtual RVector getPointOnEntity() const;
68 virtual double getDistanceTo(const RVector& point, bool limited = true, double range = 0.0, bool draft = false, double strictRange = RMAXDOUBLE) const;
69 virtual bool intersectsWith(const RShape& shape) const;
70
71 virtual QList<RRefPoint> getReferencePoints(RS::ProjectionRenderingHint hint = RS::RenderTop) const;
72
73 virtual bool moveReferencePoint(const RVector& referencePoint, const RVector& targetPoint, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
74
75 virtual bool move(const RVector& offset);
76 virtual bool rotate(double rotation, const RVector& center = RDEFAULT_RVECTOR);
77 virtual bool scale(const RVector& scaleFactors, const RVector& center = RDEFAULT_RVECTOR);
78 virtual bool mirror(const RLine& axis);
79
80 virtual RShape* castToShape() {
81 return NULL;
82 }
83
84 virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false, bool segment = false, QList<RObject::Id>* entityIds = NULL) const;
85
86 QString getFileName() const {
87 return fileName;
88 }
89 void setFileName(const QString& fn) {
90 fileName = fn;
91 }
92
94 return insertionPoint;
95 }
96 void setInsertionPoint(const RVector& ip) {
97 insertionPoint = ip;
98 }
99 double getAngle() const {
100 return uVector.getAngle();
101 }
102 void setAngle(double a) {
103 uVector.setAngle(a);
104 vVector.setAngle(a + M_PI/2.0);
105 }
107 return uVector;
108 }
109 void setUVector(const RVector& v) {
110 uVector = v;
111 }
113 return vVector;
114 }
115 void setVVector(const RVector& v) {
116 vVector = v;
117 }
118 void setWidth(double w, bool keepRatio=false);
119 void setHeight(double h, bool keepRatio=false);
120 double getWidth() const;
121 double getHeight() const;
122 int getPixelWidth() const;
123 int getPixelHeight() const;
124 //RVector getScaleFactor() const {
125 // return scaleFactor;
126 //}
127 int getBrightness() const {
128 return brightness;
129 }
130 void setBrightness(int v) {
131 brightness = v;
132 }
133 int getContrast() const {
134 return contrast;
135 }
136 void setContrast(int v) {
137 contrast = v;
138 }
139 int getFade() const {
140 return fade;
141 }
142 void setFade(int v) {
143 fade = v;
144 }
145 QImage getImage() const;
146
147 QString getFullFilePath() const;
148 void load() const;
149 void reload();
150
151 RVector getScaleVector() const;
152 RVector mapToImage(const RVector& v) const;
153 RVector mapFromImage(const RVector& v) const;
154
155 QList<RVector> getCornersPx() const;
156 QList<RVector> getCorners() const;
157 QList<RLine> getEdges() const;
158
159private:
160 mutable QString fileName;
166 int fade;
167 mutable QImage image;
168};
169
173Q_DECLARE_METATYPE(QSharedPointer<RImageData>)
174
175#endif
#define RDEFAULT_RBOX
Definition RBox.h:35
Q_DECLARE_METATYPE(RMath *)
#define RMAXDOUBLE
Definition RMath.h:66
#define RDEFAULT_RVECTOR
Definition RVector.h:38
Represents a box e.g.
Definition RBox.h:46
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Base class for all entity data classes.
Definition REntityData.h:65
virtual bool move(const RVector &offset)
Moves this entity by the given offset.
Definition REntityData.cpp:675
virtual RVector getPointOnEntity() const
Definition REntityData.cpp:372
virtual double getDistanceTo(const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const
Definition REntityData.cpp:299
virtual bool moveReferencePoint(const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier)=0
Moves the given reference point to the given target point or does nothing if this entity has no refer...
virtual bool intersectsWith(const RShape &shape) const
Definition REntityData.cpp:582
virtual bool mirror(const RLine &axis)
Definition REntityData.cpp:715
virtual bool rotate(double rotation, const RVector &center=RDEFAULT_RVECTOR)
Definition REntityData.cpp:685
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const =0
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition REntityData.cpp:313
virtual bool scale(const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
Definition REntityData.cpp:695
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false, QList< RObject::Id > *entityIds=NULL) const
Definition REntityData.h:111
Stores and manages all data that defines the geometry and appearance of a raster image entity.
Definition RImageData.h:41
int fade
Definition RImageData.h:166
int getBrightness() const
Definition RImageData.h:127
RVector vVector
Definition RImageData.h:163
void setFileName(const QString &fn)
Definition RImageData.h:89
RVector uVector
Definition RImageData.h:162
QString getFileName() const
Definition RImageData.h:86
void setFade(int v)
Definition RImageData.h:142
void setAngle(double a)
Definition RImageData.h:102
int getFade() const
Definition RImageData.h:139
QImage image
Definition RImageData.h:167
QString fileName
Definition RImageData.h:160
double getAngle() const
Definition RImageData.h:99
void setBrightness(int v)
Definition RImageData.h:130
virtual RShape * castToShape()
Definition RImageData.h:80
RVector getVVector() const
Definition RImageData.h:112
void setContrast(int v)
Definition RImageData.h:136
void setVVector(const RVector &v)
Definition RImageData.h:115
RVector getInsertionPoint() const
Definition RImageData.h:93
int brightness
Definition RImageData.h:164
void setUVector(const RVector &v)
Definition RImageData.h:109
RVector insertionPoint
Definition RImageData.h:161
virtual RS::EntityType getType() const
Definition RImageData.h:60
void setInsertionPoint(const RVector &ip)
Definition RImageData.h:96
int contrast
Definition RImageData.h:165
int getContrast() const
Definition RImageData.h:133
RVector getUVector() const
Definition RImageData.h:106
Point entity.
Definition RImageEntity.h:38
Low-level mathematical representation of a line.
Definition RLine.h:41
Represents a reference point of an entity.
Definition RRefPoint.h:18
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityImage
Image.
Definition RS.h:274
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition RS.h:293
@ RenderTop
Definition RS.h:294
Interface for geometrical shape classes.
Definition RShape.h:72
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define M_PI
Defines common DXF codes and constants.
Definition dl_codes.h:55
#define QCADENTITY_EXPORT
Definition entity_global.h:10
#define NULL
Definition opennurbs_system.h:256