Hi,
I embed osg in wpf application with this code :
http://www.openscenegraph.org/projects/osg/wiki/Support/FAQ#HowdoIembedanOSGviewerina.NETcontrol

I load a scene of vrml files.
osg::Group* root = new osgGroup();
for(int i = 0; i < listFichiers.size(); i++){
osg::Node* node = osgDB::readNodeFile(listFichiers[i]);
node->setDataVariance(osg::Object::DYNAMIC);
root->addChild(node);
}


When I want to remove scene to load another scene 
(root->removeChildren(0,root->getNumChildren())), osg crashes with error : 
Debug assertion failed :
Expression:("this->_Has_container()",0)
...

The call stack is stop on this :
osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
 > >::operator++()  Ligne 116 + 0x3a octets    C++
        
osg80-osgd.dll!std::_Vector_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node>
 > >::operator++()  Ligne 350        C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
60 + 0x8 octets C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})  
Ligne 40 + 0x77 octets       C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Switch & 
node={...})  Ligne 1214 + 0x13 octets      C++
        osg80-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...})  Ligne 
40 + 0x41 octets C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Transform & 
node={...})  Ligne 1151 C++
        osg80-osgd.dll!osg::NodeVisitor::apply(osg::PositionAttitudeTransform & 
node={...})  Ligne 141 + 0x13 octets    C++
        osg80-osgd.dll!osg::PositionAttitudeTransform::accept(osg::NodeVisitor 
& nv={...})  Ligne 41 + 0x41 octets      C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
 & node={...})  Ligne 312 + 0xf octets     C++
        osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) 
 Ligne 1128     C++
        osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne 
38 + 0x41 octets  C++
        osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Ligne 
62 + 0x25 octets        C++
        osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})  
Ligne 193 + 0x1c octets      C++
        osg80-osgUtild.dll!osgUtil::SceneView::cullStage(const osg::Matrixd & 
projection={...}, const osg::Matrixd & modelview={...}, osgUtil::CullVisitor * 
cullVisitor=0x0ca69f50, osgUtil::StateGraph * rendergraph=0x0ca696f0, 
osgUtil::RenderStage * renderStage=0x0ca69788, osg::Viewport * 
viewport=0x0ca73dc8)  Ligne 980 + 0x1a octets C++
        osg80-osgUtild.dll!osgUtil::SceneView::cull()  Ligne 845 + 0x57 octets  
C++
        osg80-osgViewerd.dll!osgViewer::Renderer::cull()  Ligne 615 + 0xf 
octets        C++
        osg80-osgViewerd.dll!osgViewer::ViewerBase::renderingTraversals()  
Ligne 793 + 0x15 octets      C++
        osg80-osgViewerd.dll!osgViewer::ViewerBase::frame(double 
simulationTime=1.7976931348623157e+308)  Ligne 645 + 0xf octets        C++
        osg80-osgViewerd.dll!osgViewer::ViewerBase::run()  Ligne 612 + 0x1b 
octets      C++
        osg80-osgViewerd.dll!osgViewer::Viewer::run()  Ligne 376        C++
        osgWrapper.dll!threadfunc(void * __formal=0x00000000)  Ligne 128 + 0x25 
octets  C++
        pthreadVC2.dll!0f7955e6()       
        [Les frames ci-dessous sont peut-ĂȘtre incorrects et/ou manquants, aucun 
symbole chargé pour pthreadVC2.dll]     
        msvcr100.dll!6113c556()         
        msvcr100.dll!6113c600()         
        kernel32.dll!74dd3677()         
        ntdll.dll!77479f42()    
        ntdll.dll!77479f15()    
 
Can you help me please?
Thank you!

Cheers,
lucie

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





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

Reply via email to