From Mathias Froehlich, "attached is a change to the ProxyNode that also includes ProxyNode local
database options like recently added to PagedLOD. Also there is a change to the traverse method: The previous ProxyNode checks the VisitorType to be a CULL_VISITOR and the presence of a request handler to submit a database request. In contrast to that PagedLOD uses the request handler if it is there - even if the visitor type is not a cull visitor. The change removes the cull visitor test from the ProxyNode so that it behaves like the PagedLOD. I believe that the presence of a request handler in a visitor might be sufficient to trigger the requests as this is done in the PagedLOD anyway. Based on rev 10332."
This commit is contained in:
@@ -27,6 +27,8 @@ ProxyNode::ProxyNode() :
|
||||
ProxyNode::ProxyNode(const ProxyNode& proxynode,const CopyOp& copyop):
|
||||
Group(proxynode,copyop),
|
||||
_filenameList(proxynode._filenameList),
|
||||
_databaseOptions(proxynode._databaseOptions),
|
||||
_databasePath(proxynode._databasePath),
|
||||
_loadingExtReference(proxynode._loadingExtReference),
|
||||
_centerMode(proxynode._centerMode),
|
||||
_userDefinedCenter(proxynode._userDefinedCenter),
|
||||
@@ -57,12 +59,11 @@ void ProxyNode::setDatabasePath(const std::string& path)
|
||||
void ProxyNode::traverse(NodeVisitor& nv)
|
||||
{
|
||||
if (nv.getDatabaseRequestHandler() && _filenameList.size()>_children.size() &&
|
||||
nv.getVisitorType()==NodeVisitor::CULL_VISITOR &&
|
||||
_loadingExtReference!=NO_AUTOMATIC_LOADING)
|
||||
{
|
||||
for(unsigned int i=_children.size(); i<_filenameList.size(); ++i)
|
||||
{
|
||||
nv.getDatabaseRequestHandler()->requestNodeFile(_databasePath+_filenameList[i].first, this, 1.0f, nv.getFrameStamp(), _filenameList[i].second);
|
||||
nv.getDatabaseRequestHandler()->requestNodeFile(_databasePath+_filenameList[i].first, this, 1.0f, nv.getFrameStamp(), _filenameList[i].second, _databaseOptions.get());
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user