Ignore:
Timestamp:
06/14/05 02:50:05 (19 years ago)
Author:
mattausch
Message:

added visibility queries

File:
1 edited

Legend:

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

    r115 r130  
    99 
    1010//----------------------------------------------------------------------- 
    11 OctreeHierarchyInterface::OctreeHierarchyInterface(SceneManager *sm, RenderSystem *rsys):  
    12 PlatformHierarchyInterface(sm, rsys) 
     11OctreeHierarchyInterface::OctreeHierarchyInterface(OctreeSceneManager *sm, RenderSystem *rsys):  
     12SceneNodeHierarchyInterface(sm, rsys) 
    1313{ 
    1414} 
     
    106106                octant->setLastRendered(mFrameId); 
    107107 
    108                 static_cast<OctreeSceneManager *>(mSceneManager)->_renderOctant(mCamera,  
     108                dynamic_cast<OctreeSceneManager *>(mSceneManager)->_renderOctant(mCamera,  
    109109                        octant, mOnlyShadowCasters, mLeaveTransparentsInQueue); 
    110110 
    111                 mNumRenderedNodes ++; 
     111                mRenderedNodes.push_back(node); 
    112112        } 
    113113#endif 
     
    157157        } 
    158158 
    159         static_cast<OctreeSceneManager *>(mSceneManager)->getBoxes()->push_back(box); 
    160 } 
     159        dynamic_cast<OctreeSceneManager *>(mSceneManager)->getBoxes()->push_back(box); 
     160} 
     161//----------------------------------------------------------------------- 
     162void OctreeHierarchyInterface::GetGeometry(GtpVisibility::HierarchyNode *node,   
     163                                                                                   GtpVisibility::GeometryList *geometryList,  
     164                                                                                   bool includeChildren) 
     165{ 
     166        NodeList::const_iterator nodeIt, nodeIt_end; 
     167        nodeIt_end = static_cast<Octree *>(node)->mNodes.end(); 
     168 
     169        for (nodeIt = static_cast<Octree *>(node)->mNodes.begin(); nodeIt != nodeIt_end; ++nodeIt) 
     170        { 
     171                SceneNodeHierarchyInterface::GetGeometry(*nodeIt, geometryList, includeChildren); 
     172        } 
     173} 
     174//----------------------------------------------------------------------- 
     175/*bool OctreeHierarchyInterface::FindVisibleObjects(GtpVisibility::HierarchyNode *node,  
     176                                                                        InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry,  
     177                                                                        bool includeChildren) 
     178{ 
     179        bool foundVisible = false; 
     180 
     181        PlatformOcclusionQuery query(mRenderSystem); 
     182 
     183        NodeList *nodes = &static_cast<Octree *>(node)->mNodes; 
     184         
     185        NodeList::const_iterator nodeIt = nodes->begin(), nodeIt_end; 
     186         
     187        nodeIt_end = nodes->end(); 
     188 
     189        while (nodeIt != nodeIt_end) 
     190        { 
     191                OctreeNode *octreeNode = (*nodeIt); 
     192                if (SceneNodeHierarchyInterface::FindVisibleObjects(octreeNode, visibleGeometry, includeChildren)) 
     193                { 
     194                        foundVisible = true; 
     195                } 
     196                ++nodeIt; 
     197        } 
     198 
     199        return foundVisible; 
     200}*/ 
     201 
    161202} // namespace Ogre 
Note: See TracChangeset for help on using the changeset viewer.