38#define RDEFAULT_RVECTOR RVector()
53 x(0.0), y(0.0), z(0.0), valid(
true) {
69 RVector(
double vx,
double vy,
double vz = 0.0,
bool valid_in =
true);
71 explicit RVector(
const QList<double>& tuples);
78 inline void set(
double vx,
double vy,
double vz = 0.0) {
84 void setPolar(
double radius,
double angle);
95 bool isInside(
const RBox& b)
const;
99 double getDistanceTo(
const RVector& v)
const;
100 double getDistanceTo2D(
const RVector& v)
const;
101 void setAngle(
double a);
102 double getAngle()
const;
103 double getAngleToPlaneXY()
const;
104 double getAngleTo(
const RVector& v)
const;
105 void setMagnitude2D(
double m);
106 double getMagnitude()
const;
107 double getSquaredMagnitude()
const;
108 double getMagnitude2D()
const;
118 bool isInWindow(
const RVector& firstCorner,
const RVector& secondCorner);
125 static void moveList(QList<RVector>& list,
const RVector& offset);
131 RVector rotate3D(
const QQuaternion& quaternion);
136 static void rotateList(QList<RVector>& list,
double rotation);
141 static void rotateList(QList<RVector>& list,
double rotation,
const RVector& center);
150 static void scaleList(QList<RVector>& list,
double factor,
const RVector& center=nullVector);
155 static void scaleList(QList<RVector>& list,
const RVector& factors,
const RVector& center=nullVector);
168 RVector transform2D(
const QTransform& t);
172 RVector getTransformed2D(
const QTransform& t)
const;
177 RVector getClosest(
const QList<RVector>& list)
const;
178 RVector getClosest2D(
const QList<RVector>& list)
const;
179 double getClosestDistance(
const QList<RVector>& list,
int counts);
180 int getClosestIndex(
const QList<RVector>& list,
bool ignoreZ =
false)
const;
182 return getClosestIndex(list,
true);
200 void operator +=(
const RVector& v);
201 void operator -=(
const RVector& v);
202 void operator *=(
double s);
203 void operator /=(
double s);
205 bool operator ==(
const RVector& v)
const;
207 return !operator==(v);
220#if QT_VERSION >= 0x060000
233 static RVector getMinimum(
const QList<RVector>& vectors);
234 static RVector getMaximum(
const QList<RVector>& vectors);
236 static RVector getMinimumX(
const QList<RVector>& vectors);
237 static RVector getMaximumX(
const QList<RVector>& vectors);
238 static RVector getMinimumY(
const QList<RVector>& vectors);
239 static RVector getMaximumY(
const QList<RVector>& vectors);
245 static RVector getAverage(
const QList<RVector>& vectors);
247 static QList<RVector> getUnion(
const QList<RVector>& vectorsA,
const QList<RVector>& vectorsB,
double tol =
RS::PointTolerance);
248 static QList<RVector> getUnique(
const QList<RVector>& vectors,
double tol =
RS::PointTolerance);
250 static QList<double> getXList(
const QList<RVector>& vectors);
251 static QList<double> getYList(
const QList<RVector>& vectors);
252 static QList<double> getZList(
const QList<RVector>& vectors);
255 static double getDotProduct(
const RVector& v1,
const RVector& v2);
279 return v1.
x <= v2.
x && v2.
y <= v2.
y;
283 return v1.
x >= v2.
x && v2.
y >= v2.
y;
287 static QList<RVector> getSortedByDistance(
const QList<RVector>& list,
const RVector& v);
294 static QList<RVector> getSortedLeftRightTopBottom(
const QList<RVector>& list);
300 static QList<RVector> getSortedByAngle(
const QList<RVector>& list,
const RVector& center,
double angle);
Q_DECLARE_METATYPE(RMath *)
QCADCORE_EXPORT RVector operator*(double s, const RVector &v)
Multiplication operator.
Definition RVector.cpp:1219
QCADCORE_EXPORT QDataStream & operator>>(QDataStream &stream, RVector &vector)
Deserializes the given RColor object.
Definition RVector.cpp:1246
QMultiMap< int, RVector > _RMapIntVector
Definition RVector.h:370
QCADCORE_EXPORT QDebug operator<<(QDebug dbg, const RVector &v)
Stream operator for QDebug.
Definition RVector.cpp:1226
Represents a box e.g.
Definition RBox.h:46
Low-level mathematical representation of a line.
Definition RLine.h:41
Simple matrix class.
Definition RMatrix.h:36
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
static const double PointTolerance
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RS.h:920
IsoProjectionType
Projection type for isometric projections.
Definition RS.h:381
static double angle
Definition RVector.h:305
static RVector center
Definition RVector.h:304
static RVector v
Definition RVector.h:291
Represents a 3d vector (x/y/z).
Definition RVector.h:47
static bool lessThanY(const RVector &v1, const RVector &v2)
Definition RVector.h:270
static bool greaterThanY(const RVector &v1, const RVector &v2)
Definition RVector.h:274
static double getDotProduct(const RVector &v1, const RVector &v2)
Scalarproduct (dot product).
Definition RVector.cpp:731
static const RVector nullVector
null vector
Definition RVector.h:340
double dot(const RVector &other) const
Definition RVector.h:193
void setPolar(double radius, double angle)
Sets a new position for the vector in polar coordinates.
Definition RVector.cpp:112
static const RVector nanVector
NaN vector.
Definition RVector.h:345
static const RVector zAxis
Z axis vector (default extrusion direction)
Definition RVector.h:350
bool gteXY(const RVector &v) const
Definition RVector.h:216
RVector()
Constructor for a valid null vector (0/0/0).
Definition RVector.h:52
static bool greaterThanEqualXY(const RVector &v1, const RVector &v2)
Definition RVector.h:282
int getClosestIndex2D(const QList< RVector > &list) const
Definition RVector.h:181
static RVector createPolar(double radius, double angle)
Definition RVector.h:256
static const RVector invalid
invalid vector
Definition RVector.h:335
bool lteXY(const RVector &v) const
Definition RVector.h:213
static bool lessThanX(const RVector &v1, const RVector &v2)
Definition RVector.h:262
double x
Getter function for this property: getX Setter function for this property: setX
Definition RVector.h:313
static bool greaterThanX(const RVector &v1, const RVector &v2)
Definition RVector.h:266
RVector get2D() const
Definition RVector.h:86
double y
Getter function for this property: getY Setter function for this property: setY
Definition RVector.h:319
static bool lessThanEqualXY(const RVector &v1, const RVector &v2)
Definition RVector.h:278
void set(double vx, double vy, double vz=0.0)
Sets new values for the vector and makes the vector valid.
Definition RVector.h:78
bool valid
Getter function for this property: isValid
Definition RVector.h:330
double z
Getter function for this property: getZ Setter function for this property: setZ
Definition RVector.h:325
#define QCADCORE_EXPORT
Definition core_global.h:10
void rotate(void e, void angle, void center)
Rotates the given entity or shape by the given angle around the given center.
Definition simple_modify.js:109
void move(void e, void offset)
Moves the given entity or shape by the given offset.
Definition simple_modify.js:58
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
void mirror(void e, void axis)
Mirrors the given entity or shape at the given axis.
Definition simple_modify.js:95
ON_DECL ON_2fPoint operator*(int, const ON_2fPoint &)
Definition opennurbs_point.cpp:1718
char s
Definition opennurbs_string.cpp:32
#define true
Definition opennurbs_system.h:248
#define const
Definition zconf.h:156