4#ifndef QDOUBLEVECTOR2D_P_H
5#define QDOUBLEVECTOR2D_P_H
18#ifdef QT_BUILD_LOCATION_LIB
23#include <QtCore/qmetatype.h>
33 constexpr inline QDoubleVector2D();
34 constexpr inline QDoubleVector2D(
double xpos,
double ypos);
35 constexpr explicit inline QDoubleVector2D(
const QPointF &p);
36 explicit QDoubleVector2D(
const QDoubleVector3D &vector);
38 constexpr inline double manhattanLength()
const;
39 inline bool isNull()
const;
40 inline bool isFinite()
const;
42 constexpr inline double x()
const;
43 constexpr inline double y()
const;
45 inline void setX(
double x);
46 inline void setY(
double y);
48 double length()
const;
49 constexpr inline double lengthSquared()
const;
51 QDoubleVector2D normalized()
const;
54 inline QDoubleVector2D &operator+=(
const QDoubleVector2D &vector);
55 inline QDoubleVector2D &operator-=(
const QDoubleVector2D &vector);
56 inline QDoubleVector2D &operator*=(
double factor);
57 inline QDoubleVector2D &operator*=(
const QDoubleVector2D &vector);
58 inline QDoubleVector2D &operator/=(
double divisor);
59 inline QDoubleVector2D &operator/=(
const QDoubleVector2D &vector);
61 constexpr static inline double dotProduct(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
62 {
return v1.xp * v2.xp + v1.yp * v2.yp; }
65 friend constexpr inline bool operator==(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
66 friend constexpr inline bool operator!=(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
67 friend constexpr inline const QDoubleVector2D operator+(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
68 friend constexpr inline const QDoubleVector2D operator-(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
69 friend constexpr inline const QDoubleVector2D operator*(
double factor,
const QDoubleVector2D &vector);
70 friend constexpr inline const QDoubleVector2D operator*(
const QDoubleVector2D &vector,
double factor);
71 friend constexpr inline const QDoubleVector2D operator*(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
72 friend constexpr inline const QDoubleVector2D operator-(
const QDoubleVector2D &vector);
73 friend constexpr inline const QDoubleVector2D operator/(
const QDoubleVector2D &vector,
double divisor);
75 friend constexpr inline bool qFuzzyCompare(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
77 QDoubleVector3D toVector3D()
const;
78 constexpr inline QPointF toPointF()
const;
83 friend class QDoubleVector3D;
88constexpr inline QDoubleVector2D::QDoubleVector2D() : xp(0.0), yp(0.0) {}
90constexpr inline QDoubleVector2D::QDoubleVector2D(
double xpos,
double ypos) : xp(xpos), yp(ypos) {}
92constexpr inline QDoubleVector2D::QDoubleVector2D(
const QPointF &p) : xp(p.x()), yp(p.y()) { }
94constexpr inline double QDoubleVector2D::manhattanLength()
const
96 return qAbs(x())+qAbs(y());
99inline bool QDoubleVector2D::isNull()
const
101 return qIsNull(xp) && qIsNull(yp);
104inline bool QDoubleVector2D::isFinite()
const
106 return qIsFinite(xp) && qIsFinite(yp);
109constexpr inline double QDoubleVector2D::x()
const {
return xp; }
110constexpr inline double QDoubleVector2D::y()
const {
return yp; }
112inline void QDoubleVector2D::setX(
double aX) { xp = aX; }
113inline void QDoubleVector2D::setY(
double aY) { yp = aY; }
115constexpr inline double QDoubleVector2D::lengthSquared()
const
116{
return xp * xp + yp * yp; }
118inline QDoubleVector2D &QDoubleVector2D::operator+=(
const QDoubleVector2D &vector)
125inline QDoubleVector2D &QDoubleVector2D::operator-=(
const QDoubleVector2D &vector)
132inline QDoubleVector2D &QDoubleVector2D::operator*=(
double factor)
139inline QDoubleVector2D &QDoubleVector2D::operator*=(
const QDoubleVector2D &vector)
146inline QDoubleVector2D &QDoubleVector2D::operator/=(
double divisor)
153inline QDoubleVector2D &QDoubleVector2D::operator/=(
const QDoubleVector2D &vector)
160constexpr inline bool operator==(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
162 return v1.xp == v2.xp && v1.yp == v2.yp;
165constexpr inline bool operator!=(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
167 return v1.xp != v2.xp || v1.yp != v2.yp;
172 return QDoubleVector2D(v1.xp + v2.xp, v1.yp + v2.yp);
177 return QDoubleVector2D(v1.xp - v2.xp, v1.yp - v2.yp);
182 return QDoubleVector2D(vector.xp * factor, vector.yp * factor);
187 return QDoubleVector2D(vector.xp * factor, vector.yp * factor);
192 return QDoubleVector2D(v1.xp * v2.xp, v1.yp * v2.yp);
197 return QDoubleVector2D(-vector.xp, -vector.yp);
202 return QDoubleVector2D(vector.xp / divisor, vector.yp / divisor);
205constexpr inline bool qFuzzyCompare(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
207 return qFuzzyCompare(v1.xp, v2.xp) && qFuzzyCompare(v1.yp, v2.yp);
210constexpr inline QPointF QDoubleVector2D::toPointF()
const
212 return QPointF(qreal(xp), qreal(yp));
215#ifndef QT_NO_DEBUG_STREAM
216Q_POSITIONING_EXPORT
QDebug operator<<(QDebug dbg,
const QDoubleVector2D &vector);
219#ifndef QT_NO_DATASTREAM
220Q_POSITIONING_EXPORT
QDataStream &operator<<(QDataStream &,
const QDoubleVector2D &);
221Q_POSITIONING_EXPORT
QDataStream &operator>>(QDataStream &, QDoubleVector2D &);
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
\inmodule QtCore\reentrant
QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
Q_DECLARE_TYPEINFO(QByteArrayView, Q_PRIMITIVE_TYPE)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
QDoubleMatrix4x4 operator/(const QDoubleMatrix4x4 &matrix, double divisor)
QDoubleMatrix4x4 operator*(const QDoubleMatrix4x4 &matrix, double factor)
QDoubleMatrix4x4 operator*(double factor, const QDoubleMatrix4x4 &matrix)
QDebug operator<<(QDebug dbg, const QFileInfo &fi)
bool qFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2) noexcept
QMatrix4x4 operator*(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
QMatrix4x4 operator-(const QMatrix4x4 &matrix)
QMatrix4x4 operator-(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
QDataStream & operator<<(QDataStream &stream, const QImage &image)
[0]
QDataStream & operator>>(QDataStream &stream, QImage &image)