[osg-users] Insight into osg::Operation

Sebastian Messerschmidt sebastian.messerschmidt at gmx.de
Sat Jun 6 11:04:36 PDT 2015


I found out, that the crash occurs when a osg:Group is traversed by the 
intersection visitor.
This is akward.. is the rendering thread somehow modifying children of 
the scene?

cheers
Sebastian
> Hi,
>
> I need some help with the osg::Operation.
> What I'm trying to achieve seems relatively simple. After loading a 
> model, I want some background operation to visit with an intersections 
> visitor.
> Pseudo code:
> Load Node
> Create osg::Operation-derived ref_ptr and do
>     mThreadedOperations->add(operation);
>     viewer->addUpdateOperation(operation);
> during runtime (e.g. before viewer.frame())
>
> Unfortunately I'm experiencing crashes (vector iterator not 
> dereferenceable etc) in the intersection visitor ( to be more exact: 
> in the node->accept(*mIntersectionVisitor))
> It works flawlessly if I let the body of the operation execute 
> blocking after loading.
>
> In my osg::Operation::operator()(osg::Object*) implementation I'm 
> using the following scheme:
>
> osgViewer::Viewer* viewer = 
> dynamic_cast<osgViewer::Viewer*>(callingObject);
>     if (viewer)
>     {
>         return;
>     }
>     else
>     {
>         runTheIntersectionVisitor(); ...
>     }
> Is there anything else I need to know? Examples for the osg::Operation 
> are rare and I don't see from the given implementation if I need to 
> lock anything.
>
> Can someone give some insight on this?
>
> Cheers
> Sebastian
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




More information about the osg-users mailing list