Re: [osg-users] Removing stateset for all assoc nodes without traverse

2017-04-12 Thread Robert Osfield
Hi Yura,

On 12 April 2017 at 13:10, Yura Ivanov  wrote:
> How can I remove stateset for all associated nodes without calling 
> setStateset(NULL) to each node? Or what is the fastest way to do it?

The way you remove a stateset from a Node is via setStateSet().  To
remove it from all the nodes that are associated with you can get the
StateSet::ParentList using StateSet'::getParents() then traverse
through this list calling setStateSet(0) on each one.

There isn't an more efficient way to do this than the above approach,
setStateSet() does all the internal house keeping required and no
more, you can't short cut this otherwise the scene graph would end up
with a mess of dangling pointers, memory leaks or crashes.

The fact that you raise this as a performance issue SCREAMs out to me
that you are again trying to solve a problem because of poor choice of
scene graph construction.  You are trying to solve the problem with
the wrong tools.

The basic approach you have taken sounds wrong, and you are hitting
performance issues because of this and trying to look to "optimize"
stuff in the OSG to solve the bottlenecks rather than look at the
basic approach you are taking.

I think the best thing you can do right now is take a step back,
accept that the approach you have taken thus far is inefficient and
call for suggestions form the community how they would solve the
particular task you are trying to tackle.  I've requested you provide
more high level details like this in previous threads but so far there
hasn't been enough to go on to know what the best route would be.

Robert.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Removing stateset for all assoc nodes without traverse

2017-04-12 Thread Yura Ivanov
Hi,

How can I remove stateset for all associated nodes without calling 
setStateset(NULL) to each node? Or what is the fastest way to do it?
 
Thank you!

Cheers,
Yura

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=70750#70750





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org