diff --git a/include/osg/LOD b/include/osg/LOD index 121cd7852..cfc5879e4 100644 --- a/include/osg/LOD +++ b/include/osg/LOD @@ -36,7 +36,7 @@ class SG_EXPORT LOD : public Group { public : - LOD() {} + LOD(); /** Copy constructor using CopyOp to manage deep vs shallow copy.*/ LOD(const LOD&,const CopyOp& copyop=CopyOp::SHALLOW_COPY); diff --git a/include/osg/PagedLOD b/include/osg/PagedLOD index f6318787e..e2ce244d7 100644 --- a/include/osg/PagedLOD +++ b/include/osg/PagedLOD @@ -24,7 +24,7 @@ class SG_EXPORT PagedLOD : public LOD { public : - PagedLOD() {} + PagedLOD(); /** Copy constructor using CopyOp to manage deep vs shallow copy.*/ PagedLOD(const PagedLOD&,const CopyOp& copyop=CopyOp::SHALLOW_COPY); diff --git a/include/osgProducer/DatabasePager b/include/osgProducer/DatabasePager index df625c4d7..f0d8879b8 100644 --- a/include/osgProducer/DatabasePager +++ b/include/osgProducer/DatabasePager @@ -45,7 +45,7 @@ class OSGPRODUCER_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseReques /** Add the loaded data to the scene graph.*/ - void addLoadedDataToSceneGraph(); + void addLoadedDataToSceneGraph(double timeStamp); /** Find all PagedLOD nodes in a subgraph and register them with diff --git a/src/osg/Drawable.cpp b/src/osg/Drawable.cpp index ffe8e1e95..46321cd98 100644 --- a/src/osg/Drawable.cpp +++ b/src/osg/Drawable.cpp @@ -114,7 +114,7 @@ Drawable::Drawable() _useDisplayList = true; _supportsVertexBufferObjects = false; - _useVertexBufferObjects = true; + _useVertexBufferObjects = false; } Drawable::Drawable(const Drawable& drawable,const CopyOp& copyop): diff --git a/src/osg/LOD.cpp b/src/osg/LOD.cpp index d2c8664aa..662783d55 100644 --- a/src/osg/LOD.cpp +++ b/src/osg/LOD.cpp @@ -16,6 +16,11 @@ using namespace osg; +LOD::LOD(): + _centerMode(USE_BOUNDING_SPHERE_CENTER) +{ +} + LOD::LOD(const LOD& lod,const CopyOp& copyop): Group(lod,copyop), _centerMode(lod._centerMode), diff --git a/src/osg/PagedLOD.cpp b/src/osg/PagedLOD.cpp index 08b32f2f8..610a2d82e 100644 --- a/src/osg/PagedLOD.cpp +++ b/src/osg/PagedLOD.cpp @@ -2,6 +2,11 @@ using namespace osg; +PagedLOD::PagedLOD() +{ + _centerMode = USER_DEFINED_CENTER; +} + PagedLOD::PagedLOD(const PagedLOD& plod,const CopyOp& copyop): LOD(plod,copyop) { diff --git a/src/osgProducer/DatabasePager.cpp b/src/osgProducer/DatabasePager.cpp index 660fe7c6c..ca8ec0146 100644 --- a/src/osgProducer/DatabasePager.cpp +++ b/src/osgProducer/DatabasePager.cpp @@ -253,7 +253,7 @@ void DatabasePager::run() join(); } -void DatabasePager::addLoadedDataToSceneGraph() +void DatabasePager::addLoadedDataToSceneGraph(double timeStamp) { DatabaseRequestList localFileLoadedList; @@ -269,8 +269,15 @@ void DatabasePager::addLoadedDataToSceneGraph() { DatabaseRequest* databaseRequest = itr->get(); registerPagedLODs(databaseRequest->_loadedModel.get()); - databaseRequest->_groupForAddingLoadedSubgraph->addChild(databaseRequest->_loadedModel.get()); - //std::cout<<"merged subgraph"<_fileName<<" after "<_numOfRequests<<" requests."<_groupForAddingLoadedSubgraph.get(); + osg::PagedLOD* plod = dynamic_cast(group); + if (plod) + { + plod->setTimeStamp(plod->getNumChildren(),timeStamp); + } + group->addChild(databaseRequest->_loadedModel.get()); + std::cout<<"merged subgraph"<_fileName<<" after "<_numOfRequests<<" requests."<compile(state); elapsedTime = timer.delta_s(start_tick,timer.tick()); } @@ -410,7 +417,7 @@ void DatabasePager::compileRenderingObjects(osg::State& state) itr!=dwlist.end() && elapsedTime<_maximumTimeForCompiling; ++itr) { - //std::cout<<" Compiling drawable"<<(*itr).get()<compile(state); elapsedTime = timer.delta_s(start_tick,timer.tick()); } @@ -434,7 +441,7 @@ void DatabasePager::compileRenderingObjects(osg::State& state) if (allCompiled) { - //std::cout<<"All compiled"<removeExpiredSubgraphs(_frameStamp->getReferenceTime()); // add the newly loaded data into the scene graph. - _databasePager->addLoadedDataToSceneGraph(); + _databasePager->addLoadedDataToSceneGraph(_frameStamp->getReferenceTime()); } diff --git a/src/osgProducer/ViewerEventHandler.cpp b/src/osgProducer/ViewerEventHandler.cpp index 8f1d240dc..18942db64 100644 --- a/src/osgProducer/ViewerEventHandler.cpp +++ b/src/osgProducer/ViewerEventHandler.cpp @@ -59,7 +59,7 @@ public: _helpInitialized(false), _statsInitialized(false) { - _fs.resize(20); + _fs.resize(10); _index = 0; _veh->getOsgCameraGroup()->setStatsHandler(this);