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 __INTEGERTRIGGER_H__
00030 #define __INTEGERTRIGGER_H__
00031
00032 #include "X3DTriggerNode.h"
00033 #include "SFBool.h"
00034 #include "SFInt32.h"
00035
00036 namespace H3D {
00037
00049
00050 class H3DAPI_API IntegerTrigger : public X3DTriggerNode {
00051 public:
00052
00055 class H3DAPI_API SetTriggerValue: public AutoUpdate< TypedField < SFInt32, SFBool > > {
00056 protected:
00057 virtual void update() {
00058 IntegerTrigger *bf =
00059 static_cast< IntegerTrigger * >( getOwner() );
00060 value = bf->integerKey->getValue();
00061 }
00062 };
00063
00064 friend class SetTriggerValue;
00065
00067 IntegerTrigger( Inst< SFNode > _metadata = 0,
00068 Inst< SFBool > _set_boolean = 0,
00069 Inst< SFInt32 > _integerKey = 0,
00070 Inst< SetTriggerValue > _triggerValue = 0);
00071
00078 auto_ptr< SFBool > set_boolean;
00079
00085 auto_ptr< SFInt32 > integerKey;
00086
00092 auto_ptr< SetTriggerValue > triggerValue;
00093
00095 static H3DNodeDatabase database;
00096 };
00097 }
00098
00099 #endif