// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BoundingBox3D {
    #[prost(message, optional, tag = "1")]
    pub center: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "2")]
    pub size: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
}
impl ::prost::Name for BoundingBox3D {
    const NAME: &'static str = "BoundingBox3D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox3D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox3D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BoundingBox3DArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub boxes: ::prost::alloc::vec::Vec<BoundingBox3D>,
}
impl ::prost::Name for BoundingBox3DArray {
    const NAME: &'static str = "BoundingBox3DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox3DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox3DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VisionClass {
    #[prost(uint32, tag = "1")]
    pub class_id: u32,
    #[prost(string, tag = "2")]
    pub class_name: ::prost::alloc::string::String,
}
impl ::prost::Name for VisionClass {
    const NAME: &'static str = "VisionClass";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.VisionClass".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.VisionClass".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LabelInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub class_map: ::prost::alloc::vec::Vec<VisionClass>,
    #[prost(float, tag = "3")]
    pub threshold: f32,
}
impl ::prost::Name for LabelInfo {
    const NAME: &'static str = "LabelInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.LabelInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.LabelInfo".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Point2D {
    #[prost(double, tag = "1")]
    pub x: f64,
    #[prost(double, tag = "2")]
    pub y: f64,
}
impl ::prost::Name for Point2D {
    const NAME: &'static str = "Point2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Point2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Point2D".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Pose2D {
    #[prost(message, optional, tag = "1")]
    pub position: ::core::option::Option<Point2D>,
    #[prost(double, tag = "2")]
    pub theta: f64,
}
impl ::prost::Name for Pose2D {
    const NAME: &'static str = "Pose2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Pose2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Pose2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectHypothesis {
    #[prost(string, tag = "1")]
    pub class_id: ::prost::alloc::string::String,
    #[prost(double, tag = "2")]
    pub score: f64,
}
impl ::prost::Name for ObjectHypothesis {
    const NAME: &'static str = "ObjectHypothesis";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.ObjectHypothesis".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.ObjectHypothesis".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BoundingBox2D {
    #[prost(message, optional, tag = "1")]
    pub center: ::core::option::Option<Pose2D>,
    #[prost(double, tag = "2")]
    pub size_x: f64,
    #[prost(double, tag = "3")]
    pub size_y: f64,
}
impl ::prost::Name for BoundingBox2D {
    const NAME: &'static str = "BoundingBox2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectHypothesisWithPose {
    #[prost(message, optional, tag = "1")]
    pub hypothesis: ::core::option::Option<ObjectHypothesis>,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<
        super::super::geometry_msgs::msg::PoseWithCovariance,
    >,
}
impl ::prost::Name for ObjectHypothesisWithPose {
    const NAME: &'static str = "ObjectHypothesisWithPose";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.ObjectHypothesisWithPose".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.ObjectHypothesisWithPose".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection2D {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub results: ::prost::alloc::vec::Vec<ObjectHypothesisWithPose>,
    #[prost(message, optional, tag = "3")]
    pub bbox: ::core::option::Option<BoundingBox2D>,
    #[prost(string, tag = "4")]
    pub id: ::prost::alloc::string::String,
}
impl ::prost::Name for Detection2D {
    const NAME: &'static str = "Detection2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Detection2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Detection2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection2DArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub detections: ::prost::alloc::vec::Vec<Detection2D>,
}
impl ::prost::Name for Detection2DArray {
    const NAME: &'static str = "Detection2DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Detection2DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Detection2DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BoundingBox2DArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub boxes: ::prost::alloc::vec::Vec<BoundingBox2D>,
}
impl ::prost::Name for BoundingBox2DArray {
    const NAME: &'static str = "BoundingBox2DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox2DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.BoundingBox2DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection3D {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub results: ::prost::alloc::vec::Vec<ObjectHypothesisWithPose>,
    #[prost(message, optional, tag = "3")]
    pub bbox: ::core::option::Option<BoundingBox3D>,
    #[prost(string, tag = "4")]
    pub id: ::prost::alloc::string::String,
}
impl ::prost::Name for Detection3D {
    const NAME: &'static str = "Detection3D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Detection3D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Detection3D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VisionInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub method: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub database_location: ::prost::alloc::string::String,
    #[prost(int32, tag = "4")]
    pub database_version: i32,
}
impl ::prost::Name for VisionInfo {
    const NAME: &'static str = "VisionInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.VisionInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.VisionInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection3DArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub detections: ::prost::alloc::vec::Vec<Detection3D>,
}
impl ::prost::Name for Detection3DArray {
    const NAME: &'static str = "Detection3DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Detection3DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Detection3DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Classification {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub results: ::prost::alloc::vec::Vec<ObjectHypothesis>,
}
impl ::prost::Name for Classification {
    const NAME: &'static str = "Classification";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.vision_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.vision_msgs.msg.Classification".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.vision_msgs.msg.Classification".into()
    }
}
