/** \file TerrainContentGenerator.h */ #include "ExampleApplication.h" class RayQueryExecutor { public: RayQueryExecutor( SceneManager *sm ); ~RayQueryExecutor( ); bool executeRayQuery( Vector3 *result, const Vector3 &pos, const Vector3 &dir ); protected: RaySceneQuery *mRaySceneQuery; }; class TerrainContentGenerator { public: TerrainContentGenerator( SceneManager *sm, RayQueryExecutor *rayQueryEx ); /** generates a the scene hierarchy with random values @param number of objects to generate */ void generateScene( int numObjects ); /** generates a new scene object @param tranlationRatio ratio between minimal and maximal possible translation @param rotationRatio ratio between minimal and maximal possible rotation @idx the index of the new object @entName the name of the object entity */ void generateSceneObject( const Vector3 &translationRatio, const Vector3 &rotationRatio, const int idx, const String &entName ); protected: Real mMinAngle; Real mMaxAngle; Vector3 mMaxTranslation; Vector3 mMinTranslation; RayQueryExecutor *mRayQueryExecutor; SceneManager *mSceneMgr; int mCount; // The number of objects on the screen };