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

SoInteractionKit — base class for all interaction nodekit classes

Catalog Parts

       ┌─────────────────────────────────────────────────────────┐
       │                        Allparts                        │
       │                                                 NULLby │
       │ PartNamePartTypeDefaultTypeDefault │
       │                                                         │
       │ callbackList   NodeKitListPart   --               yes   │
       │                                                         │
       └─────────────────────────────────────────────────────────┘
       ┌────────────────────────────────────────────────────────────────┐
       │       Extrainformationforlistpartsfromabovetable        │
       │                                                                │
       │ PartNameContainerTypePermissibleTypes              │
       │                                                                │
       │ callbackList   Separator        Callback, EventCallback        │
       │                                                                │
       └────────────────────────────────────────────────────────────────┘

Description

       This is the base class for  all  classes  of  interaction  nodekits.  Currently,  the  only  subclass  is
       SoDragger, which reacts to click-drag-release events from the mouse.

       This   node  has  four  fields  corresponding  to  those  of  an  SoSeparator:  They  are  renderCaching,
       boundingBoxCaching, renderCulling, and pickCulling.  They  behave  the  same  here  as  they  do  for  an
       SoSeparator

       The  setPartAsPath() method provides support for creating "stand-in" objects for parts in the interaction
       kit. The "stand-in", or "surrogate" part, is a path to an object that lies somewhere else  in  the  scene
       graph.

Fields

SoSFEnumrenderCaching
          Set render caching mode. Default is AUTO.

     SoSFEnumboundingBoxCaching
          Set  bounding  box  caching  mode.  Default  is  ON.  Setting this value to AUTO is equivalent to ON-automaticcullingisnotimplemented.SoSFEnumrenderCulling
          Set render culling mode. Default is OFF. Setting this value to AUTO is equivalent  to  ON-automaticcullingisnotimplemented.SoSFEnumpickCulling
          Set pick caching mode. Default is AUTO.

File Format/Defaults

InteractionKit{renderCachingAUTOboundingBoxCachingAUTOrenderCullingAUTOpickCullingAUTOcallbackListNULL}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit

Methods

SoInteractionKit()
          Constructor.

     virtualSbBoolsetPartAsPath(constSbName&partName,SoPath*surrogatePath)
          Sets  any  public  part in the interaction kit as a "surrogate" path instead. The object at the end of
          the path serves as a stand-in when a pick occurs, and can thus initiate interaction.

          Instead of the usual setPart(), which replaces partName with a new node, this  will  remove  the  node
          being  used for partName from the scene and remember the surrogatePath you give it. Later, any pick on
          surrogatePath will be regarded as a pick on partName.

          For example, set the XRotator part of an SoTrackballDragger to be the path to an object in the  scene.
          The  rest  of the trackball will look the same, but the XRotator stripe will disappear. However, click
          the mouse on the object at the end of surrogatePath and the ball will start to drag in rotation around
          its X axis.

          Note that this is different from setting the part to be the node at the end of the path. When you  set
          the  part  as  a node, a second instance will be drawn in the local space of the interaction kit. When
          you set it as a path, the object itself is used, not a copy.

          The  partName  may  be  any  part  name  that  follows  the  nodekit  syntax  for   parts,   such   as
          childList[0].shape or rotator.rotatorActive. (See the getPart() method in the SoBaseKit reference page
          for a complete description.)

     staticconstSoNodekitCatalog*getClassNodekitCatalog()const
          Returns an SoNodekitCatalog for the class SoInteractionKit.

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

       SoInteractionKit — base class for all interaction nodekit classes

See Also

SoBaseKit,SoInteraction,SoNodeKitDetail,SoNodeKitPath,SoNodekitCatalog,SoDragger,SoCenterballDragger,SoDirectionalLightDragger,SoDragPointDragger,SoHandleBoxDragger,SoJackDragger,SoPointLightDragger,SoRotateCylindricalDragger,SoRotateDiscDragger,SoRotateSphericalDragger,SoScale1Dragger,SoScale2Dragger,SoScale2UniformDragger,SoScaleUniformDragger,SoSpotLightDragger,SoTabBoxDragger,SoTabPlaneDragger,SoTrackballDragger,SoTransformBoxDragger,SoTranslate1Dragger,SoTranslate2DraggerSoInteractionKit(3IV)()

Synopsis

#include<Inventor/nodekits/SoInteractionKit.h>enumCacheEnabled{SoInteractionKit::OFF   Never build or use a cache
          SoInteractionKit::ON    Always try to build a cache
          SoInteractionKit::AUTO  Automatic caching
     }

          Fields from class SoInteractionKit:

     SoSFEnumrenderCachingSoSFEnumboundingBoxCachingSoSFEnumrenderCullingSoSFEnumpickCulling

          Parts from class SoBaseKit:

     (SoNodeKitListPart)callbackList

          Methods from class SoInteractionKit:

                         SoInteractionKit()virtualSbBoolsetPartAsPath(constSbName&partName,SoPath*surrogatePath)staticconstSoNodekitCatalog*getClassNodekitCatalog()conststaticSoTypegetClassTypeId()

          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