SOROTATEDISCDRAGGER(3iv)

πŸ’– SoRotateDiscDragger(3IV) πŸ’–

okay so bestie, welcome to the SoRotateDiscDragger(3IV) page β€” yes the manual name goes right there, we're doing this properly. grab a snack, this one's a cutie πŸŽ€


🌸 NAME 🌸

SoRotateDiscDragger β€” an object you can rotate like a knob by dragging with the mouse. literally a radio volume dial but make it scene graph ✨

πŸ¦‹ INHERITS FROM πŸ¦‹

SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoRotateDiscDragger

she comes from a long line of icons, we respect the lineage πŸ‘‘


✨ SYNOPSIS ✨

#include <Inventor/draggers/SoRotateDiscDragger.h>

Fields from class SoRotateDiscDragger:

SoSFRotation        rotation

Fields from class SoDragger:

SoSFBool            isActive

Fields from class SoInteractionKit:

SoSFEnum            renderCaching
SoSFEnum            boundingBoxCaching
SoSFEnum            renderCulling
SoSFEnum            pickCulling

Parts from class SoBaseKit:

(SoNodeKitListPart)  callbackList

Methods from class SoRotateDiscDragger:

                     SoRotateDiscDragger()
static const SoNodekitCatalog *
                     getClassNodekitCatalog() const
static SoType        getClassTypeId()

Methods from class SoDragger:

void                addStartCallback(SoDraggerCB *f, void *userData =
                         NULL)
void                removeStartCallback(SoDraggerCB *f, void *userData =
                         NULL)
void                addMotionCallback(SoDraggerCB *f, void *userData =
                         NULL)
void                removeMotionCallback(SoDraggerCB *f, void *userData =
                         NULL)
void                addFinishCallback(SoDraggerCB *f, void *userData =
                         NULL)
void                removeFinishCallback(SoDraggerCB *f, void *userData =
                         NULL)
void                addValueChangedCallback(SoDraggerCB *f, void *userData
                         = NULL)
void                removeValueChangedCallback(SoDraggerCB *f, void
                         *userData = NULL)
SbBool              enableValueChangedCallbacks()
void                setMinGesture(int pixels)
int                 getMinGesture() const
static void         setMinScale(float newMinScale)
static float        getMinScale()

Methods from class SoInteractionKit:

virtual SbBool      setPartAsPath(const SbName &partName, SoPath
                         *surrogatePath )

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 πŸ’…

okay so SoRotateDiscDragger is a simple dragger that rotates about the z axis of its local space. the feel of it? it's giving "spinning a record on a turntable" 🎡 or like, rotating the volume knob of a radio. you know the vibe. the local space is decided by wherever it sits in the scene graph β€” so transformation nodes placed before it will affect both the dragger and the direction of motion. not me warning you about that, it's just facts.

this node has a rotation field which always reflects its orientation in local space. set the field and the dragger will rotate accordingly, periodt. you can also connect fields of other nodes or engines from this one to make them follow the dragger's rotation. linked, obsessed, matching energy 🫢

this dragger contains four parts: rotator, rotatorActive, feedback, and feedbackActive. each one is set by default from a resource described in the Dragger Resources section of the online reference page for this class. you can change the parts in any instance of this dragger using setPart().

and if you wanna make your program use different default resources for the parts? copy the file /usr/share/data/draggerDefaults/rotateDiscDragger.iv into your own directory, edit that file, then set the environment variable SO_DRAGGER_DIR to be a path to that directory. that's the whole recipe bestie 🧚


πŸŽ€ FIELDS πŸŽ€

  • SoSFRotation rotation β€” Orientation of the dragger. that's it, that's the field πŸ’–

πŸ”₯ METHODS πŸ”₯

  • SoRotateDiscDragger() β€” Constructor. she's born ✨
  • static const SoNodekitCatalog * getClassNodekitCatalog() const β€” Returns an SoNodekitCatalog for this class.
  • static SoType getClassTypeId() β€” Returns type identifier for this class.

πŸ‘‘ CATALOG PARTS πŸ‘‘

All parts

  • callbackList β€” Part Type: NodeKitListPart β€” Default Type: -- β€” NULL by Default: yes
  • rotator β€” Part Type: Separator β€” Default Type: -- β€” NULL by Default: yes
  • rotatorActive β€” Part Type: Separator β€” Default Type: -- β€” NULL by Default: yes
  • feedback β€” Part Type: Separator β€” Default Type: -- β€” NULL by Default: yes
  • feedbackActive β€” Part Type: Separator β€” Default Type: -- β€” NULL by Default: yes

Extra information for list parts from above table

  • callbackList β€” Container Type: Separator β€” Permissible Types: Callback, EventCallback

πŸ¦‹ DRAGGER RESOURCES πŸ¦‹

🌈 rotateDiscRotator

  • Resource: rotateDiscRotator
  • Part: rotator
  • Appearance: white cylinder (with axis along z-direction) made of lines
  • Description: picking this initiates rotation

🌈 rotateDiscRotatorActive

  • Resource: rotateDiscRotatorActive
  • Part: rotatorActive
  • Appearance: yellow version of rotator, with added yellow cube
  • Description: displayed while in motion instead of the rotator

🌈 rotateDiscFeedback

  • Resource: rotateDiscFeedback
  • Part: feedback
  • Appearance: thin purple line along local z-axis
  • Description: shows center of rotation when not moving

🌈 rotateDiscFeedbackActive

  • Resource: rotateDiscFeedbackActive
  • Part: feedbackActive
  • Appearance: thin, slightly brighter purple line along local z-axis
  • Description: shows center of rotation when moving

⭐ FILE FORMAT/DEFAULTS ⭐

RotateDiscDragger {
   renderCaching       AUTO
   boundingBoxCaching  AUTO
   renderCulling       AUTO
   pickCulling         AUTO
   isActive            FALSE
   rotation            0 0 1  0
   callbackList        NULL
   rotator             <rotateDiscRotator resource>
   rotatorActive       <rotateDiscRotatorActive resource>
   feedback            <rotateDiscFeedback resource>
   feedbackActive      <rotateDiscFeedbackActive resource>
}

πŸ’œ SEE ALSO πŸ’œ

go read these next, they're all in the same friend group fr fr:

SoInteractionKit, SoDragger, SoCenterballDragger, SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, SoTranslate2Dragger


aaaand that's the whole page bestie πŸ’– that was the SoRotateDiscDragger(3IV) manual β€” signed off the way the original footer does, with the title and section tag SoRotateDiscDragger(3IV)() πŸ’… no cap, you ate that reading session. go rotate something. πŸŽ€πŸ¦‹βœ¨