summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/map.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/map.cc')
-rw-r--r--2004/i/nono/src/ovision/map.cc78
1 files changed, 42 insertions, 36 deletions
diff --git a/2004/i/nono/src/ovision/map.cc b/2004/i/nono/src/ovision/map.cc
index 9787594..d166755 100644
--- a/2004/i/nono/src/ovision/map.cc
+++ b/2004/i/nono/src/ovision/map.cc
@@ -10,6 +10,9 @@
using namespace std;
+#define TABLE_WIDTH 2100
+#define TABLE_HEIGHT 2400
+
/// Constructeurs.
Map::Map (Space *space)
@@ -36,14 +39,13 @@ Map::~Map (void)
void
-Map::GetPosFromLoc (int locImgX, int locImgY, double &locX, double &locY)
+Map::GetPosFromLoc (int locImgX, int locImgY, double &posX, double &posY)
{
double locX, locY;
- double posX, posY;
double posRobotX, posRobotY, angleRobot;
- space->GetLoc(locImgX, locImgY, &locX, &locY);
- tracker.getPos(posRobotX, posRobotY, angleRobot);
+ space->GetLoc(locImgX, locImgY, locX, locY);
+ // tracker.getPos(posRobotX, posRobotY, angleRobot);
space->GetPos(locX, locY, posRobotX, posRobotY, angleRobot, posX, posY);
}
@@ -176,58 +178,62 @@ Map::AddBallsToMap(Group *group)
ZONE *pCur = group->zoneListBall;
double pos[2];
- bool ballLost = 1;
+// bool ballLost = 1;
+ // On supprime l'ancienne liste de balle
+ ball.clear ();
while (pCur)
{
- // TODO passer par la classe space
- //GetPosFromLoc
- pos[0] = pCur->centerx;
- pos[1] = pCur->centery;
+ // On choppe la position par rapport au robot
+ space->GetLoc (pCur->centerx, pCur->centery, pos[0], pos[1]);
// Cherche si la balle est deja dans la liste
list<tBALL>::iterator iCur;
- // Si la balle n'est pas dans la liste on l'ajoute
- if (!TestSimilarBall(pCur, iCur))
- {
- AddBall(pos, pCur);
- }
- // Si elle l'est
- else
+ // On regarde si le group trouvé n'est pas en dehors de la table
+ if (1) //TODO (pos[0] < TABLE_WIDTH) && (pos[1] < TABLE_HEIGHT))
{
- // on regarde si c'est la balle qui a ete locké
- if (IsLock ())
- if (iCur == curBall)
- ballLost = 0;
-
- // on incremente son marqueur de viabilite
- if (iCur->skepticism < oconfig->skepticism_max)
- iCur->skepticism++;
-
- if (pCur->centery <= iCur->precision)
+ // Si la balle n'est pas dans la liste on l'ajoute
+// if (!TestSimilarBall(pCur, iCur))
+// {
+ AddBall(pos, pCur);
+/* }
+ // Si elle l'est
+ else
{
- ///TODO mis a jour de la position
- iCur->position[0] = pCur->centerx;
- iCur->position[1] = pCur->centery;
-
- iCur->bottom = pCur->bottom * oconfig->ball_bottom_time_out;
+ // on regarde si c'est la balle qui a ete locké
+ if (IsLock ())
+ if (iCur == curBall)
+ ballLost = 0;
+
+ // on incremente son marqueur de viabilite
+ if (iCur->skepticism < oconfig->skepticism_max)
+ iCur->skepticism++;
+
+ if (pCur->centery <= iCur->precision)
+ {
+ ///TODO mis a jour de la position
+ iCur->position[0] = pCur->centerx;
+ iCur->position[1] = pCur->centery;
+
+ iCur->bottom = pCur->bottom * oconfig->ball_bottom_time_out;
+ }
}
- }
+*/ }
pCur = pCur->next;
}
// TODO decremente d'autre marqueur
- if (IsLock () && ballLost)
+/* if (IsLock () && ballLost)
{
// si la balle sort par le bas pour etre prise
if (curBall->bottom)
curBall->bottom--;
else curBall->skepticism -= oconfig->ball_lost_weight;
}
-
+*/
// presence robot ennemi
@@ -246,7 +252,7 @@ Map::AddBallsToMap(Group *group)
void
Map::UpdateMap()
{
- double robotPosX, robotPosY, robotAngle;
+ double robotPosX, robotPosY;//, robotAngle;
double distRobotBall;
// On met a jour tous les scores
@@ -286,7 +292,7 @@ Map::ShowBalls()
for(iter = ball.begin(); iter != ball.end(); iter++)
{
/// Affichage des infos de la balle
- cout << i << ": " << iter->position[0] << "\t" << iter->position[1] << "\t" << iter->skepticism << "\t" << iter->score << "\t" << iter->bottom << endl;
+ cout << i << ": " << iter->position[0] << "\t" << iter->position[1] << endl;
i++;
}
cout << endl;