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 __PIXEL3DTEXTURE_H__
00030 #define __PIXEL3DTEXTURE_H__
00031
00032 #include "X3DTexture3DNode.h"
00033 #include "DependentNodeFields.h"
00034 #include "X3DTexture2DNode.h"
00035
00036 namespace H3D {
00052 class H3DAPI_API Composed3DTexture : public X3DTexture3DNode {
00053 public:
00056 typedef DependentMFNode< X3DTexture2DNode,
00057 FieldRef< H3DDisplayListObject,
00058 H3DDisplayListObject::DisplayList,
00059 &H3DDisplayListObject::displayList >,
00060 true >
00061 MFTexture2DNode;
00062
00064 Composed3DTexture(
00065 Inst< DisplayList > _displayList = 0,
00066 Inst< SFNode > _metadata = 0,
00067 Inst< SFBool > _repeatS = 0,
00068 Inst< SFBool > _repeatT = 0,
00069 Inst< SFBool > _repeatR = 0,
00070 Inst< SFBool > _scaleToP2 = 0,
00071 Inst< SFImage > _image = 0,
00072 Inst< MFTexture2DNode > _texture = 0,
00073 Inst< SFTextureProperties > _textureProperties = 0 );
00074
00077 virtual void glTexImage( Image *i, GLenum texture_target,
00078 bool scale_to_power_of_two );
00079
00081 virtual void render() ;
00082
00088 auto_ptr< MFTexture2DNode > texture;
00089
00091 static H3DNodeDatabase database;
00092 };
00093 }
00094
00095 #endif