7#include <QtCore/qpoint.h>
15
16
21 constexpr inline QLine();
22 constexpr inline QLine(
const QPoint &pt1,
const QPoint &pt2);
23 constexpr inline QLine(
int x1,
int y1,
int x2,
int y2);
25 constexpr inline bool isNull()
const;
27 constexpr inline QPoint p1()
const;
28 constexpr inline QPoint p2()
const;
30 constexpr inline int x1()
const;
31 constexpr inline int y1()
const;
33 constexpr inline int x2()
const;
34 constexpr inline int y2()
const;
36 constexpr inline int dx()
const;
37 constexpr inline int dy()
const;
39 constexpr inline void translate(
const QPoint &p);
40 constexpr inline void translate(
int dx,
int dy);
42 [[nodiscard]]
constexpr inline QLine translated(
const QPoint &p)
const;
43 [[nodiscard]]
constexpr inline QLine translated(
int dx,
int dy)
const;
45 [[nodiscard]]
constexpr inline QPoint center()
const;
47 inline void setP1(
const QPoint &p1);
48 inline void setP2(
const QPoint &p2);
49 inline void setPoints(
const QPoint &p1,
const QPoint &p2);
50 inline void setLine(
int x1,
int y1,
int x2,
int y2);
52#if QT_CORE_REMOVED_SINCE(6
, 8
)
53 constexpr inline bool operator==(
const QLine &d)
const noexcept;
54 constexpr inline bool operator!=(
const QLine &d)
const noexcept {
return !operator==(d); }
57 [[nodiscard]]
constexpr inline QLineF toLineF()
const noexcept;
60 friend constexpr bool comparesEqual(
const QLine &lhs,
const QLine &rhs)
noexcept
61 {
return lhs.pt1 == rhs.pt1 && lhs.pt2 == rhs.pt2; }
62#if !QT_CORE_REMOVED_SINCE(6
, 8
)
63 Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(QLine)
71
72
74constexpr inline QLine::QLine() { }
76constexpr inline QLine::QLine(
const QPoint &pt1_,
const QPoint &pt2_) : pt1(pt1_), pt2(pt2_) { }
78constexpr inline QLine::QLine(
int x1pos,
int y1pos,
int x2pos,
int y2pos) : pt1(QPoint(x1pos, y1pos)), pt2(QPoint(x2pos, y2pos)) { }
80constexpr inline bool QLine::isNull()
const
85constexpr inline int QLine::x1()
const
90constexpr inline int QLine::y1()
const
95constexpr inline int QLine::x2()
const
100constexpr inline int QLine::y2()
const
105constexpr inline QPoint QLine::p1()
const
110constexpr inline QPoint QLine::p2()
const
115constexpr inline int QLine::dx()
const
117 return (pt2 - pt1).x();
120constexpr inline int QLine::dy()
const
122 return (pt2 - pt1).y();
125constexpr inline void QLine::translate(
const QPoint &point)
131constexpr inline void QLine::translate(
int adx,
int ady)
133 this->translate(QPoint(adx, ady));
136constexpr inline QLine QLine::translated(
const QPoint &p)
const
138 return QLine(pt1 + p, pt2 + p);
141constexpr inline QLine QLine::translated(
int adx,
int ady)
const
143 return translated(QPoint(adx, ady));
146constexpr inline QPoint QLine::center()
const
148 return QPoint(
int((qint64(pt1.x()) + pt2.x()) / 2),
int((qint64(pt1.y()) + pt2.y()) / 2));
151inline void QLine::setP1(
const QPoint &aP1)
156inline void QLine::setP2(
const QPoint &aP2)
161inline void QLine::setPoints(
const QPoint &aP1,
const QPoint &aP2)
167inline void QLine::setLine(
int aX1,
int aY1,
int aX2,
int aY2)
169 pt1 = QPoint(aX1, aY1);
170 pt2 = QPoint(aX2, aY2);
173#if QT_CORE_REMOVED_SINCE(6
, 8
)
174constexpr inline bool QLine::operator==(
const QLine &d)
const noexcept
176 return comparesEqual(*
this, d);
180#ifndef QT_NO_DEBUG_STREAM
181Q_CORE_EXPORT
QDebug operator<<(QDebug d,
const QLine &p);
184#ifndef QT_NO_DATASTREAM
185Q_CORE_EXPORT
QDataStream &operator<<(QDataStream &,
const QLine &);
190
191
196 enum IntersectionType { NoIntersection, BoundedIntersection, UnboundedIntersection };
197 using IntersectType = IntersectionType;
199 constexpr inline QLineF();
200 constexpr inline QLineF(
const QPointF &pt1,
const QPointF &pt2);
201 constexpr inline QLineF(qreal x1, qreal y1, qreal x2, qreal y2);
202 constexpr inline QLineF(
const QLine &line) : pt1(line.p1()), pt2(line.p2()) { }
204 [[nodiscard]]
static QLineF fromPolar(qreal length, qreal angle);
206 constexpr bool isNull()
const;
208 constexpr inline QPointF p1()
const;
209 constexpr inline QPointF p2()
const;
211 constexpr inline qreal x1()
const;
212 constexpr inline qreal y1()
const;
214 constexpr inline qreal x2()
const;
215 constexpr inline qreal y2()
const;
217 constexpr inline qreal dx()
const;
218 constexpr inline qreal dy()
const;
220 qreal length()
const;
221 void setLength(qreal len);
224 void setAngle(qreal angle);
226 qreal angleTo(
const QLineF &l)
const;
228 [[nodiscard]] QLineF unitVector()
const;
229 [[nodiscard]]
constexpr inline QLineF normalVector()
const;
231 IntersectionType intersects(
const QLineF &l, QPointF *intersectionPoint =
nullptr)
const;
233 constexpr inline QPointF pointAt(qreal t)
const;
234 constexpr inline void translate(
const QPointF &p);
235 constexpr inline void translate(qreal dx, qreal dy);
237 [[nodiscard]]
constexpr inline QLineF translated(
const QPointF &p)
const;
238 [[nodiscard]]
constexpr inline QLineF translated(qreal dx, qreal dy)
const;
240 [[nodiscard]]
constexpr inline QPointF center()
const;
242 inline void setP1(
const QPointF &p1);
243 inline void setP2(
const QPointF &p2);
244 inline void setPoints(
const QPointF &p1,
const QPointF &p2);
245 inline void setLine(qreal x1, qreal y1, qreal x2, qreal y2);
247#if QT_CORE_REMOVED_SINCE(6
, 8
)
248 constexpr inline bool operator==(
const QLineF &d)
const;
249 constexpr inline bool operator!=(
const QLineF &d)
const {
return !operator==(d); }
252 constexpr QLine toLine()
const;
255 friend constexpr bool comparesEqual(
const QLineF &lhs,
const QLineF &rhs)
noexcept
256 {
return lhs.pt1 == rhs.pt1 && lhs.pt2 == rhs.pt2; }
257#if !QT_CORE_REMOVED_SINCE(6
, 8
)
258 Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(QLineF)
261 friend constexpr bool comparesEqual(
const QLineF &lhs,
const QLine &rhs)
noexcept
262 {
return comparesEqual(lhs, rhs.toLineF()); }
263 Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(QLineF, QLine)
265 friend constexpr bool qFuzzyCompare(
const QLineF &lhs,
const QLineF &rhs)
noexcept
266 {
return qFuzzyCompare(lhs.pt1, rhs.pt1) && qFuzzyCompare(lhs.pt2, rhs.pt2); }
268 friend constexpr bool qFuzzyIsNull(
const QLineF &line)
noexcept
269 {
return qFuzzyCompare(line.pt1, line.pt2); }
276
277
279constexpr inline QLineF::QLineF()
283constexpr inline QLineF::QLineF(
const QPointF &apt1,
const QPointF &apt2)
284 : pt1(apt1), pt2(apt2)
288constexpr inline QLineF::QLineF(qreal x1pos, qreal y1pos, qreal x2pos, qreal y2pos)
289 : pt1(x1pos, y1pos), pt2(x2pos, y2pos)
293constexpr inline qreal QLineF::x1()
const
298constexpr inline qreal QLineF::y1()
const
303constexpr inline qreal QLineF::x2()
const
308constexpr inline qreal QLineF::y2()
const
313constexpr inline bool QLineF::isNull()
const
315 return qFuzzyCompare(pt1, pt2);
318constexpr inline QPointF QLineF::p1()
const
323constexpr inline QPointF QLineF::p2()
const
328constexpr inline qreal QLineF::dx()
const
330 return pt2.x() - pt1.x();
333constexpr inline qreal QLineF::dy()
const
335 return pt2.y() - pt1.y();
338constexpr inline QLineF QLineF::normalVector()
const
340 return QLineF(p1(), p1() + QPointF(dy(), -dx()));
343constexpr inline void QLineF::translate(
const QPointF &point)
349constexpr inline void QLineF::translate(qreal adx, qreal ady)
351 this->translate(QPointF(adx, ady));
354constexpr inline QLineF QLineF::translated(
const QPointF &p)
const
356 return QLineF(pt1 + p, pt2 + p);
359constexpr inline QLineF QLineF::translated(qreal adx, qreal ady)
const
361 return translated(QPointF(adx, ady));
364constexpr inline QPointF QLineF::center()
const
366 return QPointF(0.5 * pt1.x() + 0.5 * pt2.x(), 0.5 * pt1.y() + 0.5 * pt2.y());
369inline void QLineF::setLength(qreal len)
371 Q_ASSERT(qIsFinite(len));
372 const qreal oldLength = length();
373 Q_ASSERT(qIsFinite(oldLength));
377 pt2 = QPointF(pt1.x() + len * (dx() / oldLength), pt1.y() + len * (dy() / oldLength));
380constexpr inline QPointF QLineF::pointAt(qreal t)
const
382 return QPointF(pt1.x() + (pt2.x() - pt1.x()) * t, pt1.y() + (pt2.y() - pt1.y()) * t);
385constexpr inline QLineF QLine::toLineF()
const noexcept {
return *
this; }
387constexpr inline QLine QLineF::toLine()
const
389 return QLine(pt1.toPoint(), pt2.toPoint());
393inline void QLineF::setP1(
const QPointF &aP1)
398inline void QLineF::setP2(
const QPointF &aP2)
403inline void QLineF::setPoints(
const QPointF &aP1,
const QPointF &aP2)
409inline void QLineF::setLine(qreal aX1, qreal aY1, qreal aX2, qreal aY2)
411 pt1 = QPointF(aX1, aY1);
412 pt2 = QPointF(aX2, aY2);
415#if QT_CORE_REMOVED_SINCE(6
, 8
)
416constexpr inline bool QLineF::operator==(
const QLineF &d)
const
418 return comparesEqual(*
this, d);
423#ifndef QT_NO_DEBUG_STREAM
424Q_CORE_EXPORT
QDebug operator<<(QDebug d,
const QLineF &p);
427#ifndef QT_NO_DATASTREAM
428Q_CORE_EXPORT
QDataStream &operator<<(QDataStream &,
const QLineF &);
The QAssociativeIterable class is an iterable interface for an associative container in a QVariant.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
QCborArray toArray(const QCborArray &a) const
QCborMap toMap(const QCborMap &m) const
QVariant toVariant() const
QCborValueConstRef & operator=(const QCborValueConstRef &)=delete
QCborArray toArray() const
static Q_CORE_EXPORT double concreteDouble(QCborValueConstRef that, double defaultValue) noexcept Q_DECL_PURE_FUNCTION
bool toBool(bool defaultValue=false) const
QCborValue taggedValue(const QCborValue &defaultValue=QCborValue()) const
QCborSimpleType toSimpleType(QCborSimpleType defaultValue=QCborSimpleType::Undefined) const
bool isSimpleType() const
bool isRegularExpression() const
QCborValue::Type type() const
QCborValueConstRef(const QCborValueConstRef &)=default
QCborTag tag(QCborTag defaultValue=QCborTag(-1)) const
constexpr QCborValueConstRef()
QByteArray toByteArray(const QByteArray &defaultValue={}) const
qint64 toInteger(qint64 defaultValue=0) const
bool isSimpleType(QCborSimpleType st) const
QUuid toUuid(const QUuid &defaultValue={}) const
QCborContainerPrivate * d
QAnyStringView toStringView(QAnyStringView defaultValue={}) const
friend bool comparesEqual(const QCborValueConstRef &lhs, const QCborValueConstRef &rhs) noexcept
friend bool comparesEqual(const QCborValueConstRef &lhs, const QCborValue &rhs) noexcept
QString toDiagnosticNotation(QCborValue::DiagnosticNotationOptions opt=QCborValue::Compact) const
int compare(const QCborValue &other) const
friend Qt::strong_ordering compareThreeWay(const QCborValueConstRef &lhs, const QCborValue &rhs) noexcept
operator QCborValue() const
friend Qt::strong_ordering compareThreeWay(const QCborValueConstRef &lhs, const QCborValueConstRef &rhs) noexcept
static Q_CORE_EXPORT bool concreteBoolean(QCborValueConstRef that, bool defaultValue) noexcept Q_DECL_PURE_FUNCTION
constexpr QCborValueConstRef(QCborContainerPrivate *dd, qsizetype ii)
QCborValue concrete() const noexcept
QString toString(const QString &defaultValue={}) const
QUrl toUrl(const QUrl &defaultValue={}) const
QJsonValue toJsonValue() const
double toDouble(double defaultValue=0) const
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
friend bool comparesEqual(const QJsonValueConstRef &lhs, const QJsonValue &rhs)
constexpr QJsonValueConstRef(QCborContainerPrivate *d, size_t index, bool is_object)
friend bool comparesEqual(const QJsonValueConstRef &lhs, const QJsonValueConstRef &rhs)
static Q_CORE_EXPORT bool concreteBool(QJsonValueConstRef self, bool defaultValue) noexcept Q_DECL_PURE_FUNCTION
static Q_CORE_EXPORT double concreteDouble(QJsonValueConstRef self, double defaultValue) noexcept Q_DECL_PURE_FUNCTION
operator QJsonValue() const
QAnyStringView objectKeyView() const
void rebind(QJsonValueConstRef other)
QString objectKey() const
QAnyStringView toStringView(QAnyStringView defaultValue={}) const
QJsonValueConstRef(const QJsonValueConstRef &)=default
qint64 toInteger(qint64 defaultValue=0) const
bool toBool(bool defaultValue=false) const
QJsonValueConstRef & operator=(const QJsonValueConstRef &)=delete
QString toString(const QString &defaultValue={}) const
QJsonValue::Type type() const
QJsonValueConstRef(QJsonArray *array, qsizetype idx)
QCborContainerPrivate * d
QJsonValueConstRef(QJsonObject *object, qsizetype idx)
double toDouble(double defaultValue=0) const
int toInt(int defaultValue=0) const
const QJsonValue operator[](QStringView key) const
\inmodule QtCore\reentrant
\inmodule QtCore\compares equality \compareswith equality QLine \endcompareswith
\inmodule QtCore\compares equality \compareswith equality QLineF \endcompareswith
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
The QSequentialIterable class is an iterable interface for a container in a QVariant.
Combined button and popup list for selecting options.
QMutableListIterator< QByteArray > QMutableByteArrayListIterator
Q_DECLARE_TYPEINFO(QByteArrayView, Q_PRIMITIVE_TYPE)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
QList< QVariant > QVariantList
Q_DECLARE_TYPEINFO(QLine, Q_PRIMITIVE_TYPE)
Q_DECLARE_TYPEINFO(QLineF, Q_PRIMITIVE_TYPE)
#define qCWarning(category,...)
#define Q_STATIC_LOGGING_CATEGORY(name,...)
\inmodule QtCore\reentrant
QString errorString() const
\variable QCborParserError::offset