#pragma once
#ifndef _IV_COMMON_OBSTACLE_TYPE_
#define _IV_COMMON_OBSTACLE_TYPE_
#include <vector>
#ifndef Android
#include <boost.h>
#endif
/**
*障碍物类型
*/
namespace iv {
    const int grx = 250, gry = 500, centerx = 125, centery = 250;
    const double gridwide = 0.2;
    struct ObstacleBasic
    {
        bool valid;
        float nomal_x;
        float nomal_y;
        float nomal_z;

        float speed_relative;
        float speed_x;
        float speed_y;
        float speed_z;

        float high;
        float low;

        int esr_ID;
    };

#ifndef Android
    typedef boost::shared_ptr<std::vector<iv::ObstacleBasic>> ObsLiDAR;
    typedef boost::shared_ptr<std::vector<iv::ObstacleBasic>> ObsRadar;
    typedef boost::shared_ptr<std::vector<iv::ObstacleBasic>> ObsCamera;
    typedef boost::shared_ptr<std::vector<iv::ObstacleBasic>>ObsRadarPointer;
#endif
    struct Obs_grid
    {
        int  id;
        double speed_x;
        double speed_y;
        double yaw;
        int type;
        double high;
        double low;
        double obshight;
        int pointcount;
        int ob;//障碍物属性,0地面 ,1路沿,2障碍物
    };

    typedef Obs_grid LidarGrid;
    typedef Obs_grid* LidarGridPtr;

    struct array_360
    {
        float x;
        float y;
        float z;
    };

    struct detect_info
    {
        int light;
    };

    typedef detect_info CameraInfo;
    typedef detect_info* CameraInfoPtr;
}

#endif // !_IV_COMMON_OBSTACLE_TYPE_