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 __SWITCH_H__
00030 #define __SWITCH_H__
00031
00032 #include "X3DGroupingNode.h"
00033 #include "SFInt32.h"
00034
00035 namespace H3D {
00036
00062 class H3DAPI_API Switch : public X3DGroupingNode {
00063 public:
00064
00076 class H3DAPI_API SFBound:
00077 public TypedField< X3DGroupingNode::SFBound,
00078 SFInt32,
00079 AnyNumber< X3DBoundedObject::SFBound > > {
00082 virtual void update();
00083 };
00084
00086 Switch( Inst< MFChild > _addChildren = 0,
00087 Inst< MFChild > _removeChildren = 0,
00088 Inst< MFChild > _children = 0,
00089 Inst< SFNode > _metadata = 0,
00090 Inst< SFBound > _bound = 0,
00091 Inst< SFVec3f > _bboxCenter = 0,
00092 Inst< SFVec3f > _bboxSize = 0,
00093 Inst< SFInt32 > _whichChoice = 0 );
00094
00096 virtual void render();
00097
00098 #ifdef USE_HAPTICS
00099
00100 virtual void traverseSG( TraverseInfo &ti );
00101 #endif
00102
00112 auto_ptr< SFInt32 > whichChoice;
00113
00115 static H3DNodeDatabase database;
00116 };
00117 }
00118
00119 #endif