SOVRMLSCALARINTERPOLATOR(3coin3)
π SoVRMLScalarInterpolator β the manual page, but make it make sense
okay so bestie, gather round, because today we're talking about SoVRMLScalarInterpolator β a class from the coin3d library functions manual, and no, the name is not a typo, it's just long. Say it with me: scalar interpolator. It interpolates scalar values. That's the whole personality. β¨
lowkey this page is LONG so it's split into parts. this is part 1. stay with me. π«Ά
πΈ NAME πΈ
SoVRMLScalarInterpolator β the class that is used to interpolate scalar values. periodt. that's the job. that's the whole job.
β¨ SYNOPSIS β¨
#include <Inventor/VRMLnodes/SoVRMLScalarInterpolator.h>
It inherits from SoVRMLInterpolator. so it's giving legacy but make it slay. π
π Public Member Functions π
virtual SoType getTypeId (void) constβ hands you the type id, virtually, like a queen.virtual const SoEngineOutputData * getOutputData (void) constβ gives you the output data pointer. yes,const. no, you can't touch it. πSoVRMLScalarInterpolator (void)β the constructor, no args, no drama, just vibes.
π Public Member Functions inherited from SoNodeEngine
void evaluateWrapper (void)β wraps the evaluation up all cute.virtual int getOutputs (SoEngineOutputList &l) constβ fillslwith the outputs and tells you how many.SoEngineOutput * getOutput (const SbName &outputname) constβ you give it a name, it gives you an output. iconic trade.SbBool getOutputName (const SoEngineOutput *output, SbName &outputname) constβ reverse of the above, and yes it'sconsttwice.SbBool isNotifying (void) constβ are we notifying rn or not. that's it. that's the question.virtual void notify (SoNotList *nl)β sends the notification out into the world.virtual void writeInstance (SoOutput *out)β writes this instance out toout.
π¦ Public Member Functions inherited from SoNode
void setOverride (const SbBool state)β flip the override on or off.SbBool isOverride (void) constβ is it overriding? enquiring minds.void setNodeType (const NodeType type)β set the node type, bestie.NodeType getNodeType (void) constβ get the node type back.virtual SoNode * copy (SbBool copyconnections=FALSE) constβ copies the node, connections default toFALSE.virtual SbBool affectsState (void) constβ does it affect state? mystery until called.virtual void doAction (SoAction *action)β do the action.virtual void GLRender (SoGLRenderAction *action)β render it, GL style.virtual void GLRenderBelowPath (SoGLRenderAction *action)β render below the path.virtual void GLRenderInPath (SoGLRenderAction *action)β render in the path.virtual void GLRenderOffPath (SoGLRenderAction *action)β render off the path. yes, three separate renders. they're all different. don't @ me.virtual void callback (SoCallbackAction *action)β callback time.virtual void getBoundingBox (SoGetBoundingBoxAction *action)β bounding box, acquired.virtual void getMatrix (SoGetMatrixAction *action)β matrix, acquired.virtual void handleEvent (SoHandleEventAction *action)β handle the event.virtual void pick (SoPickAction *action)β pick it.virtual void rayPick (SoRayPickAction *action)β pick it, but with a ray. π₯virtual void search (SoSearchAction *action)β search it.virtual void write (SoWriteAction *action)β write it.virtual void audioRender (SoAudioRenderAction *action)β render the audio, bestie, yes that's a thing.virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β count the primitives.virtual void grabEventsSetup (void)β set up the event grabbing.virtual void grabEventsCleanup (void)β clean up the event grabbing. leave no trace. πvirtual void startNotify (void)β start the notification chain.uint32_t getNodeId (void) constβ your node id, as auint32_t.virtual SoChildList * getChildren (void) constβ the children list pointer.virtual SoNode * addToCopyDict (void) constβ adds itself to the copy dictionary.virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)β copies the contents fromfrom.virtual SoFieldContainer * copyThroughConnection (void) constβ copy through the connection, returns aSoFieldContainer *.
π Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)β everything back to defaults. a clean slate. a reset era.SbBool hasDefaultValues (void) constβ does it have default values? asking for me.SbBool fieldsAreEqual (const SoFieldContainer *container) constβ are our fields equal? comparison arc.void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β copy the field values over, connections defaultFALSE.SbBool set (const char *const fielddata)β set from field data string.void get (SbString &fielddata)β get the field data into a string.virtual int getFields (SoFieldList &l) constβ grab the fields intol.virtual int getAllFields (SoFieldList &l) constβ grab ALL the fields. every last one.virtual SoField * getField (const SbName &name) constβ get a field by name.virtual SoField * getEventIn (const SbName &name) constβ get an event in by name.virtual SoField * getEventOut (const SbName &name) constβ get an event out by name.SbBool getFieldName (const SoField *const field, SbName &name) constβ the reverse: field in, name out.SbBool enableNotify (const SbBool flag)β turn notifications on or off.SbBool isNotifyEnabled (void) constβ are notifications enabled? vibe check.SbBool set (const char *fielddata, SoInput *input)β set with an input.void get (SbString &fielddata, SoOutput *out)β get with an output.virtual SbBool validateNewFieldValue (SoField *field, void *newval)β validate a new field value.virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β add a write reference,isfromfielddefaults toFALSE.SbBool getIsBuiltIn (void) constβ is it built in? π«Άvirtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ memory size of the fields, split into managed and unmanaged.void setUserData (void *userdata) constβ set your own little userdata blob.void * getUserData (void) constβ get that blob back.
π Public Member Functions inherited from SoBase
void ref (void) constβ add a reference.void unref (void) constβ drop a reference.void unrefNoDelete (void) constβ drop a reference but don't delete. spicy.int32_t getRefCount (void) constβ how many refs we got, as anint32_t.void touch (void)β touch it. make it notify.SbBool isOfType (SoType type) constβ is it this type?virtual SbName getName (void) constβ get the name.virtual void setName (const SbName &newname)β set a new name.void addAuditor (void *const auditor, const SoNotRec::Type type)β add an auditor.void removeAuditor (void *const auditor, const SoNotRec::Type type)β remove an auditor. no hard feelings.const SoAuditorList & getAuditors (void) constβ the whole auditor list, by const ref.SbBool shouldWrite (void)β should it write? honestly same question.void assertAlive (void) constβ assert that it's alive. dramatic but necessary.
β Static Public Member Functions β
static SoType getClassTypeId (void)β the class type id.static void * createInstance (void)β makes a new instance, returnsvoid *.static 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 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)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 *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 π
SoMFFloat keyValueβ the key values, as a multi-float. the actual scalars doing the interpolating.SoEngineOutput value_changedβ the engine output that fires when the value changes. named with a little underscore, adorable.
π Public Attributes inherited from SoVRMLInterpolator
SoMFFloat keyβ the key list.SoSFFloat set_fractionβ the fraction you set to drive the interpolation.
π Protected Member Functions π
virtual const SoFieldData * getFieldData (void) constβ the field data pointer.virtual ~SoVRMLScalarInterpolator ()β the destructor. it'svirtual, it'sprotected, it's doing its best.
π Protected Member Functions inherited from SoVRMLInterpolator
int getKeyValueIndex (float &interp)β computes the key/value index and drops the interpolation factor intointerp.
π Protected Member Functions inherited from SoNodeEngine
SoNodeEngine (void)β the constructor.virtual ~SoNodeEngine (void)β the destructor.virtual SbBool readInstance (SoInput *in, unsigned short flags)β reads an instance in.virtual void inputChanged (SoField *which)β tells you which field's input changed.void writeOutputTypes (SoOutput *out)β writes the output types 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) 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 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 enum, in all its glory, don't lose a single one of these values 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 }
Protected Types inherited from SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }β just two flags but they're carrying the whole system on their backs. π
Protected Attributes inherited from SoNode
uint32_t uniqueIdβ everyone gets one. it's giving main character energy.
Protected Attributes inherited from SoFieldContainer
SbBool isBuiltInβ built in or not.
Static Protected Attributes inherited from SoNode
static uint32_t nextUniqueId = 1β starts at1, as one does.static int nextActionMethodIndex = 0β starts at0, as zero does.
π Detailed Description π
okay so bestie, the SoVRMLScalarInterpolator class is the one that interpolates scalar values. that's literally its whole job. π
ScalarInterpolator {
eventIn SFFloat set_fraction # (-inf, inf)
exposedField MFFloat key [] # (-inf, inf)
exposedField MFFloat keyValue [] # (-inf, inf)
eventOut SFFloat value_changed
}
This node linearly interpolates among a list of SFFloat values. β¨ It's the move for any parameter that's defined with a single floating point value β think width, radius, and intensity fields. iconic behavior honestly. π
The keyValue field shall contain exactly as many numbers as there are keyframes in the key field. no cap. if the counts don't match, that's on you fr fr. π
If you want the full deep dive on how interpolators work, it lives in 4.6.8, Interpolator nodes (http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-VRML97/part1/concepts.html#4.6.8). go read it, it's giving study material π¦
πΈ Constructor & Destructor Documentation πΈ
π SoVRMLScalarInterpolator::SoVRMLScalarInterpolator (void )
Constructor. that's it, that's the whole thing. builds the thing. π«Ά
π SoVRMLScalarInterpolator::~SoVRMLScalarInterpolator () [protected], [virtual]
Destructor. cleans up after the thing. protected + virtual, so it knows how to say goodbye politely. π
π Member Function Documentation π
β SoType SoVRMLScalarInterpolator::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. it's like a vibe check but for types, and it never lies. π₯
Usage example:
void foo(SoNode * node)
{
if (node->getTypeId() == SoFile::getClassTypeId()) {
SoFile * filenode = (SoFile *)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. no skipping, bestie. π 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 * SoVRMLScalarInterpolator::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. so likeβ¦ it might hand you nothing. and that's valid. π
Reimplemented from SoVRMLInterpolator.
β const SoEngineOutputData * SoVRMLScalarInterpolator::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. iykyk β if you know you need it, you already know. otherwise, mind your business bestie π§
Reimplemented from SoVRMLInterpolator.
π Member Data Documentation π
π¦ SoMFFloat SoVRMLScalarInterpolator::keyValue
The keyValue vector. yes, that's the whole description. short king. π
π¦ SoEngineOutput SoVRMLScalarInterpolator::value_changed
The eventOut which is sent every time the interpolator has calculated a new value. every single time. it's giving main character energy, always announcing itself. β¨
π Author π
Generated automatically by Doxygen for Coin from the source code. so technically the author is a robot and honestly? it ate. π€π
and that's a wrap on this page bestie!! πβ¨ source: Coin, Version 3.1.3, and the manpage itself is dated SoVRMLScalarInterpolator(3). slay, go interpolate some scalars, ily π«Άπ
π¦ where this page comes from
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 43: Coin3-devel 3.1.3-40.fc43 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.fc44 Β· GPL-2.0-only
- fedora 44: Coin3-devel 3.1.3-42.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