Brian R Hill wrote on Monday, March 02, 2009 2:29 PM:
> You can't modify the hierarchy during an active traversal - this will
mess
> up the traversal. You need to cache your updates and perform them
between
> traversals.

Changes to the scenegraph should be made during the update traversal
(so, inside an UpdateCallback), which is single-threaded so it is safe.
The easiest way to prevent certain nodes from being traversed is to
modify their node mask (the Camera also needs its traversal mask set so
it will ignore these nodes).

The main problem with removing/adding nodes is invalidating iterators,
so I think it should be safe to add or remove children of the node
currently being visited in the update pass; at the point of the
UpdateCallback, I wouldn't expect any iterators to be iterating over
that node's child list.

> -----osg-users-boun...@lists.openscenegraph.org wrote: -----
> 
> To: OpenSceneGraph Users <osg-users@lists.openscenegraph.org>
> From: Cory Riddell <c...@codeware.com>
> Sent by: osg-users-boun...@lists.openscenegraph.org
> Date: 03/02/2009 02:45PM
> Subject: [osg-users] modify children in node callback?
> 
> In general, is it ok to modify child nodes in a node callback method?
> That is, children of the node for which the callback was called?
> 
> I assume it must be. If not, how do you add or remove nodes of a scene
> graph while running?
> 
> Cory
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or
g
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or
g



-- 
Bryan Thrall
FlightSafety International
bryan.thr...@flightsafety.com
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to