#ifndef COIN_SOTEXTURE2_H#define COIN_SOTEXTURE2_H/**************************************************************************\ * Copyright (c) Kongsberg Oil & Gas Technologies AS * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the copyright holder nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\**************************************************************************/#include <Inventor/nodes/SoSubNode.h>#include <Inventor/nodes/SoTexture.h>#include <Inventor/fields/SoSFEnum.h>#include <Inventor/fields/SoSFImage.h>#include <Inventor/fields/SoSFString.h>#include <Inventor/fields/SoSFColor.h>#include <Inventor/fields/SoSFBool.h>#include <Inventor/elements/SoMultiTextureImageElement.h>classSoFieldSensor;classSoSensor;classSoTexture2P;classCOIN_DLL_APISoTexture2:publicSoTexture{typedefSoTextureinherited;SO_NODE_HEADER(SoTexture2);public:staticvoidinitClass(void);SoTexture2(void);enumModel{MODULATE=SoMultiTextureImageElement::MODULATE,DECAL=SoMultiTextureImageElement::DECAL,BLEND=SoMultiTextureImageElement::BLEND,REPLACE=SoMultiTextureImageElement::REPLACE};enumWrap{REPEAT=SoMultiTextureImageElement::REPEAT,CLAMP=SoMultiTextureImageElement::CLAMP};SoSFStringfilename;SoSFImageimage;SoSFEnumwrapS;SoSFEnumwrapT;SoSFEnummodel;SoSFColorblendColor;SoSFBoolenableCompressedTexture;virtualvoiddoAction(SoAction*action);virtualvoidGLRender(SoGLRenderAction*action);virtualvoidcallback(SoCallbackAction*action);virtualvoidrayPick(SoRayPickAction*action);staticSbBoolreadImage(constSbString&fname,int&w,int&h,int&nc,unsignedchar*&bytes);protected:virtual~SoTexture2();virtualSbBoolreadInstance(SoInput*in,unsignedshortflags);virtualvoidnotify(SoNotList*list);intgetReadStatus(void);voidsetReadStatus(ints);private:SbBoolloadFilename(void);staticvoidfilenameSensorCB(void*,SoSensor*);SoTexture2P*pimpl;};#endif // !COIN_SOTEXTURE2_H