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