vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
movingturtle.h
Go to the documentation of this file.
1 #ifndef MOVINGTURTLE_H_
2 #define MOVINGTURTLE_H_
3 
4 #include "abstractturtle.h"
5 
6 namespace AP_LSystem {
8 {
9 protected:
10  virtual int makeRotate( osg::Quat & );
11  virtual int preRotate() { return 0; }
12  virtual int postRotate() { return 0; }
13 
19  virtual int doStep( double dist );
20 
26  virtual int drawStep( double );
27 
32  virtual int preStep(){ return 0; }
33 
38  virtual int postStep(){ return 0; }
39 
40  virtual void drawFrame( osg::Matrixd &, osg::Vec4d * = NULL);
41 
46  virtual void adjustMatrices( );
47 public:
48 //****************************************************************
49 //** ROTATION **
50 //****************************************************************
51  virtual int turnLeft(std::vector<Parameter> & p);
52  virtual int turnRight(std::vector<Parameter> & p);
53  virtual int pitchDown(std::vector<Parameter> & p);
54  virtual int pitchUp(std::vector<Parameter> & p);
55  virtual int rollLeft(std::vector<Parameter> & p);
56  virtual int rollRight(std::vector<Parameter> & p);
57 
58  virtual int turnArround();
59  virtual int rollArround();
60  virtual int rollUntilHorizontal();
61  virtual int randomTurnPitchRoll(std::vector<Parameter> & p);
62 
63 //****************************************************************
64 //** CHANGE PROPERTIES **
65 //****************************************************************
66  virtual int multiplyLength(std::vector<Parameter> & p);
67  virtual int multiplyRadius(std::vector<Parameter> & p);
68  virtual int multiplyAngle(std::vector<Parameter> & p);
69  virtual int multiplyTropismElasticity(std::vector<Parameter> & p);
70  virtual int multiplyGravitropismElasticity(std::vector<Parameter> & p);
71 
72 //****************************************************************
73 //** MOVEMENT **
74 //****************************************************************
75  virtual int drawForward(std::vector<Parameter> & p);
76  virtual int drawForwardHalf( );
77  virtual int moveForward(std::vector<Parameter> & p);
78  virtual int moveForwardHalf( );
79 };
80 }
81 
82 #endif