I traced the error now:
The function LineSegementIntersector::getFirstIntersection() executes
very well to the last bit that is:
Dereference _intersections.begin();
It jumps therefor to xtree.h :
reference operator*() const
{ // return designated value
return ((reference)**(const_iterator *)this);
<--TO HERE
}
Afterwards it jumps for a reason that i dont understand to vector
destructor and there to:
void _Tidy()
{ // free all storage
if (_Myfirst != 0)
{ // something to free, destroy and
deallocate it
#if _HAS_ITERATOR_DEBUGGING
this->_Orphan_all();
#endif /* _HAS_ITERATOR_DEBUGGING */
_Destroy(_Myfirst, _Mylast);
this->_Alval.deallocate(_Myfirst, _Myend -
_Myfirst); <--THIS IS THE POINT WHERE THE PROGRAM DIES
}
_Myfirst = 0, _Mylast = 0, _Myend = 0;
}
So it tries somehow to free items in a vector that doesnt exist (?)
A solution for my pov is:
Instead of writing (picker is a LineSegementIntersector:
Picker->getFirstIntersection()->dowhatwever()
I write:
Picker->getIntersections().begin()->dowhatever();
Still think there must be a bug somewhere at microsoft stl degubimpl or
openscenegraph.
Greetings,
Hagen
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org