SoVRMLVertexShape(3)
β¨ 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) constvirtual void rayPick (SoRayPickAction *action)virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er)=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) constvoid setNodeType (const NodeType type)NodeType getNodeType (void) constvirtual SoNode * copy (SbBool copyconnections=FALSE) constvirtual 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) constvirtual void writeInstance (SoOutput *out)virtual SoNode * addToCopyDict (void) constvirtual SoFieldContainer * copyThroughConnection (void) const
π¦ Public Member Functions inherited from SoFieldContainer π¦
void setToDefaults (void)SbBool hasDefaultValues (void) constSbBool fieldsAreEqual (const SoFieldContainer *container) constvoid copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)SbBool set (const char *const fielddata)void get (SbString &fielddata)virtual int getFields (SoFieldList &l) constvirtual int getAllFields (SoFieldList &l) constvirtual SoField * getField (const SbName &name) constvirtual SoField * getEventIn (const SbName &name) constvirtual SoField * getEventOut (const SbName &name) constSbBool getFieldName (const SoField *const field, SbName &name) constSbBool enableNotify (const SbBool flag)SbBool isNotifyEnabled (void) constSbBool 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) constvirtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constvoid setUserData (void *userdata) constvoid * getUserData (void) const
π Public Member Functions inherited from SoBase π
void ref (void) constvoid unref (void) constvoid unrefNoDelete (void) constint32_t getRefCount (void) constvoid touch (void)SbBool isOfType (SoType type) constvirtual SbName getName (void) constvirtual 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) constSbBool 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 coordSoSFNode texCoordSoSFNode normalSoSFNode colorSoSFBool colorPerVertexSoSFBool normalPerVertex
πΈ Protected Member Functions πΈ
virtual const SoFieldData * getFieldData (void) constSoVRMLVertexShape (void)virtual ~SoVRMLVertexShape ()virtual SbBool shouldGLRender (SoGLRenderAction *action)void setNormalCache (SoState *s, int numNormals, SbVec3f *normals)SoNormalCache * getNormalCache (void) constSoNormalCache * 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 anSoAction *. protected. that's the tea.virtual void generatePrimitives (SoAction *action)=0β pure virtual! soSoShapeis abstract and you HAVE to override this one, periodt. π«Άvoid beginSolidShape (SoGLRenderAction *action)β protected, takes aSoGLRenderAction *. 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 anSbBool, takes aSoGetPrimitiveCountAction *. protected.SbBool shouldRayPick (SoRayPickAction *const action)β returnsSbBool, takes aSoRayPickAction *const. protected, and theconstis 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 anSbMatrix. 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 anSoDetail *. protected. triangle detail, cute.virtual SoDetail * createLineSegmentDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, SoPickedPoint *pp)β virtual, returnsSoDetail *. line segment detail. protected.virtual SoDetail * createPointDetail (SoRayPickAction *action, const SoPrimitiveVertex *v, SoPickedPoint *pp)β virtual, returnsSoDetail *. 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 ofconstgoing 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 defaultNULLfordetail. 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 extrafloat 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. returnsSbBool. 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, returnsSbBool. 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β returnsSbBool, const. protected. multiple write refs? sounds like a whole situation.SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constβ returnsSbBool, 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, returnsconst 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 toSoFieldData. that's a lot of pointers, but okay.
π Static Protected Member Functions inherited from SoVRMLGeometry π
static const SoFieldData ** getFieldDataPtr (void)β same vibe, inherited fromSoVRMLGeometry. static, protected.
π Static Protected Member Functions inherited from SoShape π
static const SoFieldData ** getFieldDataPtr (void)β inherited fromSoShape. static, protected. the family reunion ofgetFieldDataPtr.
β Static Protected Member Functions inherited from SoNode β
static const SoFieldData ** getFieldDataPtr (void)β inherited fromSoNode. 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 auint32_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_ENGINEis0x01,IS_GROUPis0x02. 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 to1.static int nextActionMethodIndex = 0β static protected attribute, initialized to0.
π₯ 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
- 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