Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/kogt/ |
The SoMaterialBundle class simplifies material handling. More...
#include <include/Inventor/bundles/SoMaterialBundle.h>
Public Member Functions | |
SoMaterialBundle (SoAction *action) | |
~SoMaterialBundle () | |
void | setUpMultiple (void) |
void | sendFirst (void) |
void | forceSend (const int index) |
SbBool | isColorOnly (void) const |
void | send (const int index, const SbBool betweenbeginend) |
Additional Inherited Members | |
Protected Member Functions inherited from SoBundle | |
SoBundle (SoAction *action) | |
~SoBundle () | |
Protected Attributes inherited from SoBundle | |
SoState * | state |
The state of the current action. | |
The SoMaterialBundle class simplifies material handling.
Every shape node should create (on the stack) an instance of this class and call sendFirst() before sending anything to GL. During rendering, send() should be used to send material values to GL.
SoMaterialBundle::SoMaterialBundle | ( | SoAction * | action | ) |
Constructor with action being the action applied to the geometry node.
SoMaterialBundle::~SoMaterialBundle | ( | ) |
Destructor
void SoMaterialBundle::setUpMultiple | ( | void | ) |
Currently not in use. It is only provided for OIV compliance.
void SoMaterialBundle::sendFirst | ( | void | ) |
Sends the initial material values to GL. Must be done once in all geometry nodes before the rendering begins.
void SoMaterialBundle::forceSend | ( | const int | index | ) |
Will send the material to GL even though index equals the current index.
Provided for compatibility with the SGI Open Inventor v2.1 API.
SbBool SoMaterialBundle::isColorOnly | ( | void | ) | const |
Returns TRUE
if the current light model is BASE_COLOR.
void SoMaterialBundle::send | ( | const int | index, |
const SbBool | betweenbeginend | ||
) |
Sends material values with index index to GL. Will test whether the current index equals index before sending.
betweenBeginEnd should be TRUE
if your program is between a glBegin() and glEnd() (it is illegal to change the polygon stipple between a glBegin() and glEnd()).