Hello,

I got a crash on applying the GeometryMergeGraphOp to a scene. I did
perform the following operations on my scene (model1.osb):

MergeGraphOpRefPtr mgop = MergeGraphOp::create();
mgop->traverse(prototype);

SceneFileHandler::the()->write(prototype, "d:\\_5187.0\\model2.osb",
false);

GeometryMergeGraphOpRefPtr gmgop = GeometryMergeGraphOp::create();
gmgop->traverse(prototype);

The last calls does not return due to dereferencing null pointers in
file OSGGeoFunctions.cpp (line  ~3230) in function

void calcMergePropertyType(
    const GeoIntegralProperty *prop1,
    const GeoIntegralProperty *prop2,
          bool                 combineValues,
          UInt32              &format        )
{
    UInt32 form1 = prop1->getFormat();               <------------
    UInt32 form2 = prop2->getFormat();
    ...
}

At this point I'm a little lost. Is this a problem with my model,  with
the MergeGraphOp, with the GeometryMergeGraphOp or something else?

I have uploaded the files model1.osb and model2.osb to 

http://drop.io/OpenSG_RenderEngine

if anyone has time to take a look.

Any help is appreciated...

best,
Johannes

P.S.: In case it helps, I have added the call stack to the
calcMergePropertyType function

OSGDrawableD.dll!OSG::`anonymous namespace'::calcMergePropertyType(const
OSG::GeoIntegralProperty * prop1=0x00000000, const
OSG::GeoIntegralProperty * prop2=0x00000000, bool combineValues=false,
unsigned int & format=3435973836)  Line 3230    C++
OSGDrawableD.dll!OSG::`anonymous namespace'::mergeGeoTypes(OSG::Geometry
* dstGeo=0x24a1b6d0, const OSG::Geometry * srcGeo1=0x249770c8, const
OSG::Geometry * srcGeo2=0x270090b8)  Line 3698 + 0x2b bytes     C++
OSGDrawableD.dll!OSG::`anonymous namespace'::mergeGeoNINI(OSG::Geometry
* dstGeo=0x24a1b6d0, const OSG::Geometry * srcGeo1=0x249770c8, const
OSG::Geometry * srcGeo2=0x270090b8)  Line 3747 + 0x11 bytes     C++
OSGDrawableD.dll!OSG::mergeGeo(const OSG::Geometry * geo1=0x249770c8,
const OSG::Geometry * geo2=0x270090b8)  Line 4450 + 0x16 bytes  C++
OSGUtilD.dll!OSG::GeometryMergeGraphOp::traverseLeave(OSG::Node * const
node=0x24973470, OSG::ActionBase::ResultE res=Continue)  Line 249 + 0x27
bytes   C++
OSGSystemD.dll!boost::_mfi::mf2<enum
OSG::ActionBase::ResultE,OSG::GraphOp,OSG::Node *,enum
OSG::ActionBase::ResultE>::operator()(OSG::GraphOp * p=0x24972a78,
OSG::Node * a1=0x24973470, OSG::ActionBase::ResultE a2=Continue)  Line
274 + 0x14 bytes        C++
OSGSystemD.dll!boost::_bi::list3<boost::_bi::value<OSG::GraphOp
*>,boost::arg<1>,boost::arg<2> >::operator()<enum
OSG::ActionBase::ResultE,boost::_mfi::mf2<enum
OSG::ActionBase::ResultE,OSG::GraphOp,OSG::Node *,enum
OSG::ActionBase::ResultE>,boost::_bi::list2<OSG::Node * &,enum
OSG::ActionBase::ResultE &> >(boost::_bi::type<enum
OSG::ActionBase::ResultE> __formal={...}, boost::_mfi::mf2<enum
OSG::ActionBase::ResultE,OSG::GraphOp,OSG::Node *,enum
OSG::ActionBase::ResultE> & f={...}, boost::_bi::list2<OSG::Node *
&,enum OSG::ActionBase::ResultE &> & a={...}, boost::_bi::type<enum
OSG::ActionBase::ResultE> __formal={...})  Line 376     C++
OSGSystemD.dll!boost::_bi::bind_t<enum
OSG::ActionBase::ResultE,boost::_mfi::mf2<enum
OSG::ActionBase::ResultE,OSG::GraphOp,OSG::Node *,enum
OSG::ActionBase::ResultE>,boost::_bi::list3<boost::_bi::value<OSG::Graph
Op *>,boost::arg<1>,boost::arg<2> > >::operator()<OSG::Node *,enum
OSG::ActionBase::ResultE>(OSG::Node * & a1=0x24973470,
OSG::ActionBase::ResultE & a2=Continue)  Line 62        C++
OSGSystemD.dll!boost::detail::function::function_obj_invoker2<boost::_bi
::bind_t<enum OSG::ActionBase::ResultE,boost::_mfi::mf2<enum
OSG::ActionBase::ResultE,OSG::GraphOp,OSG::Node *,enum
OSG::ActionBase::ResultE>,boost::_bi::list3<boost::_bi::value<OSG::Graph
Op *>,boost::arg<1>,boost::arg<2> > >,enum
OSG::ActionBase::ResultE,OSG::Node *,enum
OSG::ActionBase::ResultE>::invoke(boost::detail::function::function_buff
er & function_obj_ptr={...}, OSG::Node * a0=0x24973470,
OSG::ActionBase::ResultE a1=Continue)  Line 132 C++
OSGSystemD.dll!boost::function2<enum OSG::ActionBase::ResultE,OSG::Node
*,enum OSG::ActionBase::ResultE>::operator()(OSG::Node * a0=0x24973470,
OSG::ActionBase::ResultE a1=Continue)  Line 989 + 0x1b bytes    C++
OSGSystemD.dll!OSG::traverse(OSG::Node * const node=0x24973470,
boost::function<enum OSG::ActionBase::ResultE __cdecl(OSG::Node *)>
enter={...}, boost::function<enum OSG::ActionBase::ResultE
__cdecl(OSG::Node *,enum OSG::ActionBase::ResultE)> leave={...})  Line
773 + 0x10 bytes        C++
OSGSystemD.dll!OSG::GraphOp::traverse(OSG::Node * node=0x24973470)  Line
114 + 0x95 bytes        C++
RenderEngineD.dll!RenderEngine::system::SceneImp::LoadFile(const char *
name=0x13417d90, bool share=true, RenderEngine::Handle h={...})  Line
1039 + 0x2c bytes       C++



____________
Virus checked by G DATA AntiVirusKit
Version: AVF 21.17 from 30.04.2010
Virus news: www.antiviruslab.com

------------------------------------------------------------------------------
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to