// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarkingIntersection {
    #[prost(message, optional, tag = "1")]
    pub center: ::core::option::Option<super::super::vision_msgs::msg::Point2D>,
    #[prost(int32, tag = "2")]
    pub num_rays: i32,
    #[prost(double, repeated, tag = "3")]
    pub heading_rays: ::prost::alloc::vec::Vec<f64>,
    #[prost(message, optional, tag = "4")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for MarkingIntersection {
    const NAME: &'static str = "MarkingIntersection";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingIntersection".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingIntersection"
            .into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Goalpost {
    #[prost(message, optional, tag = "1")]
    pub bb: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(message, optional, tag = "2")]
    pub attributes: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Goalpost,
    >,
    #[prost(message, optional, tag = "3")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for Goalpost {
    const NAME: &'static str = "Goalpost";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Goalpost".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Goalpost".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarkingEllipse {
    #[prost(message, optional, tag = "1")]
    pub bb: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(message, optional, tag = "2")]
    pub center: ::core::option::Option<super::super::vision_msgs::msg::Point2D>,
    #[prost(message, optional, tag = "3")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for MarkingEllipse {
    const NAME: &'static str = "MarkingEllipse";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingEllipse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingEllipse".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarkingSegment {
    #[prost(message, optional, tag = "1")]
    pub start: ::core::option::Option<super::super::vision_msgs::msg::Point2D>,
    #[prost(message, optional, tag = "2")]
    pub end: ::core::option::Option<super::super::vision_msgs::msg::Point2D>,
    #[prost(message, optional, tag = "3")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for MarkingSegment {
    const NAME: &'static str = "MarkingSegment";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingSegment".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingSegment".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarkingArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub ellipses: ::prost::alloc::vec::Vec<MarkingEllipse>,
    #[prost(message, repeated, tag = "3")]
    pub intersections: ::prost::alloc::vec::Vec<MarkingIntersection>,
    #[prost(message, repeated, tag = "4")]
    pub segments: ::prost::alloc::vec::Vec<MarkingSegment>,
}
impl ::prost::Name for MarkingArray {
    const NAME: &'static str = "MarkingArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.MarkingArray".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Robot {
    #[prost(message, optional, tag = "1")]
    pub bb: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(message, optional, tag = "2")]
    pub attributes: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Robot,
    >,
    #[prost(message, optional, tag = "3")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for Robot {
    const NAME: &'static str = "Robot";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Robot".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Robot".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Obstacle {
    #[prost(message, optional, tag = "1")]
    pub bb: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(message, optional, tag = "2")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for Obstacle {
    const NAME: &'static str = "Obstacle";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Obstacle".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Obstacle".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObstacleArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub obstacles: ::prost::alloc::vec::Vec<Obstacle>,
}
impl ::prost::Name for ObstacleArray {
    const NAME: &'static str = "ObstacleArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.ObstacleArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.ObstacleArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RobotArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub robots: ::prost::alloc::vec::Vec<Robot>,
}
impl ::prost::Name for RobotArray {
    const NAME: &'static str = "RobotArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.RobotArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.RobotArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldBoundary {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub points: ::prost::alloc::vec::Vec<super::super::vision_msgs::msg::Point2D>,
    #[prost(message, optional, tag = "3")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for FieldBoundary {
    const NAME: &'static str = "FieldBoundary";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.FieldBoundary".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.FieldBoundary".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GoalpostArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub posts: ::prost::alloc::vec::Vec<Goalpost>,
}
impl ::prost::Name for GoalpostArray {
    const NAME: &'static str = "GoalpostArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.GoalpostArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.GoalpostArray".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Ball {
    #[prost(message, optional, tag = "1")]
    pub bb: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(message, optional, tag = "2")]
    pub center: ::core::option::Option<super::super::vision_msgs::msg::Point2D>,
    #[prost(message, optional, tag = "3")]
    pub confidence: ::core::option::Option<
        super::super::soccer_vision_attribute_msgs::msg::Confidence,
    >,
}
impl ::prost::Name for Ball {
    const NAME: &'static str = "Ball";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Ball".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.Ball".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BallArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub balls: ::prost::alloc::vec::Vec<Ball>,
}
impl ::prost::Name for BallArray {
    const NAME: &'static str = "BallArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.BallArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.soccer_vision_2d_msgs.msg.BallArray".into()
    }
}
