#pragma once #include #include #include "WGS84toCartesian.hpp" namespace snake_geometry { typedef std::array Point2D; typedef std::vector Point2DList; typedef std::array Point3D; typedef std::vector Point3DList; typedef std::array GeoPoint2D; typedef std::vector GeoPoint2DList; typedef std::array GeoPoint3D; typedef std::vector GeoPoint3DList; typedef struct { double width; double height; double angle; std::array corners; }min_bbox_rt; Point3D toENU(const GeoPoint3D &WGS84Reference, const GeoPoint3D &WGS84Position); GeoPoint3D fromENU(const Point3D &WGS84Reference, const Point3D &CartesianPosition); Point2D polygonCenter(const Point2DList &polygon); min_bbox_rt minimalBoundingBox(const Point2DList &polygon); }