00001 #ifndef TERRAIN_H 00002 #define TERRAIN_H 00003 00004 #include "irrlicht.h" 00005 00007 00010 class Terrain 00011 { 00012 public: 00013 00023 Terrain(irr::IrrlichtDevice* d, 00024 irr::core::stringc FileName, 00025 irr::core::stringc textureFileName_1, 00026 irr::core::stringc textureFileName_2); 00027 00029 ~Terrain(); 00030 00032 irr::core::vector3df getCenter(void); 00033 00037 irr::scene::ITriangleSelector* getCollisionTriangles(void); 00038 00039 protected: 00040 00041 private: 00042 00043 enum buildFromFileType 00044 { 00045 FILE_TYPE_BMP = 0, 00046 FILE_TYPE_3DS = 1 00047 }; 00048 00049 void loadFromHeightmap(irr::core::stringc heightMapFileName, 00050 irr::core::stringc textureFileName_1, 00051 irr::core::stringc textureFileName_2); 00052 void loadFrom3ds(irr::core::stringc FileName3ds, 00053 irr::core::stringc textureFileName_1, 00054 irr::core::stringc textureFileName_2); 00055 bool stringHasExtension(irr::core::stringc s, 00056 irr::core::stringc extension); 00057 void loadSkyBox(void); 00058 00059 irr::IrrlichtDevice* device; 00060 irr::scene::ITerrainSceneNode* terrain; 00061 irr::scene:: ITriangleSelector* collisionTriangles; 00062 buildFromFileType fileType; 00063 }; 00064 #endif // TERRAIN_H