logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoShapeHints — node that provides hints about shapes

Action Behavior

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

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

SoSFEnumvertexOrdering
          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).

     SoSFEnumshapeType
          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.

     SoSFEnumfaceType
          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.

     SoSFFloatcreaseAngle
          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.

File Format/Defaults

ShapeHints{vertexOrderingUNKNOWN_ORDERINGshapeTypeUNKNOWN_SHAPE_TYPEfaceTypeCONVEXcreaseAngle0}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoShapeHints

Methods

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

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

       SoShapeHints — node that provides hints about shapes

See Also

SoVertexShapeSoShapeHints(3IV)()

Synopsis

#include<Inventor/nodes/SoShapeHints.h>enumVertexOrdering{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)
     }enumShapeType{SoShapeHints::UNKNOWN_SHAPE_TYPE
                               Nothing is known about the shape
          SoShapeHints::SOLID  The shape encloses a volume
     }enumFaceType{SoShapeHints::UNKNOWN_FACE_TYPE
                                Nothing is known about faces
          SoShapeHints::CONVEX  All faces are convex
     }

          Fields from class SoShapeHints:

     SoSFEnumvertexOrderingSoSFEnumshapeTypeSoSFEnumfaceTypeSoSFFloatcreaseAngle

          Methods from class SoShapeHints:

                         SoShapeHints()staticSoTypegetClassTypeId()

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

See Also