SoInteractionKit — base class for all interaction nodekit classes
Contents
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)