Removed magic number used for undefined values
[situare] / src / map / maptile.h
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5        Sami Rämö - sami.ramo@ixonos.com
6
7    Situare is free software; you can redistribute it and/or
8    modify it under the terms of the GNU General Public License
9    version 2 as published by the Free Software Foundation.
10
11    Situare is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with Situare; if not, write to the Free Software
18    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19    USA.
20 */
21
22 /// \author Sami Rämö - sami.ramo (at) ixonos.com
23
24 #ifndef MAPTILE_H
25 #define MAPTILE_H
26
27 #include <QGraphicsPixmapItem>
28 #include <QPoint>
29
30 /// \brief Map tile item
31 class MapTile : public QGraphicsPixmapItem
32 {
33 public:
34     /// \brief Constructor
35     MapTile();
36
37     /// \brief Getter for zoom level
38     ///
39     /// \return Zoom level
40     int zoomLevel();
41
42     /// \brief Setter for zoom level
43     ///
44     /// Does also set the position for the item in the MapScene coordinate system
45     /// \param zoomLevel Zoom level
46     void setZoomLevel(int zoomLevel);
47
48     /// \brief Getter for tile number
49     ///
50     /// \return Tile number
51     QPoint tileNumber();
52
53     /// \brief Setter for tile number
54     ///
55     /// Does also set the position for the item in the MapScene coordinate system
56     /// \param tileNumber Tile number
57     void setTileNumber(QPoint tileNumber);
58
59 private:
60     /// \brief Set position of the tile in the MapScene coordinate system
61     ///
62     /// Does set the position based on the m_zoomLevel and the m_TileNumber. Position is set to
63     /// (UNDEFINED, UNDEFINED) if there is something wrong with zoom level or tile numbers
64     void setPosition();
65
66 public:
67     /// \var UNDEFINED
68     /// \brief Value to be used when zoom level, tile numbers or position are not defined
69     static const int UNDEFINED = -1;
70
71 private:
72     int m_zoomLevel; ///< Zoom level
73     QPoint m_tileNumber; ///< Tile number
74 };
75
76 #endif // MAPTILE_H