Hi Sukender,
The approaches I'd used are either:
1) A top level clean up tool that runs before/after the update
traversal - like your suggestion of a manager, but in
essence it just a list of objects to remove from the list.
2) Have a callback above the child you want to remove do the removal,
prior or after the traversal of the subgraph,
note Node callbacks are all effectively traversal callbacks so
have complete control over when traversal happens.
This approach doesn't invalidate an iterators.
The invalidation of iterators occurs when you remove self from a
parent during traversal.
Robert.
On Wed, Nov 26, 2008 at 2:11 PM, Sukender <[EMAIL PROTECTED]> wrote:
> Hello all,
>
> "Modifying elements on the scene graph that affect traversal during traversal
> is a [...] restriction, simply because doing so invalidates iterators of the
> calling methods.", Robert said (
> http://lists.openscenegraph.org/htdig.cgi/osg-users-openscenegraph.org/2007-September/002938.html
> ).
>
> Question is: according to you, what is the best/simpliest way for a node to
> deallocate itself during traversal? Here are my ideas:
> - Mark the node as to be deleted in a kind of manager that does the job when
> the frame has ended.
> - Create a class derived from Group that gracefully handles the invalidation
> of iterators during traverse().
> - Make a nice memory leak (joking).
> - Or may Node::accept() return a boolean that says if the node "commited
> suicide" (???)
>
> I guess ther is a much simpler way, but I can't figure out which one.
> (Sorry if it has already been discussed, but I can't find answers in the
> archive).
>
> Thanks.
>
> Sukender
> PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/
> _______________________________________________
> 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