00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef ARACTIONSPEEDLIMITER_H
00028 #define ARACTIONSPEEDLIMITER_H
00029
00030 #include "ariaTypedefs.h"
00031 #include "ArAction.h"
00032
00034
00039 class ArActionLimiterForwards : public ArAction
00040 {
00041 public:
00043 ArActionLimiterForwards(const char *name = "speed limiter",
00044 double stopDistance = 250,
00045 double slowDistance = 1000,
00046 double slowSpeed = 200,
00047 double widthRatio = 1);
00049 virtual ~ArActionLimiterForwards();
00050 virtual ArActionDesired *fire(ArActionDesired currentDesired);
00051 virtual ArActionDesired *getDesired(void) { return &myDesired; }
00052 void setParameters(double stopDistance = 250,
00053 double slowDistance = 1000,
00054 double slowSpeed = 200,
00055 double widthRatio = 1);
00056 protected:
00057 bool myLastStopped;
00058 double myStopDist;
00059 double mySlowDist;
00060 double mySlowSpeed;
00061 double myWidthRatio;
00062 ArActionDesired myDesired;
00063 };
00064
00065 #endif // ARACTIONSPEEDLIMITER_H