SoVRMLOrientationInterpolator(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

🌸 SoVRMLOrientationInterpolator(3) β€” Coin manual page, bestie ✨

okay so this is the <pink>Coin</pink> manpage for SoVRMLOrientationInterpolator(3) and it's genuinely iconic, we're gonna get through it together πŸ’– this is part 1, so don't go anywhere, there's more coming.


πŸ’« NAME πŸ’«

SoVRMLOrientationInterpolator β€” the class that interpolates orientations. that's it, that's the vibe. it takes your key values and smooths them into rotations, main character energy fr πŸ¦‹


✨ SYNOPSIS ✨

#include <Inheritor/VRMLnodes/SoVRMLOrientationInterpolator.h>

wait no β€” literally, character for character, it's:

#include <Inventor/VRMLnodes/SoVRMLOrientationInterpolator.h>
lowkey important: this class inherits SoVRMLInterpolator. so everything that class has? yeah, it's got it too πŸ‘‘

🫢 Public Member Functions 🫢

these are the ones that are actually on this class, not borrowed:

  • virtual SoType getTypeId (void) const β€” gives you back the type id, the classic.
  • virtual const SoEngineOutputData * getOutputData (void) const β€” hands you the output data pointer.
  • SoVRMLOrientationInterpolator (void) β€” the constructor bestie, this is how you make one πŸ’…

🧚 Public Member Functions inherited from SoNodeEngine 🧚

  • void evaluateWrapper (void)
  • virtual int getOutputs (SoEngineOutputList &l) const
  • SoEngineOutput * getOutput (const SbName &outputname) const
  • SbBool getOutputName (const SoEngineOutput *output, SbName &outputname) const
  • SbBool isNotifying (void) const
  • virtual void notify (SoNotList *nl)
  • virtual void writeInstance (SoOutput *out)

🌈 Public Member Functions inherited from SoNode 🌈

  • void setOverride (const SbBool state)
  • SbBool isOverride (void) const
  • void setNodeType (const NodeType type)
  • NodeType getNodeType (void) const
  • virtual SoNode * copy (SbBool copyconnections=FALSE) const
  • virtual SbBool affectsState (void) const
  • virtual 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 handleEvent (SoHandleEventAction *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)
  • SbUniqueId getNodeId (void) const
  • virtual SoChildList * getChildren (void) const
  • virtual SoNode * addToCopyDict (void) const
  • virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)
  • virtual SoFieldContainer * copyThroughConnection (void) const

πŸŽ€ Public Member Functions inherited from SoFieldContainer πŸŽ€

  • void setToDefaults (void)
  • SbBool hasDefaultValues (void) const
  • SbBool fieldsAreEqual (const SoFieldContainer *container) const
  • void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)
  • SbBool set (const char *const fielddata)
  • void get (SbString &fielddata)
  • virtual int getFields (SoFieldList &l) const
  • virtual int getAllFields (SoFieldList &l) const
  • virtual SoField * getField (const SbName &name) const
  • virtual SoField * getEventIn (const SbName &name) const
  • virtual SoField * getEventOut (const SbName &name) const
  • SbBool getFieldName (const SoField *const field, SbName &name) const
  • SbBool enableNotify (const SbBool flag)
  • SbBool isNotifyEnabled (void) const
  • SbBool set (const char *fielddata, SoInput *input)
  • void get (SbString &fielddata, SoOutput *out)
  • virtual SbBool validateNewFieldValue (SoField *field, void *newval)
  • virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)
  • SbBool getIsBuiltIn (void) const
  • virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const
  • void setUserData (void *userdata) const
  • void * getUserData (void) const

πŸ’œ Public Member Functions inherited from SoBase πŸ’œ

  • void ref (void) const
  • void unref (void) const
  • void unrefNoDelete (void) const
  • int32_t getRefCount (void) const
  • void touch (void)
  • SbBool isOfType (SoType type) const β€” gives you TRUE if this object's type is either the same type or inherited from type. yes queen, inheritance check 🫢
  • virtual SbName getName (void) const
  • virtual 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) const
  • SbBool shouldWrite (void)
  • void assertAlive (void) const

⭐ Static Public Member Functions ⭐

  • static SoType getClassTypeId (void)
  • static void * createInstance (void)
  • static void initClass (void)

🌸 Static Public Member Functions inherited from SoVRMLInterpolator 🌸

  • static SoType getClassTypeId (void)
  • static void initClass (void)

πŸ’– Static Public Member Functions inherited from SoNodeEngine πŸ’–

  • static void initClass (void) β€” sets up initialization for data that all instances of this class share, like handing the necessary info over to the Coin type system. housekeeping, but make it fashion ✨
  • static SoType getClassTypeId (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) β€” sets up initialization for data common to all instances of this class, like submitting the necessary info to the Coin type system. same energy as above πŸ’…
  • static void initClasses (void)
  • static SbUniqueId 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) β€” sets up initialization for data common to all instances of this class, like submitting necessary info to the Coin type system. you know the drill ✨
  • static SoType getClassTypeId (void) β€” this static method returns the SoType object associated with objects of this class. it's giving type registry πŸŽ€
  • static void cleanupClass (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) β€” sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. iconic recurring behavior honestly 🌟
  • static SoType getClassTypeId (void) β€” this static method returns the SoType object associated with objects of this class.
  • 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 *input, SoBase *&base, SoType expectedtype)
  • static void setInstancePrefix (const SbString &c)
  • static void setTraceRefs (SbBool trace)
  • static SbBool getTraceRefs (void)
  • static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)
  • static SbBool readRoute (SoInput *input)

πŸ‘‘ Public Attributes πŸ‘‘

the actual data bits of this class:

  • SoMFRotation keyValue
  • SoEngineOutput value_changed

🌈 Public Attributes inherited from SoVRMLInterpolator 🌈

  • SoMFFloat key
  • SoSFFloat set_fraction

πŸ’… Protected Member Functions πŸ’…

  • virtual const SoFieldData * getFieldData (void) const
  • virtual ~SoVRMLOrientationInterpolator (void) β€” the destructor, protected so you don't just delete it all willy-nilly.

🌸 Protected Member Functions inherited from SoVRMLInterpolator 🌸

  • int getKeyValueIndex (float &interp, int numvalues)

πŸ’– Protected Member Functions inherited from SoNodeEngine πŸ’–

  • SoNodeEngine (void)
  • virtual ~SoNodeEngine (void)
  • virtual SbBool readInstance (SoInput *in, unsigned short flags)
  • virtual void inputChanged (SoField *which)
  • void writeOutputTypes (SoOutput *out)

πŸ¦‹ Protected Member Functions inherited from SoNode πŸ¦‹

  • SoNode (void)
  • virtual ~SoNode ()

πŸŽ€ Protected Member Functions inherited from SoFieldContainer πŸŽ€

  • SoFieldContainer (void)
  • virtual ~SoFieldContainer ()

πŸ’œ Protected Member Functions inherited from SoBase πŸ’œ

  • SoBase (void)
  • virtual ~SoBase ()
  • SbBool hasMultipleWriteRefs (void) const
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const
  • void writeFooter (SoOutput *out) const
  • virtual const char * getFileFormatName (void) const
  • virtual SoNotRec createNotRec (void)

⭐ Static Protected Member Functions ⭐

  • static const SoFieldData ** getFieldDataPtr (void)
  • static const SoEngineOutputData ** getOutputDataPtr (void)

🌸 Static Protected Member Functions inherited from SoVRMLInterpolator 🌸

  • static const SoFieldData ** getFieldDataPtr (void)
  • static const SoEngineOutputData ** getOutputDataPtr (void)

πŸ’– Static Protected Member Functions inherited from SoNodeEngine πŸ’–

  • static const SoFieldData ** getFieldDataPtr (void)
  • static const SoEngineOutputData ** getOutputDataPtr (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 πŸ¦‹

the NodeType enum, all the flags bestie:

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,
    COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000, COIN_4_0 = 0x20000 }

πŸ’œ Protected Types inherited from SoBase πŸ’œ

the BaseFlags enum:

enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }

🌟 okay that's all of part 1 bestie, don't go anywhere, part 2 is literally right there 🫢

πŸŽ€ Protected Attributes inherited from SoNode πŸŽ€

  • SbUniqueId uniqueId β€” the node's very own unique ID, passed down like a family heirloom πŸ’œ

✨ Protected Attributes inherited from SoFieldContainer ✨

  • SbBool isBuiltIn β€” lil flag telling you whether this thing is built-in or not πŸ¦‹

🌸 Static Protected Attributes inherited from SoNode 🌸

  • static SbUniqueId nextUniqueId = 1 β€” the counter that hands out the next unique ID, starting at 1 ✨
  • static int nextActionMethodIndex = 0 β€” the index tracker for action methods, starting at 0 πŸ’…

πŸ‘‘ Detailed Description πŸ‘‘

The SoVRMLOrientationInterpolator class is used to interpolate orientations. That's the whole job bestie, that's the gig 🫢

The detailed class documentation is taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997). It is copyright The Web3D Consortium, and is used by permission of the Consortium:

OrientationInterpolator {
  eventIn      SFFloat    set_fraction      # (-,)
  exposedField MFFloat    key           []  # (-,)
  exposedField MFRotation keyValue      []  # [-1,1],(-,)
  eventOut     SFRotation value_changed
}

The OrientationInterpolator node interpolates among a list of rotation values specified in the keyValue field. These rotations are absolute in object space and therefore are not cumulative, no cap. The keyValue field shall contain exactly as many rotations as there are keyframes in the key field β€” like, the math has to math πŸ“

An orientation represents the final position of an object after a rotation has been applied. An OrientationInterpolator interpolates between two orientations by computing the shortest path on the unit sphere between the two orientations. The interpolation is linear in arc length along this path. πŸŒ€

The results are undefined if the two orientations are diagonally opposite. Yeah. Undefined. Don't do it bestie, that's a vibe check you will not pass πŸ’€

If two consecutive keyValue values exist such that the arc length between them is greater than , the interpolation will take place on the arc complement. (and yes, the number is just... not there in the source, i'm not gaslighting you 😭)

For example, the interpolation between the orientations (0, 1, 0, 0) and (0, 1, 0, 5.0) is equivalent to the rotation between the orientations (0, 1, 0, 2) and (0, 1, 0, 5.0).

A more detailed discussion of interpolators is contained in 4.6.8, Interpolator nodes over at http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.6.8 β€” go read it, it's giving academic slay πŸ“šβœ¨


πŸ’– Constructor & Destructor Documentation πŸ’–

SoVRMLOrientationInterpolator::SoVRMLOrientationInterpolator (void )

Constructor. It makes the thing. Iconic behaviour honestly 🌈

SoVRMLOrientationInterpolator::~SoVRMLOrientationInterpolator (void )

[protected], [virtual]

Destructor. It unmakes the thing. She said bye πŸ‘‹


πŸ¦‹ Member Function Documentation πŸ¦‹

SoType SoVRMLOrientationInterpolator::getClassTypeId (void ) [static]

This static method returns the SoType object associated with objects of this class. It's the class's ID card, basically πŸ’³

SoType SoVRMLOrientationInterpolator::getTypeId (void ) const [virtual]

Returns the type identification of an object derived from a class inheriting SoBase. This is used for runtime type checking and "downward" casting. Downward casting?? in THIS economy?? 😭

Reimplemented from SoVRMLInterpolator.

const SoFieldData ** SoVRMLOrientationInterpolator::getFieldDataPtr (void ) [static], [protected]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. (so if you're not writing the library, this is a not-for-you moment, no offence 🫢)

Returns the SoFieldData class which holds information about fields in this node.

const SoFieldData * SoVRMLOrientationInterpolator::getFieldData (void ) const [protected], [virtual]

Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL. Empty-handed, but make it fashion ✨

Reimplemented from SoVRMLInterpolator.

const SoEngineOutputData * SoVRMLOrientationInterpolator::getOutputData (void ) const [virtual]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. Again: internal business only, bestie πŸ™ˆ

Reimplemented from SoVRMLInterpolator.

void SoVRMLOrientationInterpolator::initClass (void ) [static]

That's it. That's the whole description. She's mysterious, she's lowkey, she doesn't explain herself πŸ’…


πŸ“ Member Data Documentation πŸ“

SoMFRotation SoVRMLOrientationInterpolator::keyValue

The keyValue vector. Yes. The vector of keys and values. The whole point 🌟

SoEngineOutput SoVRMLOrientationInterpolator::value_changed

The eventOut which is sent every time the interpolator has calculated a new value. Every. Single. Time. She's consistent, she's reliable, she's the main character πŸ‘‘


🌈 Author 🌈

Generated automatically by Doxygen for Coin from the source code. (so nobody hand-wrote this, it's a robot's magnum opus πŸ€–βœ¨)


okay that's the whole page bestie, you ate, you understood, you're now a VRML orientation interpolation girlie for life πŸ’œ

This was Coin version 4.0.10, dated Thu Jun 25 2026 β€” go forth and interpolate responsibly, mwah πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from