<div dir="ltr">Hi Robert,<div><br></div><div>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)</div><div><br></div><div><div>struct UpdateCallback : public osg::NodeCallback</div><div>{</div><div><span class="" style="white-space:pre"> </span>UpdateCallback()</div><div><span class="" style="white-space:pre">           </span>: _numChildren(0)</div><div><span class="" style="white-space:pre">  </span>{</div><div><br></div><div><span class="" style="white-space:pre"> </span>}</div><div><span class="" style="white-space:pre">  </span>virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)</div><div><span class="" style="white-space:pre">     </span>{</div><div><span class="" style="white-space:pre">          </span>osg::PagedLOD* plod = dynamic_cast<osg::PagedLOD*>(node);</div><div><span class="" style="white-space:pre">            </span>if (plod)</div><div><span class="" style="white-space:pre">          </span>{</div><div><span class="" style="white-space:pre">                  </span>if (plod->getNumChildren() != _numChildren)</div><div><span class="" style="white-space:pre">                     </span>{</div><div><span class="" style="white-space:pre">                          </span>_numChildren = plod->getNumChildren();</div><div><br></div><div><span class="" style="white-space:pre">                         </span>if (_numChildren)</div><div><span class="" style="white-space:pre">                                  </span>std::cout << "Paged in" << std::endl;</div><div><span class="" style="white-space:pre">                                </span>else</div><div><span class="" style="white-space:pre">                                       </span>std::cout << "Paged out" << std::endl;</div><div><br></div><div><span class="" style="white-space:pre">                              </span></div><div><span class="" style="white-space:pre">                   </span>}<span class="" style="white-space:pre">                 </span></div><div><span class="" style="white-space:pre">           </span>}</div><div><span class="" style="white-space:pre">          </span>traverse(node, nv);</div><div><span class="" style="white-space:pre">        </span>}</div><div>protected:</div><div><span class="" style="white-space:pre"> </span>int _numChildren;</div><div>};</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 3, 2016 at 6:49 PM, Robert Osfield <span dir="ltr"><<a href="mailto:robert.osfield@gmail.com" target="_blank">robert.osfield@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Nick,<br>
<br>
There isn't a feature directly built into osg::PageLOD or<br>
DatabasePager for this.<br>
<br>
What you could do is look at the  creating a custom DatabasePager that<br>
overrides the following method:<br>
<br>
       /** Merge the changes to the scene graph by calling calling<br>
removeExpiredSubgraphs then addLoadedDataToSceneGraph.<br>
          * Note, must only be called from single thread update phase. */<br>
        virtual void updateSceneGraph(const osg::FrameStamp& frameStamp);<br>
<br>
Within this you could add your own tracking of when things are merge or removed.<br>
<br>
Robert.<br>
<br>
<br>
<br>
On 3 June 2016 at 17:15, Trajce Nikolov NICK<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:trajce.nikolov.nick@gmail.com">trajce.nikolov.nick@gmail.com</a>> wrote:<br>
> Hi Community,<br>
><br>
> I was looking for a way to detect when PagedLOD gets its children paged<br>
> in/out. So I installed an update callback and based on a difference in the<br>
> children number I was able to know when such change occurred. And this was<br>
> working with a code an year ago.<br>
><br>
> Now it doesn't .. Any clue or hint how to detect such changes?<br>
><br>
> Thanks a bunch as always!<br>
><br>
> Cheers,<br>
> Nick<br>
><br>
> --<br>
> trajce nikolov nick<br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> osg-users mailing list<br>
> <a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
> <a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
><br>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">trajce nikolov nick<br></div>
</div>