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 __GRAPHICSCACHINGOPTIONS_H__
00030 #define __GRAPHICSCACHINGOPTIONS_H__
00031
00032 #include "H3DOptionNode.h"
00033 #include "SFBool.h"
00034 #include "SFInt32.h"
00035 #include "X3DGeometryNode.h"
00036
00037 namespace H3D {
00038
00042 class H3DAPI_API GraphicsCachingOptions : public H3DOptionNode {
00043 public:
00044
00046 GraphicsCachingOptions( Inst< SFNode > _metadata = 0,
00047 Inst< SFBool > _useCaching = 0,
00048 Inst< SFInt32 > _cachingDelay = 0,
00049 Inst< SFBool > _cacheOnlyGeometryNodes = 0 );
00050
00051 bool cacheNode( Node *n ) {
00052 if( !useCaching->getValue() ) return false;
00053 if( !cacheOnlyGeometries->getValue() ) return true;
00054
00055
00056 return dynamic_cast< X3DGeometryNode * >( n ) != NULL;
00057
00058 }
00059
00065 auto_ptr< SFBool > useCaching;
00066
00075 auto_ptr< SFInt32 > cachingDelay;
00076
00077
00083 auto_ptr< SFBool > cacheOnlyGeometries;
00084
00086 static H3DNodeDatabase database;
00087
00088 protected:
00089
00090 };
00091 }
00092
00093 #endif