// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficSignalElement {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub color: u32,
    #[prost(uint32, tag = "3")]
    pub shape: u32,
    #[prost(uint32, tag = "4")]
    pub status: u32,
    #[prost(float, tag = "5")]
    pub confidence: f32,
}
impl ::prost::Name for TrafficSignalElement {
    const NAME: &'static str = "TrafficSignalElement";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficSignalElement"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficSignalElement"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficSignal {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int64, tag = "2")]
    pub traffic_signal_id: i64,
    #[prost(message, repeated, tag = "3")]
    pub elements: ::prost::alloc::vec::Vec<TrafficSignalElement>,
}
impl ::prost::Name for TrafficSignal {
    const NAME: &'static str = "TrafficSignal";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficSignal".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficSignal".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficSignalArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub stamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub signals: ::prost::alloc::vec::Vec<TrafficSignal>,
}
impl ::prost::Name for TrafficSignalArray {
    const NAME: &'static str = "TrafficSignalArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficSignalArray"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficSignalArray"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectClassification {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub label: u32,
    #[prost(float, tag = "3")]
    pub probability: f32,
}
impl ::prost::Name for ObjectClassification {
    const NAME: &'static str = "ObjectClassification";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.ObjectClassification"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.ObjectClassification"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Shape {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub r#type: u32,
    #[prost(message, optional, tag = "3")]
    pub footprint: ::core::option::Option<super::super::geometry_msgs::msg::Polygon>,
    #[prost(message, optional, tag = "4")]
    pub dimensions: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
}
impl ::prost::Name for Shape {
    const NAME: &'static str = "Shape";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.Shape".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.Shape".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedObjectKinematics {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub pose_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::PoseWithCovariance,
    >,
    #[prost(message, optional, tag = "3")]
    pub twist_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::TwistWithCovariance,
    >,
    #[prost(message, optional, tag = "4")]
    pub acceleration_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::AccelWithCovariance,
    >,
    #[prost(uint32, tag = "5")]
    pub orientation_availability: u32,
    #[prost(bool, tag = "6")]
    pub is_stationary: bool,
}
impl ::prost::Name for TrackedObjectKinematics {
    const NAME: &'static str = "TrackedObjectKinematics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrackedObjectKinematics"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrackedObjectKinematics"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedObject {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub object_id: ::core::option::Option<
        super::super::unique_identifier_msgs::msg::Uuid,
    >,
    #[prost(float, tag = "3")]
    pub existence_probability: f32,
    #[prost(message, repeated, tag = "4")]
    pub classification: ::prost::alloc::vec::Vec<ObjectClassification>,
    #[prost(message, optional, tag = "5")]
    pub kinematics: ::core::option::Option<TrackedObjectKinematics>,
    #[prost(message, optional, tag = "6")]
    pub shape: ::core::option::Option<Shape>,
}
impl ::prost::Name for TrackedObject {
    const NAME: &'static str = "TrackedObject";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrackedObject".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrackedObject".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedObjects {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub objects: ::prost::alloc::vec::Vec<TrackedObject>,
}
impl ::prost::Name for TrackedObjects {
    const NAME: &'static str = "TrackedObjects";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrackedObjects".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrackedObjects".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficLightElement {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub color: u32,
    #[prost(uint32, tag = "3")]
    pub shape: u32,
    #[prost(uint32, tag = "4")]
    pub status: u32,
    #[prost(float, tag = "5")]
    pub confidence: f32,
}
impl ::prost::Name for TrafficLightElement {
    const NAME: &'static str = "TrafficLightElement";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficLightElement"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficLightElement"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficLightGroup {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int64, tag = "2")]
    pub traffic_light_group_id: i64,
    #[prost(message, repeated, tag = "3")]
    pub elements: ::prost::alloc::vec::Vec<TrafficLightElement>,
}
impl ::prost::Name for TrafficLightGroup {
    const NAME: &'static str = "TrafficLightGroup";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficLightGroup"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficLightGroup"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficLightGroupArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub stamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub traffic_light_groups: ::prost::alloc::vec::Vec<TrafficLightGroup>,
}
impl ::prost::Name for TrafficLightGroupArray {
    const NAME: &'static str = "TrafficLightGroupArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficLightGroupArray"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.TrafficLightGroupArray"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectedObjectKinematics {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub pose_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::PoseWithCovariance,
    >,
    #[prost(bool, tag = "3")]
    pub has_position_covariance: bool,
    #[prost(uint32, tag = "4")]
    pub orientation_availability: u32,
    #[prost(message, optional, tag = "5")]
    pub twist_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::TwistWithCovariance,
    >,
    #[prost(bool, tag = "6")]
    pub has_twist: bool,
    #[prost(bool, tag = "7")]
    pub has_twist_covariance: bool,
}
impl ::prost::Name for DetectedObjectKinematics {
    const NAME: &'static str = "DetectedObjectKinematics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.DetectedObjectKinematics"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.DetectedObjectKinematics"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PredictedPath {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub path: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "3")]
    pub time_step: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
    #[prost(float, tag = "4")]
    pub confidence: f32,
}
impl ::prost::Name for PredictedPath {
    const NAME: &'static str = "PredictedPath";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedPath".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedPath".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PredictedObjectKinematics {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub initial_pose_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::PoseWithCovariance,
    >,
    #[prost(message, optional, tag = "3")]
    pub initial_twist_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::TwistWithCovariance,
    >,
    #[prost(message, optional, tag = "4")]
    pub initial_acceleration_with_covariance: ::core::option::Option<
        super::super::geometry_msgs::msg::AccelWithCovariance,
    >,
    #[prost(message, repeated, tag = "5")]
    pub predicted_paths: ::prost::alloc::vec::Vec<PredictedPath>,
}
impl ::prost::Name for PredictedObjectKinematics {
    const NAME: &'static str = "PredictedObjectKinematics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedObjectKinematics"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedObjectKinematics"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PredictedObject {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub object_id: ::core::option::Option<
        super::super::unique_identifier_msgs::msg::Uuid,
    >,
    #[prost(float, tag = "3")]
    pub existence_probability: f32,
    #[prost(message, repeated, tag = "4")]
    pub classification: ::prost::alloc::vec::Vec<ObjectClassification>,
    #[prost(message, optional, tag = "5")]
    pub kinematics: ::core::option::Option<PredictedObjectKinematics>,
    #[prost(message, optional, tag = "6")]
    pub shape: ::core::option::Option<Shape>,
}
impl ::prost::Name for PredictedObject {
    const NAME: &'static str = "PredictedObject";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedObject".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedObject"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectedObject {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(float, tag = "2")]
    pub existence_probability: f32,
    #[prost(message, repeated, tag = "3")]
    pub classification: ::prost::alloc::vec::Vec<ObjectClassification>,
    #[prost(message, optional, tag = "4")]
    pub kinematics: ::core::option::Option<DetectedObjectKinematics>,
    #[prost(message, optional, tag = "5")]
    pub shape: ::core::option::Option<Shape>,
}
impl ::prost::Name for DetectedObject {
    const NAME: &'static str = "DetectedObject";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.DetectedObject".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.DetectedObject".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectedObjects {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub objects: ::prost::alloc::vec::Vec<DetectedObject>,
}
impl ::prost::Name for DetectedObjects {
    const NAME: &'static str = "DetectedObjects";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.DetectedObjects".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.DetectedObjects"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PredictedObjects {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub objects: ::prost::alloc::vec::Vec<PredictedObject>,
}
impl ::prost::Name for PredictedObjects {
    const NAME: &'static str = "PredictedObjects";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.autoware_perception_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedObjects"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.autoware_perception_msgs.msg.PredictedObjects"
            .into()
    }
}
