1 #ifndef COIN_SOMULTITEXTURECOORDINATEELEMENT_H
2 #define COIN_SOMULTITEXTURECOORDINATEELEMENT_H
27 #include <Inventor/elements/SoTextureCoordinateElement.h>
28 #include <Inventor/elements/SoSubElement.h>
29 #include <Inventor/SbVec2f.h>
30 #include <Inventor/SbVec3f.h>
31 #include <Inventor/SbVec4f.h>
33 class SoMultiTextureCoordinateElementP;
35 class COIN_DLL_API SoMultiTextureCoordinateElement :
public SoElement {
38 SO_ELEMENT_HEADER(SoMultiTextureCoordinateElement);
42 virtual ~SoMultiTextureCoordinateElement();
48 static void setDefault(
SoState *
const state,
SoNode *
const node,
const int unit);
49 static void setFunction(
SoState *
const state,
SoNode *
const node,
51 SoTextureCoordinateFunctionCB *
const func,
52 void *
const userdata);
56 const int32_t numCoords,
const SbVec2f *
const coords);
59 const int32_t numCoords,
const SbVec3f *
const coords);
62 const int32_t numCoords,
const SbVec4f *
const coords);
67 static const SoMultiTextureCoordinateElement * getInstance(
SoState *
const state);
69 const SbVec4f &
get(
const int unit,
73 int32_t getNum(
const int unit)
const;
74 SbBool is2D(
const int unit)
const;
75 int32_t getDimension(
const int unit)
const;
77 const SbVec2f & get2(
const int unit,
const int index)
const;
78 const SbVec3f & get3(
const int unit,
const int index)
const;
79 const SbVec4f & get4(
const int unit,
const int index)
const;
81 const SbVec2f * getArrayPtr2(
const int unit)
const;
82 const SbVec3f * getArrayPtr3(
const int unit)
const;
83 const SbVec4f * getArrayPtr4(
const int unit)
const;
89 SoTextureCoordinateFunctionCB * funcCB;
103 UnitData & getUnitData(
const int unit);
104 const UnitData & getUnitData(
const int unit)
const;
110 SoMultiTextureCoordinateElementP * pimpl;
113 #endif // !COIN_SOMULTITEXTURECOORDINATEELEMENT_H