Provided by: inventor-doc_2.1.5-10-18_all bug

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

                                                                                         SoInteractionKit(3IV)()