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 __H3DVIDEOTEXTURENODE_H__
00030 #define __H3DVIDEOTEXTURENODE_H__
00031
00032 #include "X3DTexture2DNode.h"
00033 #include "H3DVideoClipDecoderNode.h"
00034
00035 namespace H3D {
00041 class H3DAPI_API H3DVideoTextureNode : public X3DTexture2DNode {
00042 public:
00043
00045 H3DVideoTextureNode(
00046 Inst< DisplayList > _displayList = 0,
00047 Inst< SFNode > _metadata = 0,
00048 Inst< SFBool > _repeatS = 0,
00049 Inst< SFBool > _repeatT = 0,
00050 Inst< SFBool > _scaleToP2 = 0,
00051 Inst< SFImage > _image = 0,
00052 Inst< SFTextureProperties > _textureProperties = 0 ):
00053 X3DTexture2DNode( _displayList, _metadata, _repeatS, _repeatT,
00054 _scaleToP2, _image, _textureProperties ),
00055 frame_bytes_allocated( 0 ) {}
00056
00057 #ifdef USE_HAPTICS
00058
00059 virtual void traverseSG( TraverseInfo &ti ) {
00060
00061 if( decoder.get() && decoder->haveNewFrame() )
00062 repeatS->touch();
00063 X3DTexture2DNode::traverseSG( ti );
00064 }
00065 #endif
00066
00068 virtual void render();
00069
00071 static H3DNodeDatabase database;
00072 protected:
00075 AutoRef< H3DVideoClipDecoderNode > decoder;
00076
00078 unsigned int frame_bytes_allocated;
00079 };
00080 }
00081
00082 #endif