diff options
Diffstat (limited to 'src/positioning/qgeoshape.cpp')
-rw-r--r-- | src/positioning/qgeoshape.cpp | 449 |
1 files changed, 0 insertions, 449 deletions
diff --git a/src/positioning/qgeoshape.cpp b/src/positioning/qgeoshape.cpp deleted file mode 100644 index 7ab32b60..00000000 --- a/src/positioning/qgeoshape.cpp +++ /dev/null @@ -1,449 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qgeoshape.h" -#include "qgeoshape_p.h" -#include "qgeorectangle.h" -#include "qgeocircle.h" -#include "qgeopath.h" -#include "qgeopolygon.h" - - -#ifndef QT_NO_DEBUG_STREAM -#include <QtCore/QDebug> -#endif - -#ifndef QT_NO_DATASTREAM -#include <QtCore/QDataStream> -#endif - -QT_BEGIN_NAMESPACE - -QGeoShapePrivate::QGeoShapePrivate(QGeoShape::ShapeType type) -: type(type) -{ -} - -QGeoShapePrivate::~QGeoShapePrivate() -{ -} - -bool QGeoShapePrivate::operator==(const QGeoShapePrivate &other) const -{ - return type == other.type; -} - -/*! - \class QGeoShape - \inmodule QtPositioning - \ingroup QtPositioning-positioning - \since 5.2 - - \brief The QGeoShape class defines a geographic area. - - This class is the base class for classes which specify a geographic - area. - - For the sake of consistency, subclasses should describe the specific - details of the associated areas in terms of QGeoCoordinate instances - and distances in meters. - - This class is a \l Q_GADGET since Qt 5.5. It can be - \l{Cpp_value_integration_positioning}{directly used from C++ and QML}. -*/ - -/*! - \enum QGeoShape::ShapeType - - Describes the type of the shape. - - \value UnknownType A shape of unknown type - \value RectangleType A rectangular shape - \value CircleType A circular shape - \value PathType A path type - \value PolygonType A polygon type -*/ - -/*! - \property QGeoShape::type - \brief This property holds the type of this geo shape. - - While this property is introduced in Qt 5.5, the related accessor functions - exist since the first version of this class. - - \since 5.5 -*/ - -/*! - \property QGeoShape::isValid - \brief This property holds the validity of the geo shape. - - A geo shape is considered to be invalid if some of the data that is required to - unambiguously describe the geo shape has not been set or has been set to an - unsuitable value depending on the subclass of this object. The default constructed - objects of this type are invalid. - - While this property is introduced in Qt 5.5, the related accessor functions - exist since the first version of this class. - - \since 5.5 -*/ - -/*! - \property QGeoShape::isEmpty - \brief This property defines whether this geo shape is empty. - - An empty geo shape is a region which has a geometrical area of 0. - - While this property is introduced in Qt 5.5, the related accessor functions - exist since the first version of this class. - - \since 5.5 -*/ -inline QGeoShapePrivate *QGeoShape::d_func() -{ - return static_cast<QGeoShapePrivate *>(d_ptr.data()); -} - -inline const QGeoShapePrivate *QGeoShape::d_func() const -{ - return static_cast<const QGeoShapePrivate *>(d_ptr.constData()); -} - -/*! - Constructs a new invalid geo shape of \l UnknownType. -*/ -QGeoShape::QGeoShape() -{ -} - -/*! - Constructs a new geo shape which is a copy of \a other. -*/ -QGeoShape::QGeoShape(const QGeoShape &other) -: d_ptr(other.d_ptr) -{ -} - -/*! - \internal -*/ -QGeoShape::QGeoShape(QGeoShapePrivate *d) -: d_ptr(d) -{ -} - -bool QGeoShape::equals(const QGeoShape &lhs, const QGeoShape &rhs) -{ - if (lhs.d_func() == rhs.d_func()) - return true; - - if (!lhs.d_func() || !rhs.d_func()) - return false; - - return *lhs.d_func() == *rhs.d_func(); -} - -/*! - Destroys this geo shape. -*/ -QGeoShape::~QGeoShape() -{ -} - -/*! - Returns the type of this geo shape. -*/ -QGeoShape::ShapeType QGeoShape::type() const -{ - Q_D(const QGeoShape); - - if (d) - return d->type; - else - return UnknownType; -} - -/*! - Returns whether this geo shape is valid. - -*/ -bool QGeoShape::isValid() const -{ - Q_D(const QGeoShape); - - if (d) - return d->isValid(); - else - return false; -} - -/*! - Returns whether this geo shape is empty. - - An empty geo shape is a region which has a geometrical area of 0. -*/ -bool QGeoShape::isEmpty() const -{ - Q_D(const QGeoShape); - - if (d) - return d->isEmpty(); - else - return true; -} - -/*! - Returns whether the coordinate \a coordinate is contained within this geo shape. -*/ -bool QGeoShape::contains(const QGeoCoordinate &coordinate) const -{ - Q_D(const QGeoShape); - - if (d) - return d->contains(coordinate); - else - return false; -} - -/*! - Returns a QGeoRectangle representing the geographical bounding rectangle of the - geo shape, that defines the latitudinal/longitudinal bounds of the geo shape. - - \since 5.9 -*/ -QGeoRectangle QGeoShape::boundingGeoRectangle() const -{ - Q_D(const QGeoShape); - - if (d) - return d->boundingGeoRectangle(); - else - return QGeoRectangle(); -} - -/*! - Returns the coordinate located at the geometric center of the geo shape. - - \since 5.5 -*/ -QGeoCoordinate QGeoShape::center() const -{ - Q_D(const QGeoShape); - - if (d) - return d->center(); - else - return QGeoCoordinate(); -} - -/*! - \fn bool QGeoShape::operator==(const QGeoShape &lhs, const QGeoShape &rhs) - - Returns \c true if the \a lhs geo shape is equivalent to the \a rhs geo - shape, otherwise returns \c false. -*/ - -/*! - \fn bool QGeoShape::operator!=(const QGeoShape &lhs, const QGeoShape &rhs) - - Returns \c true if the \a lhs geo shape is not equivalent to the \a rhs geo - shape, otherwise returns \c false. -*/ - -/*! - Assigns \a other to this geo shape and returns a reference to this geo shape. -*/ -QGeoShape &QGeoShape::operator=(const QGeoShape &other) -{ - if (this == &other) - return *this; - - d_ptr = other.d_ptr; - return *this; -} - -/*! - Returns a string representation of this geo shape. - - \since 5.5 -*/ -QString QGeoShape::toString() const -{ - return QStringLiteral("QGeoShape(%1)").arg(type()); -} - -#ifndef QT_NO_DEBUG_STREAM -QDebug QGeoShape::debugStreaming(QDebug dbg, const QGeoShape &shape) -{ - QDebugStateSaver saver(dbg); - dbg.nospace() << "QGeoShape("; - switch (shape.type()) { - case QGeoShape::UnknownType: - dbg << "Unknown"; - break; - case QGeoShape::RectangleType: - dbg << "Rectangle"; - break; - case QGeoShape::PathType: - dbg << "Path"; - break; - case QGeoShape::PolygonType: - dbg << "Polygon"; - break; - case QGeoShape::CircleType: - dbg << "Circle"; - } - - dbg << ')'; - - return dbg; -} -#endif - -#ifndef QT_NO_DATASTREAM -QDataStream &QGeoShape::dataStreamOut(QDataStream &stream, const QGeoShape &shape) -{ - stream << quint32(shape.type()); - switch (shape.type()) { - case QGeoShape::UnknownType: - break; - case QGeoShape::RectangleType: { - QGeoRectangle r = shape; - stream << r.topLeft() << r.bottomRight(); - break; - } - case QGeoShape::CircleType: { - QGeoCircle c = shape; - stream << c.center() << c.radius(); - break; - } - case QGeoShape::PathType: { - QGeoPath p = shape; - stream << p.width(); - stream << p.path().size(); - for (const auto &c: p.path()) - stream << c; - break; - } - case QGeoShape::PolygonType: { - QGeoPolygon p = shape; - stream << p.perimeter().size(); - for (const auto &c: p.perimeter()) - stream << c; - break; - } - } - - return stream; -} - -QDataStream &QGeoShape::dataStreamIn(QDataStream &stream, QGeoShape &shape) -{ - quint32 type; - stream >> type; - - switch (type) { - case QGeoShape::UnknownType: - shape = QGeoShape(); - break; - case QGeoShape::RectangleType: { - QGeoCoordinate tl; - QGeoCoordinate br; - stream >> tl >> br; - shape = QGeoRectangle(tl, br); - break; - } - case QGeoShape::CircleType: { - QGeoCoordinate c; - qreal r; - stream >> c >> r; - shape = QGeoCircle(c, r); - break; - } - case QGeoShape::PathType: { - QList<QGeoCoordinate> l; - QGeoCoordinate c; - qreal width; - stream >> width; - qsizetype sz; - stream >> sz; - for (qsizetype i = 0; i < sz; i++) { - stream >> c; - l.append(c); - } - shape = QGeoPath(l, width); - break; - } - case QGeoShape::PolygonType: { - QList<QGeoCoordinate> l; - QGeoCoordinate c; - qsizetype sz; - stream >> sz; - for (qsizetype i = 0; i < sz; i++) { - stream >> c; - l.append(c); - } - shape = QGeoPolygon(l); - break; - } - } - - return stream; -} -#endif - -/*! - \relates QGeoShape - - Returns the hash value for the \a shape, using \a seed for the - calculation. -*/ -size_t qHash(const QGeoShape &shape, size_t seed) noexcept -{ - if (shape.d_ptr) - return shape.d_ptr->hash(seed); - else - return qHashMulti(seed, shape.type()); -} - -QT_END_NAMESPACE - -#include "moc_qgeoshape.cpp" - |