SoVRMLDragSensor(3)
π SoVRMLDragSensor β Library Functions Manual, section 3 π
okay bestie, sit down, hydrate, because we're doing a deep dive into SoVRMLDragSensor(3) and honestly? it's giving foundational. π
β¨ NAME β¨
SoVRMLDragSensor β the superclass for VRML drag sensors. it's the momager of drag sensors, fr fr. π
πΈ SYNOPSIS πΈ
#include <Inheritor/VRMLnodes/SoVRMLDragSensor.h>
wait no, it's literally this, don't let me gaslight you:
#include <Inventor/VRMLnodes/SoVRMLDragSensor.h>
Inherits SoVRMLSensor.
Inherited by SoVRMLCylinderSensor, SoVRMLPlaneSensor, and SoVRMLSphereSensor. β¨ the whole girl group.
π«Ά Public Member Functions
virtual SoType getTypeId (void) constβ tells you the type id, queen.virtual void handleEvent (SoHandleEventAction *action)β handles the event that comes in.
Public Member Functions inherited from SoNode
void setOverride (const SbBool state)SbBool isOverride (void) constvoid setNodeType (const NodeType type)NodeType getNodeType (void) constvirtual SoNode * copy (SbBool copyconnections=0) constvirtual SbBool affectsState (void) constvirtual void doAction (SoAction *action)virtual void GLRender (SoGLRenderAction *action)virtual void GLRenderBelowPath (SoGLRenderAction *action)virtual void GLRenderInPath (SoGLRenderAction *action)virtual void GLRenderOffPath (SoGLRenderAction *action)virtual void callback (SoCallbackAction *action)virtual void getBoundingBox (SoGetBoundingBoxAction *action)virtual void getMatrix (SoGetMatrixAction *action)virtual void pick (SoPickAction *action)virtual void rayPick (SoRayPickAction *action)virtual void search (SoSearchAction *action)virtual void write (SoWriteAction *action)virtual void audioRender (SoAudioRenderAction *action)virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)virtual void grabEventsSetup (void)virtual void grabEventsCleanup (void)virtual void startNotify (void)virtual void notify (SoNotList *l)uint32_t getNodeId (void) constvirtual SoChildList * getChildren (void) constvirtual void writeInstance (SoOutput *out)virtual SoNode * addToCopyDict (void) constvirtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)virtual SoFieldContainer * copyThroughConnection (void) const
Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)SbBool hasDefaultValues (void) constSbBool fieldsAreEqual (const SoFieldContainer *container) constvoid copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=0)SbBool set (const char *const fielddata)void get (SbString &fielddata)virtual int getFields (SoFieldList &l) constvirtual int getAllFields (SoFieldList &l) constvirtual SoField * getField (const SbName &name) constvirtual SoField * getEventIn (const SbName &name) constvirtual SoField * getEventOut (const SbName &name) constSbBool getFieldName (const SoField *const field, SbName &name) constSbBool enableNotify (const SbBool flag)SbBool isNotifyEnabled (void) constSbBool set (const char *fielddata, SoInput *in)void get (SbString &fielddata, SoOutput *out)virtual SbBool validateNewFieldValue (SoField *field, void *newval)virtual void addWriteReference (SoOutput *out, SbBool isfromfield=0)SbBool getIsBuiltIn (void) constvoid setUserData (void *userdata) constvoid * getUserData (void) const
Public Member Functions inherited from SoBase
void ref (void) constvoid unref (void) constvoid unrefNoDelete (void) constint32_t getRefCount (void) constvoid touch (void)SbBool isOfType (SoType type) constvirtual SbName getName (void) constvirtual void setName (const SbName &newname)void addAuditor (void *const auditor, const SoNotRec::Type type)void removeAuditor (void *const auditor, const SoNotRec::Type type)const SoAuditorList & getAuditors (void) constSbBool shouldWrite (void)void assertAlive (void) const
π¦ Static Public Member Functions
static SoType getClassTypeId (void)static void initClass (void)
Static Public Member Functions inherited from SoVRMLSensor
static SoType getClassTypeId (void)static void initClass (void)
Static Public Member Functions inherited from SoNode
static uint32_t getCompatibilityTypes (const SoType &nodetype)static SoType getClassTypeId (void)static SoNode * getByName (const SbName &name)static int getByName (const SbName &name, SoNodeList &l)static void initClass (void)static void initClasses (void)static uint32_t getNextNodeId (void)static int getActionMethodIndex (const SoType type)static void getBoundingBoxS (SoAction *action, SoNode *node)static void GLRenderS (SoAction *action, SoNode *node)static void callbackS (SoAction *action, SoNode *node)static void getMatrixS (SoAction *action, SoNode *node)static void handleEventS (SoAction *action, SoNode *node)static void pickS (SoAction *action, SoNode *node)static void rayPickS (SoAction *action, SoNode *node)static void searchS (SoAction *action, SoNode *node)static void writeS (SoAction *action, SoNode *node)static void audioRenderS (SoAction *action, SoNode *node)static void getPrimitiveCountS (SoAction *action, SoNode *node)
Static Public Member Functions inherited from SoFieldContainer
static void initClass (void)static SoType getClassTypeId (void)static void initCopyDict (void)static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)static SoFieldContainer * checkCopy (const SoFieldContainer *orig)static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)static void copyDone (void)
Static Public Member Functions inherited from SoBase
static void initClass (void)static SoType getClassTypeId (void)static void addName (SoBase *const base, const char *const name)static void removeName (SoBase *const base, const char *const name)static void incrementCurrentWriteCounter (void)static void decrementCurrentWriteCounter (void)static SoBase * getNamedBase (const SbName &name, SoType type)static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)static SbBool read (SoInput *in, SoBase *&base, SoType expectedtype)static void setInstancePrefix (const SbString &c)static void setTraceRefs (SbBool trace)static SbBool getTraceRefs (void)static SbBool connectRoute (SoInput *in, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)static SbBool readRoute (SoInput *in)
π Public Attributes
SoSFVec3f trackPoint_changedSoSFBool autoOffset
Public Attributes inherited from SoVRMLSensor
SoSFBool isActiveSoSFBool enabled
π Protected Member Functions
virtual const SoFieldData * getFieldData (void) constvirtual SbBool dragStart (void)=0virtual void drag (void)=0virtual void dragFinish (void)=0SoVRMLDragSensor (void)virtual ~SoVRMLDragSensor ()const SbVec3f & getLocalStartingPoint (void) constconst SbMatrix & getLocalToWorldMatrix (void) constconst SbMatrix & getWorldToLocalMatrix (void) constconst SbViewVolume & getViewVolume (void) constconst SbVec2f & getNormalizedLocaterPosition (void) const
Protected Member Functions inherited from SoNode
SoNode (void)virtual ~SoNode ()virtual SbBool readInstance (SoInput *in, unsigned short flags)
Protected Member Functions inherited from SoFieldContainer
SoFieldContainer (void)~SoFieldContainer ()
Protected Member Functions inherited from SoBase
SoBase (void)virtual ~SoBase ()virtual void destroy (void)SbBool hasMultipleWriteRefs (void) constSbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constvoid writeFooter (SoOutput *out) constvirtual const char * getFileFormatName (void) const
β Static Protected Member Functions
static const SoFieldData ** getFieldDataPtr (void)
Static Protected Member Functions inherited from SoVRMLSensor
static const SoFieldData ** getFieldDataPtr (void)
Static Protected Member Functions inherited from SoNode
static const SoFieldData ** getFieldDataPtr (void)static void setNextActionMethodIndex (int index)static int getNextActionMethodIndex (void)static void incNextActionMethodIndex (void)static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
Static Protected Member Functions inherited from SoBase
static uint32_t getCurrentWriteCounter (void)static void staticDataLock (void)static void staticDataUnlock (void)
π§ Additional Inherited Members
- Public Types inherited from
SoNode
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002,
INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010,
INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080,
COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 =
0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000
}
- Protected Types inherited from
SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
- Protected Attributes inherited from
SoNode:uint32_t uniqueId - Protected Attributes inherited from
SoFieldContainer:SbBool isBuiltIn - Static Protected Attributes inherited from
SoNode:static uint32_t nextUniqueId = 0,static int nextActionMethodIndex = 0
π Detailed Description π
SoVRMLDragSensor is the superclass for VRML drag sensors. yes, we said it in NAME, we're saying it again, because it's that important. π
so the tea is: this class collects the two fields that are common for some of the sensor nodes, plus some common functions for those. and because this is an abstract "helper" class, it does not represent an actual node from the VRML97 spec β so bestie, do NOT use it as one. it's giving backstage crew, not main character. π
for more info, there's a whole detailed discussion of drag sensors waiting for you in section 4.6.7.4 of the VRML97 specification:
http://www.web3d.org/x3d/specifications/vrml/ISO-
IEC-14772-VRML97/part1/concepts.html#4.6.7.4
π«Ά Constructor & Destructor Documentation π«Ά
SoVRMLDragSensor::SoVRMLDragSensor (void ) [protected]
Constructor. β¨
ReferencesautoOffset,SoVRMLDragSensor(), andtrackPoint_changed.
Referenced bydragFinish(),getFieldData(), andSoVRMLDragSensor().
SoVRMLDragSensor::~SoVRMLDragSensor () [protected], [virtual]
Destructor. π she's logging off, respectfully.
π Member Function Documentation π
okay bestie, this is the part where we meet the actual functions β the little workers that make this sensor do its thing. every single one is here, no cap π
π« SoType SoVRMLDragSensor::getTypeId (void ) const [virtual]
this one hands you back the type identification of any object derived from a class that inherits SoBase. what's it for? run-time type checking and "downward" casting, bestie. iconic behavior β¨
usage example, and yes it's giving exactly this:
void foo(SoNode * node)
{
if (node->getTypeId() == SoFile::getClassTypeId()) {
SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type
}
else if (node->getTypeId().isOfType(SoGroup::getClassTypeId())) {
SoGroup * group = (SoGroup *)node; // safe downward cast, knows the type
}
}
so like, if you're an application programmer wanting to extend the library with new nodes, engines, nodekits, draggers or others β heads up: this method needs to be overridden in all subclasses. it's typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance Inventor/nodes/SoSubNode.h (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine.h (for engine classes) and so on. fr fr, that's the move.
want more info on writing Coin extensions? see the class documentation of the toplevel superclasses for the various class groups π«Ά
- Reimplemented from
SoVRMLSensor. - Reimplemented in
SoVRMLCylinderSensor,SoVRMLPlaneSensor, andSoVRMLSphereSensor.
πΈ const SoFieldData * SoVRMLDragSensor::getFieldData (void ) const [protected], [virtual]
returns a pointer to the class-wide field data storage object for this instance. and if there are no fields present? it returns NULL. simple as π
- Reimplemented from
SoVRMLSensor. - Reimplemented in
SoVRMLCylinderSensor,SoVRMLPlaneSensor, andSoVRMLSphereSensor. - References
SoVRMLDragSensor().
π₯ void SoVRMLDragSensor::handleEvent (SoHandleEventAction * action) [virtual]
this is the action method for SoHandleEventAction. what it does: inspects the event data from action, and processes it if it's something this node should react to. main character energy only for relevant events π
and psst β nodes influencing relevant state variables for how event handling is done also overrides this method. so it's a whole family thing.
- Reimplemented from
SoNode. - References
SoPath::containsPath(),SoPath::copy(),drag(),dragFinish(),dragStart(),SoAction::getCurPath(),SoHandleEventAction::getEvent(),SoFullPath::getLength(),SoPickedPoint::getObjectToWorld(),SoPickedPoint::getPath(),SoHandleEventAction::getPickedPoint(),SoPickedPoint::getPoint(),SoAction::getState(),SoFullPath::getTail(),SoNode::handleEvent(),SbMatrix::inverse(),SbMatrix::multVecMatrix(),SoBase::ref(),SoNode::SoNode(), andSoBase::unref().
π¦ virtual SbBool SoVRMLDragSensor::dragStart (void ) [protected], [pure virtual]
ngl this API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
called when dragger is selected (picked) by the user. yup, that's the moment β¨
- Implemented in
SoVRMLCylinderSensor,SoVRMLPlaneSensor, andSoVRMLSphereSensor. - Referenced by
handleEvent().
π virtual void SoVRMLDragSensor::drag (void ) [protected], [pure virtual]
same vibe, this API member is considered internal to the library β not likely to be of interest to the application programmer.
called when user drags the mouse after picking the dragger. π±οΈβ¨
- Implemented in
SoVRMLCylinderSensor,SoVRMLPlaneSensor, andSoVRMLSphereSensor. - Referenced by
handleEvent().
π virtual void SoVRMLDragSensor::dragFinish (void ) [protected], [pure virtual]
again bestie: this API member is considered internal to the library, not likely to be of interest to the application programmer.
called when mouse button is released after picking and interacting with the dragger. the grand finale of the drag π¬
- Implemented in
SoVRMLCylinderSensor,SoVRMLPlaneSensor, andSoVRMLSphereSensor. - References
getLocalStartingPoint(),getLocalToWorldMatrix(),getNormalizedLocaterPosition(),getViewVolume(),getWorldToLocalMatrix(), andSoVRMLDragSensor(). - Referenced by
handleEvent().
π§ const SbVec3f & SoVRMLDragSensor::getLocalStartingPoint (void ) const [protected]
returns the interaction starting point. where it all began, lowkey π₯Ί
- Referenced by
SoVRMLCylinderSensor::drag(),SoVRMLPlaneSensor::drag(),dragFinish(),SoVRMLCylinderSensor::dragStart(),SoVRMLPlaneSensor::dragStart(), andSoVRMLSphereSensor::dragStart().
β const SbMatrix & SoVRMLDragSensor::getLocalToWorldMatrix (void ) const [protected]
returns the matrix that transforms to the world coordinate system. glowy β¨
- Referenced by
SoVRMLCylinderSensor::drag(),SoVRMLPlaneSensor::drag(),SoVRMLSphereSensor::drag(),dragFinish(), andSoVRMLSphereSensor::dragStart().
π const SbMatrix & SoVRMLDragSensor::getWorldToLocalMatrix (void ) const [protected]
returns the matrix that transforms from the world coordinate system. the reverse trip, we love symmetry π«
- Referenced by
SoVRMLSphereSensor::drag(), anddragFinish().
π const SbViewVolume & SoVRMLDragSensor::getViewVolume (void ) const [protected]
returns the current view volume. literally just that π
- Referenced by
SoVRMLCylinderSensor::drag(),SoVRMLPlaneSensor::drag(),SoVRMLSphereSensor::drag(),dragFinish(), andSoVRMLSphereSensor::dragStart().
π const SbVec2f & SoVRMLDragSensor::getNormalizedLocaterPosition (void ) const [protected]
returns the current normalized pointer position. where's the cursor at? this function knows π±οΈπ
- Referenced by
SoVRMLCylinderSensor::drag(),SoVRMLPlaneSensor::drag(),SoVRMLSphereSensor::drag(), anddragFinish().
π Member Data Documentation π
the fields, the moment, the data π
π« SoSFVec3f SoVRMLDragSensor::trackPoint_changed
an event out that is generated when the trackpoint is changed. it's giving notification β¨
- Referenced by
SoVRMLDragSensor().
π₯ SoSFBool SoVRMLDragSensor::autoOffset
when TRUE, the offset field is updated when a dragging sequence is finished. default value is TRUE. iconic default behavior, we love to see it π
- Referenced by
SoVRMLCylinderSensor::dragFinish(),SoVRMLPlaneSensor::dragFinish(),SoVRMLSphereSensor::dragFinish(), andSoVRMLDragSensor().
π¦ Author π¦
generated automatically by Doxygen for Coin from the source code. so like, not a human author, a robot one. still ate tho π€π
and that's the whole page bestie!! this was SoVRMLDragSensor(3) from Coin, Version 2.5.0 πΈ thanks for reading all the way through, you're literally the best π«Άβ¨ periodt.
π¦ where this page comes from
- fedora 43: Coin2-devel 2.5.0-52.fc43 Β· GPL-2.0-only
- fedora 43: Coin2-devel 2.5.0-52.fc43 Β· GPL-2.0-only
- fedora 44: Coin2-devel 2.5.0-54.fc44 Β· GPL-2.0-only
- fedora 44: Coin2-devel 2.5.0-54.fc44 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms