SoComplexity(3IV)NAMESoComplexity (SoCmplx) - shape complexity node
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoComplexitySYNOPSIS
#include <Inventor_c/nodes/SoComplexity.h>
typedef SoComplexity SoCmplx
enum SoComplexityType {
SO_CMPLX_SCREEN_SPACE Set complexity based on screen size
SO_CMPLX_OBJECT_SPACE Set complexity independent of screen size
SO_CMPLX_BOUNDING_BOX Draw all shapes as bounding boxes
}
Fields from class SoComplexity:
SoSFEnum type
SoSFFloat value
SoSFFloat textureQuality
Functions from class SoComplexity:
SoComplexity * SoCmplxCreate()
SoType SoCmplxGetClassTypeId()
Functions from class SoNode:
void SoCmplxSetOverride(SoCmplx *this, SbBool state)
SbBool SoCmplxIsOverride(const SoCmplx *this)
SoNode * SoCmplxCopy(const SoCmplx *this, SbBool
copyConnections = FALSE)
SbBool SoCmplxAffectsState(const SoCmplx *this)
SoNode * SoCmplxGetByName(const char *name)
int SoCmplxGetByNameList(const char *name, SoNodeList
*list)
Functions from class SoFieldContainer:
void SoCmplxSetToDflts(SoCmplx *this)
SbBool SoCmplxHasDfltVals(const SoCmplx *this)
SbBool SoCmplxFldsAreEq(const SoCmplx *this, const
SoFieldContainer *fc)
void SoCmplxCopyFieldVals(SoCmplx *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
SbBool SoCmplxSet(SoCmplx *this, const char
*fieldDataString)
void SoCmplxGet(SoCmplx *this, SbString *fieldDataString)
Page 1SoComplexity(3IV)
int SoCmplxGetFields(const SoCmplx *this, SoFieldList
*resultList)
SoField * SoCmplxGetField(const SoCmplx *this, const char
*fieldName)
SbBool SoCmplxGetFieldName(const SoCmplx *this, const
SoField *field, SbName *fieldName)
SbBool SoCmplxIsNotifyEnabled(const SoCmplx *this)
SbBool SoCmplxEnableNotify(SoCmplx *this, SbBool flag)
Functions from class SoBase:
void SoCmplxRef(SoCmplx *this)
void SoCmplxUnref(const SoCmplx *this)
void SoCmplxUnrefNoDelete(const SoCmplx *this)
void SoCmplxTouch(SoCmplx *this)
SoType SoCmplxGetTypeId(const SoCmplx *this)
SbBool SoCmplxIsOfType(const SoCmplx *this, SoType type)
void SoCmplxSetName(SoCmplx *this, const char *name)
SbName SoCmplxGetName(const SoCmplx *this)
DESCRIPTION
This node sets the current shape complexity value. This is a heuristic
value which provides a hint at what geometric complexity to render shape
nodes. Values range from 0 to 1, where 0 means minimum complexity and 1
means maximum complexity. Each shape node interprets complexity in its
own way.
Shape complexity always affects rendering and primitive generation for
the SoCallbackAction. For some shapes, it also affects picking.
There are three ways to interpret shape complexity, depending on the type
field. BOUNDING_BOX complexity ignores the value field and renders all
shapes as bounding boxes, using the current material, drawing style, etc.
The other two types use the value field to determine the tessellation of
shapes into polygons. OBJECT_SPACE complexity uses value directly to
determine the tessellation. SCREEN_SPACE complexity depends on value and
the projected size of the shape on the screen; a value of 0 produces the
minimum tessellation for a shape, and a value of 1 produces a
tessellation that is fine enough that each edge of a polygon is about 1
or two pixels in length. Since the projected size depends on the camera
position, objects may be tessellated differently every frame if the
camera is moving; note that this may have adverse effects on render
caching in SoSeparator nodes.
The SoComplexity node also sets a hint for the quality of textures
applied to shapes, based on the value of the textureQuality field. The
texture quality will take effect at the next Texture2 node; Texture2
nodes previously traversed will not be affected.
Page 2SoComplexity(3IV)FIELDS
SoSFEnum type
How shape complexity is interpreted.
SoSFFloat value
Complexity value.
SoSFFloat textureQuality
Hint about texture quality. A value of 0 indicates that the fastest
texturing should be used, while a value of 1 indicates that the best
quality texturing should be used.
FUNCTIONSSoComplexity * SoCmplxCreate()
Creates a complexity node with default settings.
SoType SoCmplxGetClassTypeId()
Returns type identifier for this class.
ACTION BEHAVIOR
SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction,
SoRayPickAction
Sets the current complexity in the state.
FILE FORMAT/DEFAULTS
Complexity {
type OBJECT_SPACE
value 0.5
textureQuality 0.5
}
SEE ALSO
SoShape, SoShapeHints, SoTexture2
Page 3