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 __CLIPPLANE_H__
00030 #define __CLIPPLANE_H__
00031
00032 #include "X3DChildNode.h"
00033 #include "H3DDisplayListObject.h"
00034 #include "H3DRenderStateObject.h"
00035 #include "SFVec4d.h"
00036
00037 namespace H3D {
00038
00059 class H3DAPI_API ClipPlane :
00060 public X3DChildNode,
00061 public H3DDisplayListObject,
00062 public H3DRenderStateObject {
00063 public:
00064
00066 ClipPlane( Inst< SFNode > _metadata = 0,
00067 Inst< SFBool > _enabled = 0,
00068 Inst< SFVec4d > _plane = 0,
00069 Inst< SFBool > _clipHaptics = 0,
00070 Inst< SFBool > _clipGraphics = 0 );
00071
00073 virtual void enableGraphicsState();
00074
00076 virtual void disableGraphicsState();
00077
00078 #ifdef USE_HAPTICS
00081 virtual void enableHapticsState( TraverseInfo &ti );
00082
00084 virtual void disableHapticsState( TraverseInfo &ti );
00085 #endif
00086
00093 auto_ptr< SFBool > enabled;
00094
00104 auto_ptr< SFVec4d > plane;
00105
00115 auto_ptr< SFBool > clipHaptics;
00116
00124 auto_ptr< SFBool > clipGraphics;
00125
00127 static H3DNodeDatabase database;
00128
00129 protected:
00132 int plane_index;
00134 bool haptics_enabled;
00137 static GLint max_nr_clip_planes;
00139 static int nr_active_clip_planes;
00140
00141 };
00142 }
00143
00144 #endif