Coin  4.0.3
Coin3D core library
Loading...
Searching...
No Matches
SoGetPrimitiveCountAction Class Reference

The SoGetPrimitiveCountAction class counts the primitives in a scene. More...

#include <Inventor/actions/SoGetPrimitiveCountAction.h>

Inheritance diagram for SoGetPrimitiveCountAction:
SoAction

Public Member Functions

 SoGetPrimitiveCountAction (const SbViewportRegion &vp)
 
 SoGetPrimitiveCountAction (void)
 
virtual ~SoGetPrimitiveCountAction (void)
 
void addNumImage (const int num)
 
void addNumLines (const int num)
 
void addNumPoints (const int num)
 
void addNumText (const int num)
 
void addNumTriangles (const int num)
 
SbBool canApproximateCount (void)
 
SbBool containsNonTriangleShapes (void)
 
SbBool containsNoPrimitives (void)
 
float getDecimationPercentage (void)
 
SoDecimationTypeElement::Type getDecimationType (void)
 
int getImageCount (void) const
 
int getLineCount (void) const
 
int getPointCount (void) const
 
int getTextCount (void) const
 
int getTriangleCount (void) const
 
virtual SoType getTypeId (void) const
 
void incNumImage (void)
 
void incNumLines (void)
 
void incNumPoints (void)
 
void incNumText (void)
 
void incNumTriangles (void)
 
SbBool is3DTextCountedAsTriangles (void)
 
void setCanApproximate (const SbBool flag)
 
void setCount3DTextAsTriangles (const SbBool flag)
 
void setDecimationValue (SoDecimationTypeElement::Type type, float percentage=1.0)
 
- Public Member Functions inherited from SoAction
virtual ~SoAction (void)
 
virtual void apply (const SoPathList &pathlist, SbBool obeysrules=FALSE)
 
void apply (SoAction *beingApplied)
 
virtual void apply (SoNode *root)
 
virtual void apply (SoPath *path)
 
const SoPathgetCurPath (void)
 
PathCode getCurPathCode (void) const
 
virtual SoNodegetCurPathTail (void)
 
SoNodegetNodeAppliedTo (void) const
 
const SoPathListgetOriginalPathListAppliedTo (void) const
 
SoPathgetPathAppliedTo (void) const
 
PathCode getPathCode (int &numindices, const int *&indices)
 
const SoPathListgetPathListAppliedTo (void) const
 
SoStategetState (void) const
 
AppliedCode getWhatAppliedTo (void) const
 
SbBool hasTerminated (void) const
 
virtual void invalidateState (void)
 
SbBool isLastPathListAppliedTo (void) const
 
virtual SbBool isOfType (SoType type) const
 
void popCurPath (const PathCode prevpathcode)
 
void popCurPath (void)
 
void popPushCurPath (const int childindex, SoNode *node=NULL)
 
void pushCurPath (const int childindex, SoNode *node=NULL)
 
void pushCurPath (void)
 
void switchToNodeTraversal (SoNode *node)
 
void switchToPathTraversal (SoPath *path)
 
void traverse (SoNode *const node)
 
void usePathCode (int &numindices, const int *&indices)
 

Static Public Member Functions

static void addMethod (const SoType type, SoActionMethod method)
 
static void enableElement (const SoType type, const int stackindex)
 
static SoType getClassTypeId (void)
 
static void initClass (void)
 
- Static Public Member Functions inherited from SoAction
static SoType getClassTypeId (void)
 
static void initClass (void)
 
static void initClasses (void)
 
static void nullAction (SoAction *action, SoNode *node)
 

Protected Member Functions

virtual void beginTraversal (SoNode *node)
 
virtual const SoEnabledElementsListgetEnabledElements (void) const
 
- Protected Member Functions inherited from SoAction
 SoAction (void)
 
virtual void endTraversal (SoNode *node)
 
void setTerminated (const SbBool flag)
 
virtual SbBool shouldCompactPathList (void) const
 

Static Protected Member Functions

static SoActionMethodListgetClassActionMethods (void)
 
static SoEnabledElementsListgetClassEnabledElements (void)
 
- Static Protected Member Functions inherited from SoAction
static SoActionMethodListgetClassActionMethods (void)
 
static SoEnabledElementsListgetClassEnabledElements (void)
 

Additional Inherited Members

- Public Types inherited from SoAction
enum  AppliedCode { NODE = 0 , PATH = 1 , PATH_LIST = 2 }
 
enum  PathCode { NO_PATH = 0 , IN_PATH = 1 , BELOW_PATH = 2 , OFF_PATH = 3 }
 
- Protected Attributes inherited from SoAction
SoStatestate
 
SoActionMethodListtraversalMethods
 

Detailed Description

The SoGetPrimitiveCountAction class counts the primitives in a scene.

Apply this action to a scene if you need to know the number of primitives present in a scene graph, or parts of a scene graph.

One common mistake to make when using this action is to think that it traverses just the parts currently in view, like SoGLRenderAction does. (SoGLRenderAction culls away the scene graph parts outside the camera view volume and does not traverse those.) Like most other action classes, SoGetPrimitiveCountAction actually traverses the complete scene graph, not just the parts currently in view.

Since
Coin 1.0
TGS Inventor 2.5

Constructor & Destructor Documentation

◆ SoGetPrimitiveCountAction() [1/2]

SoGetPrimitiveCountAction::SoGetPrimitiveCountAction ( void )

Constructor.

◆ SoGetPrimitiveCountAction() [2/2]

SoGetPrimitiveCountAction::SoGetPrimitiveCountAction ( const SbViewportRegion & vp)

Constructor. Supply the current viewport region to make SCREEN_SPACE counting correct.

◆ ~SoGetPrimitiveCountAction()

SoGetPrimitiveCountAction::~SoGetPrimitiveCountAction ( void )
virtual

The destructor.

Member Function Documentation

◆ addMethod()

void SoGetPrimitiveCountAction::addMethod ( const SoType type,
SoActionMethod method )
static

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

◆ addNumImage()

void SoGetPrimitiveCountAction::addNumImage ( const int num)

Adds num texture image maps to total count. Used by node instances in the scene graph during traversal.

◆ addNumLines()

void SoGetPrimitiveCountAction::addNumLines ( const int num)

Adds num lines to total count. Used by node instances in the scene graph during traversal.

◆ addNumPoints()

void SoGetPrimitiveCountAction::addNumPoints ( const int num)

Adds num points to total count. Used by node instances in the scene graph during traversal.

◆ addNumText()

void SoGetPrimitiveCountAction::addNumText ( const int num)

Adds num texts to total count. Used by node instances in the scene graph during traversal.

◆ addNumTriangles()

void SoGetPrimitiveCountAction::addNumTriangles ( const int num)

Adds num triangles to total count. Used by node instances in the scene graph during traversal.

◆ beginTraversal()

void SoGetPrimitiveCountAction::beginTraversal ( SoNode * node)
protectedvirtual

This virtual method is called from SoAction::apply(), and is the entry point for the actual scene graph traversal.

It can be overridden to initialize the action at traversal start, for specific initializations in the action subclasses inheriting SoAction.

Default method just calls traverse(), which any overridden implementation of the method must do too (or call SoAction::beginTraversal()) to trigger the scene graph traversal.

Reimplemented from SoAction.

◆ canApproximateCount()

SbBool SoGetPrimitiveCountAction::canApproximateCount ( void )

Returns whether shapes can use an approximate value when counting primitives. This is faster than doing an accurate count. The default is to not approximate.

See also
setCanApproximate()

◆ containsNonTriangleShapes()

SbBool SoGetPrimitiveCountAction::containsNonTriangleShapes ( void )

Returns whether there are non-triangular primitives in graph.

◆ containsNoPrimitives()

SbBool SoGetPrimitiveCountAction::containsNoPrimitives ( void )

Returns whether there are any primitives in graph or not.

◆ enableElement()

void SoGetPrimitiveCountAction::enableElement ( const SoType type,
const int stackindex )
static

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

◆ getClassActionMethods()

SoActionMethodList * SoGetPrimitiveCountAction::getClassActionMethods ( void )
staticprotected

Returns list of action methods for this class. The enabledElements and methods variables are protected in the original OIV API. This is not such a good idea, since exposed static class member variables is a major grievance with regard to Win32 DLLs. This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

◆ getClassEnabledElements()

SoEnabledElementsList * SoGetPrimitiveCountAction::getClassEnabledElements ( void )
staticprotected

Returns list of enabled elements for this class. The enabledElements and methods variables are protected in the original OIV API. This is not such a good idea, since exposed static class member variables is a major grievance with regard to Win32 DLLs. This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

◆ getClassTypeId()

SoType SoGetPrimitiveCountAction::getClassTypeId ( void )
static

This static method returns the SoType object associated with objects of this class.

◆ getDecimationPercentage()

float SoGetPrimitiveCountAction::getDecimationPercentage ( void )

Returns decimation percentage used during the traversal count.

◆ getDecimationType()

SoDecimationTypeElement::Type SoGetPrimitiveCountAction::getDecimationType ( void )

Returns decimation type used during the traversal count.

◆ getEnabledElements()

const SoEnabledElementsList & SoGetPrimitiveCountAction::getEnabledElements ( void ) const
protectedvirtual

Returns list of enabled elements.

Reimplemented from SoAction.

◆ getImageCount()

int SoGetPrimitiveCountAction::getImageCount ( void ) const

Returns the number of images in the graph.

◆ getLineCount()

int SoGetPrimitiveCountAction::getLineCount ( void ) const

Returns number of lines in graph.

◆ getPointCount()

int SoGetPrimitiveCountAction::getPointCount ( void ) const

Returns number of points in graph.

Note that by "point", it is meant an actual point primitive (for rendering), such as in the SoPointSet shape node, not a polygon vertex. For counting the total number of polygon vertices in a scene (sub) graph, use instead the SoCallbackAction with the appropriate callback.

◆ getTextCount()

int SoGetPrimitiveCountAction::getTextCount ( void ) const

Returns number of texts in the graph.

◆ getTriangleCount()

int SoGetPrimitiveCountAction::getTriangleCount ( void ) const

Returns number of triangles in graph.

◆ getTypeId()

SoType SoGetPrimitiveCountAction::getTypeId ( void ) const
virtual

Returns the type identification of an object derived from a class inheriting SoAction. This is used for runtime type checking and "downward" casting.

Implements SoAction.

◆ incNumImage()

void SoGetPrimitiveCountAction::incNumImage ( void )

Adds a single texture image map to the total count. Used by node instances in the scene graph during traversal.

◆ incNumLines()

void SoGetPrimitiveCountAction::incNumLines ( void )

Adds a single line to the total count. Used by node instances in the scene graph during traversal.

◆ incNumPoints()

void SoGetPrimitiveCountAction::incNumPoints ( void )

Adds a single point to the total count. Used by node instances in the scene graph during traversal.

◆ incNumText()

void SoGetPrimitiveCountAction::incNumText ( void )

Adds a single text to the total count. Used by node instances in the scene graph during traversal.

◆ incNumTriangles()

void SoGetPrimitiveCountAction::incNumTriangles ( void )

Adds a single triangle to the total count. Used by node instances in the scene graph during traversal.

◆ initClass()

void SoGetPrimitiveCountAction::initClass ( void )
static

Initializes the runtime type system for this class, and sets up the enabled elements and action method list.

◆ is3DTextCountedAsTriangles()

SbBool SoGetPrimitiveCountAction::is3DTextCountedAsTriangles ( void )

Returns whether SoText3 nodes is counted as triangles or text.

See also
is3DTextCountedAsTriangles()

◆ setCanApproximate()

void SoGetPrimitiveCountAction::setCanApproximate ( const SbBool flag)

Sets whether shapes can do an approximate count.

See also
canApproximateCount()

◆ setCount3DTextAsTriangles()

void SoGetPrimitiveCountAction::setCount3DTextAsTriangles ( const SbBool flag)

Sets whether SoText3 nodes are counted as the triangles of the fonts in the text strings or the text itself. The default is to count as triangles.

See also
is3DTextCountedAsTriangles()

◆ setDecimationValue()

void SoGetPrimitiveCountAction::setDecimationValue ( SoDecimationTypeElement::Type type,
float percentage = 1.0 )

Set up the decimation parameters for the traversal.

On-the-fly decimation is supported in Coin yet, so this call will not have any effect until this feature has been implemented.


The documentation for this class was generated from the following files: