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