File indexing completed on 2025-01-05 03:59:37

0001 /*
0002     SPDX-FileCopyrightText: 2010 Jens-Michael Hoffmann <jmho@c-xx.com>
0003     SPDX-FileCopyrightText: 2010-2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-or-later
0006 */
0007 
0008 #ifndef MARBLE_TILECOORDSPYRAMID_H
0009 #define MARBLE_TILECOORDSPYRAMID_H
0010 
0011 #include <QtGlobal>
0012 #include "digikam_export.h"
0013 
0014 class QRect;
0015 
0016 namespace Marble
0017 {
0018 
0019 class DIGIKAM_EXPORT TileCoordsPyramid
0020 {
0021  public:
0022     TileCoordsPyramid( int const topLevel, int const bottomLevel );
0023     TileCoordsPyramid( TileCoordsPyramid const & other );
0024     TileCoordsPyramid();
0025     TileCoordsPyramid & operator=( TileCoordsPyramid const & rhs );
0026     ~TileCoordsPyramid();
0027 
0028     int topLevel() const;
0029     int bottomLevel() const;
0030     void setBottomLevelCoords( QRect const & coords );
0031     QRect coords( int const level ) const;
0032 
0033     void setValidTileLevels( const QVector<int> validLevels );
0034     QVector<int> validTileLevels();
0035 
0036     /**
0037       * @brief returns the number of tiles covered by one pyramid
0038       **/
0039     qint64 tilesCount() const;
0040 
0041  private:
0042     void swap( TileCoordsPyramid & other );
0043     class Private;
0044     Private * d; // not const, needs to be swapable
0045 };
0046 
0047 }
0048 
0049 #endif