trusty (3) SoShapeHints.3iv.gz

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

NAME

       SoShapeHints — node that provides hints about shapes

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoShapeHints

SYNOPSIS

       #include <Inventor/nodes/SoShapeHints.h>

     enum VertexOrdering {
          SoShapeHints::UNKNOWN_ORDERING
                                   Ordering of vertices is unknown
          SoShapeHints::CLOCKWISE  Face vertices are ordered clockwise (from the outside)
          SoShapeHints::COUNTERCLOCKWISE
                                   Face vertices are ordered counterclockwise (from the outside)
     }

     enum ShapeType {
          SoShapeHints::UNKNOWN_SHAPE_TYPE
                               Nothing is known about the shape
          SoShapeHints::SOLID  The shape encloses a volume
     }

     enum FaceType {
          SoShapeHints::UNKNOWN_FACE_TYPE
                                Nothing is known about faces
          SoShapeHints::CONVEX  All faces are convex
     }

          Fields from class SoShapeHints:

     SoSFEnum            vertexOrdering
     SoSFEnum            shapeType
     SoSFEnum            faceType
     SoSFFloat           creaseAngle

          Methods from class SoShapeHints:

                         SoShapeHints()
     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 = FALSE)
     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

DESCRIPTION

       By  default,  Inventor assumes very little about the shapes it renders. You can use the SoShapeHints node
       to indicate that vertex-based shapes (those  derived  from  SoVertexShape)  are  solid,  contain  ordered
       vertices, or contain convex faces. For fastest rendering, specify SOLID, COUNTERCLOCKWISE, CONVEX shapes.

       These  hints  allow  Inventor to optimize certain rendering features. Optimizations that may be performed
       include enabling back-face culling and disabling two-sided lighting. For example, if an object  is  solid
       and  has  ordered  vertices,  Inventor turns on backface culling and turns off two-sided lighting. If the
       object is not solid but has ordered vertices, it turns  off  backface  culling  and  turns  on  two-sided
       lighting. In all other cases, both backface culling and two-sided lighting are off.

       The  SoShapeHints  node  also  affects  how  default  normals  are  generated.  When  a node derived from
       SoVertexShape has to generate default normals, it uses the creaseAngle field  to  determine  which  edges
       should  be smooth-shaded and which ones should have a sharp crease. The crease angle is the angle between
       surface normals on adjacent polygons. For example, a crease angle  of  .5  radians  means  that  an  edge
       between  two adjacent polygonal faces will be smooth shaded if the normals to the two faces form an angle
       that is less than .5 radians (about 30 degrees). Otherwise, it will  be  faceted.  Normal  generation  is
       fastest  when  the  creaseAngle  is 0 (the default), producing one normal per facet.  A creaseAngle of pi
       produces one averaged normal per vertex.

FIELDS

     SoSFEnum            vertexOrdering
          Indicates how the vertices of faces are ordered. CLOCKWISE ordering means that the  vertices  of  each
          face  form  a  clockwise loop around the face, when viewed from the outside (the side toward which the
          normal points).

     SoSFEnum            shapeType
          Indicates whether the shape is known to enclose a volume (SOLID) or not. If the inside (the side  away
          from the surface normal) of any part of the shape is visible, the shape is not solid.

     SoSFEnum            faceType
          Indicates  whether  each face is convex. Because the penalty for non-convex faces is very steep (faces
          must be triangulated expensively), the default assumes all faces are convex.  Therefore,  shapes  with
          concave faces may not be displayed correctly unless this hint is set to UNKNOWN_FACE_TYPE.

     SoSFFloat           creaseAngle
          Indicates  the  minimum  angle (in radians) between two adjacent face normals required to form a sharp
          crease at the edge when default normals are computed and used.

METHODS

                         SoShapeHints()
          Creates a shape hints node with default settings.

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

ACTION BEHAVIOR

       SoGLRenderAction, SoCallbackAction, SoRayPickAction, SoGetBoundingBoxAction
          Sets the state to contain the hints; sets up optimizations based on the hints.

FILE FORMAT/DEFAULTS

       ShapeHints {
          vertexOrdering  UNKNOWN_ORDERING
          shapeType       UNKNOWN_SHAPE_TYPE
          faceType        CONVEX
          creaseAngle     0
     }

SEE ALSO

       SoVertexShape

                                                                                             SoShapeHints(3IV)()