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