Changeset 164 for trunk/VUT/Ogre/src


Ignore:
Timestamp:
07/11/05 03:25:50 (19 years ago)
Author:
mattausch
Message:

bug fix (deleting while animation)

Location:
trunk/VUT/Ogre/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/src/OgreItemBufferQueryManager.cpp

    r159 r164  
    66 
    77namespace Ogre { 
     8 
    89//-----------------------------------------------------------------------  
    9 ItemBufferQueryManager::ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp, 
     10ItemBufferQueryManager::ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface,  
     11                                                                                           Viewport *vp, 
    1012                                                                                           const bool renderPatches): 
    1113PlatformQueryManager(hierarchyInterface, vp), mRenderPatchesForItemBuffer(renderPatches) 
     
    1315} 
    1416//----------------------------------------------------------------------- 
    15 bool ItemBufferQueryManager::ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine) 
     17bool ItemBufferQueryManager::ShootRay(const Ray &ray,  
     18                                                                          std::vector<Mesh *> *visibleMeshes,  
     19                                                                          bool isGlobalLine) 
    1620{ 
    1721    // run OGRE ray shooting query 
     
    5054        ColourValue bg = mViewport->getBackgroundColour(); 
    5155        mViewport->setBackgroundColour(ColourValue(0, 0, 0, 0)); 
     56        pfHierarchyInterface->GetRenderSystem()->clearFrameBuffer(FBT_COLOUR | FBT_DEPTH); 
    5257 
     58        //-- render item buffer 
     59        sm->_renderScene(pCam, mViewport, false); 
     60    //mViewport->getTarget()->update(); 
    5361 
    54         // --- render item buffer 
    55         pfHierarchyInterface->GetSceneManager()->_renderScene(pCam, mViewport, false); 
     62//for(int j=0; j<10000000; j++) printf("wait"); 
    5663 
    5764 
     
    6471 
    6572        int n = mRenderPatchesForItemBuffer ? (int)visiblePatches->size() : (int)visibleGeometry->size(); 
    66          
     73 
     74        std::stringstream d; d << "dimx: " << dimx << ", dimy: " << dimy; 
     75        LogManager::getSingleton().logMessage(d.str()); 
     76 
    6777        // loop through frame buffer & collect visible pixels 
    6878        for (int idx = 0; idx < dimy * dimx * 3; idx += 3) 
    6979        { 
    70                 // -- decode color code to receive id 
     80                //-- decode color code to receive id 
    7181                int id = buf[idx] << 16; 
    7282                id += buf[idx + 1] << 8; 
    7383                id += buf[idx + 2]; 
    7484 
    75                 // if valid id <= add visibility (id values start at 1 
     85                std::stringstream d; d << "myid: " << (int)buf[idx] << " " << (int)buf[idx + 1] << " " << (int)buf[idx + 2]; 
     86                LogManager::getSingleton().logMessage(d.str()); 
     87 
     88                // if valid id <= add visibility (id values start at 1) 
    7689                if ((id > 0) && (id < n)) 
    7790                { 
     
    144157                                 
    145158                        subEnt->setId(id); 
     159                        subEnt->setId((41 << 16) + (4 << 8) + 60); 
     160                        //subEnt->setId((2 << 16) + (4 << 8) + 60); 
    146161                } 
    147162                         
  • trunk/VUT/Ogre/src/OgrePlatformQueryManager.cpp

    r159 r164  
    4949         
    5050        // ---- capture visibility from all 6 directions 
    51         for (int i=0; i < 6; i++)        
     51        for (int dir=0; dir < 6; dir++)  
    5252        { 
    5353                sign *= -1; 
     
    6060 
    6161                // prevent from initialising geometry / node array again 
    62                 if (i > 0) 
     62                if (dir > 0) 
    6363                { 
    6464                        mWasInitialised = true; 
     
    7070 
    7171                // permute directions 
    72                 Vector3 dir(0,0,0); 
    73                 dir[i/2] = sign; 
     72                Vector3 direction(0,0,0); 
     73                direction[dir/2] = sign; 
    7474 
    75                 cam->setDirection(dir); 
     75                cam->setDirection(direction); 
    7676        } 
    7777         
  • trunk/VUT/Ogre/src/OgreTerrainContentGenerator.cpp

    r161 r164  
    1616RayQueryExecutor::~RayQueryExecutor() 
    1717{ 
    18         delete mRaySceneQuery; 
     18        OGRE_DELETE(mRaySceneQuery); 
    1919} 
    2020//----------------------------------------------------------------------- 
  • trunk/VUT/Ogre/src/OgreVisibilityOctreeSceneManager.cpp

    r159 r164  
    739739} 
    740740*/ 
    741 //----------------------------------------------------------------------- 
    742 /* 
     741/*//----------------------------------------------------------------------- 
    743742Entity* VisibilityTerrainSceneManager::createEntity(const String& entityName,  
    744743                                                                                                        const String& meshName) 
  • trunk/VUT/Ogre/src/OgreVisibilityTerrainSceneManager.cpp

    r160 r164  
    3737        mHierarchyInterface = new OctreeHierarchyInterface(this, mDestRenderSystem); 
    3838         
    39         //mDisplayNodes = true; 
    40         //mShowBoundingBoxes = true; 
    41         //mShowBoxes = true; 
     39        //mDisplayNodes = true;//mShowBoundingBoxes = true;//mShowBoxes = true; 
    4240 
    4341        // TODO: set maxdepth to reasonable value 
     
    120118        if (mRenderNodesForViz || mRenderNodesContentForViz) 
    121119        { 
    122                 // change node material so it is better suited for visualization 
     120                // HACK: change node material so it is better suited for visualization 
    123121                MaterialPtr nodeMat = MaterialManager::getSingleton().getByName("Core/NodeMaterial"); 
    124122                nodeMat->setAmbient(1, 1, 0); 
     
    130128                        if (mRenderNodesForViz) 
    131129                        { 
    132                                 if (((*it)->numAttachedObjects() > 0) && ((*it)->numChildren() == 0) 
    133                                         && (*it)->getAttachedObject(0)->getMovableType() == "Entity") 
    134                                 getRenderQueue()->addRenderable((*it)); 
     130                                // render the leaf nodes 
     131                                if (((*it)->numAttachedObjects() > 0) && ((*it)->numChildren() == 0) &&  
     132                                         (*it)->getAttachedObject(0)->getMovableType() == "Entity") 
     133                                { 
     134                                        getRenderQueue()->addRenderable((*it)); 
     135                                } 
    135136 
    136137                                // addbounding boxes instead of node itself 
     
    508509        } 
    509510 
    510         // --- item buffer 
     511        //-- item buffer 
    511512 
    512513    // Iterate through priorities 
     
    743744*/ 
    744745//----------------------------------------------------------------------- 
    745 /* 
    746746Entity* VisibilityTerrainSceneManager::createEntity(const String& entityName,  
    747747                                                                                                        const String& meshName) 
     
    752752        { 
    753753                ent->getSubEntity(i)->setId(mCurrentEntityId); 
     754                ent->getSubEntity(i)->setId((41 << 16) + (4 << 8) + 60); 
     755                //ent->getSubEntity(i)->setId((2 << 16) + (4 << 8) + 60); 
    754756        } 
    755757 
     
    759761        return ent; 
    760762} 
    761 */ 
    762763} // namespace Ogre 
Note: See TracChangeset for help on using the changeset viewer.