00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __GUIDANCEAGENT__
00024 #define __GUIDANCEAGENT__
00025 #include "micolelib.h"
00026
00027 #include "FF3DDeviceInputAgent.h"
00028 #include <LinearAlgebra.h>
00029
00030 #include <list>
00031
00032 enum GuidanceState {PLAYING, PAUSED, STOPPED, RECORDING};
00033
00038 class MICOLELIB_API GuidanceAgent: public FF3DDeviceInputAgent
00039 {
00040 public:
00044 GuidanceAgent(const float &replayDistance = 0.02, const float &_recordDistance = 0.001);
00048 ~GuidanceAgent();
00049
00050 void onInput();
00051
00052 void handleAdd( MicoleBus *app, int argc, const char **argv );
00053 void handlePlay( MicoleBus *app, int argc, const char **argv );
00054 void handlePause( MicoleBus *app, int argc, const char **argv );
00055 void handleStop( MicoleBus *app, int argc, const char **argv );
00056 void handleRecord( MicoleBus *app, int argc, const char **argv );
00057
00058 private:
00059 GuidanceAgent(const GuidanceAgent &);
00060
00061 list<Vec3f> _pointlist;
00062 list<Vec3f>::iterator _pointListIterator;
00063 GuidanceState _state;
00064 float _replayDistance;
00065 float _recordDistance;
00066 };
00067
00068 #endif