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

FreeBSD Manual Pages

  
 
  

home | help
SoCenterballDragger(3IV)()			    SoCenterballDragger(3IV)()

NAME
       SoCenterballDragger  --	striped	ball you rotate	and re-center by drag-
       ging with the mouse

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

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

	  Fields from class SoCenterballDragger:

     SoSFRotation	 rotation
     SoSFVec3f		 center

	  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 SoCenterballDragger:

			 SoCenterballDragger()
     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
       SoCenterballDragger  is	a composite dragger. Its shape is a sphere de-
       fined by	three intersecting circles. Where the  circles	intersect  (at
       the  ends  of  the  x,  y  and  z  axes)	 there are sets	of small green
       crosshairs. Dragging a pair of crosshairs translates the	entire center-
       ball  within  the  plane	of the crosshairs. The interface of the	sphere
       and circles is just like	SoTrackballDragger. Dragging a circle  rotates
       about  a	 constrained  axis and dragging	the areas between them rotates
       the sphere freely about the center. An invisible	 but  pickable	sphere
       initiates the free-rotation dragging.

       When  you drag the crosshairs, the center field is updated; there is no
       translation field. Dragging other parts of the centerball  updates  the
       rotation	 field.	 As  with  all	draggers, if you change	the fields the
       dragger moves in	response.

       The draggers used for the crosshair parts are SoTranslate2Draggers,  so
       pressing	 the <Shift> key allows	you to constrain motion	to slide along
       either the local	x axis or y axis of that crosshair.. The direction  is
       determined  by  your  initial mouse gesture after pressing the key. Re-
       leasing the key removes the constraint.

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

       [a] Use an SoCenterballManip, 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 SoCenterballManip man	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
       SoCenterballDragger 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/centerballDragger.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
     SoSFRotation	 rotation
	  Orientation of the centerball	dragger.

     SoSFVec3f		 center
	  Center of rotation and scale of the centerball dragger.

METHODS
			 SoCenterballDragger()
	  Constructor.

     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   |
       |translateToCenter   MatrixTransform	       --		yes   |
       |surroundScale	    SurroundScale	       --		yes   |
       |antiSquish	    AntiSquish		       --		no    |
       |lightModel	    LightModel		       --		yes   |
       |XAxis		    Separator		       --		yes   |
       |YAxis		    Separator		       --		yes   |
       |ZAxis		    Separator		       --		yes   |
       |rotator		    RotateSphericalDragger     --		yes   |
       |YRotator	    RotateCylindricalDragger   --		yes   |
       |ZCenterChanger	    Translate2Dragger	       --		yes   |
       |ZRotator	    RotateCylindricalDragger   --		yes   |
       |YCenterChanger	    Translate2Dragger	       --		yes   |
       |XCenterChanger	    Translate2Dragger	       --		yes   |
       |XRotator	    RotateCylindricalDragger   --		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:	       centerballRotator
       .in 0n+.5i
     Part:	       rotator.rotator
     Appearance:       Invisible but pickable sphere
     Description:      When  picked,  initiates	free rotation about the	center
			 point.	Slightly smaller radius	than the  stripes,  so
			 you must pick between the stripes to use it.

			 .in 0n+.5i
     Resource:	       centerballRotatorActive
			 .in 0n+.5i
     Part:	       rotator.rotatorActive
     Appearance:       Invisible sphere
     Description:      Displayed  during  unconstrained	3D rotation instead of
			 centerballRotator.

			 .in 0n+.5i
     Resource:	       centerballStripe
			 .in 0n+.5i
     Parts:	       XRotator.rotator
					   YRotator.rotator
					   ZRotator.rotator
     Appearance:       White circle aligned with rotation axis.
     Description:      When picked, initiates constrained rotation. Each rota-
			 tor  rotates locally about its	Y axis.	The centerball
			 contains private  transform  parts  that  orient  the
			 draggers along	three different	axes.

			 .in 0n+.5i
     Resource:	       centerballStripeActive
			 .in 0n+.5i
     Parts:	       XRotator.rotatorActive
					   YRotator.rotatorActive
					   ZRotator.rotatorActive
     Appearance:       White circle aligned with the rotation axis.
     Description:      Displayed  during  constrained  rotation	instead	of the
			 rotator part. The  centerball	orients	 the  draggers
			 along three different axes.

			 .in 0n+.5i
     Resource:	       centerballCenterChanger
			 .in 0n+.5i
     Parts:	       XCenterChanger.translator
					   YCenterChanger.translator
					   ZCenterChanger.translator
     Appearance:       Two sets	of small green crosshairs, one located at each
     intersection of axis and ball.
     Description:      When picked, initiates 2D translation of	 ball  through
			 space.	 Edits	the center field, which	becomes	center
			 for subsequent	rotations. Each	translator  works  lo-
			 cally	in its X-Y plane. The centerball contains pri-
			 vate transform	parts that place  the  draggers	 along
			 three different axes.

			 .in 0n+.5i
     Resource:	       centerballCenterChangerActive
			 .in 0n+.5i
     Parts:	       XCenterChanger.translatorActive
					   YCenterChanger.translatorActive
					   ZCenterChanger.translatorActive
     Appearance:       Yellow version of centerballCenterChanger.
     Description:      Displayed  during  2D  translation  instead  of regular
			 translator part. The centerball places	 the  draggers
			 along three different axes.

			 .in 0n+.5i
     Resource:	       centerballCenterXAxisFeedback
			 .in 0n+.5i
     Parts:	       XCenterChanger.xAxisFeedback
					   YCenterChanger.xAxisFeedback
					   ZCenterChanger.xAxisFeedback
     Appearance:       Double-headed purple arrows, one	located	at each	inter-
     section of	axis and ball. Located atop X axis of crosshair.
     Description:      Only shown if dragger is	moving and the axis is a  per-
			 mitted	 direction  of	motion.	When pressing <shift>,
			 motion	is constrained,	and this is displayed only  if
			 the primary motion is in the X	direction of the child
			 dragger's local  space.  The  centerball  places  the
			 draggers  along  three	 different axes; so not	all of
			 these parts aligns with  the  X  axis	in  centerball
			 space.

			 .in 0n+.5i
     Resource:	       centerballCenterYAxisFeedback
			 .in 0n+.5i
     Parts:	       XCenterChanger.yAxisFeedback
					   YCenterChanger.yAxisFeedback
					   ZCenterChanger.yAxisFeedback
     Appearance:       Double-headed purple arrows, one	located	at each	inter-
     section of	axis and ball. Located atop Y axis of crosshair.
     Description:      Only shown if dragger is	moving and the axis is a  per-
			 mitted	 direction  of	motion.	When pressing <shift>,
			 motion	is constrained,	and this is displayed only  if
			 the primary motion is in the Y	direction of the child
			 dragger's local  space.  The  centerball  places  the
			 draggers  along  three	 different axes; so not	all of
			 these parts aligns with  the  Y  axis	in  centerball
			 space.

			 .in 0n+.5i
     Resource:	       centerballXAxis
			 .in 0n+.5i
     Part:	       XAxis
     Appearance:       Thin yellow line	connecting left	and right crosshairs.
     Description:      Feedback	shown alone during rotation about X axis; dis-
			 played	with centerballYAxis and centerballZAxis while
			 center	is dragged.

			 .in 0n+.5i
     Resource:	       centerballYAxis
			 .in 0n+.5i
     Part:	       YAxis
     Appearance:       Thin yellow line	connecting lower and upper crosshairs.
     Description:      Feedback	shown alone during rotation about Y axis; dis-
			 played	with centerballXAxis and centerballZAxis while
			 center	is dragged.

			 .in 0n+.5i
     Resource:	       centerballZAxis
			 .in 0n+.5i
     Part:	       ZAxis
     Appearance:       Thin yellow line	connecting near	and far	crosshairs.
     Description:      Feedback	shown alone during rotation about Z axis; dis-
			 played	with centerballXAxis and centerballYAxis while
			 center	is dragged.

FILE FORMAT/DEFAULTS
       CenterballDragger {
	  renderCaching			   AUTO
	  boundingBoxCaching		   AUTO
	  renderCulling			   AUTO
	  pickCulling			   AUTO
	  isActive			   FALSE
	  rotation			   0 0 1  0
	  center			   0 0 0
	  callbackList			   NULL
	  translateToCenter		   MatrixTransform {
	      matrix 1 0 0 0
					       0 1 0 0
					       0 0 1 0
					       0 0 0 1 }

	  surroundScale			   NULL
	  antiSquish			   AntiSquish {
	      sizing LONGEST_DIAGONAL }

	  lightModel			   LightModel {
	      model PHONG }

	  XAxis				   <centerballXAxis resource>
	  YAxis				   <centerballYAxis resource>
	  ZAxis				   <centerballZAxis resource>
	  rotator			   RotateSphericalDragger {
	  }

	  YRotator			   RotateCylindricalDragger {
	  }

	  ZCenterChanger		   Translate2Dragger {
	  }

	  ZRotator			   RotateCylindricalDragger {
	  }

	  YCenterChanger		   Translate2Dragger {
	  }

	  XCenterChanger		   Translate2Dragger {
	  }

	  XRotator			   RotateCylindricalDragger {
	  }

	  rotator.rotator		   <centerballRotator resource>
	  rotator.rotatorActive		   <centerballRotatorActive resource>
	  XRotator.rotator		   <centerballStripe resource>
	  YRotator.rotator		   <centerballStripe resource>
	  ZRotator.rotator		   <centerballStripe resource>
	  XRotator.rotatorActive	   <centerballStripeActive resource>
	  YRotator.rotatorActive	   <centerballStripeActive resource>
	  ZRotator.rotatorActive	   <centerballStripeActive resource>
	  XCenterChanger.translator	   <centerballCenterChanger resource>
	  YCenterChanger.translator	   <centerballCenterChanger resource>
	  ZCenterChanger.translator	   <centerballCenterChanger resource>
	  XCenterChanger.translatorActive  <centerballCenterChangerActive resource>
	  YCenterChanger.translatorActive  <centerballCenterChangerActive resource>
	  ZCenterChanger.translatorActive  <centerballCenterChangerActive resource>
	  XCenterChanger.xAxisFeedback	   <centerballCenterXAxisFeedback resource>
	  YCenterChanger.xAxisFeedback	   <centerballCenterXAxisFeedback resource>
	  ZCenterChanger.xAxisFeedback	   <centerballCenterXAxisFeedback resource>
	  XCenterChanger.yAxisFeedback	   <centerballCenterYAxisFeedback resource>
	  YCenterChanger.yAxisFeedback	   <centerballCenterYAxisFeedback resource>
	  ZCenterChanger.yAxisFeedback	   <centerballCenterYAxisFeedback resource>
     }

SEE ALSO
       SoInteractionKit,  SoDragger,  SoDirectionalLightDragger,  SoDragPoint-
       Dragger,	SoHandleBoxDragger, SoJackDragger, SoPointLightDragger,	 SoRo-
       tateCylindricalDragger,	SoRotateDiscDragger, SoRotateSphericalDragger,
       SoScale1Dragger,	SoScale2Dragger,  SoScale2UniformDragger,  SoScaleUni-
       formDragger,  SoSpotLightDragger,  SoTabBoxDragger,  SoTabPlaneDragger,
       SoTrackballDragger,  SoTransformBoxDragger,  SoTranslate1Dragger,   So-
       Translate2Dragger

						    SoCenterballDragger(3IV)()

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

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

home | help