#ifndef _TERRAINCONTENTGENERATOR_H__ #define _TERRAINCONTENTGENERATOR_H__ #include "SceneContentGenerator.h" #include namespace Ogre { /** Class which executes a simple ray query. */ class RayQueryExecutor { public: RayQueryExecutor(SceneManager *sm); ~RayQueryExecutor(); bool executeRayQuery(Vector3 *result, const Vector3 &pos, const Vector3 &dir); bool RayQueryExecutor::executeRayQuery( Vector3 *result, const Ray &ray); protected: RaySceneQuery *mRaySceneQuery; }; /** Class which fills a terrain with content in a random fashion */ class TerrainContentGenerator: public SceneContentGenerator { public: TerrainContentGenerator(SceneManager *sm); ~TerrainContentGenerator(); SceneNode *GenerateSceneObject(const Vector3 &position, const Vector3 &rotation, const String &objName); void SetMaxHeight(Real maxHeight); RayQueryExecutor *GetRayQueryExecutor(); protected: RayQueryExecutor *mRayQueryExecutor; Real mMaxHeight; }; } // namespace Ogre #endif // _TERRAINCONTENTGENERATOR_H