SoVRMLVertexShape(3)

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

✨ NAME ✨

Ok bestie, gather round! SoVRMLVertexShape is THE superclass for vertex based shapes. Like, if you're making anything out of vertices, this is your blueprint. It's giving main character energy for all the vertex-based shapes. πŸ’…βœ¨

🌸 SYNOPSIS 🌸

First things first, you gotta include it:

#include <Inventor/VRMLnodes/SoVRMLVertexShape.h>

It inherits from SoVRMLGeometry. And guess what? SoVRMLIndexedShape inherits from it. So it's like the cool middle child in the inheritance tree. 🌳

✨ Public Types ✨

  • enum Binding β€” the material binding vibe check, fr fr. It's literally this:
enum Binding { OVERALL = SoMaterialBindingElement::OVERALL, PER_PART = SoMaterialBindingElement::PER_PART, PER_PART_INDEXED = SoMaterialBindingElement::PER_PART_INDEXED, PER_FACE = SoMaterialBindingElement::PER_FACE, PER_FACE_INDEXED = SoMaterialBindingElement::PER_FACE_INDEXED, PER_VERTEX = SoMaterialBindingElement::PER_VERTEX, PER_VERTEX_INDEXED = SoMaterialBindingElement::PER_VERTEX_INDEXED }

Obsessed with this. πŸ’–

🌈 Public Types inherited from SoShape 🌈

  • enum TriangleShape { TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, POLYGON, QUADS, QUAD_STRIP, POINTS, LINES, LINE_STRIP } β€” all the triangle shapes you could ever want. The shape squad. πŸ”Ί

πŸ¦‹ 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 } β€” all the node types with their hex values, no cap. 🧬

πŸ’– Public Member Functions πŸ’–

  • virtual SoType getTypeId (void) const β€” type ID, periodt.
  • virtual SbBool generateDefaultNormals (SoState *s, SoNormalBundle *nb)
  • virtual SbBool generateDefaultNormals (SoState *s, SoNormalCache *nc)
  • virtual void doAction (SoAction *action)
  • virtual void GLRender (SoGLRenderAction *action)
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action)
  • virtual void callback (SoCallbackAction *action)
  • virtual void pick (SoPickAction *action)
  • virtual void notify (SoNotList *list)

🌸 Public Member Functions inherited from SoVRMLGeometry 🌸

  • virtual void search (SoSearchAction *action)
  • virtual void copyContents (const SoFieldContainer *from, SbBool copyConn)

✨ Public Member Functions inherited from SoShape ✨

  • virtual SbBool affectsState (void) const
  • virtual void rayPick (SoRayPickAction *action)
  • virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f &center)=0 β€” pure virtual, so you gotta implement it, bestie.
  • virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
  • const SoBoundingBoxCache * getBoundingBoxCache (void) const

🌈 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 void GLRenderBelowPath (SoGLRenderAction *action)
  • virtual void GLRenderInPath (SoGLRenderAction *action)
  • virtual void GLRenderOffPath (SoGLRenderAction *action)
  • virtual void getMatrix (SoGetMatrixAction *action)
  • virtual void handleEvent (SoHandleEventAction *action)
  • virtual void write (SoWriteAction *action)
  • virtual void audioRender (SoAudioRenderAction *action)
  • virtual void grabEventsSetup (void)
  • virtual void grabEventsCleanup (void)
  • virtual void startNotify (void)
  • uint32_t getNodeId (void) const
  • virtual void writeInstance (SoOutput *out)
  • virtual SoNode * addToCopyDict (void) const
  • 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
  • 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 initClass (void)

🌟 Static Public Member Functions inherited from SoVRMLGeometry 🌟

  • static SoType getClassTypeId (void)
  • static void initClass (void)

✨ Static Public Member Functions inherited from SoShape ✨

  • static SoType getClassTypeId (void)
  • static void initClass (void)
  • static void getScreenSize (SoState *const state, const SbBox3f &boundingbox, SbVec2s &rectsize)
  • static float getDecimatedComplexity (SoState *state, float complexity)

🌈 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 πŸ’–

  • SoSFNode coord
  • SoSFNode texCoord
  • SoSFNode normal
  • SoSFNode color
  • SoSFBool colorPerVertex
  • SoSFBool normalPerVertex

🌸 Protected Member Functions 🌸

  • virtual const SoFieldData * getFieldData (void) const
  • SoVRMLVertexShape (void)
  • virtual ~SoVRMLVertexShape ()
  • virtual SbBool shouldGLRender (SoGLRenderAction *action)
  • void setNormalCache (SoState *s, int numNormals, SbVec3f *normals)
  • SoNormalCache * getNormalCache (void) const
  • SoNormalCache * generateAndReadLockNormalCache (SoState *const state)
  • void getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const SbBool neednormals)
  • void readLockNormalCache (void)
  • void readUnlockNormalCache (void)

🌈 Protected Member Functions inherited from SoVRMLGeometry 🌈

  • SoVRMLGeometry (void)
  • virtual ~SoVRMLGeometry ()
  • void setupShapeHints (SoState *state, const SbBool ccw, const SbBool solid)
  • virtual SoChildList * getChildren (void) const

Ok that's the whole SYNOPSIS, bestie! Part 2 is coming with the DESCRIPTION and all that jazz, so stay tuned! πŸ’–βœ¨

πŸ’– Protected Member Functions inherited from SoShape πŸ’–

okay bestie, these are the protected member functions that SoVRMLVertexShape inherits from SoShape. they're protected, so it's giving "family only" energy, no cap. πŸ’…

  • SoShape (void) β€” the constructor. protected, so you can't just call it from anywhere, iykyk.
  • virtual ~SoShape () β€” the destructor, and it's virtual, so it knows how to clean up properly when you delete a derived object. iconic.
  • float getComplexityValue (SoAction *action) β€” returns a float, takes an SoAction *. protected. that's the tea.
  • virtual void generatePrimitives (SoAction *action)=0 β€” pure virtual! so SoShape is abstract and you HAVE to override this one, periodt. 🫢
  • void beginSolidShape (SoGLRenderAction *action) β€” protected, takes a SoGLRenderAction *. sounds like it's starting something solid, but I'm just reading the signature, bestie.
  • void endSolidShape (SoGLRenderAction *action) β€” the counterpart to the above. protected. balance, yin and yang, slay.
  • void GLRenderBoundingBox (SoGLRenderAction *action) β€” protected. the name says bounding box but I'm not gonna speculate, fr fr.
  • SbBool shouldPrimitiveCount (SoGetPrimitiveCountAction *action) β€” returns an SbBool, takes a SoGetPrimitiveCountAction *. protected.
  • SbBool shouldRayPick (SoRayPickAction *const action) β€” returns SbBool, takes a SoRayPickAction *const. protected, and the const is doing the most.
  • void computeObjectSpaceRay (SoRayPickAction *const action) β€” protected. object space ray? sounds like a whole vibe.
  • void computeObjectSpaceRay (SoRayPickAction *const action, const SbMatrix &matrix) β€” overloaded version with an SbMatrix. protected. two for one, we love to see it.
  • virtual SoDetail * createTriangleDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp) β€” virtual, returns an SoDetail *. protected. triangle detail, cute.
  • virtual SoDetail * createLineSegmentDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, SoPickedPoint *pp) β€” virtual, returns SoDetail *. line segment detail. protected.
  • virtual SoDetail * createPointDetail (SoRayPickAction *action, const SoPrimitiveVertex *v, SoPickedPoint *pp) β€” virtual, returns SoDetail *. point detail. protected. the trio is complete. πŸ’–
  • void invokeTriangleCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2, const SoPrimitiveVertex *const v3) β€” protected. lots of const going on, we stan.
  • void invokeLineSegmentCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2) β€” protected. callbacks for line segments.
  • void invokePointCallbacks (SoAction *const action, const SoPrimitiveVertex *const v) β€” protected. point callbacks.
  • void beginShape (SoAction *const action, const TriangleShape shapetype, SoDetail *const detail=NULL) β€” protected. note the default NULL for detail. cute.
  • void shapeVertex (const SoPrimitiveVertex *const v) β€” protected. one vertex, one love.
  • void endShape (void) β€” protected. ends the shape. periodt.
  • void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoTextureCoordinateElement *const tce, const float s, const float t, const SbVec3f &normal) β€” protected. long signature, but we respect the hustle.
  • void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoTextureCoordinateElement *const tce, const float s, const float t, const float r, const SbVec3f &normal) β€” overloaded with an extra float r. protected. variety is the spice of life.
  • SbBool startVertexArray (SoGLRenderAction *action, const SoCoordinateElement *coords, const SbVec3f *pervertexnormals, const SbBool texpervertex, const SbBool colorpervertex) β€” protected. returns SbBool. start that vertex array.
  • void finishVertexArray (SoGLRenderAction *action, const SbBool vbo, const SbBool normpervertex, const SbBool texpervertex, const SbBool colorpervertex) β€” protected. finish it. slay.

✨ Protected Member Functions inherited from SoNode ✨

more protected goodness, this time from SoNode.

  • SoNode (void) β€” constructor. protected.
  • virtual ~SoNode () β€” virtual destructor. protected.
  • virtual SbBool readInstance (SoInput *in, unsigned short flags) β€” virtual, returns SbBool. protected. reading instances, iykyk.

🌸 Protected Member Functions inherited from SoFieldContainer 🌸

  • SoFieldContainer (void) β€” constructor. protected.
  • virtual ~SoFieldContainer () β€” virtual destructor. protected.

πŸ¦‹ Protected Member Functions inherited from SoBase πŸ¦‹

  • SoBase (void) β€” constructor. protected.
  • virtual ~SoBase () β€” virtual destructor. protected.
  • virtual void destroy (void) β€” virtual, returns void. protected. destroy. dramatic.
  • SbBool hasMultipleWriteRefs (void) const β€” returns SbBool, const. protected. multiple write refs? sounds like a whole situation.
  • SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const β€” returns SbBool, const. protected. writing headers, fancy.
  • void writeFooter (SoOutput *out) const β€” const. protected. footer, not the main character but still important.
  • virtual const char * getFileFormatName (void) const β€” virtual, returns const char *, const. protected. get that file format name, bestie.

πŸ‘‘ Static Protected Member Functions πŸ‘‘

  • static const SoFieldData ** getFieldDataPtr (void) β€” static, protected. returns a pointer to a pointer to SoFieldData. that's a lot of pointers, but okay.

πŸ’œ Static Protected Member Functions inherited from SoVRMLGeometry πŸ’œ

  • static const SoFieldData ** getFieldDataPtr (void) β€” same vibe, inherited from SoVRMLGeometry. static, protected.

πŸŽ€ Static Protected Member Functions inherited from SoShape πŸŽ€

  • static const SoFieldData ** getFieldDataPtr (void) β€” inherited from SoShape. static, protected. the family reunion of getFieldDataPtr.

⭐ Static Protected Member Functions inherited from SoNode ⭐

  • static const SoFieldData ** getFieldDataPtr (void) β€” inherited from SoNode. static, protected.
  • static void setNextActionMethodIndex (int index) β€” static, protected. sets an index.
  • static int getNextActionMethodIndex (void) β€” static, protected. gets that index.
  • static void incNextActionMethodIndex (void) β€” static, protected. increments the index. math but make it cute.
  • static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) β€” static, protected. sets compatibility types.

🌈 Static Protected Member Functions inherited from SoBase 🌈

  • static uint32_t getCurrentWriteCounter (void) β€” static, protected. returns a uint32_t.
  • static void staticDataLock (void) β€” static, protected. lock it up.
  • static void staticDataUnlock (void) β€” static, protected. unlock it. freedom.

πŸ“ Additional Inherited Members πŸ“

🧚 Protected Types inherited from SoBase 🧚

  • enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 } β€” protected enum. IS_ENGINE is 0x01, IS_GROUP is 0x02. flags, we love a bitmask moment.

πŸ’… Protected Attributes inherited from SoNode πŸ’…

  • uint32_t uniqueId β€” protected attribute. a unique id, as the name suggests.

🌸 Protected Attributes inherited from SoFieldContainer 🌸

  • SbBool isBuiltIn β€” protected attribute. is it built in? that's the question.

✨ Static Protected Attributes inherited from SoNode ✨

  • static uint32_t nextUniqueId = 1 β€” static protected attribute, initialized to 1.
  • static int nextActionMethodIndex = 0 β€” static protected attribute, initialized to 0.

πŸ”₯ Detailed Description πŸ”₯

The SoVRMLVertexShape class is a superclass for vertex based shapes.

that's it. that's the description. it's giving "I'm the blueprint, not the final product". iconic. πŸ’–


πŸ’– Constructor & Destructor Documentation πŸ’–

πŸ’« SoVRMLVertexShape::SoVRMLVertexShape (void ) [protected] πŸ’«

Constructor.

πŸ’« SoVRMLVertexShape::~SoVRMLVertexShape () [protected], [virtual] πŸ’«

Destructor.

πŸ’… MEMBER FUNCTION DOCUMENTATION πŸ’…


SoType SoVRMLVertexShape::getTypeId (void ) const [virtual]

okay so this one is THE type-checker bestie ✨ it hands you back the type identification of any object derived from a class that inherits SoBase. Translation: it's how you do run-time type checking and "downward" casting without just hoping for the best 😭

Usage example, look at it, love it:

void foo(SoNode * node)
{
  if (node->getTypeId() == SoFile::getClassTypeId()) {
    SoFile * filenode = (SoFile *)node;  // safe downward cast, knows the type
  }
}

See that comment? safe downward cast, knows the type. That's the whole vibe πŸ’…

Now, for the app programmers who wanna extend the library with new nodes, engines, nodekits, draggers or whatever else β€” this method needs to be overridden in all subclasses. Fr fr. You typically do that as part of setting up the full type system for your extension classes, and the usual way to pull that off is with 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. iykyk 🧚

Want the full tea on writing Coin extensions? Go read the class documentation of the toplevel superclasses for the various class groups. Go on, it's right there.

Reimplemented from SoVRMLGeometry.

Reimplemented in SoVRMLIndexedFaceSet, and SoVRMLIndexedShape.


const SoFieldData * SoVRMLVertexShape::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. that's it, that's the whole thing 🫢

Reimplemented from SoVRMLGeometry.

Reimplemented in SoVRMLIndexedFaceSet, and SoVRMLIndexedShape.


SbBool SoVRMLVertexShape::generateDefaultNormals (SoState * s, SoNormalBundle * nb) [virtual]

heads up bestie, this API member is considered internal to the library, since it's not likely to be of interest to the application programmer πŸ™ˆ

Subclasses should override this method to generate default normals using the SoNormalBundle class. Return TRUE if normals were generated, FALSE otherwise. Binary. No in-between πŸ’€

Default method returns FALSE.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Reimplemented in SoVRMLIndexedFaceSet.


SbBool SoVRMLVertexShape::generateDefaultNormals (SoState * s, SoNormalCache * nc) [virtual]

same energy, different class πŸ’« also internal to the library, also not likely to be of interest to the application programmer.

Subclasses should override this method to generate default normals using the SoNormalCache class. And this one is more effective than using SoNormalGenerator. Return TRUE if normals were generated, FALSE otherwise.

Default method just returns FALSE. Iconic, unbothered, doing nothing πŸ’…

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Reimplemented in SoVRMLIndexedFaceSet.


void SoVRMLVertexShape::doAction (SoAction * action) [virtual]

this function performs the typical operation of a node for any action. that's the whole description, she's short and she ate 🌸

Reimplemented from SoNode.


void SoVRMLVertexShape::GLRender (SoGLRenderAction * action) [virtual]

action method for the SoGLRenderAction πŸ”₯

This gets called during rendering traversals. Nodes influencing the rendering state in any way, or who just wanna throw geometry primitives at OpenGL, override this method. main character energy, obviously.

Reimplemented from SoShape.

Reimplemented in SoVRMLIndexedFaceSet.


void SoVRMLVertexShape::getBoundingBox (SoGetBoundingBoxAction * action) [virtual]

action method for the SoGetBoundingBoxAction ✨

Calculates bounding box and center coordinates for the node, and modifies the values of the action to encompass the bounding box for this node and to shift the center point for the scene more towards the one for this node. It's giving... spatial awareness.

Nodes influencing how geometry nodes calculate their bounding box also override this method to change the relevant state variables.

Reimplemented from SoShape.


void SoVRMLVertexShape::callback (SoCallbackAction * action) [virtual]

action method for SoCallbackAction πŸ¦‹

Simply updates the state according to how the node behaves for the render action, so the application programmer can use the SoCallbackAction for extracting information about the scene graph. Lowkey a lil intel-gathering mission.

Reimplemented from SoShape.


void SoVRMLVertexShape::pick (SoPickAction * action) [virtual]

action method for SoPickAction.

Does common processing for SoPickAction action instances. Short king πŸ‘‘

Reimplemented from SoNode.


void SoVRMLVertexShape::notify (SoNotList * l) [virtual]

notifies all auditors for this instance when changes are made πŸ“£ the group chat has been pinged.

Reimplemented from SoVRMLGeometry.

Reimplemented in SoVRMLIndexedShape.


SbBool SoVRMLVertexShape::shouldGLRender (SoGLRenderAction * action) [protected], [virtual]

another one that's internal to the library, not likely to be of interest to the application programmer πŸ™ˆ

Reimplemented from SoVRMLGeometry.


SoNormalCache * SoVRMLVertexShape::generateAndReadLockNormalCache (SoState *const state) [protected]

a convenience method that subclasses can use to return or create a normal cache πŸ’– If the current cache is not valid, it takes care of unrefing the old cache and pushing and popping the state to create element dependencies when creating the new cache. She's doing all the admin so you don't have to.

When you return from this method, the normal cache will be read locked, and the caller should call readUnlockNormalCache() when the normals in the cache are no longer needed. Don't forget, bestie, or it's stuck like that 😭

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since

Coin 2.0


void SoVRMLVertexShape::getVertexData (SoState * state, const SoCoordinateElement *& coords, const SbVec3f *& normals, const SbBool neednormals) [protected]

convenience method that returns the current coordinate and normal element. This method is not part of the OIV API. that's the whole note πŸŽ€


void SoVRMLVertexShape::readLockNormalCache (void ) [protected]

read lock the normal cache πŸ”’ This method should be called before fetching the normal cache (using getNormalCache()). When the cached normals are no longer needed, readUnlockNormalCache() must be called. Not "should", not "maybe", must.

It is also possible to use generateAndReadLockNormalCache(). Options, we love options.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

See also

readUnlockNormalCache()

Since

Coin 2.0


void SoVRMLVertexShape::readUnlockNormalCache (void ) [protected]

read unlock the normal cache πŸ”“ Should be called when the read-locked cached normals are no longer needed. The sequel to the previous one, the closing bracket, the ✨ and they lived happily ever after ✨

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

See also

readLockNormalCache()

Since

Coin 2.0


🌈 MEMBER DATA DOCUMENTATION 🌈


SoSFNode SoVRMLVertexShape::coord

Should contain an SoVRMLCoordinate node. Should. I'm just the messenger πŸ’…


SoSFNode SoVRMLVertexShape::texCoord

Can contain an SoVRMLTextureCoordinate node. Can, not must. Free spirit 🌸


SoSFNode SoVRMLVertexShape::normal

Can contain an SoVRMLNormal node.


SoSFNode SoVRMLVertexShape::color

Can contain an SoVRMLColor node.


SoSFBool SoVRMLVertexShape::colorPerVertex

When TRUE, colors are applied per vertex. Default value is TRUE.


SoSFBool SoVRMLVertexShape::normalPerVertex

When TRUE, normals are applied per vertex. Default value is TRUE.


🫢 AUTHOR 🫢

Generated automatically by Doxygen for Coin from the source code.


and that's a wrap on SoVRMLVertexShape(3) bestie!! πŸŽ€ this page is from Coin, Version 3.1.3, and yeah she was auto-generated by Doxygen, no cap β€” the robots did the typing, I just did the ✨vibes✨. now go forth and cast some safe downward casts, love u, bye πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from