diff options
Diffstat (limited to 'sources/shiboken6/tests/libsample/pointf.h')
-rw-r--r-- | sources/shiboken6/tests/libsample/pointf.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/sources/shiboken6/tests/libsample/pointf.h b/sources/shiboken6/tests/libsample/pointf.h new file mode 100644 index 000000000..49e009467 --- /dev/null +++ b/sources/shiboken6/tests/libsample/pointf.h @@ -0,0 +1,65 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef POINTF_H +#define POINTF_H + +#include "libsamplemacros.h" +#include "point.h" + +#include <utility> + +class LIBSAMPLE_API PointF +{ +public: + LIBMINIMAL_DEFAULT_COPY_MOVE(PointF) + + PointF(const Point &point) noexcept; + PointF(double x = 0.0, double y = 0.0) noexcept; + ~PointF() noexcept = default; + + inline double x() const { return m_x; } + inline double y() const { return m_y; } + + inline void setX(double x) { m_x = x; } + inline void setY(double y) { m_y = y; } + + // This method could simply return the midpoint, + // but the interesting part of the test is to set the + // result in the pointer argument. + void midpoint(const PointF &other, PointF *midpoint) const; + + // The != operator is not implemented for the purpose of testing + // for the absence of the __ne__ method in the Python binding. + bool operator==(const PointF &other) const; + + PointF operator+(const PointF &other); + PointF operator-(const PointF &other); + + friend LIBSAMPLE_API PointF operator*(const PointF &pt, double mult); + friend LIBSAMPLE_API PointF operator*(const PointF &pt, int mult); + friend LIBSAMPLE_API PointF operator*(double mult, const PointF &pt); + friend LIBSAMPLE_API PointF operator*(int mult, const PointF &pt); + friend LIBSAMPLE_API PointF operator-(const PointF &pt); + friend LIBSAMPLE_API bool operator!(const PointF &pt); + + PointF &operator+=(PointF &other); + PointF &operator-=(PointF &other); + + void show() const; + +private: + double m_x; + double m_y; +}; + +LIBSAMPLE_API PointF operator*(const PointF &pt, double mult); +LIBSAMPLE_API PointF operator*(const PointF &pt, int mult); +LIBSAMPLE_API PointF operator*(double mult, const PointF &pt); +LIBSAMPLE_API PointF operator*(int mult, const PointF &pt); +LIBSAMPLE_API PointF operator-(const PointF &pt); +LIBSAMPLE_API bool operator!(const PointF &pt); + +LIBSAMPLE_API PointF operator*(const PointF &pt, double multiplier); + +#endif // POINTF_H |