00001 #ifndef PHX_TERRAIN_GEOMETRY_H 00002 #define PHX_TERRAIN_GEOMETRY_H 00003 00004 #include <Phx/Graphics/PhxGraphicsEngine.h> 00005 00012 namespace Phx { 00013 00018 class GraphicsEngine::TerrainGeometry : public LockedPtrInterface<TerrainGeometry> { 00019 public: 00020 class TerrainDatabase; 00021 class TerrainDatabaseDescription; 00022 00027 virtual Ptr<TerrainDatabase> terrainDatabase(void) = 0; 00028 00029 // future attributes: 00030 // detailLevel() 00031 // textureResolution() 00032 // heightResolution() 00033 // ... 00034 00038 const String& name(void) const { return mName; } 00039 00040 protected: 00041 void setName(const String& name) { mName = name; } 00042 private: 00043 String mName; 00044 }; 00045 00050 class GraphicsEngine::TerrainGeometryDescription : public Description { 00051 public: 00052 static const Description::Type DESCRIPTION_TYPE; 00053 static const String DESCRIPTION_TYPE_NAME; 00054 00055 virtual void terrainDatabase(const Ptr<const TerrainGeometry::TerrainDatabaseDescription>&) = 0; 00056 virtual Ptr<const TerrainGeometry::TerrainDatabaseDescription> terrainDatabase(void) const = 0; 00057 00058 // future attributes 00059 // detailLevel() 00060 // textureResolution() 00061 // heightResolution() 00062 // ... 00063 }; 00064 00065 }; // namespace Phx 00066 00067 #endif /* PHX_TERRAIN_GEOMETRY_H */ 00068
1.4.2