#ifndef space_h #define space_h // space.h - Space class // nono - Programme du robot Efrei Robotique I1-I2 2004 // Copyright (C) 2004 Olivier Gaillard #include #include #define POS_ROBOT_ETALONNOGE_X 300 #include "group.h" #include "oconfig.h" struct SETUP_POINT { int x, y; int distx, disty; }; /// Etalonnage des distances et localisation de la balle class Space { /// Classe config OConfig *oconfig; /// tableau d'index des distances uint *tabX; uint *tabY; /// liste des distances etalonnees std::vector setupTab; /// hautdddeur de l'image int imgHeight; /// largeur de l'image int imgWidth; /// coeff pour l'approximation de la profondeur double aY, bY, cY; /// coeff pour l'approximation de l'horizontal double aX, bX; public: // Constructeur Space (int width, int height, OConfig *oconfig); // Destructeur ~Space (); /// Position d'un objet dans le referentiel du robot void GetLoc(int locImgX, int locImgY, int &locX, int &locY); /// Ajoute un point pour l'etalonnage void AddSetupPoint(int x, int y, int distx, int disty); /// Chargement des points a partir d'un fichier void LoadFromFile(); /// Etalonnage des distances int Setup(); protected: /// Calcul du determinant int Determinant(int matrix[][4]); /// Calcul du determinant caracteristique int CaracteristicDeterminant(int matrix[][4], int numRow); /// Donne la position reelle sur la table de la balle void GetPos(int locX, int locY, int posRobotX, int posRobotY, double angleRobot, int &posX, int &posY); }; #endif // space_h