00001 #ifndef __Tile__ 00002 #define __Tile__ 00003 00004 #include "Log.h" 00005 00006 00007 #include <sys/stat.h> 00008 00009 #include <osg/StateSet> 00010 #include <osg/Texture2d> 00011 00012 class TerrainDatabase; 00013 00014 00015 class Tile 00016 { 00017 public: 00018 int size, imageSize, lod, x, y; 00019 int dataSize; 00020 byte* bitmap; 00021 float* heightmap; 00022 float pixelSize, diameter; 00023 osg::ref_ptr<osg::StateSet> stateset; 00024 00025 Tile(int _x, int _y, int _lod, TerrainDatabase* _database=0); 00026 ~Tile(); 00027 00028 void Init(int _size, int _imageSize, int _x, int _y, int _lod, float _pixelSize=1., TerrainDatabase* _database=0); 00029 void ImportHeightmap(float* map, int stride=0); 00030 void AllocateHeightmap(); 00031 void AllocateBitmap(); 00032 void CreateStateSet(); 00033 00034 float GetHeight(int _x, int _y); 00035 int LODMultiplier(int _lod); 00036 00037 private: 00038 TerrainDatabase* database; 00039 osg::ref_ptr<osg::Image> terrainImage, normalImage, baseImage; 00040 00041 00042 Log myLog; 00043 }; 00044 00045 #endif