logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Catalog Parts

       ┌───────────────────────────────────────────────────────────┐
       │                         Allparts                         │
       │                                                   NULLby │
       │ PartNamePartTypeDefaultTypeDefault │
       │                                                           │
       │ 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   │
       │                                                           │
       └───────────────────────────────────────────────────────────┘
       ┌────────────────────────────────────────────────────────────────┐
       │       Extrainformationforlistpartsfromabovetable        │
       │                                                                │
       │ PartNameContainerTypePermissibleTypes              │
       │                                                                │
       │ callbackList   Separator        Callback, EventCallback        │
       │                                                                │
       └────────────────────────────────────────────────────────────────┘

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/linepair 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 feedbackplanes and three feedbackaxes; 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.

Dragger Resources

       .in 0n+.5i
     Resource:         dragPointXTranslatorTranslator
       .in 0n+.5i
     Part:             xTranslator.translator
     Appearance:       white cylinder with axis aligned in X direction
     Description:      picking this initiates linear motion in X direction

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

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

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

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

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

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

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

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

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

                         .in 0n+.5i
     Resource:         dragPointXYTranslatorTranslator
                         .in 0n+.5i
     Part:             xyTranslator.translator
     Appearance:       white flattened cube within the xy plane of motion
     Description:      picking this initiates planar motion in xy plane

                         .in 0n+.5i
     Resource:         dragPointXYTranslatorTranslatorActive
                         .in 0n+.5i
     Part:             xyTranslator.translatorActive
     Appearance:       yellow flattened cube within the xy plane of motion
     Description:      shown when moving in xy plane

                         .in 0n+.5i
     Resource:         dragPointXFeedback
                         .in 0n+.5i
     Part:             xFeedback
     Appearance:       douple-headed purple arrow
     Description:      feedback for motion in x direction

                         .in 0n+.5i
     Resource:         dragPointYFeedback
                         .in 0n+.5i
     Part:             yFeedback
     Appearance:       douple-headed purple arrow
     Description:      feedback for motion in y direction

                         .in 0n+.5i
     Resource:         dragPointZFeedback
                         .in 0n+.5i
     Part:             zFeedback
     Appearance:       douple-headed purple arrow
     Description:      feedback for motion in z direction

                         .in 0n+.5i
     Resource:         dragPointYZFeedback
                         .in 0n+.5i
     Part:             yzFeedback
     Appearance:       semi-transparent green square in yz plane
     Description:      feedback for motion in yz plane

                         .in 0n+.5i
     Resource:         dragPointXZFeedback
                         .in 0n+.5i
     Part:             xzFeedback
     Appearance:       semi-transparent green square in yz plane
     Description:      feedback for motion in xz plane

                         .in 0n+.5i
     Resource:         dragPointXYFeedback
                         .in 0n+.5i
     Part:             xyFeedback
     Appearance:       semi-transparent green square in yz plane
     Description:      feedback for motion in xy plane

Fields

SoSFVec3ftranslation
          Position of the dragger.

File Format/Defaults

DragPointDragger{renderCachingAUTOboundingBoxCachingAUTOrenderCullingAUTOpickCullingAUTOisActiveFALSEtranslation000callbackListNULLxTranslatorTranslate1Dragger{}xyTranslatorTranslate2Dragger{}xzTranslatorTranslate2Dragger{}zTranslatorTranslate1Dragger{}yzTranslatorTranslate2Dragger{}yTranslatorTranslate1Dragger{}xFeedback<dragPointXFeedbackresource>yFeedback<dragPointYFeedbackresource>zFeedback<dragPointZFeedbackresource>yzFeedback<dragPointYZFeedbackresource>xzFeedback<dragPointXZFeedbackresource>xyFeedback<dragPointXYFeedbackresource>xTranslator.translator<dragPointXTranslatorTranslatorresource>xTranslator.translatorActive<dragPointXTranslatorTranslatorActiveresource>yTranslator.translator<dragPointYTranslatorTranslatorresource>yTranslator.translatorActive<dragPointYTranslatorTranslatorActiveresource>zTranslator.translator<dragPointZTranslatorTranslatorresource>zTranslator.translatorActive<dragPointZTranslatorTranslatorActiveresource>yzTranslator.translator<dragPointYZTranslatorTranslatorresource>yzTranslator.translatorActive<dragPointYZTranslatorTranslatorActiveresource>xzTranslator.translator<dragPointXZTranslatorTranslatorresource>xzTranslator.translatorActive<dragPointXZTranslatorTranslatorActiveresource>xyTranslator.translator<dragPointXYTranslatorTranslatorresource>xyTranslator.translatorActive<dragPointXYTranslatorTranslatorActiveresource>}

Inherits From

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

Methods

SoDragPointDragger()
          Constructor.

     voidsetJumpLimit(floatlimit)floatgetJumpLimit()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.

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

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

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

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

See Also

SoInteractionKit,SoDragger,SoCenterballDragger,SoDragPointDragger,SoHandleBoxDragger,SoJackDragger,SoPointLightDragger,SoRotateCylindricalDragger,SoRotateDiscDragger,SoRotateSphericalDragger,SoScale1Dragger,SoScale2Dragger,SoScale2UniformDragger,SoScaleUniformDragger,SoSpotLightDragger,SoTabBoxDragger,SoTabPlaneDragger,SoTrackballDragger,SoTransformBoxDragger,SoTransformerDragger,SoTranslate1Dragger,SoTranslate2DraggerSoDragPointDragger(3IV)()

Synopsis

#include<Inventor/draggers/SoDragPointDragger.h>

          Fields from class SoDragPointDragger:

     SoSFVec3ftranslation

          Fields from class SoDragger:

     SoSFBoolisActive

          Fields from class SoInteractionKit:

     SoSFEnumrenderCachingSoSFEnumboundingBoxCachingSoSFEnumrenderCullingSoSFEnumpickCulling

          Parts from class SoBaseKit:

     (SoNodeKitListPart)callbackList

          Methods from class SoDragPointDragger:

                         SoDragPointDragger()voidsetJumpLimit(floatlimit)floatgetJumpLimit()constvoidshowNextDraggerSet()staticconstSoNodekitCatalog*getClassNodekitCatalog()conststaticSoTypegetClassTypeId()

          Methods from class SoDragger:

     voidaddStartCallback(SoDraggerCB*f,void*userData=NULL)voidremoveStartCallback(SoDraggerCB*f,void*userData=NULL)voidaddMotionCallback(SoDraggerCB*f,void*userData=NULL)voidremoveMotionCallback(SoDraggerCB*f,void*userData=NULL)voidaddFinishCallback(SoDraggerCB*f,void*userData=NULL)voidremoveFinishCallback(SoDraggerCB*f,void*userData=NULL)voidaddValueChangedCallback(SoDraggerCB*f,void*userData=NULL)voidremoveValueChangedCallback(SoDraggerCB*f,void*userData=NULL)SbBoolenableValueChangedCallbacks()voidsetMinGesture(intpixels)intgetMinGesture()conststaticvoidsetMinScale(floatnewMinScale)staticfloatgetMinScale()

          Methods from class SoInteractionKit:

     virtualSbBoolsetPartAsPath(constSbName&partName,SoPath*surrogatePath)

          Methods from class SoBaseKit:

     virtualconstSoNodekitCatalog*getNodekitCatalog()constvirtualSoNode*getPart(constSbName&partName,SbBoolmakeIfNeeded)SbStringgetPartString(constSoBase*part)virtualSoNodeKitPath*createPathToPart(constSbName&partName,SbBoolmakeIfNeeded,constSoPath*pathToExtend=NULL)virtualSbBoolsetPart(constSbName&partName,SoNode*newPart)SbBoolset(char*partName,char*parameters)SbBoolset(char*nameValuePairs)staticSbBoolisSearchingChildren()staticvoidsetSearchingChildren(SbBoolnewVal)

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

          Macros from class SoBaseKit:

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

See Also