Changeset 11

Show
Ignore:
Timestamp:
06/28/09 03:57:15 (3 years ago)
Author:
nktug
Message:

Add code to handle PSLM plugin
Change type mask use by RaySceneQuery?

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/config/objects.txt

    r7 r11  
    66        OgreHead        ogrehead.mesh           MSTR    Ogre3D head mesh use for test 
    77        Ninja           ninja.mesh              NPC     Ogre3D ninja mesh use for test 
     8    Monstre              
     9        Drako   dragon.mesh             MSTR    Ogre3D head mesh use for test     
    810Flore                    
    911    Plantes              
     
    1921    Elements             
    2022        Rock            Rock1_1.mesh            BLD     test 
     23    Armes                
     24        EPEE            epee.mesh               BLD     test 
     25        BOUCLIER                bouclier.mesh           BLD     test  
  • trunk/src/LevelEditor.cc

    r10 r11  
    275275        Ogre::RaySceneQuery* tempRayQuery = mSceneMgr->createRayQuery(Ogre::Ray(node->getPosition(), Ogre::Vector3::NEGATIVE_UNIT_Y)); 
    276276        Ogre::Ray tempRay; 
     277  tempRayQuery->setQueryTypeMask(Ogre::SceneManager::WORLD_GEOMETRY_TYPE_MASK); 
     278        tempRayQuery->setWorldFragmentType(Ogre::SceneQuery::WFT_SINGLE_INTERSECTION); 
    277279        tempRay.setOrigin(node->getPosition()); 
    278280        tempRay.setDirection(Ogre::Vector3::NEGATIVE_UNIT_Y); 
     
    291293void LevelEdWidget::createScene( void ) 
    292294{ 
    293          
     295        /* 
    294296        std::string terrain_cfg("terrain.cfg"); 
    295297        mSceneMgr -> setWorldGeometry( terrain_cfg ); 
     
    298300        { 
    299301                mCamera->setFarClipDistance(0); 
    300         } 
    301  
     302        }*/ 
     303  mSceneMgr->setWorldGeometry( Ogre::String("terrain_mainMenu.cfg") ); 
    302304        // Define the required skyplane 
    303305        Ogre::Plane plane; 
     
    343345   
    344346        mCamera = mSceneMgr->createCamera("LEVELCAM"); 
    345         mCamera->setPosition(Ogre::Vector3(17519,913,16033)); 
    346         mCamera->lookAt(Ogre::Vector3(16073,0,16600));   
     347        mCamera->setPosition(Ogre::Vector3(750,913,750)); 
     348        mCamera->lookAt(Ogre::Vector3(850,0,950));   
    347349        mCamera->setAutoAspectRatio(true); 
    348350        mCamera->setNearClipDistance(1); 
     
    668670  Ogre::Ray mouseRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 
    669671  Ogre::RaySceneQuery* mRaySceneQuery = mSceneMgr->createRayQuery(Ogre::Ray());; 
     672  mRaySceneQuery->setQueryTypeMask(Ogre::SceneManager::WORLD_GEOMETRY_TYPE_MASK); 
     673        mRaySceneQuery->setWorldFragmentType(Ogre::SceneQuery::WFT_SINGLE_INTERSECTION); 
    670674  mRaySceneQuery->setRay(mouseRay); 
    671675  //mRaySceneQuery->setSortByDistance(true); 
     
    690694      Ogre::Ray mouseRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 
    691695      Ogre::RaySceneQuery* mRaySceneQuery = mSceneMgr->createRayQuery(Ogre::Ray());; 
     696      mRaySceneQuery->setQueryTypeMask(Ogre::SceneManager::WORLD_GEOMETRY_TYPE_MASK || Ogre::SceneManager::ENTITY_TYPE_MASK); 
     697      mRaySceneQuery->setWorldFragmentType(Ogre::SceneQuery::WFT_SINGLE_INTERSECTION);       
    692698      mRaySceneQuery->setRay(mouseRay); 
    693699       
  • trunk/src/dreamforge/GameEngine.cc

    r10 r11  
    2222 
    2323#include "freequest/log/Logger.hh" 
    24  
     24#include "dreamforge/Exceptions.hh" 
    2525#include "dreamforge/GameEngine.hh" 
    2626 
     
    7474  //mRoot->loadPlugin("/usr/lib/OGRE/Plugin_CgProgramManager.so"); 
    7575  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_ParticleFX.so");  
    76   mRoot->loadPlugin("/usr/lib/OGRE/Plugin_OctreeSceneManager.so");  
     76  //mRoot->loadPlugin("/usr/lib/OGRE/Plugin_OctreeSceneManager.so");  
     77  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_PagingLandScapeSceneManager2.so"); 
    7778#elif defined __TARGET_WINDOWS__ 
    7879  mRoot->loadPlugin("RenderSystem_GL"); 
     
    8081  mRoot->loadPlugin("Plugin_CgProgramManager"); 
    8182  mRoot->loadPlugin("Plugin_ParticleFX"); 
    82   mRoot->loadPlugin("Plugin_OctreeSceneManager"); 
     83  //mRoot->loadPlugin("Plugin_OctreeSceneManager"); 
     84  mRoot->loadPlugin("Plugin_PagingLandScapeSceneManager2"); 
    8385#else 
    8486#error Plateform Not Implemented 
     
    123125                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data", "FileSystem", "General"); 
    124126                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/fonts", "FileSystem", "General"); 
     127                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/gui", "FileSystem", "General"); 
    125128                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models", "FileSystem", "General"); 
    126129                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/mesh", "FileSystem", "General"); 
     
    130133                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/humain", "FileSystem", "General"); 
    131134    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/armes", "FileSystem", "General");  
    132     //Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/test", "FileSystem", "General");  
    133135                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain", "FileSystem", "General"); 
    134                 Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/ET", "FileSystem", "General");     
    135136                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/world", "FileSystem", "General"); 
     137     
    136138                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/OgreCore.zip", "Zip", "Bootstrap"); 
     139    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/montres/dragon.zip", "Zip", "Bootstrap");  
     140         
     141    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/terrains/collision", "FileSystem", "COL"); 
     142     
     143    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM", "FileSystem", "PLSM2"); 
     144    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/scripts", "FileSystem", "PLSM2"); 
     145    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/textures", "FileSystem", "PLSM2"); 
     146    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/programs", "FileSystem", "PLSM2"); 
     147    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/terrains", "FileSystem", "PLSM2"); 
     148    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/datasrcs", "FileSystem", "PLSM2"); 
     149    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/overlays", "FileSystem", "PLSM2"); 
     150    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/PLSM/models","FileSystem", "PLSM2"); 
    137151        } 
    138152         catch( Ogre::Exception& e )    // TODO : Next time use our Exception 
     
    161175{ 
    162176        LOG_INFO( Logger::getLogger("dreamforge"), " == Create Scene manager and Camera == "); 
    163         // Create a generic scene manager and our main camera 
    164         mSceneMgr = mRoot->createSceneManager("TerrainSceneManager", "LEVELSCMGR"); 
     177  bool notFound = true; 
     178  // Get the SceneManager, in this case the Paging LandScape specialization 
     179  Ogre::SceneManagerEnumerator::MetaDataIterator it = mRoot->getSceneManagerMetaDataIterator(); 
     180  while (it.hasMoreElements ()) 
     181  { 
     182      const Ogre::SceneManagerMetaData* metaData = it.getNext (); 
     183 
     184      /// A mask describing which sorts of scenes this manager can handle 
     185      if (metaData->sceneTypeMask == Ogre::ST_EXTERIOR_REAL_FAR &&  
     186          metaData->worldGeometrySupported == true && 
     187          metaData->typeName == "PagingLandScapeSceneManager") 
     188      { 
     189          notFound = false; 
     190          break; 
     191      } 
     192  } 
     193  if (notFound) 
     194  { 
     195    THROW_EXCEPTION(Exception, "Could not find Paging Landscape plugin."); 
     196    //LOG_ERROR(Logger::getLogger("freequest.game"), "====! Could not find Paging Landscape plugin. !===="); 
     197    //Ogre::OGRE_EXCEPT(Exception::ERR_ITEM_NOT_FOUND, "Could not find Paging Landscape plugin. Check if it's in plugins.cfg.","chooseSceneManager"); 
     198  } 
     199 
     200  // Create a generic scene manager and our main camera 
     201        //mSceneMgr = mRoot->createSceneManager(Ogre::ST_EXTERIOR_CLOSE, "EXTERIOR SCENE"); 
     202   
     203  mSceneMgr = mRoot->createSceneManager(Ogre::ST_EXTERIOR_REAL_FAR, "LEVELSCMGR" ); 
     204  //mSceneMgr = mRoot->createSceneManager("PagingLandScapeSceneManager", "EXTERIOR SCENE" );     
     205  // Create a generic scene manager and our main camera 
     206        //mSceneMgr = mRoot->createSceneManager("TerrainSceneManager", "LEVELSCMGR"); 
    165207} 
    166208