nuclear@4: #ifndef TERRAIN_H_ nuclear@4: #define TERRAIN_H_ nuclear@4: nuclear@4: #include nuclear@4: #include nuclear@4: nuclear@4: class TerrainNode; nuclear@4: nuclear@4: class Terrain { nuclear@4: private: nuclear@4: TerrainNode *root; nuclear@4: nuclear@4: public: nuclear@4: Terrain(); nuclear@4: ~Terrain(); nuclear@4: nuclear@4: float get_height(float x, float y) const; nuclear@4: }; nuclear@4: nuclear@4: nuclear@4: class TerrainNode { nuclear@4: private: nuclear@4: unsigned char *height; nuclear@4: nuclear@4: public: nuclear@4: TerrainNode *child[4]; nuclear@4: nuclear@4: TerrainNode(); nuclear@4: ~TerrainNode(); nuclear@4: nuclear@4: TerrainNode *get_child(float x, float y); nuclear@4: const TerrainNode *get_child(float x, float y) const; nuclear@4: nuclear@4: float get_height(float x, float y) const; nuclear@4: }; nuclear@4: nuclear@4: #endif // TERRAIN_H_