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

FreeBSD Manual Pages

  
 
  

home | help
SoTrackballDragger(3IV)()			     SoTrackballDragger(3IV)()

NAME
       SoTrackballDragger -- striped ball you can rotate or scale uniformly by
       dragging	with the mouse

INHERITS FROM
       SoBase >	SoFieldContainer > SoNode > SoBaseKit >	SoInteractionKit > So-
       Dragger > SoTrackballDragger

SYNOPSIS
       #include	<Inventor/draggers/SoTrackballDragger.h>

	  Fields from class SoTrackballDragger:

     SoSFVec3f		 scaleFactor
     SoSFRotation	 rotation

	  Fields from class SoDragger:

     SoSFBool		 isActive

	  Fields from class SoInteractionKit:

     SoSFEnum		 renderCaching
     SoSFEnum		 boundingBoxCaching
     SoSFEnum		 renderCulling
     SoSFEnum		 pickCulling

	  Parts	from class SoBaseKit:

     (SoNodeKitListPart)  callbackList

	  Methods from class SoTrackballDragger:

			 SoTrackballDragger()
     SbBool		 isAnimationEnabled()
     void		 setAnimationEnabled(SbBool newVal)
     static const SoNodekitCatalog *
			 getClassNodekitCatalog() const
     static SoType	 getClassTypeId()

	  Methods from class SoDragger:

     void		 addStartCallback(SoDraggerCB  *f,  void  *userData  =
			      NULL)
     void		 removeStartCallback(SoDraggerCB *f, void *userData  =
			      NULL)
     void		 addMotionCallback(SoDraggerCB	*f,  void  *userData =
			      NULL)
     void		 removeMotionCallback(SoDraggerCB *f, void *userData =
			      NULL)
     void		 addFinishCallback(SoDraggerCB	*f,  void  *userData =
			      NULL)
     void		 removeFinishCallback(SoDraggerCB *f, void *userData =
			      NULL)
     void		 addValueChangedCallback(SoDraggerCB  *f,  void	*user-
			      Data = NULL)
     void		 removeValueChangedCallback(SoDraggerCB	   *f,	  void
			      *userData	= NULL)
     SbBool		 enableValueChangedCallbacks()
     void		 setMinGesture(int pixels)
     int		 getMinGesture() const
     static void	 setMinScale(float newMinScale)
     static float	 getMinScale()

	  Methods from class SoInteractionKit:

     virtual  SbBool	  setPartAsPath(const SbName &partName,	SoPath *surro-
			      gatePath )

	  Methods from class SoBaseKit:

     virtual const SoNodekitCatalog *
			      getNodekitCatalog() const
     virtual   SoNode	*	  getPart(const	  SbName   &partName,	SbBool
				   makeIfNeeded)
     SbString		      getPartString(const SoBase *part)
     virtual  SoNodeKitPath *  createPathToPart(const SbName &partName,	SbBool
				   makeIfNeeded, const SoPath *pathToExtend  =
				   NULL)
     virtual SbBool	      setPart(const SbName &partName, SoNode *newPart)
     SbBool		      set(char *partName, char *parameters)
     SbBool		      set(char *nameValuePairs)
     static SbBool	      isSearchingChildren()
     static void	      setSearchingChildren(SbBool newVal)

	  Methods from class SoNode:

     void		 setOverride(SbBool state)
     SbBool		 isOverride() const
     SoNode *		 copy(SbBool copyConnections = FALSE) const
     virtual SbBool	 affectsState()	const
     static SoNode *	 getByName(const SbName	&name)
     static int		 getByName(const SbName	&name, SoNodeList &list)

	  Methods from class SoFieldContainer:

     void		 setToDefaults()
     SbBool		 hasDefaultValues() const
     SbBool		 fieldsAreEqual(const SoFieldContainer *fc) const
     void		 copyFieldValues(const	SoFieldContainer  *fc,	SbBool
			      copyConnections =	FALSE)
     void		 get(SbString &fieldDataString)
     virtual int	 getFields(SoFieldList &resultList) const
     virtual SoField *	 getField(const	SbName &fieldName) const
     SbBool		 getFieldName(const SoField *field, SbName &fieldName)
			      const
     SbBool		 isNotifyEnabled() const
     SbBool		 enableNotify(SbBool flag)

	  Methods from class SoBase:

     void		 ref()
     void		 unref() const
     void		 unrefNoDelete() const
     void		 touch()
     virtual SoType	 getTypeId() const
     SbBool		 isOfType(SoType type) const
     virtual void	 setName(const SbName &name)
     virtual SbName	 getName() const

	  Macros from class SoBaseKit:

     SO_GET_PART(kit, partName,	partClass)
     SO_CHECK_PART(kit,	partName, partClass)

DESCRIPTION
       SoTrackballDragger  is  a  ball	wrapped	in three circular stripes. The
       stripes are oriented like wheels	that spin around the x,	y, and z axes.
       Drag  the stripes to rotate the trackball around	those axes. You	do not
       have to hit the lines; pick anywhere within the	stripe's  outline.  To
       rotate the trackball freely in 3	dimensions, click the area between the
       stripes and then	drag. An invisible but pickable	sphere initiates  this
       dragging.  If the mouse is still	moving when you	release	it, the	track-
       ball will continue to spin.

       Press the <Control> key to scale	the trackball uniformly	instead	of ro-
       tating.

       Press  the  <Shift>  key	and the	user axis appears; this	is a draggable
       axis with an extra stripe around	it. Moving the mouse along the surface
       of the sphere drags the 'pole' of the axis. Release the <Shift> key and
       the user	axis remains; drag the new  stripe  for	 constrained  rotation
       around  the  user  axis.	To make	the user axis disappear, press <Shift>
       and drag	the pole to where two of other stripes intersect. This	aligns
       the  user axis with a primary axis, at which point the user axis	disap-
       pears.

       As you drag the trackball, it updates its rotation field, or its	scale-
       Factor field if the <Control> key is down. As with all draggers,	if you
       change the fields the dragger moves in response.

       Remember: This is not an	SoTransform!. If you want to  move  other  ob-
       jects with this dragger,	you can	either:

       [a]  Use	an SoTrackballManip, which is subclassed from SoTransform. The
       manipulator creates one of these	draggers and uses it as	the  interface
       to  edit	 the manipulator's fields. (see	the SoTrackballManip reference
       page).

       [b] Use field-to-field connections to connect the fields	of this	 drag-
       ger to those of any SoTransformation node.

       You  can	 change	 the  parts in any instance of this dragger using set-
       Part(). The default part	geometries are defined as resources  for  this
       SoTrackballDragger  class.  They	 are detailed in the Dragger Resources
       section of the online reference page for	this class. You	can make  your
       program	use  different	default	resources for the parts	by copying the
       file /usr/share/data/draggerDefaults/trackballDragger.iv	into your  own
       directory,  editing the file, and then setting the environment variable
       SO_DRAGGER_DIR to be a path to that directory.

FIELDS
     SoSFVec3f		 scaleFactor
	  Scale	of the dragger.

     SoSFRotation	 rotation
	  Orientation of the dragger.

METHODS
			 SoTrackballDragger()
	  Constructor.

     SbBool		 isAnimationEnabled()
     void		 setAnimationEnabled(SbBool newVal)
	  If the mouse is moving while you release it, the trackball will con-
	  tinue	 to  spin  afterwards.	These  two  methods will query and set
	  whether this feature is turned on or off. By default,	the  animation
	  feature is turned on.

     static const SoNodekitCatalog *
			 getClassNodekitCatalog() const
	  Returns an SoNodekitCatalog for this class

     static SoType	 getClassTypeId()
	  Returns type identifier for this class.

CATALOG	PARTS
       +-------------------------------------------------------------+
       |			 All parts			     |
       |						     NULL by |
       |Part Name	    Part Type	      Default Type   Default |
       |							     |
       |callbackList	    NodeKitListPart   --	       yes   |
       |surroundScale	    SurroundScale     --	       yes   |
       |antiSquish	    AntiSquish	      --	       no    |
       |rotator		    Separator	      --	       yes   |
       |rotatorActive	    Separator	      --	       yes   |
       |XRotator	    Separator	      --	       yes   |
       |XRotatorActive	    Separator	      --	       yes   |
       |YRotator	    Separator	      --	       yes   |
       |YRotatorActive	    Separator	      --	       yes   |
       |ZRotator	    Separator	      --	       yes   |
       |ZRotatorActive	    Separator	      --	       yes   |
       |userAxis	    Separator	      --	       yes   |
       |userAxisActive	    Separator	      --	       yes   |
       |userRotator	    Separator	      --	       yes   |
       |userRotatorActive   Separator	      --	       yes   |
       |							     |
       +-------------------------------------------------------------+
       +---------------------------------------------------------------+
       |      Extra information	for list parts from above table	       |
       |							       |
       |Part Name      Container Type	Permissible Types	       |
       |							       |
       |callbackList   Separator	Callback, EventCallback	       |
       |							       |
       +---------------------------------------------------------------+
DRAGGER	RESOURCES
       .in 0n+.5i
     Resource:	       trackballRotator
       .in 0n+.5i
     Part:	       rotator
     Appearance:       Invisible but pickable sphere
     Description:      Initiates  unconstrained	 3D rotation. Slightly smaller
			 radius	than the stripes, so you must pick between the
			 stripes to use	it.

			 .in 0n+.5i
     Resource:	       trackballRotatorActive
			 .in 0n+.5i
     Part:	       rotatorActive
     Appearance:       Invisible sphere
     Description:      Displayed during	unconstrained 3D rotation.

			 .in 0n+.5i
     Resource:	       trackballXRotator
			 .in 0n+.5i
     Part:	       XRotator
     Appearance:       White outline of	a stripe aligned with the X axis.
     Description:      Pick  this to initiate constrained rotation about the X
			 axis.

			 .in 0n+.5i
     Resource:	       trackballXRotatorActive
			 .in 0n+.5i
     Part:	       XRotatorActive
     Appearance:       Yellow version of the regular XRotator
     Description:      Displayed during	constrained rotation about the X axis.

			 .in 0n+.5i
     Resource:	       trackballYRotator
			 .in 0n+.5i
     Part:	       YRotator
     Appearance:       White outline of	a stripe aligned with the Y axis.
     Description:      Pick this to initiate constrained rotation about	the  Y
			 axis.

			 .in 0n+.5i
     Resource:	       trackballYRotatorActive
			 .in 0n+.5i
     Part:	       YRotatorActive
     Appearance:       Yellow version of the regular YRotator
     Description:      Displayed during	constrained rotation about the Y axis.

			 .in 0n+.5i
     Resource:	       trackballZRotator
			 .in 0n+.5i
     Part:	       ZRotator
     Appearance:       White outline of	a stripe aligned with the Z axis.
     Description:      Pick  this to initiate constrained rotation about the Z
			 axis.

			 .in 0n+.5i
     Resource:	       trackballZRotatorActive
			 .in 0n+.5i
     Part:	       ZRotatorActive
     Appearance:       Yellow version of the regular ZRotator
     Description:      Displayed during	constrained rotation about the Z axis.

			 .in 0n+.5i
     Resource:	       trackballUserAxis
			 .in 0n+.5i
     Part:	       userAxis
     Appearance:       Thin purple line
     Description:      Displays	the user axis. Dragging	 the  userRotator  ro-
			 tates about this line.

			 .in 0n+.5i
     Resource:	       trackballUserAxisActive
			 .in 0n+.5i
     Part:	       userAxisActive
     Appearance:       Thin purple line
     Description:      Displays	 the  user  axis. Dragging the userRotator ro-
			 tates about this line.

			 .in 0n+.5i
     Resource:	       trackballUserRotator
			 .in 0n+.5i
     Part:	       userRotator
     Appearance:       Transparent green stripe	circling the user axis.
     Description:      Pick to initiate	constrained rotation  about  the  user
			 axis.

			 .in 0n+.5i
     Resource:	       trackballUserRotatorActive
			 .in 0n+.5i
     Part:	       userRotatorActive
     Appearance:       Brighter	green version of the regular userRotator
     Description:      Displayed  during  constrained  rotation	about the user
			 axis.

FILE FORMAT/DEFAULTS
       TrackballDragger	{
	  renderCaching	      AUTO
	  boundingBoxCaching  AUTO
	  renderCulling	      AUTO
	  pickCulling	      AUTO
	  isActive	      FALSE
	  rotation	      0	0 1  0
	  scaleFactor	      1	1 1
	  callbackList	      NULL
	  surroundScale	      NULL
	  antiSquish	      AntiSquish {
	      sizing LONGEST_DIAGONAL }

	  rotator	      <trackballRotator	resource>
	  rotatorActive	      <trackballRotatorActive resource>
	  XRotator	      <trackballXRotator resource>
	  XRotatorActive      <trackballXRotatorActive resource>
	  YRotator	      <trackballYRotator resource>
	  YRotatorActive      <trackballYRotatorActive resource>
	  ZRotator	      <trackballZRotator resource>
	  ZRotatorActive      <trackballZRotatorActive resource>
	  userAxis	      <trackballUserAxis resource>
	  userAxisActive      <trackballUserAxisActive resource>
	  userRotator	      <trackballUserRotator resource>
	  userRotatorActive   <trackballUserRotatorActive resource>
     }

NOTE
       Unlike most multi-function draggers, SoTrackballDragger is not  a  com-
       pound dragger made up of	other draggers that perform its	smaller	tasks.
       This is not because it was inappropriate, but because the trackball was
       written before implementation of	the methods that take care of synchro-
       nizing multiple child draggers. The younger SoCenterballDragger is sim-
       ilar  in	 form to the trackball,	but the	centerball is a	compound drag-
       ger.

SEE ALSO
       SoInteractionKit, SoDragger,  SoCenterballDragger,  SoDirectionalLight-
       Dragger,	 SoDragPointDragger,  SoHandleBoxDragger,  SoJackDragger,  So-
       PointLightDragger,   SoRotateCylindricalDragger,	  SoRotateDiscDragger,
       SoRotateSphericalDragger,       SoScale1Dragger,	      SoScale2Dragger,
       SoScale2UniformDragger,	 SoScaleUniformDragger,	   SoSpotLightDragger,
       SoTabBoxDragger,	  SoTabPlaneDragger,  SoTransformBoxDragger,  SoTrans-
       formerDragger, SoTranslate1Dragger, SoTranslate2Dragger

						     SoTrackballDragger(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | FIELDS | METHODS | CATALOG PARTS | DRAGGER RESOURCES | FILE FORMAT/DEFAULTS | NOTE | SEE ALSO

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

home | help