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

FreeBSD Manual Pages

  
 
  

home | help
SoTabPlaneDragger(3IV)()			      SoTabPlaneDragger(3IV)()

NAME
       SoTabPlaneDragger  --  object you can translate or scale	within a plane
       by dragging with	the mouse

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

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

	  Fields from class SoTabPlaneDragger:

     SoSFVec3f		 scaleFactor
     SoSFVec3f		 translation

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

			 SoTabPlaneDragger()
     void		 adjustScaleTabSize()
     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
       SoTabPlaneDragger  is  a	dragger	which allows the user to interactively
       translate and scale in a	plane. It looks	like a	square	white  outline
       with  smaller  green squares (or	tabs) set in the corners and along the
       center of each edge. Dragging a corner tab scales the dragger in	2D  by
       scaling	about  the  opposite  corner. Dragging an edge tab performs 1D
       scaling about the opposite edge.	The rest of the	dragger	 is  invisible
       but pickable; selecting it initiates translation	within the plane.

       The  dragger  tries  to	keep  the small	tabs a constant	size in	screen
       space. Every time a drag	begins or ends,	the size is recalculated based
       on the viewing and modeling matrix.

       When  dragging  the  translator part, press the <Shift> key and you can
       constrain motion	to either the local x axis or the y axis.  The	direc-
       tion  is	 determined  by	 your initial mouse gesture after pressing the
       key.  Releasing the key removes the constraint.

       When the	translator part	drags, the  dragger  updates  its  translation
       field.  The various scaling parts cause changes to both the scaleFactor
       and translation field, since scaling about a point other	than the  cen-
       ter  adds  translation  to  the	center	of the dragger.	If you set the
       field, the dragger will move accordingly. You can also  connect	fields
       of  other  nodes	or engines from	this one to make them follow the drag-
       ger's motion.

       You can not change the shape used to draw the tabs. This	part  is  kept
       privately  and  may  not	 be  changed; the coordinates for the tabs are
       edited during adjustScaleTabSize().

       The SoTabPlaneDragger class does	contain	 three	other  parts  you  can
       change:	  tabPlaneTranslator,	 tabPlaneScaleTabMaterial   and	  tab-
       PlaneScaleTabHints.

       Each of these is	set by default from a resource described in the	 Drag-
       ger  Resources section of the online reference page for this class. You
       can change the parts in any instance of this dragger using setPart().

       You can make your program use different default resources for the parts
       by  copying the file /usr/share/data/draggerDefaults/tabPlaneDragger.iv
       into your own directory,	editing	the file, and then setting  the	 envi-
       ronment variable	SO_DRAGGER_DIR to be a path to that directory.

FIELDS
     SoSFVec3f		 scaleFactor
	  Scale	factor affecting the dragger.

     SoSFVec3f		 translation
	  Position of the dragger.

METHODS
			 SoTabPlaneDragger()
	  Constructor.

     void		 adjustScaleTabSize()
	  Cause	 the  scale  tab sizes to be re-adjusted so that they remain a
	  near constant	screen space size.  This  happens  automatically  upon
	  dragger  finish.  Call  this	to adjust the scale tab	sizes at other
	  times, for instance after the	camera has changed in a	viewer	finish
	  callback.

     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   |
       |translator	   Separator	     --		      yes   |
       |scaleTabMaterial   Material	     --		      yes   |
       |scaleTabHints	   ShapeHints	     --		      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:	       tabPlaneTranslator
       .in 0n+.5i
     Part:	       translator
     Appearance:       Outline of a Square. The	region within it is pickable
     Description:      Begins translation within the plane

			 .in 0n+.5i
     Resource:	       tabPlaneScaleTabMaterial
			 .in 0n+.5i
     Part:	       scaleTabMaterial
     Appearance:       Green - half diffuse, half emissive.
     Description:      Used as material	for scaling tabs.

			 .in 0n+.5i
     Resource:	       tabPlaneScaleTabHints
			 .in 0n+.5i
     Part:	       scaleTabHints
     Appearance:       shapeHints node:COUNTERCLOCKWISE/SOLID/CONVEX
     Description:      Property	for the	tab nodes.

FILE FORMAT/DEFAULTS
       TabPlaneDragger {
	  renderCaching	      AUTO
	  boundingBoxCaching  AUTO
	  renderCulling	      AUTO
	  pickCulling	      AUTO
	  isActive	      FALSE
	  translation	      0	0 0
	  scaleFactor	      1	1 1
	  callbackList	      NULL
	  translator	      <tabPlaneTranslator resource>
	  scaleTabMaterial    <tabPlaneScaleTabMaterial	resource>
	  scaleTabHints	      <tabPlaneScaleTabHints resource>
     }

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

						      SoTabPlaneDragger(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=SoTabPlaneDragger&sektion=3iv&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help