Robot's source code

Dependencies:   mbed

Map/Map.h

Committer:
Jagang
Date:
2015-05-06
Revision:
119:c45efcd706d9
Parent:
109:53918ba98306
Child:
120:06643cbec98a

File content as of revision 119:c45efcd706d9:

#ifndef MAP_H
#define MAP_H

#include "defines.h"

#include "Obstacle.h"
#include "Point.h"
#include <vector>

#define DIAG_COST 0.7071067/2
#define NDIAG_COST 0.5/2

#define LOG_LEVEL 4 //4 debug(very slow) - 3 errors/warnings/infos - 2 errors/warnings - 1 errors - 0 none
#define LOG_ASTAR 1
#define LOG_TENDEUR 0



class SimplePoint
{
    public:
        SimplePoint(float x, float y) : x(x),y(y) {}
        SimplePoint(const SimplePoint &p) : x(p.x),y(p.y) {}
        bool operator!=(SimplePoint& p) {return x!=p.x||y!=p.y;}
        virtual ~SimplePoint() {}
        float x,y;
};

class Map
{
    public:
        Map();
        ~Map();
        void build();
        
        int getHeight(float x, float y);
        
        // mpc : metre par case, par defaut chaque case fait 10cm
        // Position en mm !!
        char AStar(float x, float y, float goal_x, float goal_y, float mpc=100);
        
        
        std::vector<SimplePoint> path;
    private:
        std::vector<Obstacle*> obstacles;
};


#endif