Thanks for your reply.
I tried modifying LineSegmentIntersector.cpp in osgUtil but it didn't work.
I went all the way and changed everything to use doubles, eg.:
Code:
inline void operator () (const osg::Vec3& _v1,const osg::Vec3&
_v2,const osg::Vec3& _v3, bool treatVertexDataAsTemporary)
{
// Create local osg::Vec3d copies
osg::Vec3d v1(_v1.x(), _v1.y(), _v1.z());
osg::Vec3d v2(_v2.x(), _v2.y(), _v2.z());
osg::Vec3d v3(_v3.x(), _v3.y(), _v3.z());
[...]
if (treatVertexDataAsTemporary)
{
_intersections.insert(std::pair<const
float,TriangleIntersection>(r,TriangleIntersection(_index-1,normal,(float)r1,0,(float)r2,0,(float)r3,0)));
}
else
{
_intersections.insert(std::pair<const
float,TriangleIntersection>(r,TriangleIntersection(_index-1,normal,(float)r1,&_v1,(float)r2,&_v2,(float)r3,&_v3)));
}
}
I turned all floats into doubles, 0.0f's into 0.0's, all osg::Vec3's into
osg::Vec3d's...
I still get the same behavior.
Can you please be a bit more specific regarding other alternatives I have?
(bounding box, pick ray clipping...)
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=20886#20886
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org