1 #ifndef COIN_SOGLMULTITEXTURECOORDINATEELEMENT_H 2 #define COIN_SOGLMULTITEXTURECOORDINATEELEMENT_H 38 class SoGLMultiTextureCoordinateElementP;
39 typedef void SoTexCoordTexgenCB(
void * data);
42 typedef SoMultiTextureCoordinateElement inherited;
46 static void initClass(
void);
51 virtual void init(
SoState * state);
52 virtual void push(
SoState * state);
53 virtual void pop(
SoState * state,
56 static void setTexGen(
SoState *
const state,
SoNode *
const node,
58 SoTexCoordTexgenCB *
const texgenFunc,
59 void *
const texgenData = NULL,
60 SoTextureCoordinateFunctionCB *
const func = NULL,
61 void *
const funcData = NULL);
63 virtual CoordType getType(
const int unit = 0)
const;
67 void send(
const int unit,
const int index)
const;
68 void send(
const int unit,
const int index,
const SbVec3f &c,
const SbVec3f &n)
const;
72 GLUnitData() : texgenCB(NULL), texgenData(NULL) {}
73 GLUnitData(
const GLUnitData & org) : texgenCB(org.texgenCB), texgenData(org.texgenData) {}
74 SoTexCoordTexgenCB * texgenCB;
78 void initRender(
const SbBool * enabled,
const int maxenabled)
const;
81 void send(
const int index)
const {
82 for (
int i = 0; i <= this->multimax; i++) {
83 if (this->multienabled[i]) {
88 void send(
const int index,
const SbVec3f &c,
const SbVec3f &n)
const {
89 for (
int i = 0; i <= this->multimax; i++) {
90 if (this->multienabled[i]) {
91 this->send(i, index, c, n);
95 void initMulti(
SoState * state)
const;
96 static void setTexGen(
SoState *
const state,
SoNode *
const node,
97 SoTexCoordTexgenCB *
const texgenFunc,
98 void *
const texgenData = NULL,
99 SoTextureCoordinateFunctionCB *
const func = NULL,
100 void *
const funcData = NULL) {
101 setTexGen(state, node, 0, texgenFunc, texgenData, func, funcData);
105 virtual void setElt(
const int unit,
106 SoTexCoordTexgenCB *func,
110 void doCallback(
const int unit)
const;
111 SoGLMultiTextureCoordinateElementP * pimpl;
112 mutable const SbBool * multienabled;
113 mutable int multimax;
116 #endif // !COIN_SOGLMULTITEXTURECOORDINATEELEMENT_H The SoNode class is the base class for nodes used in scene graphs.Coin is a retained mode 3D visualiz...
Definition: SoNode.h:56
SoElement is the abstract base class for all elements.
Definition: SoElement.h:43
The SoState class manages the Coin scenegraph traversal state data.The SoState class is used by actio...
Definition: SoState.h:44
The SbVec3f class is a 3 dimensional vector with floating point coordinates.This vector class is used...
Definition: SbVec3f.h:51
The SoGLMultiTextureCoordinateElement class stores the current gltexture coordinates for several unit...
Definition: SoGLMultiTextureCoordinateElement.h:41