SoIndexedPointSet(3)

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

✨ SoIndexedPointSet β€” okay so, the manual page πŸ’–

hi bestie 🫢 this is SoIndexedPointSet(3), and yes it's from the Library Functions Manual, section 3, exactly like the header says. she's an Open Inventor node, she's iconic, and this is part 1 of 3 so don't go anywhere πŸ‘‘


🌸 NAME 🌸

SoIndexedPointSet β€” the class used to display a set of 3D points. that's the whole assignment. points. in 3D. she ate πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/nodes/SoIndexedPointSet.h>

Inherits SoIndexedShape.

Inherited by SoIndexedMarkerSet.

so she's lowkey a middle child in the inheritance tree and she is thriving ✨

πŸ’– Public Member Functions

  • virtual SoType getTypeId (void) const
  • SoIndexedPointSet (void)
  • virtual void GLRender (SoGLRenderAction *action)
  • virtual void getBoundingBox (SoGetBoundingBoxAction *action)
  • virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
  • virtual void notify (SoNotList *list)

πŸ¦‹ Public Member Functions inherited from SoVertexShape

  • virtual void write (SoWriteAction *action)

🌈 Public Member Functions inherited from SoShape

  • virtual SbBool affectsState (void) const
  • virtual void rayPick (SoRayPickAction *action)
  • virtual void callback (SoCallbackAction *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 doAction (SoAction *action)
  • 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 pick (SoPickAction *action)
  • virtual void search (SoSearchAction *action)
  • virtual void audioRender (SoAudioRenderAction *action)
  • virtual void grabEventsSetup (void)
  • virtual void grabEventsCleanup (void)
  • virtual void startNotify (void)
  • uint32_t 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
  • 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 SoIndexedShape

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

✨ Static Public Member Functions inherited from SoVertexShape

  • 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)

🌟 Protected Types

  • enum Binding { OVERALL, PER_VERTEX, PER_VERTEX_INDEXED }

🌟 Protected Types inherited from SoBase

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

🧚 Protected Member Functions

  • virtual const SoFieldData * getFieldData (void) const
  • virtual ~SoIndexedPointSet ()
  • virtual void generatePrimitives (SoAction *action)
  • virtual SbBool generateDefaultNormals (SoState *, SoNormalCache *nc)
  • virtual SbBool generateDefaultNormals (SoState *state, SoNormalBundle *bundle)
  • Binding findNormalBinding (SoState *const state) const
  • Binding findMaterialBinding (SoState *const state) const
  • Binding findTextureBinding (SoState *const state) const

🧚 Protected Member Functions inherited from SoIndexedShape

  • SoIndexedShape (void)
  • virtual ~SoIndexedShape ()
  • virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f &center)
  • int getNumVerts (const int startCoord)
  • void setupIndices (const int numParts, const int numFaces, const SbBool needNormals, const SbBool needTexCoords)
  • const int32_t * getNormalIndices (void)
  • const int32_t * getColorIndices (void)
  • const int32_t * getTexCoordIndices (void)
  • SbBool getVertexData (SoState *state, const SoCoordinateElement *&coords, const SbVec3f *&normals, const int32_t *&cindices, const int32_t *&nindices, const int32_t *&tindices, const int32_t *&mindices, int &numcindices, const SbBool needNormals, SbBool &normalCacheUsed)

🧚 Protected Member Functions inherited from SoVertexShape

  • SoVertexShape (void)
  • virtual ~SoVertexShape ()
  • virtual SbBool shouldGLRender (SoGLRenderAction *action)
  • void setNormalCache (SoState *const state, const int num, const 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)
ngl there are two different getVertexData signatures floating around in here β€” one from SoIndexedShape, one from SoVertexShape β€” and that is not a typo, that's just how she lives 😭 keep them straight, bestie.

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

These are the ones SoShape is handing down to you, bestie. Full signatures, no edits, no cap:

  • SoShape(void) β€” the constructor. That's it, that's the whole thing.
  • virtual ~SoShape() β€” the destructor, and yes it's virtual.
  • float getComplexityValue(SoAction *action) β€” grabs the complexity value for the given action.
  • void beginSolidShape(SoGLRenderAction *action) β€” opens up a solid shape for the render action.
  • void endSolidShape(SoGLRenderAction *action) β€” closes it back out.
  • void GLRenderBoundingBox(SoGLRenderAction *action) β€” renders the bounding box under SoGLRenderAction.
  • SbBool shouldPrimitiveCount(SoGetPrimitiveCountAction *action) β€” tells you whether the primitive count should happen for this action.
  • SbBool shouldRayPick(SoRayPickAction *const action) β€” whether ray picking should go down here.
  • void computeObjectSpaceRay(SoRayPickAction *const action) β€” computes the object-space ray. 🌈
  • void computeObjectSpaceRay(SoRayPickAction *const action, const SbMatrix &matrix) β€” same name, extra matrix arg, still doing object-space ray math.
  • virtual SoDetail * createTriangleDetail(SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp) β€” makes the triangle detail for a pick. Three vertices in, detail out.
  • virtual SoDetail * createLineSegmentDetail(SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, SoPickedPoint *pp) β€” the line-segment version, two vertices this time.
  • virtual SoDetail * createPointDetail(SoRayPickAction *action, const SoPrimitiveVertex *v, SoPickedPoint *pp) β€” and the single-point version. One vertex, one detail, iconic. πŸ‘‘
  • void invokeTriangleCallbacks(SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2, const SoPrimitiveVertex *const v3) β€” fires off the triangle callbacks.
  • void invokeLineSegmentCallbacks(SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2) β€” fires off the line-segment callbacks.
  • void invokePointCallbacks(SoAction *const action, const SoPrimitiveVertex *const v) β€” fires off the point callbacks. πŸŽ€
  • void beginShape(SoAction *const action, const TriangleShape shapetype, SoDetail *const detail=NULL) β€” begins a shape of the given TriangleShape, with detail defaulting to NULL.
  • void shapeVertex(const SoPrimitiveVertex *const v) β€” feeds in one shape vertex.
  • void endShape(void) β€” ends the shape. Closure, we love to see it.
  • void generateVertex(SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoTextureCoordinateElement *const tce, const float s, const float t, const SbVec3f &normal) β€” generates a vertex from the point, texture-coordinate element, s/t coords and a normal.
  • 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) β€” same deal but with an extra r coordinate. Three coords, main character energy. ✨
  • SbBool startVertexArray(SoGLRenderAction *action, const SoCoordinateElement *coords, const SbVec3f *pervertexnormals, const SbBool texpervertex, const SbBool colorpervertex) β€” kicks off a vertex array with coords, per-vertex normals, and the per-vertex tex/color flags.
  • void finishVertexArray(SoGLRenderAction *action, const SbBool vbo, const SbBool normpervertex, const SbBool texpervertex, const SbBool colorpervertex) β€” wraps that vertex array up, vbo and all.

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

  • SoNode(void) β€” constructor.
  • virtual ~SoNode() β€” destructor, virtual, as always.
  • virtual SbBool readInstance(SoInput *in, unsigned short flags) β€” reads an instance out of the SoInput, using those flags.

🌸 Protected Member Functions inherited from SoFieldContainer 🌸

  • SoFieldContainer(void) β€” constructor.
  • virtual ~SoFieldContainer() β€” destructor. virtual. Every time. πŸ’…

🌈 Protected Member Functions inherited from SoBase 🌈

  • SoBase(void) β€” constructor.
  • virtual ~SoBase() β€” destructor.
  • virtual void destroy(void) β€” destroys the thing.
  • SbBool hasMultipleWriteRefs(void) const β€” checks whether there are multiple write refs. const, because it's not touching anything.
  • SbBool writeHeader(SoOutput *out, SbBool isgroup, SbBool isengine) const β€” writes the header out, with the isgroup and isengine flags.
  • void writeFooter(SoOutput *out) const β€” writes the footer. Balanced, bestie. βš–οΈ
  • virtual const char * getFileFormatName(void) const β€” hands you the file format name as a const char *.

⭐ Static Protected Member Functions ⭐

  • static const SoFieldData ** getFieldDataPtr(void) β€” the SoFieldData pointer-getter. Static, protected, doing its job.

🧚 Static Protected Member Functions inherited from SoIndexedShape 🧚

  • static const SoFieldData ** getFieldDataPtr(void) β€” same name, same shape.
  • static SbBool areTexCoordsIndexed(SoAction *action) β€” tells you whether the texture coords are indexed for that action.

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

  • static const SoFieldData ** getFieldDataPtr(void) β€” yep, again.

πŸ“ Static Protected Member Functions inherited from SoShape πŸ“

  • static const SoFieldData ** getFieldDataPtr(void) β€” and again.

🌟 Static Protected Member Functions inherited from SoNode 🌟

  • static const SoFieldData ** getFieldDataPtr(void) β€” you get the pattern by now.
  • static void setNextActionMethodIndex(int index) β€” sets the next action method index to index.
  • static int getNextActionMethodIndex(void) β€” reads it back out.
  • static void incNextActionMethodIndex(void) β€” increments it.
  • static void setCompatibilityTypes(const SoType &nodetype, const uint32_t bitmask) β€” sets compatibility types for a nodetype with a bitmask.

πŸ’– Static Protected Member Functions inherited from SoBase πŸ’–

  • static uint32_t getCurrentWriteCounter(void) β€” returns the current write counter.
  • static void staticDataLock(void) β€” locks the static data. πŸ”’
  • static void staticDataUnlock(void) β€” unlocks it. Balanced again.

πŸ‘‘ Protected Attributes πŸ‘‘

  • SoVertexArrayIndexer * vaindexer β€” your vertex array indexer pointer, living its protected life.

✨ Protected Attributes inherited from SoNode ✨

  • uint32_t uniqueId β€” the unique id. One of one, literally.

πŸŽ€ Protected Attributes inherited from SoFieldContainer πŸŽ€

  • SbBool isBuiltIn β€” whether it's built-in or not.

πŸ’€ Additional Inherited Members πŸ’€

πŸ”₯ Public Types inherited from SoShape πŸ”₯

  • enum TriangleShape { TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, POLYGON, QUADS, QUAD_STRIP, POINTS, LINES, LINE_STRIP }

🌈 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 }

🫢 Public Attributes inherited from SoIndexedShape 🫢

  • SoMFInt32 coordIndex
  • SoMFInt32 materialIndex
  • SoMFInt32 normalIndex
  • SoMFInt32 textureCoordIndex

🌸 Public Attributes inherited from SoVertexShape 🌸

  • SoSFNode vertexProperty

🧚 Static Protected Attributes inherited from SoNode 🧚

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

πŸ’… Detailed Description πŸ’…

The SoIndexedPointSet class is used to display a set of 3D points.

This node either uses the coordinates currently on the state (typically set up by a leading SoCoordinate3 node in the scenegraph) or from a SoVertexProperty node attached to this node to render a set of 3D points.

Here's a simple usage example of SoIndexedPointSet in a scenegraph:

#Inventor V2.1 ascii

Separator {
   Material {
      diffuseColor [
       1 0 0, 0 1 0, 0 0 1, 1 1 0, 1 0 1, 1 1 1, 1 0.8 0.6, 0.6 0.8 1
      ]
   }
   MaterialBinding { value PER_VERTEX_INDEXED }

   Normal {
      vector [
       0 0 1, 1 0 0
      ]
   }
   NormalBinding { value PER_VERTEX_INDEXED }

   Coordinate3 {
      point [
       -1 1 0, -1 -1 0, 1 -1 0, 1 1 0, 0 2 -1, -2 0 -1, 0 -2 -1, 2 0 -1
      ]
   }

   DrawStyle { pointSize 5 }

   IndexedPointSet {
      coordIndex [0, 1, 2, 3, 4, 5, 6, 7]
      normalIndex [0, 1, 0, 1, 0, 1, 0, 1]
   }
}

FILE FORMAT/DEFAULTS:

IndexedPointSet {
  vertexProperty        NULL
  coordIndex    0
  materialIndex         -1
  normalIndex   -1
  textureCoordIndex     -1
}

Since πŸ—“οΈ

TGS Inventor 6.0, Coin 3.1


✨ Constructor & Destructor Documentation ✨

SoIndexedPointSet::SoIndexedPointSet(void )

Constructor. Simple as that. πŸŽ€

SoIndexedPointSet::~SoIndexedPointSet() [protected], [virtual]

Destructor. Protected and virtual, because of course it is. πŸ’…

✨ Member Function Documentation ✨


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

Okay bestie, this one returns the type identification of an object derived from a class inheriting SoBase. It's literally for run-time type checking and "downward" casting. It's giving "who dis?" but for C++ objects πŸ’…

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. 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 SoIndexedShape.
  • Reimplemented in SoIndexedMarkerSet.

const SoFieldData * SoIndexedPointSet::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. Short, sweet, and to the point β€” we love a low-maintenance icon ✨

  • Reimplemented from SoIndexedShape.
  • Reimplemented in SoIndexedMarkerSet.

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

Action method for the SoGLRenderAction.

This is called during rendering traversals. Nodes influencing the rendering state in any way or who wants to throw geometry primitives at OpenGL overrides this method. Basically: if you're about to send shapes to OpenGL, this is your moment to shine πŸ”₯

  • Reimplemented from SoShape.
  • Reimplemented in SoIndexedMarkerSet.

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

Action method for the SoGetBoundingBoxAction.

Calculates bounding box and center coordinates for 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.

Nodes influencing how geometry nodes calculates their bounding box also overrides this method to change the relevant state variables. So if your node has opinions about where it lives in space, this is the vibe check πŸ’«

  • Reimplemented from SoShape.

void SoIndexedPointSet::getPrimitiveCount (SoGetPrimitiveCountAction * action) [virtual]

Action method for the SoGetPrimitiveCountAction.

Calculates the number of triangle, line segment and point primitives for the node and adds these to the counters of the action.

Nodes influencing how geometry nodes calculates their primitive count also overrides this method to change the relevant state variables. Counting triangles, lines, and points like the main character you are πŸ‘‘

  • Reimplemented from SoShape.

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

Notifies all auditors for this instance when changes are made. It's the "hey bestie, something changed" text of the Coin world πŸ“£

  • Reimplemented from SoVertexShape.
  • Reimplemented in SoIndexedMarkerSet.

void SoIndexedPointSet::generatePrimitives (SoAction * action) [protected], [virtual]

The method implements action behavior for shape nodes for SoCallbackAction. It is invoked from SoShape::callback(). (Subclasses should not override SoNode::callback().) No cap, that parenthetical is important β€” don't touch SoNode::callback() πŸ™ˆ

The subclass implementations uses the convenience methods SoShape::beginShape(), SoShape::shapeVertex(), and SoShape::endShape(), with SoDetail instances, to pass the primitives making up the shape back to the caller. Shape primitives, but make it fashion πŸ’–

  • Implements SoShape.

SbBool SoIndexedPointSet::generateDefaultNormals (SoState * state, SoNormalCache * cache) [protected], [virtual]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.

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

Default method just returns FALSE.

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

  • Reimplemented from SoVertexShape.

SbBool SoIndexedPointSet::generateDefaultNormals (SoState * state, SoNormalBundle * bundle) [protected], [virtual]

This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.

Subclasses should override this method to generate default normals using the SoNormalBundle class. TRUE should be returned if normals were generated, FALSE otherwise.

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. Another Coin-only glow-up 🌈

  • Reimplemented from SoVertexShape.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Coin from the source code.


That's the whole page, bestie. This was Coin Version 3.1.3, SoIndexedPointSet(3) β€” the footer didn't come with a date, just timeless icon behavior. Catch you in the next man page πŸ’–βœ¨

πŸ“¦ where this page comes from