<div>Hi,</div><div><br></div><div>I need to make the selection (pick) of a node, going to check if that node is present within an area built around the mouse click point.<br></div><div><br></div><div>This should mean that, if there are more nodes inside that area, the pick event returns them to me.<br></div><div><br></div><div>Currently for the point selection, therefore of a single node in a specific x and y, I successfully use osgUtil :: LineSegmentIntersector.<br></div><div><br></div><div>Studying on the OSG book, I read that selection existed by checking inside a box, implemented by osgUtil :: PolytopeIntersector.<br></div><div><br></div><div>Below I propose part of the code,<br></div><div><br></div><div>double w(200), h(200);</div><div>osgUtil::PolytopeIntersector* picker = new osgUtil::PolytopeIntersector(osgUtil::Intersector::CoordinateFrame::WINDOW, x - w, y - h, x + w, y + h);</div><div>osgUtil::IntersectionVisitor iv(picker);</div><div>viewer->getCamera()->accept(iv);</div><div>if (picker->containsIntersections())</div><div>{</div><div><span style="white-space:pre">   </span>const osg::NodePath& nodePath = picker->getFirstIntersection().nodePath;</div><div><span style="white-space:pre">       </span>auto intersections = picker->getIntersections();</div><div><span style="white-space:pre">   </span>if (intersections.size() != 0) {</div><div><span style="white-space:pre">              </span>auto hitr = intersections.begin();</div><div><span style="white-space:pre">            </span>if (hitr->nodePath.size() != 0) {</div><div><span style="white-space:pre">                  </span>for (int i = 0; i < hitr->nodePath.size(); i++) {</div><div><span style="white-space:pre">                       </span>if (systemTargetMap[hitr->nodePath.at(i)->getName()]) {</div><div><span style="white-space:pre">                 </span>      cout << "Node Name: " << systemTargetMap[hitr->nodePath.at(i)->getName()] << endl;</div><div><span style="white-space:pre">                     </span>}<span style="white-space:pre">                                    </span></div><div><span style="white-space:pre">              </span>}</div><div><span style="white-space:pre">     </span>}</div><div>}}</div><div><br></div><div><div>Unfortunately, this selection only returns me one node, even if there are two (or more) very close together.</div><div><br></div><div>What am I doing wrong?</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:osg-users+unsubscribe@googlegroups.com">osg-users+unsubscribe@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/d757a21a-bab6-4718-a6bf-2ebdf59650a7n%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/osg-users/d757a21a-bab6-4718-a6bf-2ebdf59650a7n%40googlegroups.com</a>.<br />