00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef TURTLE_MOBILITY_H
00020 #define TURTLE_MOBILITY_H
00021
00022 #include <stack>
00023 #include "LineSegmentsMobilityBase.h"
00024
00025
00033 class TurtleMobility : public LineSegmentsMobilityBase
00034 {
00035 protected:
00036
00037 cXMLElement *turtleScript;
00038
00039
00040 cXMLElement *nextStatement;
00041 double angle;
00042 BorderPolicy borderPolicy;
00043 std::stack<long> loopVars;
00044
00045 public:
00046 Module_Class_Members(TurtleMobility, LineSegmentsMobilityBase, 0);
00047
00049 virtual void initialize(int);
00050
00052 virtual void setTargetPosition();
00053
00055 virtual void fixIfHostGetsOutside();
00056
00057 protected:
00059 void resumeScript();
00060
00062 void executeStatement(cXMLElement *nextStatement);
00063
00065 double getValue(const char *s);
00066
00068 void gotoNextStatement();
00069 };
00070
00071 #endif
00072