1 /*
2     SPDX-FileCopyrightText: 2005-2007 Torsten Rahn <tackat@kde.org>
3     SPDX-FileCopyrightText: 2007 Inge Wallin <ingwa@kde.org>
4     SPDX-FileCopyrightText: 2008 Patrick Spendrin <ps_ml@gmx.de>
5     SPDX-FileCopyrightText: 2008 Jens-Michael Hoffmann <jensmh@gmx.de>
6 
7     SPDX-License-Identifier: LGPL-2.0-or-later
8 */
9 
10 #ifndef MARBLE_TILELOADERHELPER_H
11 #define MARBLE_TILELOADERHELPER_H
12 
13 #include "marble_export.h"
14 
15 namespace Marble
16 {
17 
18 namespace TileLoaderHelper
19 {
20     /**
21      * @brief Get the maximum number of tile rows for a given tile level.
22      * @param levelZeroRows  the number of rows in level zero
23      * @param level  the tile level
24      * @return       the maximum number of rows that a map level was tiled into.
25      *               If the tile level number is invalid then "-1" gets
26      *               returned so this case of wrong input data can get caught
27      *               by the code which makes use of it.
28      */
29     MARBLE_EXPORT int levelToRow( int levelZeroRows, int level );
30 
31     /**
32      * @brief Get the maximum number of tile columns for a given tile level.
33      * @param levelZeroColumns  the number of columns in level zero
34      * @param level  the tile level
35      * @return       the maximum number of columns that a map level was tiled into.
36      *               If the tile level number is invalid then "-1" gets
37      *               returned so this case of wrong input data can get caught
38      *               by the code which makes use of it.
39      */
40     MARBLE_EXPORT int levelToColumn( int levelZeroColumns, int level );
41 
42     /**
43      * @brief Get the tile level for the given maximum number of tile columns.
44      * @param levelZeroRows  the number of rows in level zero
45      * @param row    the maximum number of rows that a map level was tiled into.
46      * @return       the corresponding tile level.
47      *               If the number of rows is invalid then "-1" gets
48      *               returned so this case of wrong input data can get caught
49      *               by the code which makes use of it.
50      */
51     MARBLE_EXPORT int rowToLevel( int levelZeroRows, int row );
52 
53     /**
54      * @brief Get the tile level for the given maximum number of tile columns.
55      * @param levelZeroColumns  the number of columns in level zero
56      * @param column the maximum number of columns that a map level was tiled into.
57      * @return       the corresponding tile level.
58      *               If the number of columns is invalid then "-1" gets
59      *               returned so this case of wrong input data can get caught
60      *               by the code which makes use of it.
61      */
62     MARBLE_EXPORT int columnToLevel( int levelZeroColumns, int column );
63 }
64 
65 }
66 
67 #endif // MARBLE_TILELOADERHELPER_H
68