#ifndef AUTO_AIM__ARMOR_HPP
#define AUTO_AIM__ARMOR_HPP

#include <opencv2/core.hpp>
#include <Eigen/Dense>
#include <vector>

namespace auto_aim
{
enum class ArmorType { small, big };
enum class ArmorName { NO, B1, B2, B3, B4, B5, B7, B8, R1, R2, R3, R4, R5, R7, R8, outpost };

struct Armor {
  ArmorType type;
  ArmorName name;
  std::vector<cv::Point2f> points;
  Eigen::Vector3d xyz_in_gimbal;
  Eigen::Vector3d xyz_in_world;
  Eigen::Vector3d ypr_in_gimbal;
  Eigen::Vector3d ypr_in_world;
  Eigen::Vector3d ypd_in_world;
  double yaw_raw;
};

}  // namespace auto_aim

#endif  // AUTO_AIM__ARMOR_HPP
