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

SoTabBoxDragger — cubic object you can translate and scale by dragging with the mouse

Catalog Parts

       ┌──────────────────────────────────────────────────────────┐
       │                        Allparts                         │
       │                                                  NULLby │
       │ PartNamePartTypeDefaultTypeDefault │
       │                                                          │
       │ callbackList    NodeKitListPart   --               yes   │
       │ surroundScale   SurroundScale     --               yes   │
       │ tabPlane1       TabPlaneDragger   --               yes   │
       │ tabPlane2       TabPlaneDragger   --               yes   │
       │ tabPlane3       TabPlaneDragger   --               yes   │
       │ tabPlane4       TabPlaneDragger   --               yes   │
       │ tabPlane5       TabPlaneDragger   --               yes   │
       │ tabPlane6       TabPlaneDragger   --               yes   │
       │ boxGeom         Separator         --               yes   │
       │                                                          │
       └──────────────────────────────────────────────────────────┘
       ┌────────────────────────────────────────────────────────────────┐
       │       Extrainformationforlistpartsfromabovetable        │
       │                                                                │
       │ PartNameContainerTypePermissibleTypes              │
       │                                                                │
       │ callbackList   Separator        Callback, EventCallback        │
       │                                                                │
       └────────────────────────────────────────────────────────────────┘

Description

SoTabBoxDragger is a composite dragger shaped like a box. Inside it are six SoTabPlaneDraggers which  the
       dragger  positions  and  orients  to  form  a  cube.  The  operations  available  in an SoTabPlaneDragger
       (translation, 1D scaling and 2D scaling) are available on each face of the cube. Since they each move  in
       their local space, the dragger may be easily translated or scaled in any direction.

       As  a  composite  dragger,  this  class  makes  sure that when one plane is dragged, the entire box moves
       together.

       As each sub-dragger is moved, the SoTabBoxDragger updates its scaleFactor and translation fields. As with
       all draggers, if you change a field the dragger will move to match the new settings.

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

       [a] Use an SoTabBoxManip, which is subclassed from SoTransform. It creates one of these draggers and uses
       it as the interface to change its fields.  (see the SoTabBoxManip man page).

       [b] Use field-to-field connections to connect the fields of this dragger to those of any SoTransformation
       node.

       You can change the parts in any instance of this dragger using setPart(). The default part geometries are
       defined  as  resources  for  this SoTabBoxDragger class. They are detailed below 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/tabBoxDragger.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:         tabBoxTranslator
       .in 0n+.5i
     Parts:            tabPlane1.translator
                         tabPlane2.translator
                         tabPlane3.translator
                         tabPlane4.translator
                         tabPlane5.translator
                         tabPlane6.translator
     Appearance:       Outline of a Square. The region within is pickable
     Description:      Begins translation within the plane. The tabBox places and orients each tabPlane so  that
                         these squares form a box.

                         .in 0n+.5i
     Resource:         tabBoxScaleTabMaterial
                         .in 0n+.5i
     Parts:            tabPlane1.scaleTabMaterial
                                           tabPlane2.scaleTabMaterial
                                           tabPlane3.scaleTabMaterial
                                           tabPlane4.scaleTabMaterial
                                           tabPlane5.scaleTabMaterial
                                           tabPlane6.scaleTabMaterial
     Appearance:       Green - half diffuse, half emissive.
     Description:      Used as material for scaling tabs.

                         .in 0n+.5i
     Resource:         tabBoxScaleTabHints
                         .in 0n+.5i
     Parts:            tabPlane1.scaleTabHints
                                           tabPlane2.scaleTabHints
                                           tabPlane3.scaleTabHints
                                           tabPlane4.scaleTabHints
                                           tabPlane5.scaleTabHints
                                           tabPlane6.scaleTabHints
     Appearance:       shapeHints node:COUNTERCLOCKWISE/SOLID/CONVEX
     Description:      Property for the tab nodes.

                         .in 0n+.5i
     Resource:         tabBoxBoxGeom
                         .in 0n+.5i
     Part:             boxGeom
     Appearance:       Unpickable grey outline of a box.
     Description:      Just feedback..

Fields

SoSFVec3fscaleFactor
          Scale of the dragger.

     SoSFVec3ftranslation
          Position of the dragger.

File Format/Defaults

TabBoxDragger{renderCachingAUTOboundingBoxCachingAUTOrenderCullingAUTOpickCullingAUTOisActiveFALSEtranslation000scaleFactor111callbackListNULLsurroundScaleNULLtabPlane1TabPlaneDragger{}tabPlane2TabPlaneDragger{}tabPlane3TabPlaneDragger{}tabPlane4TabPlaneDragger{}tabPlane5TabPlaneDragger{}tabPlane6TabPlaneDragger{}boxGeom<tabBoxBoxGeomresource>tabPlane1.translator<tabBoxTranslatorresource>tabPlane2.translator<tabBoxTranslatorresource>tabPlane3.translator<tabBoxTranslatorresource>tabPlane4.translator<tabBoxTranslatorresource>tabPlane5.translator<tabBoxTranslatorresource>tabPlane6.translator<tabBoxTranslatorresource>tabPlane1.scaleTabMaterial<tabBoxScaleTabMaterialresource>tabPlane2.scaleTabMaterial<tabBoxScaleTabMaterialresource>tabPlane3.scaleTabMaterial<tabBoxScaleTabMaterialresource>tabPlane4.scaleTabMaterial<tabBoxScaleTabMaterialresource>tabPlane5.scaleTabMaterial<tabBoxScaleTabMaterialresource>tabPlane6.scaleTabMaterial<tabBoxScaleTabMaterialresource>tabPlane1.scaleTabHints<tabBoxScaleTabHintsresource>tabPlane2.scaleTabHints<tabBoxScaleTabHintsresource>tabPlane3.scaleTabHints<tabBoxScaleTabHintsresource>tabPlane4.scaleTabHints<tabBoxScaleTabHintsresource>tabPlane5.scaleTabHints<tabBoxScaleTabHintsresource>tabPlane6.scaleTabHints<tabBoxScaleTabHintsresource>}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoTabBoxDragger

Methods

SoTabBoxDragger()
          Constructor.

     voidadjustScaleTabSize()
          Cause the scale tab sizes to be re-adjusted on all 6 SoTabPlaneDraggers 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.

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

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

       SoTabBoxDragger — cubic object you can translate and scale by dragging with the mouse

See Also

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

Synopsis

#include<Inventor/draggers/SoTabBoxDragger.h>

          Fields from class SoTabBoxDragger:

     SoSFVec3fscaleFactorSoSFVec3ftranslation

          Fields from class SoDragger:

     SoSFBoolisActive

          Fields from class SoInteractionKit:

     SoSFEnumrenderCachingSoSFEnumboundingBoxCachingSoSFEnumrenderCullingSoSFEnumpickCulling

          Parts from class SoBaseKit:

     (SoNodeKitListPart)callbackList

          Methods from class SoTabBoxDragger:

                         SoTabBoxDragger()voidadjustScaleTabSize()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