SOVRMLSCALARINTERPOLATOR(3coin3)

πŸ“¦ version 3.1.3, in fedora 43, fedora 44

πŸ’… 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 β€” fills l with 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's const twice.
  • 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 to out.

πŸ¦‹ 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 to FALSE.
  • 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 a uint32_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 from from.
  • virtual SoFieldContainer * copyThroughConnection (void) const β€” copy through the connection, returns a SoFieldContainer *.

πŸŽ€ 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 default FALSE.
  • 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 into l.
  • 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, isfromfield defaults to FALSE.
  • 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 an int32_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, returns void *.
  • 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's virtual, it's protected, 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 into interp.

πŸ”’ 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) const
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const
  • void writeFooter (SoOutput *out) const
  • virtual 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 at 1, as one does.
  • static int nextActionMethodIndex = 0 β€” starts at 0, 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