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 __SPRINGEFFECT_H__
00030 #define __SPRINGEFFECT_H__
00031
00032 #include "H3DForceEffect.h"
00033 #include "HapticSpring.h"
00034 #include "SFVec3f.h"
00035 #include "SFBool.h"
00036 #include "SFFloat.h"
00037 #include "SFInt32.h"
00038
00039 namespace H3D {
00054 class H3DAPI_API SpringEffect: public H3DForceEffect {
00055 public:
00057 SpringEffect( Inst< SFVec3f > _position = 0,
00058 Inst< SFVec3f > _force = 0,
00059 Inst< SFFloat > _springConstant = 0,
00060 Inst< SFFloat > _startDistance = 0,
00061 Inst< SFFloat > _escapeDistance = 0,
00062 Inst< SFBool > _active = 0,
00063 Inst< SFInt32 > _deviceIndex = 0,
00064 Inst< SFNode > _metadata = 0 );
00065
00066 #ifdef USE_HAPTICS
00069 virtual void traverseSG( TraverseInfo &ti );
00070 #endif
00071
00072
00077 auto_ptr< SFVec3f > position;
00078
00084 auto_ptr< SFVec3f > force;
00085
00091 auto_ptr< SFFloat > springConstant;
00092
00098 auto_ptr< SFFloat > startDistance;
00099
00105 auto_ptr< SFFloat > escapeDistance;
00106
00111 auto_ptr< SFBool > active;
00112
00118 auto_ptr< SFInt32 > deviceIndex;
00119
00121 static H3DNodeDatabase database;
00122
00124 AutoRef< HapticSpring > haptic_spring;
00125 };
00126 }
00127
00128 #endif