summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ovision/see/skittle.hh
diff options
context:
space:
mode:
authorgaillaro2005-04-23 18:58:44 +0000
committergaillaro2005-04-23 18:58:44 +0000
commitfb075a07e3347a357e18b7df3795909b0d6f4918 (patch)
treecfb7093961ecece093cc9644b5f031a1d904a395 /2005/i/robert/src/ovision/see/skittle.hh
parentf10b66edc5bd8af45d1013e56679cbf3efb930a3 (diff)
* ajout détection des groupes de quilles
* essai de detection des vis * detection verticalité
Diffstat (limited to '2005/i/robert/src/ovision/see/skittle.hh')
-rw-r--r--2005/i/robert/src/ovision/see/skittle.hh18
1 files changed, 13 insertions, 5 deletions
diff --git a/2005/i/robert/src/ovision/see/skittle.hh b/2005/i/robert/src/ovision/see/skittle.hh
index b41d154..678d3b7 100644
--- a/2005/i/robert/src/ovision/see/skittle.hh
+++ b/2005/i/robert/src/ovision/see/skittle.hh
@@ -25,6 +25,7 @@
#include <vector>
#include <math.h>
+#include <fstream>
#include "segm.hh"
#include "oconfig.hh"
@@ -42,20 +43,25 @@ class Skittle
Img *img_;
/// Composante principale
double pcX_, pcY_;
+ double pc2X_, pc2Y_;
/// Enum pos
enum Pos {up, down, farAway, error};
/// Courbure
Pos bend_;
+ /// Sens
+ Pos feet_;
/// Position de la bande réfléchissante
Pos reflectBand_;
+ std::ofstream *f, *f2;
+
public:
/// Constructeur
Skittle (Img *img, Segm *segm);
/// Destructeur
~Skittle (void);
/// Analyse d'une zone
- bool analyse (const Zone &zone, const std::vector<Zone> &listReflectBand);
+ bool analyse (Zone &zone, const std::vector<Zone> &listReflectBand);
/// Affiche les infos sur la quille
void show () const;
/// Recupère les données
@@ -71,10 +77,12 @@ class Skittle
int climb (const int startX, const int startY, const int color);
/// Vérifie qu'un catadiopre est à proximité
Pos whereIsReflectBand (const Zone &zone, const std::vector<Zone> &listReflectBand);
- /// Renvoie le minimum en fonction d'une bordure
- inline int minWithBorder (int n, int min) {return n > min ? n : min;}
- /// Renvoie le maximum en fonction d'une bordure
- inline int maxWithBorder (int n, int max) {return n < max ? n : max;}
+ /// Cherche les vis de la quille
+ Pos whereIsBottom (const Zone &zone);
+ /// Test si la zone contient les vis
+ double isBottom (const Zone &zone, const Pos pos);
+ /// Verifie la cohérence de la taille de la quille
+ int checkArea (const Zone &zone);
/// Distance cartésienne
inline const double dist (const double x1, const double x2, const double y1, const double y2)
{return sqrt (x1*x2 + y1*y2);}