Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SoShapeHints(3IV)()					   SoShapeHints(3IV)()

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, COUNTER-
       CLOCKWISE, CONVEX shapes.

       These  hints allow Inventor to optimize certain rendering features. Op-
       timizations 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 ver-
       tices, 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 an-
       gle is the angle	between	surface	normals	on adjacent polygons. For  ex-
       ample,  a crease	angle of .5 radians means that an edge between two ad-
       jacent 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, SoGetBoundingBox-
       Action
	  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)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | FIELDS | METHODS | ACTION BEHAVIOR | FILE FORMAT/DEFAULTS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SoShapeHints&sektion=3iv&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help