7#include <viam/sdk/common/pose.hpp>
8#include <viam/sdk/common/proto_convert.hpp>
9#include <viam/sdk/spatialmath/orientation.hpp>
15class RectangularPrism;
20class GetGeometriesResponse;
34enum class GeometryType { box, sphere, capsule, point };
40 friend bool operator==(
const box& lhs,
const box& rhs);
44 friend bool operator==(
const sphere& lhs,
const sphere& rhs);
52typedef boost::variant<struct box, struct sphere, struct capsule> geometry_specifics;
61 double get_theta()
const;
62 const pose& get_pose()
const;
63 const geometry_specifics& get_geometry_specifics()
const;
64 GeometryType get_geometry_type()
const;
65 const Orientation& get_orientation()
const;
66 const std::string& get_label()
const;
72 geometry_specifics geometry_specifics_;
75 Orientation orientation_;
82 double longitude, latitude;
85 friend std::ostream& operator<<(std::ostream& os,
const geo_point& v);
90 std::vector<GeometryConfig> geometries;
95namespace proto_convert_details {
99 void operator()(
const box&, common::v1::RectangularPrism*)
const;
104 box operator()(
const common::v1::RectangularPrism*)
const;
109 void operator()(
const sphere&, common::v1::Sphere*)
const;
114 sphere operator()(
const common::v1::Sphere*)
const;
119 void operator()(
const capsule&, common::v1::Capsule*)
const;
124 capsule operator()(
const common::v1::Capsule*)
const;
129 void operator()(
const GeometryConfig&, common::v1::Geometry*)
const;
139 void operator()(
const geo_point&, common::v1::GeoPoint*)
const;
144 geo_point operator()(
const common::v1::GeoPoint*)
const;
149 void operator()(
const geo_geometry&, common::v1::GeoGeometry*)
const;
154 geo_geometry operator()(
const common::v1::GeoGeometry*)
const;
159 std::vector<GeometryConfig> operator()(
const common::v1::GetGeometriesResponse*)
const;
Definition geometry.hpp:54
Definition geometry.hpp:36
Definition geometry.hpp:46
Definition geometry.hpp:88
Definition geometry.hpp:79
Definition proto_convert.hpp:24
Definition proto_convert.hpp:18
Definition geometry.hpp:42