4#ifndef QDOUBLEVECTOR2D_P_H
5#define QDOUBLEVECTOR2D_P_H
18#ifdef QT_BUILD_LOCATION_LIB
23#include <QtCore/qmetatype.h>
33 Q_DECL_CONSTEXPR
inline QDoubleVector2D();
34 Q_DECL_CONSTEXPR
inline QDoubleVector2D(
double xpos,
double ypos);
35 Q_DECL_CONSTEXPR
explicit inline QDoubleVector2D(
const QPointF &p);
36 explicit QDoubleVector2D(
const QDoubleVector3D &vector);
38 Q_DECL_CONSTEXPR
inline double manhattanLength()
const;
39 inline bool isNull()
const;
40 inline bool isFinite()
const;
42 Q_DECL_CONSTEXPR
inline double x()
const;
43 Q_DECL_CONSTEXPR
inline double y()
const;
45 inline void setX(
double x);
46 inline void setY(
double y);
48 double length()
const;
49 Q_DECL_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 Q_DECL_CONSTEXPR
static inline double dotProduct(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2)
62 {
return v1.xp * v2.xp + v1.yp * v2.yp; }
65 friend Q_DECL_CONSTEXPR
inline bool operator==(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
66 friend Q_DECL_CONSTEXPR
inline bool operator!=(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
67 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator+(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
68 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator-(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
69 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator*(
double factor,
const QDoubleVector2D &vector);
70 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator*(
const QDoubleVector2D &vector,
double factor);
71 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator*(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
72 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator-(
const QDoubleVector2D &vector);
73 friend Q_DECL_CONSTEXPR
inline const QDoubleVector2D operator/(
const QDoubleVector2D &vector,
double divisor);
75 friend Q_DECL_CONSTEXPR
inline bool qFuzzyCompare(
const QDoubleVector2D &v1,
const QDoubleVector2D &v2);
77 QDoubleVector3D toVector3D()
const;
78 Q_DECL_CONSTEXPR
inline QPointF toPointF()
const;
83 friend class QDoubleVector3D;
88Q_DECL_CONSTEXPR
inline QDoubleVector2D::QDoubleVector2D() : xp(0.0), yp(0.0) {}
90Q_DECL_CONSTEXPR
inline QDoubleVector2D::QDoubleVector2D(
double xpos,
double ypos) : xp(xpos), yp(ypos) {}
92Q_DECL_CONSTEXPR
inline QDoubleVector2D::QDoubleVector2D(
const QPointF &p) : xp(p.x()), yp(p.y()) { }
94Q_DECL_CONSTEXPR
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);
109Q_DECL_CONSTEXPR
inline double QDoubleVector2D::x()
const {
return xp; }
110Q_DECL_CONSTEXPR
inline double QDoubleVector2D::y()
const {
return yp; }
112inline void QDoubleVector2D::setX(
double aX) { xp = aX; }
113inline void QDoubleVector2D::setY(
double aY) { yp = aY; }
115Q_DECL_CONSTEXPR
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)
162 return v1.xp == v2.xp && v1.yp == v2.yp;
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);
207 return qFuzzyCompare(v1.xp, v2.xp) && qFuzzyCompare(v1.yp, v2.yp);
210Q_DECL_CONSTEXPR
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
Combined button and popup list for selecting options.
Q_DECLARE_TYPEINFO(QByteArrayView, Q_PRIMITIVE_TYPE)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
QDebug operator<<(QDebug dbg, const QFileInfo &fi)
constexpr bool qFuzzyCompare(const QQuaternion &q1, const QQuaternion &q2) noexcept