Ignore:
Timestamp:
09/21/06 08:49:20 (18 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreRenderingRun.cpp

    r1351 r1425  
    2929        } 
    3030        bool visit(const Pass* p){return true;} 
    31         void visit(const RenderablePass* rp){} 
     31        void visit(const RenderablePass* rp) 
     32        { 
     33                Renderable* rend = rp->renderable;  
     34                 
     35                if( visibleObjects->count(rend) == 0) 
     36                { 
     37                        (*visibleObjects)[rend] = rend->getMaterial().getPointer()->getName(); 
     38                        rend->setMaterialName(materialName); 
     39                } 
     40        } 
    3241 
    3342}; 
     
    107116} 
    108117 
    109 void OgreRenderingRun::setMaterialForRenderables(String& materialName, RenderQueue* rq) 
     118void OgreRenderingRun::setMaterialForRenderables(String& materialName, RenderQueue* rq,  bool solidsonly) 
    110119{ 
    111120        RenderQueue::QueueGroupIterator queueIt = rq->_getQueueGroupIterator(); 
     
    124133                        MaterialSetVisitor visitor(materialName, &visibleObjects);       
    125134                        solids.acceptVisitor(&visitor, QueuedRenderableCollection::OM_PASS_GROUP); 
    126                         transparents.acceptVisitor(&visitor, QueuedRenderableCollection::OM_SORT_ASCENDING);             
     135                        if(!solidsonly) 
     136                                transparents.acceptVisitor(&visitor, QueuedRenderableCollection::OM_SORT_ASCENDING);             
    127137                }                        
    128138    } 
     
    144154} 
    145155 
    146 void OgreRenderingRun::setMaterialForVisibles(String& materialName, Camera* cam, bool shadowcastersonly) 
     156void OgreRenderingRun::setMaterialForVisibles(String& materialName, Camera* cam, bool shadowcastersonly, bool solidsonly) 
    147157{ 
    148158        SceneManager* sm = Ogre::Root::getSingleton()._getCurrentSceneManager(); 
     
    160170        sm->_findVisibleObjects (cam, shadowcastersonly); 
    161171         
    162         setMaterialForRenderables(materialName, rq); 
     172        setMaterialForRenderables(materialName, rq, solidsonly); 
    163173} 
    164174 
Note: See TracChangeset for help on using the changeset viewer.