Hi,

I was wondering if someone could explain why the 
Optimizer::RemoveLoadedProxyNodesVisitor is not removing ProxyNodes with 
NO_AUTOMATIC_LOADING set? 

Here is the motivation behind my question... We often need to load relatively 
large openflight terrains that contains a significant number external 
references. In fact, on some terrains, each single tree is an external 
reference - so you can image how many external references that makes!!! 
Unfortunately, many of these terrains are provided to us AS IS and we don't 
have the necessary rights to modify them.  

What we discovered is that, sometimes, many of those external reference files 
are missing, thus leading to poor performance. For example, if we simply delete 
all the external references for a terrains, I would expect better performance 
(since I don't need to render all those trees), but that's not the case.  

To resolve this poor performance problem, I modified the following optimizer 
function to consider the NO_AUTOMATIC_LOADING. Can you tell me if what I did 
makes sense? If so, then I could propose this as a change in the osg-submission.


Code:
void Optimizer::RemoveLoadedProxyNodesVisitor::apply(osg::ProxyNode& proxyNode)
{
    if (proxyNode.getNumParents()>0 
        && ( proxyNode.getNumFileNames()==proxyNode.getNumChildren() 
//MTSI_BEGIN
            || ( proxyNode.getLoadingExternalReferenceMode() == 
osg::ProxyNode::NO_AUTOMATIC_LOADING && proxyNode.getNumChildren() == 0 ) ) )
//MTSI_END
    {
        if (isOperationPermissibleForObject(&proxyNode))
        {
            _redundantNodeList.insert(&proxyNode);
        }
    }
    traverse(proxyNode);
}



Thank you!

Cheers,
Guy

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=70857#70857





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to