00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOTEXTURE2_H
00021
#define COIN_SOTEXTURE2_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/fields/SoSFEnum.h>
00025
#include <Inventor/fields/SoSFImage.h>
00026
#include <Inventor/fields/SoSFString.h>
00027
#include <Inventor/fields/SoSFColor.h>
00028
#include <Inventor/elements/SoTextureImageElement.h>
00029
00030
class SoFieldSensor;
00031
class SoSensor;
00032
00033 class COIN_DLL_API SoTexture2 :
public SoNode {
00034
typedef SoNode inherited;
00035
00036 SO_NODE_HEADER(SoTexture2);
00037
00038
public:
00039
static void initClass(
void);
00040 SoTexture2(
void);
00041
00042 enum Model {
00043 MODULATE = SoTextureImageElement::MODULATE,
00044 DECAL = SoTextureImageElement::DECAL,
00045 BLEND = SoTextureImageElement::BLEND
00046 };
00047
00048 enum Wrap {
00049 REPEAT = SoTextureImageElement::REPEAT,
00050 CLAMP = SoTextureImageElement::CLAMP
00051 };
00052
00053
SoSFString filename;
00054
SoSFImage image;
00055
SoSFEnum wrapS;
00056
SoSFEnum wrapT;
00057
SoSFEnum model;
00058
SoSFColor blendColor;
00059
00060
virtual void doAction(
SoAction * action);
00061
virtual void GLRender(
SoGLRenderAction * action);
00062
virtual void callback(
SoCallbackAction * action);
00063
00064
static SbBool readImage(
const SbString & fname,
int & w,
int & h,
int & nc,
00065
unsigned char *& bytes);
00066
protected:
00067
virtual ~SoTexture2();
00068
00069
virtual SbBool readInstance(
SoInput * in,
unsigned short flags);
00070
virtual void notify(
SoNotList * list);
00071
int getReadStatus(
void);
00072
void setReadStatus(
int s);
00073
00074
private:
00075 SbBool loadFilename(
void);
00076
int readstatus;
00077
class SoGLImage * glimage;
00078 SbBool glimagevalid;
00079
00080
class SoFieldSensor * filenamesensor;
00081
static void filenameSensorCB(
void *,
SoSensor *);
00082 };
00083
00084
#endif // !COIN_SOTEXTURE2_H