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 __X3DTEXTURETRANSFORMNODE_H__
00030 #define __X3DTEXTURETRANSFORMNODE_H__
00031
00032 #include "X3DAppearanceChildNode.h"
00033 namespace H3D {
00040 class H3DAPI_API X3DTextureTransformNode : public X3DAppearanceChildNode {
00041 public:
00042
00048 class H3DAPI_API DisplayList: public H3DDisplayListObject::DisplayList {
00049 H3D_API_EXCEPTION( InvalidCallToCallList );
00050
00052 virtual void callList( bool build_list ) {
00053 stringstream s;
00054 s << "Cannot call callList() on the DisplayList of an "
00055 << "X3DTextureTransformNode since the rendering requires "
00056 << "specification of which texture units to render for. Use "
00057 << "render() or renderForMultipleTexture() instead.";
00058 throw InvalidCallToCallList( s.str(), H3D_FULL_LOCATION );
00059 }
00060 };
00061
00063 X3DTextureTransformNode( Inst< DisplayList > _displayList = 0,
00064 Inst< SFNode> _metadata = 0 );
00065
00068 virtual void renderForTextureUnits( unsigned int start_unit,
00069 unsigned int end_unit );
00070
00072 virtual void renderForTextureUnit( unsigned int texture_unit );
00073
00078 virtual void preRender();
00079
00083 virtual void postRender();
00084
00088 virtual string defaultXMLContainerField() {
00089 return "textureTransform";
00090 }
00091 };
00092 }
00093
00094 #endif