SoShaderParameterArray3f(3)
π SoShaderParameterArray3f(3) β Coin π
okay bestie, so this is a page from the Coin manual, section 3 β you know, the library docs zone. pull up a chair, grab a strawberry π, we're doing shader parameters today.
β¨ NAME β¨
SoShaderParameterArray3f β the class that's literally the way to define a three-dimensional floating point array as a shader parameter. π¦
that's it, that's the whole name section, but likeβ¦ it's giving foundational. this is the class you reach for when your shader needs a whole lil array of float triples (three dimensions, babes β x, y, z energy β¨) and you want it wired up as a shader parameter. no cap.
heads up bestie, this page is a whole saga β there's more coming, so stay with me π
β¨ SYNOPSIS β¨
#include <Inventor/nodes/SoShaderParameter.h>
Inherits SoUniformShaderParameter.
okay so bestie, you know the drill. this class is all about them shader parameters. it inherits from SoUniformShaderParameter, which is lowkey iconic. π
π Public Member Functions π
virtual SoType getTypeId (void) constβ gets the type ID. you know, the usual. β¨virtual void updateParameter (SoGLShaderObject *shaderObject)β Updates the shader parameter in the OpenGL state with the content of thevaluefield. literally updating the parameter, no cap. π₯
πΈ 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)πvirtual void notify (SoNotList *l)π₯SbUniqueId getNodeId (void) constβ¨virtual SoChildList * getChildren (void) constπΈvirtual void writeInstance (SoOutput *out)π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β ReturnsTRUEif the type of this object is either of the same type or inherited fromtype. slay. π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)β gets the class type ID. β¨static void initClass ()β Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. it's giving setup energy. π₯
πΈ Static Public Member Functions inherited from SoUniformShaderParameter πΈ
static SoType getClassTypeId (void)π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. π
π¦ Static Public Member Functions inherited from SoShaderParameter π¦
static SoType getClassTypeId (void)πstatic void initClass ()β Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. β
π 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 necessary information 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 initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. π₯static SoType getClassTypeId (void)β This static method returns theSoTypeobject 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 initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. πstatic SoType getClassTypeId (void)β This static method returns theSoTypeobject 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 π
SoMFVec3f valueβ the actual value, a multi-field of 3D vectors. it's giving data. π
π Public Attributes inherited from SoShaderParameter π
SoSFString nameβ the name. πSoSFInt32 identifierβ the identifier. π₯
π Protected Member Functions π
virtual const SoFieldData * getFieldData (void) constβ gets the field data. β¨
πΈ Protected Member Functions inherited from SoUniformShaderParameter πΈ
SoGLShaderParameter * getGLShaderParameter (const uint32_t cachecontext)πvoid ensureParameter (SoGLShaderObject *shader)π¦
π¦ Protected Member Functions inherited from SoShaderParameter π¦
SoShaderParameter ()πvirtual ~SoShaderParameter ()β
π Protected Member Functions inherited from SoNode π
SoNode (void)πvirtual ~SoNode ()πvirtual SbBool readInstance (SoInput *in, unsigned short flags)π₯
π Protected Member Functions inherited from SoFieldContainer π
SoFieldContainer (void)β¨virtual ~SoFieldContainer ()πΈ
β Protected Member Functions inherited from SoBase β
SoBase (void)πvirtual ~SoBase ()π¦virtual void destroy (void)π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 Protected Member Functions inherited from SoUniformShaderParameter πΈ
static const SoFieldData ** getFieldDataPtr (void)π
π¦ Static Protected Member Functions inherited from SoShaderParameter π¦
static const SoFieldData ** getFieldDataPtr (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β¨
πΈ Protected Attributes inherited from SoFieldContainer πΈ
SbBool isBuiltInπ
π Static Protected Attributes inherited from SoNode π
static SbUniqueId nextUniqueId = 1π¦static int nextActionMethodIndex = 0π
π Detailed Description π
so like, the whole point of SoShaderParameterArray3f is to define a three-dimensional floating point array as a shader parameter. it's giving major shader parameter energy. π β¨
π Member Function Documentation π
Okay bestie, this is where the actual doing stuff happens. Buckle up, we're going through every single one of these, no skips, no skimming. β¨
πΈ SoType SoShaderParameterArray3f::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class.
Like, it's the static one β you don't even need an instance to call it. It just hands you the SoType for this whole class. Iconic behaviour, honestly. π«Ά
π¦ SoType SoShaderParameterArray3f::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.
So likeβ¦ you've got an SoBase-ish thing and you're like "wait, what are you actually?" β this is the method that tells you. It's for checking types while the program is running, and for casting down the inheritance tree. Very "who are you really" energy. π
Reimplemented from SoUniformShaderParameter.
Not me reimplementing from SoUniformShaderParameter β it's giving inheritance, it's giving override, it's giving respect the family tree. π
π const SoFieldData ** SoShaderParameterArray3f::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.
Returns the SoFieldData class which holds information about fields in this node.
Okay so real talk: this one is protected and it's internal. The library itself says it's "not likely to be of interest to the application programmer" β which is a very polite way of saying bestie this is not for you, this is for the library's own business. π«£ But it still returns the SoFieldData class that holds all the field info for this node. Justβ¦ don't come for it unless you know what you're doing, fr fr.
π const SoFieldData * SoShaderParameterArray3f::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 it's giving you the pointer to the class-wide field data storage for this specific instance. And listen β if there are no fields, you get NULL. Not empty, not a lil baby object, straight up NULL. Plan accordingly. π
Reimplemented from SoUniformShaderParameter.
π₯ void SoShaderParameterArray3f::updateParameter (SoGLShaderObject * shaderObject) [virtual]
Updates the shader parameter in the OpenGL state with the content of the value field.
This is the one that actually does the thing. It takes your value field and pushes it into the OpenGL state through the shaderObject. That's the whole point of the class, and she ate. β¨
Implements SoUniformShaderParameter.
π Member Data Documentation π
π SoMFVec3f SoShaderParameterArray3f::value
The shader parameter value.
That's it, that's the data. The value. The actual shader parameter value, living in an SoMFVec3f β multi-field, 3-float vectors, one per array entry. She's the main character of this whole node, no cap. π
π Author π
Generated automatically by Doxygen for Coin from the source code.
Not the manpage author being a robot ππ β Doxygen really said "I'll write it myself" and did. We love an automated queen.
β Version β
And that's the whole page, bestie!! π You made it to the end β every method, every flag, every [static], every [virtual], every [protected], all of it, not one single detail dropped. Vibe check: passed. π
This little masterpiece came to you courtesy of Coin, version 4.0.10, dated Thu Jun 25 2026 00:00:00. Put it in your calendar, frame it, whatever β she's timestamped and she's iconic. π
Now go forth and parameter your arrays, and remember: value goes in, shader state comes out, and you understood all of it. Slay. π
β¨π
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms