diff options
Diffstat (limited to 'src/location/qgeorectangle.h')
-rw-r--r-- | src/location/qgeorectangle.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/src/location/qgeorectangle.h b/src/location/qgeorectangle.h new file mode 100644 index 00000000..f031ab0b --- /dev/null +++ b/src/location/qgeorectangle.h @@ -0,0 +1,143 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGEORECTANGLE_H +#define QGEORECTANGLE_H + +#include <QtLocation/QGeoShape> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QGeoCoordinate; +class QGeoRectanglePrivate; + +class Q_LOCATION_EXPORT QGeoRectangle : public QGeoShape +{ +public: + QGeoRectangle(); + QGeoRectangle(const QGeoCoordinate ¢er, double degreesWidth, double degreesHeight); + QGeoRectangle(const QGeoCoordinate &topLeft, const QGeoCoordinate &bottomRight); + QGeoRectangle(const QGeoRectangle &other); + QGeoRectangle(const QGeoShape &other); + + ~QGeoRectangle(); + + QGeoRectangle &operator=(const QGeoRectangle &other); + +#ifdef Q_NO_USING_KEYWORD + bool operator==(const QGeoShape &other) const + { + return QGeoShape::operator==(other); + } +#else + using QGeoShape::operator==; +#endif + bool operator==(const QGeoRectangle &other) const; + +#ifdef Q_NO_USING_KEYWORD + bool operator!=(const QGeoShape &other) const + { + return QGeoShape::operator!=(other); + } +#else + using QGeoShape::operator!=; +#endif + bool operator!=(const QGeoRectangle &other) const; + + void setTopLeft(const QGeoCoordinate &topLeft); + QGeoCoordinate topLeft() const; + + void setTopRight(const QGeoCoordinate &topRight); + QGeoCoordinate topRight() const; + + void setBottomLeft(const QGeoCoordinate &bottomLeft); + QGeoCoordinate bottomLeft() const; + + void setBottomRight(const QGeoCoordinate &bottomRight); + QGeoCoordinate bottomRight() const; + + void setCenter(const QGeoCoordinate ¢er); + QGeoCoordinate center() const; + + void setWidth(double degreesWidth); + double width() const; + + void setHeight(double degreesHeight); + double height() const; + +#ifdef Q_NO_USING_KEYWORD + bool contains(const QGeoCoordinate &coordinate) const + { + return QGeoShape::contains(coordinate); + } +#else + using QGeoShape::contains; +#endif + bool contains(const QGeoRectangle &rectangle) const; + bool intersects(const QGeoRectangle &rectangle) const; + + void translate(double degreesLatitude, double degreesLongitude); + QGeoRectangle translated(double degreesLatitude, double degreesLongitude) const; + + QGeoRectangle united(const QGeoRectangle &rectangle) const; + QGeoRectangle operator|(const QGeoRectangle &rectangle) const; + QGeoRectangle &operator|=(const QGeoRectangle &rectangle); + +private: + inline QGeoRectanglePrivate *d_func(); + inline const QGeoRectanglePrivate *d_func() const; +}; + +inline QGeoRectangle QGeoRectangle::operator|(const QGeoRectangle &rectangle) const +{ + return united(rectangle); +} + +QT_END_NAMESPACE + +Q_DECLARE_METATYPE(QGeoRectangle) + +QT_END_HEADER + +#endif + |