Base class for all interaction nodekit classes. More...
#include <Inventor/nodekits/SoInteractionKit.h>
Public Types | |
enum | CacheEnabled { OFF = SO_RENDERCACHING_OFF, ON = SO_RENDERCACHING_ON, AUTO = SO_RENDERCACHING_AUTO } |
Public Member Functions | |
virtual SoType | getTypeId () const |
virtual const SoNodekitCatalog * | getNodekitCatalog () const |
virtual SbBool | setPartAsPath (const SbName &partName, SoPath *surrogatePath) |
virtual SbBool | affectsState () const |
Static Public Member Functions | |
static SoType | getClassTypeId () |
static const SoNodekitCatalog * | getClassNodekitCatalog () |
Public Attributes | |
SoSFEnum | renderCaching |
SoSFEnum | boundingBoxCaching |
SoSFEnum | renderCulling |
SoSFEnum | pickCulling |
Base class for all interaction nodekit classes.
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. This could be used, for example, with an SoTranslate1Dragger to allow the user to click on some geometry and directly drag it (without displaying any separate dragger geometry). This technique is used, for example, in SoOrthoSliceDragger.
renderCaching | AUTO |
boundingBoxCaching | AUTO |
renderCulling | AUTO |
pickCulling | AUTO |
callbackList | NULL |
Part Name | Part Type | Default Type | NULL Default |
callbackList | NodeKitListPart | -- | yes |
Extra Information for List Parts from Above Table
Part Name | Container Type | Possible Types |
callbackList | Separator | Callback, EventCallback |
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
virtual SbBool SoInteractionKit::affectsState | ( | ) | const [virtual] |
Returns TRUE if a node has an effect on the state during traversal.
The default method returns TRUE. Node classes (such as SoSeparator) that isolate their effects from the rest of the graph override this method to return FALSE.
Reimplemented from SoNode.
static const SoNodekitCatalog* SoInteractionKit::getClassNodekitCatalog | ( | ) | [static] |
Returns the SoNodekitCatalog for this class.
Reimplemented from SoBaseKit.
Reimplemented in SoCenterballDragger, SoDirectionalLightDragger, SoDragger, SoDragPointDragger, SoEllipsoidDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, SoTranslate2Dragger, and SoOrthoSliceDragger.
static SoType SoInteractionKit::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoBaseKit.
Reimplemented in SoCenterballDragger, SoDirectionalLightDragger, SoDragger, SoDragPointDragger, SoEllipsoidDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, SoTranslate2Dragger, Magnifier, and SoOrthoSliceDragger.
virtual const SoNodekitCatalog* SoInteractionKit::getNodekitCatalog | ( | ) | const [virtual] |
Returns the SoNodekitCatalog for this instance.
Reimplemented from SoBaseKit.
Reimplemented in SoCenterballDragger, SoDirectionalLightDragger, SoDragger, SoDragPointDragger, SoEllipsoidDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, SoTranslate2Dragger, and SoOrthoSliceDragger.
virtual SoType SoInteractionKit::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from SoBaseKit.
Reimplemented in SoCenterballDragger, SoDirectionalLightDragger, SoDragger, SoDragPointDragger, SoEllipsoidDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, SoTranslate2Dragger, Magnifier, and SoOrthoSliceDragger.
virtual SbBool SoInteractionKit::setPartAsPath | ( | const SbName & | partName, | |
SoPath * | surrogatePath | |||
) | [virtual] |
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.)
NOTE: No information about the surrogatePath is written to a file.
Set bounding box caching mode.
Use enum CacheEnabled. Default is ON. Setting this value to AUTO is equivalent to ON - automatic culling is not implemented.
Set pick caching mode.
Use enum CacheEnabled. Default is AUTO.
Set render caching mode.
Use enum CacheEnabled. Default is AUTO.
Set render culling mode.
Use enum CacheEnabled. Default is OFF. Setting this value to AUTO is equivalent to ON - automatic culling is not implemented.