Man Linux: Main Page and Category List

NAME

       SoNormalGenerator -

       The SoNormalGenerator class is used to generate normals.

       FIXME: document properly.

SYNOPSIS

       #include <include/Inventor/misc/SoNormalGenerator.h>

   Public Member Functions
       SoNormalGenerator (const SbBool ccw, const int approxVertices=64)
       ~SoNormalGenerator ()
       void reset (const SbBool ccw)
       void beginPolygon ()
       void polygonVertex (const SbVec3f &v)
       void endPolygon ()
       void triangle (const SbVec3f &v0, const SbVec3f &v1, const SbVec3f &v2)
       void quad (const SbVec3f &v0, const SbVec3f &v1, const SbVec3f &v2,
           const SbVec3f &v3)
       void generate (const float creaseAngle, const int32_t *striplens=NULL,
           const int numstrips=0)
       void generatePerStrip (const int32_t *striplens, const int numstrips)
       void generatePerFace (void)
       void generateOverall (void)
       int getNumNormals () const
       void setNumNormals (const int num)
       const SbVec3f * getNormals () const
       const SbVec3f & getNormal (const int32_t i) const
       void setNormal (const int32_t index, const SbVec3f &normal)

Detailed Description

       The SoNormalGenerator class is used to generate normals.

       FIXME: document properly.

Constructor & Destructor Documentation

   SoNormalGenerator::SoNormalGenerator (const SbBool isccw, const int
       approxVertices = 64) Constructor with isccw indicating if polygons are
       specified in counter clockwise order. The approxVertices can be used to
       optimize normal generation.
   SoNormalGenerator::~SoNormalGenerator () Destructor.

Member Function Documentation

   void SoNormalGenerator::reset (const SbBool ccwarg) Resets the normal
       generator, making it possible to reuse it without allocating a new one.
       This function is an extension for Coin, and it is not available in the
       original SGI Open Inventor v2.1 API.

       Since:
           Coin 2.0

   void SoNormalGenerator::beginPolygon (void) Signals the start of a new
       polygon.
       See also:
           SoNormalGenerator::polygonVertex()

           SoNormalGenerator::endPolygon()

   void SoNormalGenerator::polygonVertex (const SbVec3f & v) Adds a vertex to
       the current polygon.
       See also:
           SoNormalGenerator::beginPolygon()

           SoNormalGenerator::endPolygon()

   void SoNormalGenerator::endPolygon (void) Signals the end of a polygon.
       See also:
           SoNormalGenerator::beginPolygon()

           SoNormalGenerator::polygonVertex()

   void SoNormalGenerator::triangle (const SbVec3f & v0, const SbVec3f & v1,
       const SbVec3f & v2) Convenience method for adding a triangle.
   void SoNormalGenerator::quad (const SbVec3f & v0, const SbVec3f & v1, const
       SbVec3f & v2, const SbVec3f & v3) Convenience method for adding a quad
   void SoNormalGenerator::generate (const float creaseAngle, const int32_t *
       striplens = NULL, const int numstrips = 0) Triggers the normal
       generation. Normals are generated using creaseAngle to find which edges
       should be flat-shaded and which should be smooth-shaded.
       If normals are generated for triangle strips, the striplens and
       numstrips must be supplied. See src/nodes/SoTriangleStripSet.cpp
       (generateDefaultNormals()) for an example on how you send triangle
       strip information to this generator. It’s not trivial, since you have
       to know how OpenGL/Coin generate triangles from triangle strips.

   void SoNormalGenerator::generatePerStrip (const int32_t * striplens, const
       int numstrips) Generates one normal per strip by averaging face
       normals.
   void SoNormalGenerator::generatePerFace (void) Generates the normals per
       face. Use this when PER_FACE normal binding is needed. This method is
       not part of the OIV API.
   void SoNormalGenerator::generateOverall (void) Generates one overall normal
       by averaging all face normals. Use when normal binding is OVERALL. This
       method is not part of the OIV API.
   int SoNormalGenerator::getNumNormals (void) const Returns the number of
       normals generated.
   void SoNormalGenerator::setNumNormals (const int num) Sets the number of
       generated normals. This method is not supported in Coin, and is
       provided for API compatibility only.
   const SbVec3f * SoNormalGenerator::getNormals (void) const Returns a
       pointer to the generated normals.
   const SbVec3f & SoNormalGenerator::getNormal (const int32_t i) const
       Returns the normal at index i.
       See also:
           SoNormalGenerator::getNumNormals()

   void SoNormalGenerator::setNormal (const int32_t index, const SbVec3f &
       normal) Sets the normal at index index to normal. This method is not
       supported in Coin, and is provided for API compatibility only.

Author

       Generated automatically by Doxygen for Coin from the source code.