SoNormalGenerator3
The sonormalgenerator class is used to generate normals.
Usage
#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 counterclockwise 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.
Releases
4 releases since Debian 6.0 (Squeeze); the text changed 3 times.