Ignore:
Timestamp:
04/21/05 19:33:56 (19 years ago)
Author:
mattausch
Message:

added TerrainContentGenerator?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/OcclusionCullingSceneManager/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r52 r55  
    2020#include "windows.h" 
    2121 
    22 //RaySceneQuery* mRaySceneQuery = 0; 
    23  
    24 /***********************************************/ 
    25 /* TestCullingTerrainApplication implementation       */ 
    26 /***********************************************/ 
    27 /*TestCullingTerrainApplication::~TestCullingTerrainApplication() 
    28 { 
    29         delete mRaySceneQuery; 
    30 }*/ 
     22 
     23/************************************************/ 
     24/* TestCullingTerrainApplication implementation */ 
     25/************************************************/ 
     26TestCullingTerrainApplication::~TestCullingTerrainApplication() 
     27{ 
     28        delete mRayQueryExecutor; 
     29        delete mTerrainContentGenerator; 
     30} 
     31 
    3132//----------------------------------------------------------------------- 
    3233void TestCullingTerrainApplication::createCamera( void ) 
     
    4041        // Look back along -Z 
    4142    mCamera->lookAt(Vector3(0,0,-300)); 
    42     mCamera->setNearClipDistance( 1 ); 
    43     mCamera->setFarClipDistance( 1000 ); 
    44 } 
    45 //----------------------------------------------------------------------- 
    46 void TestCullingTerrainApplication::createScene(void) 
    47 { 
     43    mCamera->setNearClipDistance(1); 
     44    mCamera->setFarClipDistance(1000); 
     45} 
     46//----------------------------------------------------------------------- 
     47void TestCullingTerrainApplication::generateSceneObject(const Vector3 &translationRatio,  
     48                                         const Vector3 &rotationRatio, const int idx, const String& entName) 
     49{ 
     50        // Setup the ray scene query 
     51        /*Vector3 rotation = mMinAngle + rotationRatio * (mMaxAngle - mMinAngle); 
     52        Vector3 translation = mMinTranslation + translationRatio * (mMaxTranslation - mMinTranslation); 
     53 
     54        translation.y = 5000; 
     55    Ray ray(translation, Vector3::NEGATIVE_UNIT_Y); 
     56    mRaySceneQuery->setRay(ray); 
     57 
     58    // Execute query 
     59        RaySceneQueryResult &result = mRaySceneQuery->execute(); 
     60        RaySceneQueryResult::iterator itr = result.begin( ); 
     61 
     62        // Get results, create a node/entity on the position 
     63        if ( itr != result.end() && itr->worldFragment ) 
     64        { 
     65                char name[16]; 
     66                sprintf( name, "%s%d", entName.c_str(), mCount++ ); 
     67 
     68                Entity *ent = mSceneMgr->createEntity( name, entName ); 
     69                SceneNode currentObject = mSceneMgr->getRootSceneNode( )->createChildSceneNode( String(name) + "Node", itr->worldFragment->singleIntersection ); 
     70                currentObject->attachObject( ent ); 
     71                currentObject->setScale( 0.1f, 0.1f, 0.1f ); 
     72        }*/ 
     73} 
     74 
     75//----------------------------------------------------------------------- 
     76void TestCullingTerrainApplication::createScene( void ) 
     77{ 
     78        mRayQueryExecutor = new RayQueryExecutor(mSceneMgr); 
     79        mTerrainContentGenerator = new TerrainContentGenerator(mSceneMgr, mRayQueryExecutor); 
    4880        // Set ambient light 
    4981        mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5)); 
     
    6294        mWindow->getViewport(0)->setBackgroundColour(fadeColour); 
    6395        //mSceneMgr->setFog( FOG_LINEAR, fadeColour, .001, 500, 1000); 
    64     //mSceneMgr->setFog( FOG_EXP, fadeColour, 0.005 ); 
    65  
    66          
    6796 
    6897        // Create a skybox 
     
    94123        mCamera->setOrientation(Quaternion(-0.3486, 0.0122, 0.9365, 0.0329)); 
    95124 
    96         /* 
    97         Entity *robotEnt = mSceneMgr->createEntity( "Robot", "robot.mesh" ); 
    98         SceneNode *robotNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( "RobotNode", Vector3( 750, 25, 600 )); 
    99         robotNode->attachObject( robotEnt ); 
    100         robotNode->scale( .3, .3, .3 ); 
    101         robotNode->yaw( Degree( 160 ) ); 
    102  
    103         Entity *ogreEnt = mSceneMgr->createEntity( "Ogre", "ogrehead.mesh" ); 
    104     SceneNode *ogreNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( "Ogre", Vector3( 800, 50, 830 ) ); 
    105     ogreNode->attachObject( ogreEnt ); 
    106         ogreNode->scale(.2,.2,.2); 
    107         ogreNode->yaw( Degree( 20 ) ); 
    108  
    109         Entity *ogreEnt2 = mSceneMgr->createEntity( "Ogre2", "ogrehead.mesh" ); 
    110     SceneNode *ogreNode2 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "Ogre2", Vector3( 700, 50, 730 ) ); 
    111     ogreNode2->attachObject( ogreEnt2 ); 
    112         ogreNode2->scale(.05,.05,.05); 
    113         ogreNode->yaw( Degree( 40 ) );*/ 
    114  
    115125        // CEGUI setup 
    116126        setupGui(); 
     
    133143void TestCullingTerrainApplication::createFrameListener(void) 
    134144{ 
    135         mFrameListener= new MouseQueryListener(mWindow, mCamera, mSceneMgr, mGUIRenderer); 
     145        mFrameListener= new MouseQueryListener(mWindow, mCamera, mSceneMgr, mGUIRenderer, mRayQueryExecutor); 
    136146        mFrameListener->showDebugOverlay(true); 
    137147        mRoot->addFrameListener(mFrameListener); 
     
    148158/***********************************************/ 
    149159//----------------------------------------------------------------------- 
    150 MouseQueryListener::MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer) 
    151         : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer),  
    152                 mShutdownRequested(false) 
     160MouseQueryListener::MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer, RayQueryExecutor *rqe) 
     161        : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShutdownRequested(false), mRayQueryExecutor(rqe) 
    153162{ 
    154163 
     
    171180        mEventProcessor->addKeyListener(this); 
    172181 
    173         mRaySceneQuery = mSceneMgr->createRayQuery( Ray() ); 
     182        mRaySceneQuery = mSceneMgr->createRayQuery(Ray()); 
    174183 
    175184        // show overlay 
Note: See TracChangeset for help on using the changeset viewer.