QuadTree fix for large buildings.
QuadTree relies on a bounding box to set up correctly. ProxyNodes don't have a BB until the model is loaded, causing the QuadTree to collapse if the DB loader can't keep up with the STG loader. Fix this by creating a default BB before the model is loaded.
This commit is contained in:
@@ -130,6 +130,12 @@ struct ReaderWriterSTG::_ModelBin {
|
|||||||
proxy->setLoadingExternalReferenceMode(osg::ProxyNode::DEFER_LOADING_TO_DATABASE_PAGER);
|
proxy->setLoadingExternalReferenceMode(osg::ProxyNode::DEFER_LOADING_TO_DATABASE_PAGER);
|
||||||
proxy->setFileName(0, o._name);
|
proxy->setFileName(0, o._name);
|
||||||
proxy->setDatabaseOptions(o._options.get());
|
proxy->setDatabaseOptions(o._options.get());
|
||||||
|
|
||||||
|
// Give the node some values so the Quadtree builder has
|
||||||
|
// a BoundingBox to work with prior to the model being loaded.
|
||||||
|
proxy->setCenter(osg::Vec3f(0.0f,0.0f,0.0f));
|
||||||
|
proxy->setRadius(10);
|
||||||
|
proxy->setCenterMode(osg::ProxyNode::UNION_OF_BOUNDING_SPHERE_AND_USER_DEFINED);
|
||||||
node = proxy;
|
node = proxy;
|
||||||
} else {
|
} else {
|
||||||
node = osgDB::readRefNodeFile(o._name, o._options.get());
|
node = osgDB::readRefNodeFile(o._name, o._options.get());
|
||||||
|
|||||||
Reference in New Issue
Block a user