SoInteractionKit(3IV)

NAME
SoInteractionKit — base class for all interaction nodekit classes

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit

SYNOPSIS
#include <Inventor/nodekits/SoInteractionKit.h>

enum CacheEnabled {
SoInteractionKit::OFF
Never build or use a cache
SoInteractionKit::ON
Always try to build a cache
SoInteractionKit::AUTO
Automatic caching
}

Fields from class SoInteractionKit:

SoSFEnum
renderCaching
SoSFEnum
boundingBoxCaching
SoSFEnum
renderCulling
SoSFEnum
pickCulling

Parts from class SoBaseKit:

(SoNodeKitListPart)
callbackList

Methods from class SoInteractionKit:

SoInteractionKit()
virtual SbBool
setPartAsPath(const SbName &partName, SoPath *surrogatePath )
static const SoNodekitCatalog *
getClassNodekitCatalog() const
static SoType
getClassTypeId()

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
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
SoSFEnum
renderCaching
Set render caching mode. Default is AUTO.

SoSFEnum
boundingBoxCaching
Set bounding box caching mode. Default is ON. Setting this value to AUTO is equivalent to ON - automatic culling is not implemented.

SoSFEnum
renderCulling
Set render culling mode. Default is OFF. Setting this value to AUTO is equivalent to ON - automatic culling is not implemented.

SoSFEnum
pickCulling
Set pick caching mode. Default is AUTO.

METHODS

SoInteractionKit()
Constructor.

virtual SbBool
setPartAsPath(const SbName &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.)

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

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
Extra information for list parts from above table
Part Name | Container Type | Permissible Types
callbackList | Separator | Callback, EventCallback

FILE FORMAT/DEFAULTS
InteractionKit {
renderCaching	AUTO
boundingBoxCaching	AUTO
renderCulling	AUTO
pickCulling	AUTO
callbackList	NULL
}

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