SoNormalGenerator(3)

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.

  1. 6.0
  2. 7
  3. 8
  4. Arch

Author

Generated automatically by Doxygen for Coin from the source code.

From coin 1:4.0.10-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.