QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RPoint.h
Go to the documentation of this file.
1
20#ifndef RPOINT_H
21#define RPOINT_H
22
23#include "../core_global.h"
24
25#include "RShape.h"
26#include "RVector.h"
27#include "RBox.h"
28
29class RLine;
30
41public:
42 RPoint();
43 RPoint(double x, double y);
44 RPoint(const RVector& position);
45 virtual ~RPoint();
46
47 virtual RShape::Type getShapeType() const {
48 return Point;
49 }
50
51 virtual QSharedPointer<RShape> clone() const {
52 return QSharedPointer<RShape>(new RPoint(*this));
53 }
54
55 QSharedPointer<RPoint> cloneToPoint() const {
56 return QSharedPointer<RPoint>(new RPoint(*this));
57 }
58
59 virtual void setZ(double z);
60
61 virtual QList<RVector> getVectorProperties() const;
62
64 return position;
65 }
66
67 void setPosition(const RVector& p) {
68 position = p;
69 }
70
71 virtual RBox getBoundingBox() const;
72 virtual double getLength() const;
73
74 virtual QList<RVector> getEndPoints() const;
75 virtual QList<RVector> getMiddlePoints() const;
76 virtual QList<RVector> getCenterPoints() const;
77 virtual QList<RVector> getPointsWithDistanceToEnd(
78 double distance, int from = RS::FromAny) const;
79 virtual QList<RVector> getPointCloud(double segmentLength) const;
80
81 virtual double getAngleAt(double distance, RS::From from = RS::FromStart) const;
82
83 virtual RVector getVectorTo(const RVector& point,
84 bool limited = true, double strictRange = RMAXDOUBLE) const;
85
86 virtual bool move(const RVector& offset);
87 virtual bool rotate(double rotation, const RVector& center = RDEFAULT_RVECTOR);
88 virtual bool scale(const RVector& scaleFactors, const RVector& center = RDEFAULT_RVECTOR);
89 virtual bool mirror(const RLine& axis);
90 virtual bool flipHorizontal();
91 virtual bool flipVertical();
92
93 virtual QSharedPointer<RShape> getTransformed(const QTransform& transform) const;
94
95#if QT_VERSION >= 0x060000
100 RPoint copy() const {
101 return *this;
102 }
103#endif
104
105protected:
106 virtual void print(QDebug dbg) const;
107
108public:
114
115 // for aama files:
116 //double thickness;
117 //RVector normal;
118};
119
122Q_DECLARE_METATYPE(QSharedPointer<RPoint>)
123Q_DECLARE_METATYPE(QSharedPointer<RPoint>*)
124
125#endif
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
Low-level mathematical representation of a line.
Definition RLine.h:41
Low-level mathematical representation of a point.
Definition RPoint.h:40
RVector position
Getter function for this property: getPosition Setter function for this property: setPosition
Definition RPoint.h:113
QSharedPointer< RPoint > cloneToPoint() const
Definition RPoint.h:55
void setPosition(const RVector &p)
Definition RPoint.h:67
RVector getPosition() const
Definition RPoint.h:63
virtual RShape::Type getShapeType() const
Definition RPoint.h:47
virtual QSharedPointer< RShape > clone() const
Definition RPoint.h:51
From
End used to specify from which end of a shape to measure a distance.
Definition RS.h:371
@ FromStart
Definition RS.h:372
@ FromAny
Start or end.
Definition RS.h:374
Interface for geometrical shape classes.
Definition RShape.h:72
virtual RVector getVectorTo(const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const =0
virtual QList< RVector > getPointCloud(double segmentLength) const =0
virtual QList< RVector > getPointsWithDistanceToEnd(double distance, int from=RS::FromAny) const =0
Type
Definition RShape.h:74
@ Point
Definition RShape.h:76
virtual QList< RVector > getCenterPoints() const =0
virtual bool move(const RVector &offset)=0
virtual double getAngleAt(double distance, RS::From from=RS::FromStart) const
Definition RShape.h:249
virtual bool rotate(double rotation, const RVector &center=RDEFAULT_RVECTOR)=0
virtual void print(QDebug dbg) const
Definition RShape.cpp:1760
virtual bool mirror(const RLine &axis)=0
virtual QList< RVector > getEndPoints() const =0
virtual QList< RVector > getVectorProperties() const
Definition RShape.h:170
virtual QList< RVector > getMiddlePoints() const =0
virtual bool flipHorizontal()
Definition RShape.cpp:1733
virtual void setZ(double z)=0
virtual QSharedPointer< RShape > getTransformed(const QTransform &transform) const =0
virtual RBox getBoundingBox() const =0
virtual bool flipVertical()
Definition RShape.cpp:1737
virtual bool scale(double scaleFactor, const RVector &center=RVector())
Definition RShape.cpp:1756
virtual double getLength() const =0
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADCORE_EXPORT
Definition core_global.h:10