SoComplexity(3IV)

SoComplexity (SoCmplx) - shape complexity node

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoComplexity (SoCmplx) - shape complexity node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoComplexity

SYNOPSIS
     #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)
     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.

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.


FUNCTIONS
     SoComplexity *      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