Man Linux: Main Page and Category List

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=1, const SbBool tristrip=0)
       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)

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 *const  state) Contructor with state
       being the current state.
   SoNormalCache::~SoNormalCache () [virtual] Destructor

Member Function Documentation

   void SoNormalCache::set (const int num, const SbVec3f *const  normals) 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 *const  coords, const
       unsigned int numcoords, const int32_t * vindex, const int numvi, const
       float crease_angle, const SbVec3f * facenormals = NULL, const int
       numfacenormals = -1, const SbBool ccw = 1, const SbBool tristrip = 0)
       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 *const  coords, const
       unsigned int numcoords, const int32_t * cind, const int nv, const
       SbBool ccw) Generates face normals for the faceset defined by coords
       and cind.
   void SoNormalCache::generatePerFaceStrip (const SbVec3f *const  coords,
       const unsigned int numcoords, const int32_t * cind, const int nv, const
       SbBool ccw) Generates face normals for triangle strips.
   void SoNormalCache::generatePerStrip (const SbVec3f *const  coords, const
       unsigned int numcoords, const int32_t * cind, const int nv, const
       SbBool ccw) Generates one normal per triangle strips (avarages all
       triangle normals).
   void SoNormalCache::generatePerVertexQuad (const SbVec3f *const  coords,
       const unsigned int numcoords, const int vPerRow, const int vPerColumn,
       const SbBool ccw) Generates PER_VERTEX normals for quad data.
   void SoNormalCache::generatePerFaceQuad (const SbVec3f *const  coords,
       const unsigned int numcoords, const int vPerRow, const int vPerColumn,
       const SbBool ccw) Generates per face normals for quad data.
   void SoNormalCache::generatePerRowQuad (const SbVec3f *const  coords, const
       unsigned int numcoords, const int vPerRow, const int vPerColumn, const
       SbBool ccw) Generates per row normals for quad data.

Author

       Generated automatically by Doxygen for Coin from the source code.