Hi Robert, thanks for the *hints* :) ... Reading the code is always the best option :-). I found the thing while reading the code you pointed me to. It is this thing that when set up properly per the database, then it works nicely ..
viewer->getDatabasePager()->setTargetMaximumNumberOfPageLOD(...); Thanks again! Cheers, Nick p.s. I still like my simple hack :-). I will keep it and not do it the proper way this time ;-) On Fri, Jun 3, 2016 at 7:51 PM, Robert Osfield <[email protected]> wrote: > Hi Nick, > > It's *really* inefficient to use an update callback to do this type of > task, I can not recommend going this path, it's waste of both our time > trying to coax it to do something useful. > > The right way of doing it is by overriding the > DatabasePager::updateSceneGraph() method or implementing you own > equivalent method in the Viewer::updateTraversak() in place of current > calls to updateceneSceneGraph(). > > Robert. > > On 3 June 2016 at 18:28, Trajce Nikolov NICK > <[email protected]> wrote: > > Hi Robert, > > > > this is my update callback .. And I know for sure it was working. I just > did > > a clean app (modified osgviewer with only this callback installed in the > > root PagedLODs) and I never see a Paged Out tile ... I am limited to not > > having the possibility to make a custom DatabasePager or it will go > really > > complicated. The root PagedLOD can have only one or zero children (that > is > > the test database I am testing it against) > > > > struct UpdateCallback : public osg::NodeCallback > > { > > UpdateCallback() > > : _numChildren(0) > > { > > > > } > > virtual void operator()(osg::Node* node, osg::NodeVisitor* nv) > > { > > osg::PagedLOD* plod = dynamic_cast<osg::PagedLOD*>(node); > > if (plod) > > { > > if (plod->getNumChildren() != _numChildren) > > { > > _numChildren = plod->getNumChildren(); > > > > if (_numChildren) > > std::cout << "Paged in" << std::endl; > > else > > std::cout << "Paged out" << std::endl; > > > > } > > } > > traverse(node, nv); > > } > > protected: > > int _numChildren; > > }; > > > > On Fri, Jun 3, 2016 at 6:49 PM, Robert Osfield <[email protected] > > > > wrote: > >> > >> Hi Nick, > >> > >> There isn't a feature directly built into osg::PageLOD or > >> DatabasePager for this. > >> > >> What you could do is look at the creating a custom DatabasePager that > >> overrides the following method: > >> > >> /** Merge the changes to the scene graph by calling calling > >> removeExpiredSubgraphs then addLoadedDataToSceneGraph. > >> * Note, must only be called from single thread update phase. > */ > >> virtual void updateSceneGraph(const osg::FrameStamp& > frameStamp); > >> > >> Within this you could add your own tracking of when things are merge or > >> removed. > >> > >> Robert. > >> > >> > >> > >> On 3 June 2016 at 17:15, Trajce Nikolov NICK > >> <[email protected]> wrote: > >> > Hi Community, > >> > > >> > I was looking for a way to detect when PagedLOD gets its children > paged > >> > in/out. So I installed an update callback and based on a difference in > >> > the > >> > children number I was able to know when such change occurred. And this > >> > was > >> > working with a code an year ago. > >> > > >> > Now it doesn't .. Any clue or hint how to detect such changes? > >> > > >> > Thanks a bunch as always! > >> > > >> > Cheers, > >> > Nick > >> > > >> > -- > >> > trajce nikolov nick > >> > > >> > _______________________________________________ > >> > osg-users mailing list > >> > [email protected] > >> > > >> > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >> > > >> _______________________________________________ > >> osg-users mailing list > >> [email protected] > >> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > > > > > > -- > > trajce nikolov nick > > > > _______________________________________________ > > osg-users mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > -- trajce nikolov nick
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

