SoVRMLCoor...terpolator(3)
π NAME π
SoVRMLCoordinateInterpolator β the class that interpolates 3D coordinates β¨
(Also known as SoVRMLCoor...terpolator(3), from the Library Functions Manual, because the title got squished and honestly bestie, same. π«Ά)
β¨ SYNOPSIS β¨
#include <Inventor/VRMLnodes/SoVRMLCoorinateInterpolator.h>
Inherits SoVRMLInterpolator. Yes she's a nepo baby but she EARNED it. π
π Public Member Functions π
virtual SoType getTypeId (void) constβ gives you the type id, like a little name tag at the function party π·οΈvirtual const SoEngineOutputData * getOutputData (void) constβ hands over the output data, the whole blueprint of what she puts out into the world π
π¦ Public Member Functions inherited from SoNodeEngine π¦
void evaluateWrapper (void)β the lil wrapper that kicks off evaluationvirtual int getOutputs (SoEngineOutputList &l) constβ dumps all the outputs into your listSoEngineOutput * getOutput (const SbName &outputname) constβ grabs one output by nameSbBool getOutputName (const SoEngineOutput *output, SbName &outputname) constβ reverse lookup, name for an outputSbBool isNotifying (void) constβ is she in her notifying era? πvirtual void notify (SoNotList *nl)β the notification momentvirtual void writeInstance (SoOutput *out)β writes the instance out, putting it on paper π
πΈ Public Member Functions inherited from SoNode πΈ
void setOverride (const SbBool state)β turn override mode on or offSbBool isOverride (void) constβ are we overriding rn?void setNodeType (const NodeType type)β assign her a node typeNodeType getNodeType (void) constβ read back that node typevirtual SoNode * copy (SbBool copyconnections=0) constβ clone her, optionally with the connections toovirtual SbBool affectsState (void) constβ does she change the state?virtual void doAction (SoAction *action)β do the action, go girlvirtual void GLRender (SoGLRenderAction *action)β render her in GLvirtual void GLRenderBelowPath (SoGLRenderAction *action)β GL render, below-path flavorvirtual void GLRenderInPath (SoGLRenderAction *action)β GL render, in-path flavorvirtual void GLRenderOffPath (SoGLRenderAction *action)β GL render, off-path flavorvirtual void callback (SoCallbackAction *action)β run the callback actionvirtual void getBoundingBox (SoGetBoundingBoxAction *action)β get the bounding box π¦virtual void getMatrix (SoGetMatrixAction *action)β get the matrix, math girlievirtual void handleEvent (SoHandleEventAction *action)β handle an eventvirtual void pick (SoPickAction *action)β the picking actionvirtual void rayPick (SoRayPickAction *action)β ray picking, the cooler cousinvirtual void search (SoSearchAction *action)β the search actionvirtual void write (SoWriteAction *action)β write it outvirtual void audioRender (SoAudioRenderAction *action)β audio render, yes she does sound too π§virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β count the primitivesvirtual void grabEventsSetup (void)β set up event grabbingvirtual void grabEventsCleanup (void)β clean up that event grabbingvirtual void startNotify (void)β begin the notifyuint32_t getNodeId (void) constβ her node id numbervirtual SoChildList * getChildren (void) constβ get the childrenvirtual SoNode * addToCopyDict (void) constβ add herself to the copy dictvirtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)β copy the contents overvirtual SoFieldContainer * copyThroughConnection (void) constβ copy through a connection
π Public Member Functions inherited from SoFieldContainer π
void setToDefaults (void)β reset everything to defaults, a fresh start β¨SbBool hasDefaultValues (void) constβ are all the values default?SbBool fieldsAreEqual (const SoFieldContainer *container) constβ do the fields match?void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=0)β copy field values from another containerSbBool set (const char *const fielddata)β set from field data stringvoid get (SbString &fielddata)β get the field data as a stringvirtual int getFields (SoFieldList &l) constβ grab the fields into a listvirtual int getAllFields (SoFieldList &l) constβ grab ALL the fields, no crumbs leftvirtual SoField * getField (const SbName &name) constβ get one field by namevirtual SoField * getEventIn (const SbName &name) constβ get an event in by namevirtual SoField * getEventOut (const SbName &name) constβ get an event out by nameSbBool getFieldName (const SoField *const field, SbName &name) constβ name for a given fieldSbBool enableNotify (const SbBool flag)β turn notifications on or offSbBool isNotifyEnabled (void) constβ are notifications enabled?SbBool set (const char *fielddata, SoInput *in)β set from field data with anSoInputvoid get (SbString &fielddata, SoOutput *out)β get the field data with anSoOutputvirtual SbBool validateNewFieldValue (SoField *field, void *newval)β sanity-check a new field valuevirtual void addWriteReference (SoOutput *out, SbBool isfromfield=0)β add a write referenceSbBool getIsBuiltIn (void) constβ is it built in?void setUserData (void *userdata) constβ stash some user datavoid * getUserData (void) constβ get that user data back
π§ Public Member Functions inherited from SoBase π§
void ref (void) constβ bump the ref countvoid unref (void) constβ drop the ref countvoid unrefNoDelete (void) constβ drop the ref count, no deleteint32_t getRefCount (void) constβ what's the ref count rn?void touch (void)β touch her, wake her upSbBool isOfType (SoType type) constβ is she this type?virtual SbName getName (void) constβ her namevirtual void setName (const SbName &newname)β give her a new namevoid addAuditor (void *const auditor, const SoNotRec::Type type)β add an auditorvoid removeAuditor (void *const auditor, const SoNotRec::Type type)β remove an auditorconst SoAuditorList & getAuditors (void) constβ get the whole auditor listSbBool shouldWrite (void)β should she be written out?void assertAlive (void) constβ assert that she's alive π
β Static Public Member Functions β
static SoType getClassTypeId (void)β the class type idstatic void * createInstance (void)β make an instancestatic void initClass (void)β init the class
π 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)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)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 π
SoMFVec3f keyValueβ the multi-field of 3D vecs she interpolates overSoEngineOutput value_changedβ the output that fires when the value changes π₯
π Public Attributes inherited from SoVRMLInterpolator π
SoMFFloat keyβ the keyframe floatsSoSFFloat set_fractionβ the single float you feed in to pick your spot between keyframes
π Protected Member Functions π
virtual const SoFieldData * getFieldData (void) constβ the field data, protected girlie
π Protected Member Functions inherited from SoVRMLInterpolator π
int getKeyValueIndex (float &interp)β figures out which key value index you're on and hands back the interp factor
π Protected Member Functions inherited from SoNodeEngine π
SoNodeEngine (void)β constructorvirtual ~SoNodeEngine ()β destructorvirtual SbBool readInstance (SoInput *in, unsigned short flags)β read an instance invirtual void inputChanged (SoField *which)β react to an input changingvoid writeOutputTypes (SoOutput *out)β write out the output types
π Protected Member Functions inherited from SoNode π
SoNode (void)β constructorvirtual ~SoNode ()β destructor
π Protected Member Functions inherited from SoFieldContainer π
SoFieldContainer (void)β constructor~SoFieldContainer ()β destructor
π Protected Member Functions inherited from SoBase π
SoBase (void)β constructorvirtual ~SoBase ()β destructorSbBool hasMultipleWriteRefs (void) constβ got multiple write refs?SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constβ write the headervoid writeFooter (SoOutput *out) constβ write the footervirtual const char * getFileFormatName (void) constβ the file format name
π 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
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 = 0static int nextActionMethodIndex = 0
π DETAILED DESCRIPTION π
SoVRMLCoordinateInterpolator is the class that interpolates 3D coordinates. She's the glow-up between keyframes and bestie she is SLAYING at it π β¨
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:
CoordinateInterpolator {
eventIn SFFloat set_fraction # (-inf, inf)
exposedField MFFloat key [] # (-inf, inf)
exposedField MFVec3f keyValue [] # (-inf, inf)
eventOut MFVec3f value_changed
}
So the vibe is: this node linearly interpolates among a list of MFVec3f values. π¦
The number of coordinates in thekeyValuefield shall be an integer multiple of the number of keyframes in thekeyfield. That integer multiple defines how many coordinates will be contained in thevalue_changedevents.
Like, that's the RULE, no cap. π’
4.6.8, Interpolator nodes (http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/part1/concepts.html#4.6.8), contains a more detailed discussion of interpolators. Go read it, it's giving β¨ required reading β¨ energy.
part 2 incoming, don't go anywhere bestie π
π Member Function Documentation π
Okay bestie, this is where we get into the actual functions, and honestly? It's giving "look at me, I'm the type system." Let's go. β¨
π¦ SoType SoVRMLCoordinateInterpolator::getTypeId (void ) const [virtual] π¦
Returns the type identification of an object derived from a class inheriting SoBase. This is used for run-time type checking and "downward" casting. No cap. It's literally how you safely ask "what even are you?" before you cast.
Usage example:
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
}
}
For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in all subclasses. This is 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.
For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups.
Reimplemented from SoVRMLInterpolator.
π const SoFieldData * SoVRMLCoordinateInterpolator::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.
Reimplemented from SoVRMLInterpolator.
π const SoEngineOutputData * SoVRMLCoordinateInterpolator::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.
Reimplemented from SoVRMLInterpolator.
π Author π
Generated automatically by Doxygen for Coin from the source code.
And that's a wrap on SoVRMLCoor...terpolator(3)! Footer tea: source/version is Coin, Version 2.5.0, and the page is SoVRMLCoor...terpolator(3). The footer didn't give a date, so no date to report, bestie β it's just timeless. πβ¨
π¦ 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