Bitstream Interpretation Library (BIL)  0.1
Tile.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_TILE_HPP
8 #define BIL_TILE_HPP
9 
10 #include <serialization/TileBS.hpp>
12 
13 
14 namespace bil {
15 
29  class Tile {
30  public:
31 
32  /**********************************************************************/
33  /* CONSTRUCTION / DESTRUCTION */
34  /**********************************************************************/
35 
39  Tile();
40 
41 
42  /**********************************************************************/
43  /* TILE NAME */
44  /**********************************************************************/
45 
50  std::string& name();
51 
56  const std::string& name() const;
57 
58 
59  /**********************************************************************/
60  /* PRIMITIVE SITE INSTANCES */
61  /**********************************************************************/
62 
68 
73  const PrimitiveSites& primitiveSites() const;
74 
75 
76  /**********************************************************************/
77  /* POSITION IN TILE GRID */
78  /**********************************************************************/
79 
84  void row(unsigned short row);
85 
90  unsigned short row() const;
91 
96  void column(unsigned short column);
97 
102  unsigned short column() const;
103 
104 
105  /**********************************************************************/
106  /* POSITION IN SITE GRID */
107  /**********************************************************************/
108 
113  void siteX(unsigned short x);
114 
119  unsigned short siteX() const;
120 
125  void siteY(unsigned short y);
126 
131  unsigned short siteY() const;
132 
133 
134  /**********************************************************************/
135  /* TILE TYPE INDEX */
136  /**********************************************************************/
137 
142  void typeIndex(unsigned short index);
143 
148  unsigned short typeIndex() const;
149 
150 
151  /**********************************************************************/
152  /* MODIFICATORS */
153  /**********************************************************************/
154 
158  void clear();
159 
160 
161  private:
162 
163  friend void writeBinary(const Tile& data, std::ostream& outputStream);
164  friend void readBinary(Tile& data, std::istream& inputStream);
165 
166  std::string m_name;
167  PrimitiveSites m_primitiveSites;
168  unsigned short m_row;
169  unsigned short m_column;
170  unsigned short m_siteX;
171  unsigned short m_siteY;
172  unsigned short m_typeIndex;
173 
174  };
175 
177  typedef std::vector<Tile> Tiles;
178 
179 }
180 
181 #endif