00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SO_TEXTURE_IMAGE3_ELEMENT
00025 #define _SO_TEXTURE_IMAGE3_ELEMENT
00026
00027 #include <Inventor/SbColor.h>
00028 #include <Inventor/elements/SoTextureImageElementBase.h>
00029 #include <Inventor/sys/SoGLType.h>
00030
00031 class SoBufferObject;
00032 class SoGLTexture;
00033
00046 SoEXTENDER_Documented class SoTextureImage3Element : public SoTextureImageElementBase {
00047
00048 SO_ELEMENT_HEADER(SoTextureImage3Element);
00049
00050 public:
00051
00056 static const unsigned char *get(SoState *state, SbVec3s &size,
00057 int &numComponents, int &wrapS,
00058 int &wrapT, int &wrapR, int &model,
00059 SbColor &blendColor, int unit=0);
00060
00065 static void set(SoState *state, SoNode *node,
00066 const SbVec3s &subSize, int xoffset, int yoffset, int zoffset,
00067 const unsigned char *bytes, int texname) ;
00072 static const unsigned char *getDefault(SbVec3s &s, int &nc);
00073
00077 static SbBool containsTransparency(SoState *state, int unit=0);
00078
00079 private:
00080
00082 virtual void commonInit();
00083
00085 virtual void init(SoState *state);
00086
00087 private:
00088
00089 static void initClass();
00090 static void exitClass();
00091
00093 static void set(SoState *state, SoNode *node, const SoTexImageData& parameters);
00094
00096 static void set(SoState *state, SoNode *node,
00097 const SbVec3s &size, int numComponents,
00098 const unsigned char *bytes,
00099 SoBufferObject* bufferObject,
00100 GLint GLInternalFormat,
00101 int wrapS, int wrapT, int wrapR, int model,
00102 const SbColor &blendColor,float maxAnisotropy,
00103 SbBool enableBorder, const SbVec4f &borderColor);
00104
00105 private:
00106
00107 virtual void setElt(const SbVec3s &s, int nc,
00108 const unsigned char *bytes,
00109 SoBufferObject* bufferObject,
00110 GLint GLInternalFormat,
00111 int wrapS, int wrapT, int wrapR, int model,
00112 const SbColor &blendColor, float _maxAnisotropy,
00113 SbBool _enableBorder, const SbVec4f &_borderColor,
00114 int unit=0);
00115
00116 virtual void setSubElt(const SbVec3s &subSize,
00117 int xoffset, int yoffset, int zoffset,
00118 const unsigned char *bytes, int texname,
00119 int unit=0);
00120
00121 virtual ~SoTextureImage3Element();
00122 };
00123
00124 #endif
00125
00126
00127