This class performs picking by casting a ray into a scene and performing intersection tests with each object. The ray is extended to be a cone or cylinder, depending on the camera type, for intersection
with points and lines. Each intersection is returned as an
SoPickedPoint instance.
The picking ray can be specified as either a ray from the camera location through a particular viewport pixel, or as a world-space
ray. In the former case, a valid camera must be encountered during traversal of the graph to determine the location of the ray in world space.
Callers can cause the action to compute all intersections
along the ray (sorted closest to farthest) by setting the
pickAll flag to TRUE. By default, the action computes only the closest intersection. In either case, the intersections are returned in an
SoPickedPointList. Each intersection
can be examined by accessing the appropriate
SoPickedPoint in the list. The
SoPickedPoint class provides methods to get the intersection point, normal, and other info.