SoDragPointDragger(3IV)

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

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

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

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

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

          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

          Methods from class SoDragPointDragger:

                         SoDragPointDragger()
     void                setJumpLimit(float limit)
     float               getJumpLimit() const
     void                showNextDraggerSet()
     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
                              *userData = 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
                              *surrogatePath )

          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
     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 setPart().

     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.


METHODS
                         SoDragPointDragger()
          Constructor.

     void                setJumpLimit(float limit)
     float               getJumpLimit() const
          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                showNextDraggerSet()
          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).

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