5#ifndef QDOUBLEVECTOR2D_P_H
6#define QDOUBLEVECTOR2D_P_H
19#ifdef QT_BUILD_LOCATION_LIB
24#include <QtCore/qmetatype.h>
34 constexpr inline QDoubleVector2D();
35 constexpr inline QDoubleVector2D(
double xpos,
double ypos);
36 constexpr explicit inline QDoubleVector2D(
const QPointF &p);
37 explicit QDoubleVector2D(
const QDoubleVector3D &vector);
39 constexpr inline double manhattanLength()
const;
40 inline bool isNull()
const;
41 inline bool isFinite()
const;
43 constexpr inline double x()
const;
44 constexpr inline double y()
const;
46 inline void setX(
double x);
47 inline void setY(
double y);
49 double length()
const;
50 constexpr inline double lengthSquared()
const;
52 QDoubleVector2D normalized()
const;
55 inline QDoubleVector2D &operator+=(
const QDoubleVector2D &vector);
56 inline QDoubleVector2D &operator-=(
const QDoubleVector2D &vector);
57 inline QDoubleVector2D &operator*=(
double factor);
58 inline QDoubleVector2D &operator*=(
const QDoubleVector2D &vector);
59 inline QDoubleVector2D &operator/=(
double divisor);
60 inline QDoubleVector2D &operator/=(
const QDoubleVector2D &vector);
62 constexpr static inline double dotProduct(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
63 {
return v1.xp * v2.xp + v1.yp * v2.yp; }
66 friend constexpr inline bool operator==(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
67 friend constexpr inline bool 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-(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
70 friend constexpr inline const QDoubleVector2D operator*(
double factor,
const QDoubleVector2D &vector);
71 friend constexpr inline const QDoubleVector2D operator*(
const QDoubleVector2D &vector,
double factor);
72 friend constexpr inline const QDoubleVector2D operator*(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
73 friend constexpr inline const QDoubleVector2D operator-(
const QDoubleVector2D &vector);
74 friend constexpr inline const QDoubleVector2D operator/(
const QDoubleVector2D &vector,
double divisor);
76 friend constexpr inline bool qFuzzyCompare(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
78 QDoubleVector3D toVector3D()
const;
79 constexpr inline QPointF toPointF()
const;
84 friend class QDoubleVector3D;
89constexpr inline QDoubleVector2D::QDoubleVector2D() : xp(0.0), yp(0.0) {}
91constexpr inline QDoubleVector2D::QDoubleVector2D(
double xpos,
double ypos) : xp(xpos), yp(ypos) {}
93constexpr inline QDoubleVector2D::QDoubleVector2D(
const QPointF &p) : xp(p.x()), yp(p.y()) { }
95constexpr inline double QDoubleVector2D::manhattanLength()
const
97 return qAbs(x())+qAbs(y());
100inline bool QDoubleVector2D::isNull()
const
102 return qIsNull(xp) && qIsNull(yp);
105inline bool QDoubleVector2D::isFinite()
const
107 return qIsFinite(xp) && qIsFinite(yp);
110constexpr inline double QDoubleVector2D::x()
const {
return xp; }
111constexpr inline double QDoubleVector2D::y()
const {
return yp; }
113inline void QDoubleVector2D::setX(
double aX) { xp = aX; }
114inline void QDoubleVector2D::setY(
double aY) { yp = aY; }
116constexpr inline double QDoubleVector2D::lengthSquared()
const
117{
return xp * xp + yp * yp; }
119inline QDoubleVector2D &QDoubleVector2D::operator+=(
const QDoubleVector2D &vector)
126inline QDoubleVector2D &QDoubleVector2D::operator-=(
const QDoubleVector2D &vector)
133inline QDoubleVector2D &QDoubleVector2D::operator*=(
double factor)
140inline QDoubleVector2D &QDoubleVector2D::operator*=(
const QDoubleVector2D &vector)
147inline QDoubleVector2D &QDoubleVector2D::operator/=(
double divisor)
154inline QDoubleVector2D &QDoubleVector2D::operator/=(
const QDoubleVector2D &vector)
161constexpr inline bool operator==(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
163 return v1.xp == v2.xp && v1.yp == v2.yp;
166constexpr inline bool operator!=(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
168 return v1.xp != v2.xp || v1.yp != v2.yp;
173 return QDoubleVector2D(v1.xp + v2.xp, v1.yp + v2.yp);
178 return QDoubleVector2D(v1.xp - v2.xp, v1.yp - v2.yp);
183 return QDoubleVector2D(vector.xp * factor, vector.yp * factor);
188 return QDoubleVector2D(vector.xp * factor, vector.yp * factor);
193 return QDoubleVector2D(v1.xp * v2.xp, v1.yp * v2.yp);
198 return QDoubleVector2D(-vector.xp, -vector.yp);
203 return QDoubleVector2D(vector.xp / divisor, vector.yp / divisor);
206constexpr inline bool qFuzzyCompare(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
208 return QtPrivate::fuzzyCompare(v1.xp, v2.xp) && QtPrivate::fuzzyCompare(v1.yp, v2.yp);
211constexpr inline QPointF QDoubleVector2D::toPointF()
const
213 return QPointF(qreal(xp), qreal(yp));
216#ifndef QT_NO_DEBUG_STREAM
217Q_POSITIONING_EXPORT
QDebug operator<<(QDebug dbg,
const QDoubleVector2D &vector);
220#ifndef QT_NO_DATASTREAM
221Q_POSITIONING_EXPORT
QDataStream &operator<<(QDataStream &,
const QDoubleVector2D &);
222Q_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
Combined button and popup list for selecting options.
QVariant operator*(const QVariant &arg1, double multiplier)
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*(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)