SoDragPointDragger(3IV)

SoDragPointDragger (SoDragPtDrag) - object you can translate in 3D by dragging with the mouse

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoDragPointDragger (SoDragPtDrag) - object you can translate in 3D by
     dragging with the mouse

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit >
     SoDragger > SoDragPointDragger

SYNOPSIS
     #include <Inventor_c/draggers/SoDragPointDragger.h>

     typedef SoDragPointDragger  SoDragPtDrag

          Fields from class SoDragPointDragger:

     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

          Functions from class SoDragPointDragger:

     SoDragPointDragger *      SoDragPtDragCreate()
     void                      SoDragPtDragSetJumpLimit(SoDragPtDrag *this,
                                    float limit)
     float                     SoDragPtDragGetJumpLimit(const SoDragPtDrag
                                    *this)
     void                      SoDragPtDragShowNextDraggerSet(SoDragPtDrag
                                    *this)
     const SoNodekitCatalog *  SoDragPtDragGetClassNkitCat()
     SoType                    SoDragPtDragGetClassTypeId()

          Functions from class SoDragger:

     void                SoDragPtDragAddStartCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragRemoveStartCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragAddMotionCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragRemoveMotionCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragAddFinishCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragRemoveFinishCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragAddValueChangedCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     void                SoDragPtDragRemoveValueChangedCB(SoDragPtDrag *this,
                              SoDraggerCB *f, void *userData = NULL)
     SbBool              SoDragPtDragEnableValueChangedCBs(SoDragPtDrag *this)
     void                SoDragPtDragSetMinGesture(SoDragPtDrag *this, int
                              pixels)
     int                 SoDragPtDragGetMinGesture(const SoDragPtDrag *this)
     void                SoDragPtDragSetMinScale(float newMinScale)
     float               SoDragPtDragGetMinScale()

          Functions from class SoInteractionKit:

     SbBool              SoDragPtDragSetPartAsPath(SoDragPtDrag *this, const
                              char *partName, SoPath *surrogatePath )

          Functions from class SoBaseKit:

     const SoNodekitCatalog *  SoDragPtDragGetCat(const SoDragPtDrag *this)
     SoNode *                  SoDragPtDragGetPart(SoDragPtDrag *this, const
                                    char *partName, SbBool makeIfNeeded)
     SbString                  SoDragPtDragGetPartString(SoDragPtDrag *this,
                                    const SoBase *part)
     SoNodeKitPath *           SoDragPtDragCreatePathToPart(SoDragPtDrag
                                    *this, const char *partName, SbBool
                                    makeIfNeeded, const SoPath *pathToExtend =
                                    NULL)
     SbBool                    SoDragPtDragSetPart(SoDragPtDrag *this, const
                                    char *partName, SoNode *newPart)
     SbBool                    SoDragPtDragSet(SoDragPtDrag *this, char
                                    *partName, char *parameters)
     SbBool                    SoDragPtDragSet2(SoDragPtDrag *this, char
                                    *nameValuePairs)
     SbBool                    SoDragPtDragIsSearchingChildren()
     void                      SoDragPtDragSetSearchingChildren(SbBool newVal)

          Functions from class SoNode:

     void                SoDragPtDragSetOverride(SoDragPtDrag *this, SbBool
                              state)
     SbBool              SoDragPtDragIsOverride(const SoDragPtDrag *this)
     SoNode *            SoDragPtDragCopy(const SoDragPtDrag *this, SbBool
                              copyConnections = FALSE)
     SbBool              SoDragPtDragAffectsState(const SoDragPtDrag *this)
     SoNode *            SoDragPtDragGetByName(const char *name)

     int                 SoDragPtDragGetByNameList(const char *name,
                              SoNodeList *list)

          Functions from class SoFieldContainer:

     void                SoDragPtDragSetToDflts(SoDragPtDrag *this)
     SbBool              SoDragPtDragHasDfltVals(const SoDragPtDrag *this)
     SbBool              SoDragPtDragFldsAreEq(const SoDragPtDrag *this, const
                              SoFieldContainer *fc)
     void                SoDragPtDragCopyFieldVals(SoDragPtDrag *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     void                SoDragPtDragGet(SoDragPtDrag *this, SbString
                              *fieldDataString)
     int                 SoDragPtDragGetFields(const SoDragPtDrag *this,
                              SoFieldList *resultList)
     SoField *           SoDragPtDragGetField(const SoDragPtDrag *this, const
                              char *fieldName)
     SbBool              SoDragPtDragGetFieldName(const SoDragPtDrag *this,
                              const SoField *field, SbName *fieldName)
     SbBool              SoDragPtDragIsNotifyEnabled(const SoDragPtDrag *this)
     SbBool              SoDragPtDragEnableNotify(SoDragPtDrag *this, SbBool
                              flag)

          Functions from class SoBase:

     void                SoDragPtDragRef(SoDragPtDrag *this)
     void                SoDragPtDragUnref(const SoDragPtDrag *this)
     void                SoDragPtDragUnrefNoDelete(const SoDragPtDrag *this)
     void                SoDragPtDragTouch(SoDragPtDrag *this)
     SoType              SoDragPtDragGetTypeId(const SoDragPtDrag *this)
     SbBool              SoDragPtDragIsOfType(const SoDragPtDrag *this, SoType
                              type)
     void                SoDragPtDragSetName(SoDragPtDrag *this, const char
                              *name)
     SbName              SoDragPtDragGetName(const SoDragPtDrag *this)


DESCRIPTION
     SoDragPointDragger is a compound dragger that translates in all three
     dimensions when dragged with the mouse.

     It is made up of six smaller draggers, which it displays two at a time.
     Each pair has one plane dragger and one line dragger. The line dragger is
     oriented perpendicular to the plane, so together the plane/line pair lets
     you move through all of 3-space.

     DragPoint has a total of three such pairs, oriented along the x, y, and z
     axes of its local space. You can cycle through the three pairs by hitting
     the <Control> key with the cursor over the dragger. (You need not press
     the mouse button.)

     The line draggers are SoTranslate1Draggers and the plane draggers are
     SoTranslate2Draggers.  So you can use the <Shift> key to constrain the
     motion of a plane dragger along one of the two axes within the plane, as
     described in the SoTranslate2Draggers man page.

     DragPoint adds extra feedback parts to provide a more intuitive idea of
     where you are placed in three-space. There are three feedback planes and
     three feedback axes; each corresponds to one of the plane or line
     draggers, but spans a much greater distance. When you drag along a line,
     that line's larger feedback axis is displayed, and remains anchored in
     space while the dragger slides along it. This helps establish the motion
     of the dragger relative to the rest of the scene. Similarly, when you
     drag within a plane, the larger (but transparent) feedback plane
     establishes a ground plane for you to move upon. The location of the
     dragger within the plane is pinpointed by two intersecting axes that
     always cross below the cursor and extend to the edges of the plane. When
     you move dragPoint to the edge of the feedback plane (or line), the
     feedback will jump to a new location in that direction, so that the
     dragger never leaves the feedback behind.

     The primary directions of motion are given by the local space of the
     dragger. Transforms earlier in the scene will affect the dragger, its
     children, and the orientation of its directions of motion.

     This node has a translation field which always reflects its position in
     local space. Setting the field moves the dragger to that point. You can
     also connect fields of other nodes or engines from this one to make them
     follow the dragger's motion.

     Although the child draggers each have their own resources defining
     default part geometries, the dragPoint dragger overrides these with a new
     set of resources. It also defines resources for the feedback parts that
     it adds. These are detailed in the Dragger Resources section of the
     online reference page for this class. You can change the parts in any
     instance of this dragger using SoDraggerSetPart().

     You can make your program use different default resources for the parts
     by copying the file /usr/share/data/draggerDefaults/dragPointDragger.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           translation
          Position of the dragger.


FUNCTIONS
     SoDragPointDragger *      SoDragPtDragCreate()
          Constructor.

     void                      SoDragPtDragSetJumpLimit(SoDragPtDrag *this,
                                    float limit)
     float                     SoDragPtDragGetJumpLimit(const SoDragPtDrag
                                    *this)
          Set and get the point at which the feedback axes will jump to a new
          position. For example, if set to .1 (the default), the feedback axes
          will jump when the dragger gets within 10% of the end of the axis.

     void                      SoDragPtDragShowNextDraggerSet(SoDragPtDrag
                                    *this)
          The dragPoint dragger contains three pairs of draggers, each
          containing a plane dragger and a line dragger (see the Description
          above). The dragger starts with the (y-line/xz-plane) pair
          displayed. Calling this method will cycle next through the (z-
          line/xy-plane), then the (x-line/yz-plane).

     const SoNodekitCatalog *  SoDragPtDragGetClassNkitCat()
          Returns an SoNodekitCatalog for this class

     SoType                    SoDragPtDragGetClassTypeId()
          Returns type identifier for this class.


CATALOG PARTS
     ___________________________________________________________
                              All parts
                                                        NULL by
      Part Name      Part Type           Default Type   Default

      callbackList   NodeKitListPart     --               yes
      xTranslator    Translate1Dragger   --               yes
      xyTranslator   Translate2Dragger   --               yes
      xzTranslator   Translate2Dragger   --               yes
      zTranslator    Translate1Dragger   --               yes
      yzTranslator   Translate2Dragger   --               yes
      yTranslator    Translate1Dragger   --               yes
      xFeedback      Separator           --               yes
      yFeedback      Separator           --               yes
      zFeedback      Separator           --               yes
      yzFeedback     Separator           --               yes
      xzFeedback     Separator           --               yes
      xyFeedback     Separator           --               yes

     ___________________________________________________________
     |
















                                                                |

















     ________________________________________________________________
            Extra information for list parts from above table

      Part Name      Container Type   Permissible Types

                                      Callback, EventCallback
      callbackList   Separator

     ________________________________________________________________
     |




                                                                     |






DRAGGER RESOURCES
     Resource:         dragPointXTranslatorTranslator
     Part:             xTranslator.translator
     Appearance:       white cylinder with axis aligned in X direction
     Description:      picking this initiates linear motion in X direction

     Resource:         dragPointXTranslatorTranslatorActive
     Part:             xTranslator.translatorActive
     Appearance:       yellow cylinder with axis aligned in X direction
     Description:      shown when moving in X direction

     Resource:         dragPointYTranslatorTranslator
     Part:             yTranslator.translator
     Appearance:       white cylinder with axis aligned in Y direction
     Description:      picking this initiates linear motion in Y direction

     Resource:         dragPointYTranslatorTranslatorActive
     Part:             yTranslator.translatorActive
     Appearance:       yellow cylinder with axis aligned in Y direction
     Description:      shown when moving in Y direction

     Resource:         dragPointZTranslatorTranslator
     Part:             zTranslator.translator
     Appearance:       white cylinder with axis aligned in Z direction
     Description:      picking this initiates linear motion in Z direction

     Resource:         dragPointZTranslatorTranslatorActive
     Part:             zTranslator.translatorActive
     Appearance:       yellow cylinder with axis aligned in Z direction
     Description:      shown when moving in Z direction

     Resource:         dragPointYZTranslatorTranslator
     Part:             yzTranslator.translator
     Appearance:       white flattened cube within the yz plane of motion
     Description:      picking this initiates planar motion in yz plane

     Resource:         dragPointYZTranslatorTranslatorActive
     Part:             yzTranslator.translatorActive
     Appearance:       yellow flattened cube within the yz plane of motion
     Description:      shown when moving in yz plane

     Resource:         dragPointXZTranslatorTranslator
     Part:             xzTranslator.translator
     Appearance:       white flattened cube within the xz plane of motion
     Description:      picking this initiates planar motion in xz plane

     Resource:         dragPointXZTranslatorTranslatorActive
     Part:             xzTranslator.translatorActive
     Appearance:       yellow flattened cube within the xz plane of motion
     Description:      shown when moving in xz plane

     Resource:         dragPointXYTranslatorTranslator
     Part:             xyTranslator.translator
     Appearance:       white flattened cube within the xy plane of motion
     Description:      picking this initiates planar motion in xy plane
     Resource:         dragPointXYTranslatorTranslatorActive
     Part:             xyTranslator.translatorActive
     Appearance:       yellow flattened cube within the xy plane of motion
     Description:      shown when moving in xy plane

     Resource:         dragPointXFeedback
     Part:             xFeedback
     Appearance:       douple-headed purple arrow
     Description:      feedback for motion in x direction

     Resource:         dragPointYFeedback
     Part:             yFeedback
     Appearance:       douple-headed purple arrow
     Description:      feedback for motion in y direction

     Resource:         dragPointZFeedback
     Part:             zFeedback
     Appearance:       douple-headed purple arrow
     Description:      feedback for motion in z direction

     Resource:         dragPointYZFeedback
     Part:             yzFeedback
     Appearance:       semi-transparent green square in yz plane
     Description:      feedback for motion in yz plane

     Resource:         dragPointXZFeedback
     Part:             xzFeedback
     Appearance:       semi-transparent green square in yz plane
     Description:      feedback for motion in xz plane

     Resource:         dragPointXYFeedback
     Part:             xyFeedback
     Appearance:       semi-transparent green square in yz plane
     Description:      feedback for motion in xy plane


FILE FORMAT/DEFAULTS
     DragPointDragger {
          renderCaching                  AUTO
          boundingBoxCaching             AUTO
          renderCulling                  AUTO
          pickCulling                    AUTO
          isActive                       FALSE
          translation                    0 0 0
          callbackList                   NULL
          xTranslator                    Translate1Dragger {
          }

          xyTranslator                   Translate2Dragger {
          }

          xzTranslator                   Translate2Dragger {
          }

          zTranslator                    Translate1Dragger {
          }

          yzTranslator                   Translate2Dragger {
          }

          yTranslator                    Translate1Dragger {
          }

          xFeedback                      <dragPointXFeedback resource>
          yFeedback                      <dragPointYFeedback resource>
          zFeedback                      <dragPointZFeedback resource>
          yzFeedback                     <dragPointYZFeedback resource>
          xzFeedback                     <dragPointXZFeedback resource>
          xyFeedback                     <dragPointXYFeedback resource>
          xTranslator.translator         <dragPointXTranslatorTranslator resource>
          xTranslator.translatorActive   <dragPointXTranslatorTranslatorActive resource>
          yTranslator.translator         <dragPointYTranslatorTranslator resource>
          yTranslator.translatorActive   <dragPointYTranslatorTranslatorActive resource>
          zTranslator.translator         <dragPointZTranslatorTranslator resource>
          zTranslator.translatorActive   <dragPointZTranslatorTranslatorActive resource>
          yzTranslator.translator        <dragPointYZTranslatorTranslator resource>
          yzTranslator.translatorActive  <dragPointYZTranslatorTranslatorActive resource>
          xzTranslator.translator        <dragPointXZTranslatorTranslator resource>
          xzTranslator.translatorActive  <dragPointXZTranslatorTranslatorActive resource>
          xyTranslator.translator        <dragPointXYTranslatorTranslator resource>
          xyTranslator.translatorActive  <dragPointXYTranslatorTranslatorActive resource>
     }

SEE ALSO
     SoInteractionKit, SoDragger, SoCenterballDragger, SoDragPointDragger,
     SoHandleBoxDragger, SoJackDragger, SoPointLightDragger,
     SoRotateCylindricalDragger, SoRotateDiscDragger,
     SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger,
     SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger,
     SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger,
     SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger,
     SoTranslate2Dragger