Skip to content
Snippets Groups Projects
Commit ecedb2e9 authored by Grégoire Payen de La Garanderie's avatar Grégoire Payen de La Garanderie
Browse files

Simplification du design de la classe Odometrie pour la simulation.

parent feae951d
No related branches found
No related tags found
No related merge requests found
......@@ -7,12 +7,15 @@
#ifndef ROBOTHW
class Odometrie
{
private:
class Robot* robot;
public:
virtual PositionPlusAngle getPos()=0;
virtual void setPos(PositionPlusAngle p)=0;
virtual Angle getVitesseAngulaire()=0;
virtual Distance getVitesseLineaire()=0;
virtual void update() { };
Odometrie(Robot* robot);
PositionPlusAngle getPos();
void setPos(PositionPlusAngle p);
Angle getVitesseAngulaire();
Distance getVitesseLineaire();
void update() { };
};
#else
......
......@@ -18,7 +18,7 @@ public:
PositionPlusAngle deriv;
boost::circular_buffer<PositionPlusAngle> olds;
class Asservissement* asservissement;
class OdoRobot* odometrie;
class Odometrie* odometrie;
class Strategie* strategie;
b2Body* body;
......
......@@ -8,37 +8,33 @@
#include "strategie.h"
#include <iostream>
class OdoRobot : public Odometrie
//Odometrie class implementation for the simulation
//Yes, it's ugly ! it should not be in this file.
//But in a separate file
Odometrie::Odometrie(Robot* robot)
{
private:
Robot* robot;
public:
OdoRobot(Robot* robot)
{
this->robot = robot;
}
this->robot = robot;
}
PositionPlusAngle getPos()
{
return robot->pos;
}
PositionPlusAngle Odometrie::getPos()
{
return robot->pos;
}
Distance getVitesseLineaire()
{
return robot->deriv.position.getNorme();
}
Distance Odometrie::getVitesseLineaire()
{
return robot->deriv.position.getNorme();
}
Angle getVitesseAngulaire()
{
return robot->deriv.angle;
}
Angle Odometrie::getVitesseAngulaire()
{
return robot->deriv.angle;
}
void setPos(PositionPlusAngle p)
{
robot->pos = p;
}
};
void Odometrie::setPos(PositionPlusAngle p)
{
robot->pos = p;
}
Robot::Robot(b2World & world) : world(world), olds(10000)
......@@ -50,7 +46,7 @@ Robot::Robot(b2World & world) : world(world), olds(10000)
joint = NULL;
level = 0;
odometrie = new OdoRobot(this);
odometrie = new Odometrie(this);
asservissement = new Asservissement(odometrie);
strategie = new Strategie(true, odometrie);
asservissement->strategie = strategie;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment