Coin
4.0.3
Coin3D core library
|
The SoVertexShape class is the superclass for all vertex based shapes. More...
#include <Inventor/nodes/SoVertexShape.h>
Static Public Member Functions | |
static SoType | getClassTypeId (void) |
static void | initClass (void) |
Static Public Member Functions inherited from SoShape | |
static SoType | getClassTypeId (void) |
static float | getDecimatedComplexity (SoState *state, float complexity) |
static void | getScreenSize (SoState *const state, const SbBox3f &boundingbox, SbVec2s &rectsize) |
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 SoNode | |
static void | audioRenderS (SoAction *action, SoNode *node) |
static void | callbackS (SoAction *action, SoNode *node) |
static int | getActionMethodIndex (const SoType type) |
static void | getBoundingBoxS (SoAction *action, SoNode *node) |
static SoNode * | getByName (const SbName &name) |
static int | getByName (const SbName &name, SoNodeList &l) |
static SoType | getClassTypeId (void) |
static uint32_t | getCompatibilityTypes (const SoType &nodetype) |
static void | getMatrixS (SoAction *action, SoNode *node) |
static SbUniqueId | getNextNodeId (void) |
static void | getPrimitiveCountS (SoAction *action, SoNode *node) |
static void | GLRenderS (SoAction *action, SoNode *node) |
static void | handleEventS (SoAction *action, SoNode *node) |
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 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 Public Member Functions inherited from SoFieldContainer | |
static void | addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) |
static SoFieldContainer * | checkCopy (const SoFieldContainer *orig) |
static void | cleanupClass (void) |
static void | copyDone (void) |
static SoFieldContainer * | findCopy (const SoFieldContainer *orig, const SbBool copyconnections) |
static SoType | getClassTypeId (void) |
This static method returns the SoType object associated with objects of this class. | |
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 | initCopyDict (void) |
Static Public Member Functions inherited from SoBase | |
static void | addName (SoBase *const base, const char *const name) |
static SbBool | connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) |
static void | decrementCurrentWriteCounter (void) |
static SoType | getClassTypeId (void) |
This static method returns the SoType object associated with objects of this class. | |
static SoBase * | getNamedBase (const SbName &name, SoType type) |
static int | getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) |
static SbBool | getTraceRefs (void) |
static void | incrementCurrentWriteCounter (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 SbBool | read (SoInput *input, SoBase *&base, SoType expectedtype) |
static SbBool | readRoute (SoInput *input) |
static void | removeName (SoBase *const base, const char *const name) |
static void | setInstancePrefix (const SbString &c) |
static void | setTraceRefs (SbBool trace) |
Public Attributes | |
SoSFNode | vertexProperty |
Static Protected Member Functions | |
static const SoFieldData ** | getFieldDataPtr (void) |
Static Protected Member Functions inherited from SoShape | |
static const SoFieldData ** | getFieldDataPtr (void) |
Static Protected Member Functions inherited from SoNode | |
static const SoFieldData ** | getFieldDataPtr (void) |
static int | getNextActionMethodIndex (void) |
static void | incNextActionMethodIndex (void) |
static void | setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) |
static void | setNextActionMethodIndex (int index) |
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 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 , 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 int | nextActionMethodIndex = 0 |
static SbUniqueId | nextUniqueId = 1 |
The SoVertexShape class is the superclass for all vertex based shapes.
Basically, every polygon, line, or point based shape will inherit this class. It contains methods for organizing the normal cache, and also holds the SoVertexShape::vertexProperty field which can be used to set vertex data inside the node.
|
protected |
Constructor.
|
protectedvirtual |
Destructor.
|
protected |
Convenience method that can be used by subclasses 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.
When returning 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.
This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.
|
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.
Reimplemented in SoIndexedFaceSet, SoIndexedPointSet, SoPointSet, SoFaceSet, SoIndexedTriangleStripSet, SoQuadMesh, and SoTriangleStripSet.
|
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.
Reimplemented in SoFaceSet, SoQuadMesh, SoTriangleStripSet, SoIndexedPointSet, SoPointSet, SoIndexedFaceSet, and SoIndexedTriangleStripSet.
This static method returns the SoType object associated with objects of this class.
|
protectedvirtual |
Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL
.
Reimplemented from SoShape.
Reimplemented in SoFaceSet, SoIndexedFaceSet, SoIndexedLineSet, SoIndexedMarkerSet, SoIndexedPointSet, SoIndexedShape, SoIndexedTriangleStripSet, SoLineSet, SoMarkerSet, SoNonIndexedShape, SoPointSet, SoQuadMesh, and SoTriangleStripSet.
|
staticprotected |
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.
|
protected |
Returns the current normal cache, or NULL if there is none.
Returns the type identification of an object derived from a class inheriting SoBase. This is used for runtime type checking and "downward" casting.
Reimplemented from SoShape.
Reimplemented in SoFaceSet, SoIndexedFaceSet, SoIndexedLineSet, SoIndexedMarkerSet, SoIndexedPointSet, SoIndexedShape, SoIndexedTriangleStripSet, SoLineSet, SoMarkerSet, SoNonIndexedShape, SoPointSet, SoQuadMesh, and SoTriangleStripSet.
|
protected |
Convenience method that returns the current coordinate and normal element. This method is not part of the Open Inventor API.
Notifies all auditors for this instance when changes are made.
Reimplemented from SoShape.
Reimplemented in SoIndexedLineSet, and SoIndexedPointSet.
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.
It is also possible to use generateAndReadLockNormalCache().
This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.
Read unlock the normal cache. Should be called when the read-locked cached normals are no longer needed.
|
protected |
Sets normal cache to contain the normals specified by normals and num, and forces cache dependencies on coordinates, shape hints and crease angle.
|
protectedvirtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Reimplemented from SoShape.
|
virtual |
Action method for SoWriteAction.
Writes out a node object, and any connected nodes, engines etc, if necessary.
Reimplemented from SoNode.
SoSFNode SoVertexShape::vertexProperty |
If you set the vertexProperty field, it should be with an SoVertexProperty node. Otherwise it will simply be ignored. Node types inheriting SoVertexShape will then get their coordinate data from the vertexProperty node instead of from the global traversal state.
The vertexProperty field of SoVertexShape-derived nodes breaks somewhat with the basic design of Open Inventor, as its contents are not passed to the global state. This is done to provide a simple path to highly optimized rendering of vertex based shapes.