Hi,
i have point picking implemented which works fine when i store the data as
osg::Vec3Array and set it in the geometry as
geometry->setVertexArray(vec3_vertArr)
But i choose to store it as a double, ie
osg::Vec3dArray and set it in the geometry as
geometry->setVertexArray(vec3d_vertArr)
then point picking fails using the same PolytopeIntersector.
below is a the code for detecting the intersections
Code:
void PickHandler::pick(osgViewer::View* view, const osgGA::GUIEventAdapter& ea)
{
const float x = ea.getX();
const float y = ea.getY();
const float look_offSet = 10.0f;
osg::ref_ptr<osgUtil::PolytopeIntersector> polyTopeIntersector = new
osgUtil::PolytopeIntersector(osgUtil::Intersector::WINDOW, x - look_offSet , y
- look_offSet, x + look_offSet, y + look_offSet );
polyTopeIntersector->setDimensionMask(osgUtil::PolytopeIntersector::DimZero);
// only pick points
osgUtil::IntersectionVisitor iv( polyTopeIntersector );
view->getCamera()->accept( iv );
if (polyTopeIntersector->containsIntersections()) // some hits where found!
{
...
}
}
Whats the solution?
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=38208#38208
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org