Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SoRayPickAction(3IV)()					SoRayPickAction(3IV)()

NAME
       SoRayPickAction -- intersects objects with a ray	cast into scene

INHERITS FROM
       SoAction	> SoPickAction > SoRayPickAction

SYNOPSIS
       #include	<Inventor/actions/SoRayPickAction.h>

	  Methods from class SoRayPickAction:

				SoRayPickAction(const  SbViewportRegion	&view-
				     portRegion)
     void			setPoint(const SbVec2s &viewportPoint)
     void			setNormalizedPoint(const SbVec2f &normPoint)
     void			setRadius(float	radiusInPixels)
     void			setRay(const  SbVec3f  &start,	const  SbVec3f
				     &direction,  float	 nearDistance  = -1.0,
				     float farDistance = -1.0)
     void			setPickAll(SbBool flag)
     SbBool			isPickAll() const
     const SoPickedPointList &	getPickedPointList() const
     SoPickedPoint *		getPickedPoint(int index = 0) const

	  Methods from class SoPickAction:

     void		       setViewportRegion(const	      SbViewportRegion
				    &newRegion)
     const SbViewportRegion &  getViewportRegion() const

	  Methods from class SoAction:

     virtual void	 apply(SoNode *node)
     virtual void	 apply(SoPath *path)
     virtual void	 apply(const SoPathList	&pathList, SbBool obeysRules =
			      FALSE)
     static SoType	 getClassTypeId()
     virtual SoType	 getTypeId()
     virtual SbBool	 isOfType(SoType type)
     virtual void	 invalidateState()

DESCRIPTION
       This class performs picking by casting a	ray into a scene and  perform-
       ing  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 in-
       stance.

       The picking ray can be specified	as either a ray	from the camera	 loca-
       tion  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  in-
       tersection  can	be examined by accessing the appropriate SoPickedPoint
       in the list. The	SoPickedPoint class provides methods to	get the	inter-
       section point, normal, and other	info.

METHODS
				SoRayPickAction(const  SbViewportRegion	&view-
				     portRegion)
	  Constructor takes viewport region to use for	picking.  Even	though
	  the  picking	operation  may not involve a window per	se, some nodes
	  need this information	to determine their size	and placement.

     void			setPoint(const SbVec2s &viewportPoint)
	  Sets the viewport-space point	through	which the ray passes, starting
	  at  the camera's viewpoint. Viewport coordinates range from (0,0) at
	  the lower left to (width-1,height-1) at the upper right.

     void			setNormalizedPoint(const SbVec2f &normPoint)
	  Sets the viewport point in normalized	coordinates, which range  from
	  (0,0)	at the lower left to (1,1) at the upper	right.

     void			setRadius(float	radiusInPixels)
	  Set the radius (in pixels) around the	point. This is used when test-
	  ing the ray against lines and	points.	By default, the	 radius	 is  5
	  pixels.  For	perspective  cameras, the ray is extended to be	a cone
	  when testing against lines and points. For orthographic cameras, the
	  ray  is  extended  to	 be  a	cylinder. The radius has no effect for
	  shapes of other types.

     void			setRay(const  SbVec3f  &start,	const  SbVec3f
				     &direction,  float	 nearDistance  = -1.0,
				     float farDistance = -1.0)
	  Sets a world-space ray along which to	pick. The ray is defined as  a
	  world	 space starting	point and direction vector. The	direction vec-
	  tor will be normalized automatically.	The last two arguments are the
	  parametric  distances	between	which intersections along the ray must
	  occur. The distances are measured as if the direction	vector is unit
	  length;  e.g.,  if  nearDistance is 2.0, the intersection must occur
	  past (start +	2*(length of the direction vector))  units  along  the
	  ray. These distances can be used to achieve near and far plane clip-
	  ping.	A negative distance (such as the default values) means disable
	  clipping to that plane.

     void			setPickAll(SbBool flag)
     SbBool			isPickAll() const
	  Sets/returns	whether	the action will	return all objects intersected
	  or just the closest one.

     const SoPickedPointList &	getPickedPointList() const
	  Returns list of picked points.

     SoPickedPoint *		getPickedPoint(int index = 0) const
	  Returns the indexed picked point from	the list.

SEE ALSO
       SoPickedPoint, SoPickedPointList

							SoRayPickAction(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SoRayPickAction&sektion=3iv&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help