SoVRMLColorInterpolator(3)

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

πŸ’… NAME πŸ’…

okay so bestie, meet SoVRMLColorInterpolator πŸ’– β€” it's a class out of the Coin manual (yep, that's the SoVRMLColorInterpolator(3) page you're reading right now), and its whole entire personality, its one job, its main character purpose is: interpolate color values ✨

that's it. that's the gig. color interpolation. and honestly? iconic.


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <Inventor/VRMLnodes/SoVRMLColorInterpolator.h>

Inherits SoVRMLInterpolator. (so it's got family, it's not out here alone 🫢)

✨ Public Member Functions ✨

  • virtual SoType getTypeId (void) const
  • virtual const SoEngineOutputData * getOutputData (void) const
  • SoVRMLColorInterpolator (void)

πŸŽ€ 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 β€” hands you back TRUE when this object's type is either the exact same type, or something that inherited from type πŸ’«
  • 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 the initialization for data that every instance of this class shares, like sending the necessary info over to the Coin type system ✨
  • 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 the initialization for data that every instance of this class shares, like sending the necessary info over to the Coin type system ✨
  • 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 the initialization for data that every instance of this class shares, like sending the necessary info over to the Coin type system ✨
  • static SoType getClassTypeId (void) β€” this static method returns the SoType object that's associated with objects of this class πŸ’«
  • 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 the initialization for data that every instance of this class shares, like sending the necessary info over to the Coin type system ✨
  • static SoType getClassTypeId (void) β€” this static method returns the SoType object that's 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 πŸ”₯

  • SoMFColor keyValue
  • SoEngineOutput value_changed

πŸ“ Public Attributes inherited from SoVRMLInterpolator

  • SoMFFloat key
  • SoSFFloat set_fraction

🧚 Protected Member Functions 🧚

  • virtual const SoFieldData * getFieldData (void) const
  • virtual ~SoVRMLColorInterpolator ()

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

  • 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

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

🫢 Protected Attributes inherited from SoNode

  • SbUniqueId uniqueId

bestie this page is long so it got split into 2 parts and you just read part 1 πŸ’– more is coming, don't go anywhere 🌸

...and the inherited ones keep coming, bestie, we're not done yet 🫢 These are all protected, so they're lowkey family business β€” you don't touch them from outside the class, but they're still sitting right there in the DNA:

  • SbBool isBuiltIn β€” protected attribute, inherited from SoFieldContainer. (yes it's just vibes and a bool. iconic.)

And from SoNode, the static protected ones β€” shared by literally every node, one copy, no cap:

  • static SbUniqueId nextUniqueId = 1
  • static int nextActionMethodIndex = 0

🌈 DETAILED DESCRIPTION 🌈

The SoVRMLColorInterpolator class is used to interpolate color values. ✨

Okay so full transparency (pun intended, it's a color node): the detailed class docs here are taken verbatim from the VRML97 standard (ISO/IEC 14772-1:1997). It's copyright The Web3D Consortium, and it's used by permission of the Consortium. So this isn't me gossiping, this is literally the source material πŸ’…

ColorInterpolator {
  eventIn      SFFloat set_fraction        # (-inf, inf)
  exposedField MFFloat key           []    # (-inf, inf)
  exposedField MFColor keyValue      []    # [0,1]
  eventOut     SFColor value_changed
}

This node interpolates among a list of MFColor key values to produce an SFColor (RGB) value_changed event. The number of colours in the keyValue field shall be equal to the number of keyframes in the key field β€” like, they have to match, that's the whole bit πŸ”₯ The keyValue field and value_changed events are defined in RGB colour space. A linear interpolation using the value of set_fraction as input is performed in HSV space (see http://www.web3d.org/documents/specifications/14772/V2.0/part1/bibliography.html#[FOLE] for description of RGB and HSV colour spaces).

⚠️ The results are undefined when interpolating between two consecutive keys with complementary hues. Not "a little weird", not "sort of off" β€” undefined. Do not test this and then come cry to me 😭

Also, 4.6.8, Interpolator nodes (http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.6.8) contains a detailed discussion of interpolators β€” go read it if you want the whole lore πŸ¦‹


πŸŽ€ CONSTRUCTOR & DESTRUCTOR DOCUMENTATION πŸŽ€

SoVRMLColorInterpolator::SoVRMLColorInterpolator (void )

Constructor. That's it, that's the whole description. Make the thing, it exists 🍼

SoVRMLColorInterpolator::~SoVRMLColorInterpolator () β€” [protected], [virtual]

Destructor. And she's protected and virtual, so she leaves the party on her own terms ✨


πŸ‘‘ MEMBER FUNCTION DOCUMENTATION πŸ‘‘

SoType SoVRMLColorInterpolator::getClassTypeId (void ) β€” [static]

This static method returns the SoType object associated with objects of this class. Static means you call it on the class itself, not on an instance β€” main character energy, doesn't need a plus-one πŸ’…

SoType SoVRMLColorInterpolator::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. (The scare quotes on "downward" are the original's, not mine β€” very much giving we know what this means and we're side-eyeing it πŸ™ˆ)

Reimplemented from SoVRMLInterpolator.

const SoFieldData ** SoVRMLColorInterpolator::getFieldDataPtr (void ) β€” [static], [protected]

Heads up: 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're reading this you're either a maintainer or you're lost 😭

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

const SoFieldData * SoVRMLColorInterpolator::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 * SoVRMLColorInterpolator::getOutputData (void ) const β€” [virtual]

Same energy as before: 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.

void SoVRMLColorInterpolator::initClass (void ) β€” [static]

No description given. She's mysterious. She's booked and busy. Respect it πŸ’œ


πŸ“ MEMBER DATA DOCUMENTATION πŸ“

  • SoMFColor SoVRMLColorInterpolator::keyValue β€” the color values. That's the palette, bestie, the whole mood board 🌈
  • SoEngineOutput SoVRMLColorInterpolator::value_changed β€” the eventOut color. This is what actually gets shouted out into the scene graph when the interpolation cooks πŸŽ€

✨ AUTHOR ✨

Generated automatically by Doxygen for Coin from the source code. No human wrote this, a robot did, and honestly? She ate πŸ€–πŸ’…


and that's the whole page, we're done!! 🌸 this was version 4.0.10, dated Thu Jun 25 2026 00:00:00, and it lives at SoVRMLColorInterpolator(3) β€” go forth and interpolate responsibly, love u, bye πŸ«ΆπŸ’–

πŸ“¦ where this page comes from