Provided by: libcoin80-doc_3.1.4~abc9f50-4ubuntu2_all bug

NAME

       SoNormalCache -

       The SoNormalCache class is used to hold cached normals.

       As an extension to the original SGI Open Inventor v2.1 API, it is also possible to
       generate normals using this class.

SYNOPSIS

       #include <Inventor/caches/SoNormalCache.h>

       Inherits SoCache.

   Public Member Functions
       SoNormalCache (SoState *const state)
       virtual ~SoNormalCache ()
       void set (const int num, const SbVec3f *const normals)
       void set (SoNormalGenerator *generator)
       int getNum (void) const
       const SbVec3f * getNormals (void) const
       int getNumIndices (void) const
       const int32_t * getIndices (void) const
       void generatePerVertex (const SbVec3f *const coords, const unsigned int numcoords, const
           int32_t *coordindices, const int numcoordindices, const float crease_angle, const
           SbVec3f *facenormals=NULL, const int numfacenormals=-1, const SbBool ccw=TRUE, const
           SbBool tristrip=FALSE)
       void generatePerFace (const SbVec3f *const coords, const unsigned int numcoords, const
           int32_t *coordindices, const int numcoorindices, const SbBool ccw)
       void generatePerFaceStrip (const SbVec3f *const coords, const unsigned int numcoords,
           const int32_t *coordindices, const int numcoorindices, const SbBool ccw)
       void generatePerStrip (const SbVec3f *const coords, const unsigned int numcoords, const
           int32_t *coordindices, const int numcoorindices, const SbBool ccw)
       void generatePerVertexQuad (const SbVec3f *const coords, const unsigned int numcoords,
           const int vPerRow, const int vPerColumn, const SbBool ccw)
       void generatePerFaceQuad (const SbVec3f *const coords, const unsigned int numcoords, const
           int vPerRow, const int vPerColumn, const SbBool ccw)
       void generatePerRowQuad (const SbVec3f *const coords, const unsigned int numcoords, const
           int vPerRow, const int vPerColumn, const SbBool ccw)

   Additional Inherited Members

Detailed Description

       The SoNormalCache class is used to hold cached normals.

       As an extension to the original SGI Open Inventor v2.1 API, it is also possible to
       generate normals using this class.

       It is more powerful and easier to use than the SoNormalGenerator class. It is possible to
       generate normals per vertex with indices (using much less memory than plain per vertex
       normals), and it contains special methods to generate normals for triangle strips and
       quads.

Constructor & Destructor Documentation

   SoNormalCache::SoNormalCache (SoState *conststate)
       Contructor with state being the current state.

   SoNormalCache::~SoNormalCache () [virtual]
       Destructor

Member Function Documentation

   void SoNormalCache::set (const intnum, const SbVec3f *constnormals)
       Sets an array of normals for this cache. The normals will not be deleted when the instance
       is deleted.

   void SoNormalCache::set (SoNormalGenerator *generator)
       Uses a normal generator in this cache. The normal generator will be deleted when the cache
       is deleted or reset.

   int SoNormalCache::getNum (void) const
       Returns the number of normals in the cache.

   const SbVec3f * SoNormalCache::getNormals (void) const
       Return a pointer to the normals in this cache.

   int SoNormalCache::getNumIndices (void) const
       Returns the number of indices in this cache. Normals are generated with PER_VERTEX_INDEXED
       binding.

   const int32_t * SoNormalCache::getIndices (void) const
       Returns the normal indices.

   void SoNormalCache::generatePerVertex (const SbVec3f *constcoords, const unsigned
       intnumcoords, const int32_t *vindex, const intnumvi, const floatcrease_angle, const
       SbVec3f *facenormals = NULL, const intnumfacenormals = -1, const SbBoolccw = TRUE, const
       SbBooltristrip = FALSE)
       Generates normals for each vertex for each face. It is possible to specify face normals if
       these have been calculated somewhere else, otherwise the face normals will be calculated
       before the vertex normals are calculated. tristrip should be TRUE if the geometry consists
       of triangle strips.

   void SoNormalCache::generatePerFace (const SbVec3f *constcoords, const unsigned intnumcoords,
       const int32_t *cind, const intnv, const SbBoolccw)
       Generates face normals for the faceset defined by coords and cind.

   void SoNormalCache::generatePerFaceStrip (const SbVec3f *constcoords, const unsigned
       intnumcoords, const int32_t *cind, const intnv, const SbBoolccw)
       Generates face normals for triangle strips.

   void SoNormalCache::generatePerStrip (const SbVec3f *constcoords, const unsigned intnumcoords,
       const int32_t *cind, const intnv, const SbBoolccw)
       Generates one normal per triangle strips (avarages all triangle normals).

   void SoNormalCache::generatePerVertexQuad (const SbVec3f *constcoords, const unsigned
       intnumcoords, const intvPerRow, const intvPerColumn, const SbBoolccw)
       Generates PER_VERTEX normals for quad data.

   void SoNormalCache::generatePerFaceQuad (const SbVec3f *constcoords, const unsigned
       intnumcoords, const intvPerRow, const intvPerColumn, const SbBoolccw)
       Generates per face normals for quad data.

   void SoNormalCache::generatePerRowQuad (const SbVec3f *constcoords, const unsigned
       intnumcoords, const intvPerRow, const intvPerColumn, const SbBoolccw)
       Generates per row normals for quad data.

Author

       Generated automatically by Doxygen for Coin from the source code.