00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00027
00029 #ifndef __IMAGE3DTEXTURE_H__
00030 #define __IMAGE3DTEXTURE_H__
00031
00032 #include "X3DTexture3DNode.h"
00033 #include "H3DImageLoaderNode.h"
00034 #include "X3DUrlObject.h"
00035 #include "MFNode.h"
00036
00037 namespace H3D {
00052
00053 class H3DAPI_API Image3DTexture :
00054 public X3DTexture3DNode,
00055 public X3DUrlObject {
00056 public:
00057
00060 H3D_API_EXCEPTION( CouldNotLoadImage );
00061
00063 typedef TypedMFNode< H3DImageLoaderNode > MFImageLoader;
00064
00072 class H3DAPI_API SFImage:
00073 public TypedField< X3DTexture3DNode::SFImage,
00074 Types< MFString, MFImageLoader > > {
00075 protected:
00078 virtual void update();
00079 };
00080
00082 Image3DTexture( Inst< DisplayList > _displayList = 0,
00083 Inst< SFNode > _metadata = 0,
00084 Inst< MFString > _url = 0,
00085 Inst< SFBool > _repeatS = 0,
00086 Inst< SFBool > _repeatT = 0,
00087 Inst< SFBool > _repeatR = 0,
00088 Inst< SFBool > _scaleToP2 = 0,
00089 Inst< SFImage > _image = 0,
00090 Inst< MFImageLoader > _imageLoader = 0,
00091 Inst< SFTextureProperties > _textureProperties = 0 );
00092
00094 virtual void render();
00095
00102 auto_ptr< MFImageLoader > imageLoader;
00103
00105 static H3DNodeDatabase database;
00106 };
00107 }
00108
00109 #endif