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 __X3DAPPEARANCENODE_H__
00030 #define __X3DAPPEARANCENODE_H__
00031
00032 #include "X3DNode.h"
00033 #include "H3DDisplayListObject.h"
00034 #ifdef USE_HAPTICS
00035 #include "H3DSurfaceNode.h"
00036 #endif
00037
00038 namespace H3D {
00039
00045 class H3DAPI_API X3DAppearanceNode :
00046 public X3DNode, public H3DDisplayListObject {
00047 public:
00048 #ifdef USE_HAPTICS
00049 typedef TypedSFNode< H3DSurfaceNode > SFSurface;
00050 #endif
00051
00053 X3DAppearanceNode( Inst< DisplayList > _displayList = 0,
00054 Inst< SFNode > _metadata = 0
00055 #ifdef USE_HAPTICS
00056 , Inst< SFSurface > _surface = 0
00057 #endif
00058 );
00059
00060
00065 virtual void preRender() {}
00066
00070 virtual void postRender() {}
00071
00072
00075 virtual bool isTransparent() {
00076 return false;
00077 }
00078
00082 virtual string defaultXMLContainerField() {
00083 return "appearance";
00084 }
00085
00086 #ifdef USE_HAPTICS
00090 virtual void traverseSG( TraverseInfo &ti );
00091
00094 auto_ptr< SFSurface > surface;
00095 #endif
00096
00098 static H3DNodeDatabase database;
00099 };
00100 }
00101
00102 #endif