00001 #ifndef __LODmap__
00002 #define __LODmap__
00003
00004 #include "TileData.h"
00005 #include "Log.h"
00006
00007 #include <list>
00008
00009
00010
00011 class LODMap
00012 {
00013 public:
00014 int dx[16], dy[16], x0[16], y0[16];
00015
00016
00017 LODMap(int _xMin=0, int _xMax=1, int _yMin=0, int _yMax=1, int _levels=1);
00018 ~LODMap();
00019
00020 void Initialize(int _xMin=0, int _xMax=1, int _yMin=0, int _yMax=1, int _levels=1);
00021
00022 void SetTile(int i, int j, int lod, TileData* tileData);
00023 void AddTile(TileData* data, int lod=0);
00024 TileData* GetTile(int i, int j, int lod);
00025 void TrimData(std::list <TileData>* displayList, std::list <TileData*>* addList, std::list <TileData>* removeList);
00026 void Reset();
00027
00028 private:
00029 TileData*** map;
00030 TileData* dummyTile;
00031 int xMin, yMin, xMax, yMax, levels;
00032 Log myLog;
00033
00034 TileData* FindValidTile(int i, int j, int lod);
00035 void ClearList(std::list<TileData>* lista);
00036 };
00037
00038 #endif
00039