Provided by: inventor-doc_2.1.5-10-18_all bug


       SoComplexity — shape complexity node


       SoBase > SoFieldContainer > SoNode > SoComplexity


       #include <Inventor/nodes/SoComplexity.h>

     enum Type {
          SoComplexity::SCREEN_SPACE  Set complexity based on screen size
          SoComplexity::OBJECT_SPACE  Set complexity independent of screen size
          SoComplexity::BOUNDING_BOX  Draw all shapes as bounding boxes

          Fields from class SoComplexity:

     SoSFEnum            type
     SoSFFloat           value
     SoSFFloat           textureQuality

          Methods from class SoComplexity:

     static SoType       getClassTypeId()

          Methods from class SoNode:

     void                setOverride(SbBool state)
     SbBool              isOverride() const
     SoNode *            copy(SbBool copyConnections = FALSE) const
     virtual SbBool      affectsState() const
     static SoNode *     getByName(const SbName &name)
     static int          getByName(const SbName &name, SoNodeList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const  SoFieldContainer  *fc,  SbBool  copyConnections =
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName) const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const


       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.


     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.


          Creates a complexity node with default settings.

     static SoType       getClassTypeId()
          Returns type identifier for this class.


       SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
          Sets the current complexity in the state.


       Complexity {
          type            OBJECT_SPACE
          value           0.5
          textureQuality  0.5


       SoShape, SoShapeHints, SoTexture2