// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImuWithMagneticField {
    #[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, optional, tag = "3")]
    pub imu: ::core::option::Option<super::super::sensor_msgs::msg::Imu>,
    #[prost(message, optional, tag = "4")]
    pub field: ::core::option::Option<super::super::sensor_msgs::msg::MagneticField>,
}
impl ::prost::Name for ImuWithMagneticField {
    const NAME: &'static str = "ImuWithMagneticField";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.ImuWithMagneticField".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.ImuWithMagneticField".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpatialDetection {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub results: ::prost::alloc::vec::Vec<
        super::super::vision_msgs::msg::ObjectHypothesis,
    >,
    #[prost(message, optional, tag = "3")]
    pub bbox: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(message, optional, tag = "4")]
    pub position: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(bool, tag = "5")]
    pub is_tracking: bool,
    #[prost(string, tag = "6")]
    pub tracking_id: ::prost::alloc::string::String,
}
impl ::prost::Name for SpatialDetection {
    const NAME: &'static str = "SpatialDetection";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.SpatialDetection".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.SpatialDetection".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedFeature {
    #[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, optional, tag = "3")]
    pub position: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(uint32, tag = "4")]
    pub id: u32,
    #[prost(uint32, tag = "5")]
    pub age: u32,
    #[prost(float, tag = "6")]
    pub harris_score: f32,
    #[prost(float, tag = "7")]
    pub tracking_error: f32,
}
impl ::prost::Name for TrackedFeature {
    const NAME: &'static str = "TrackedFeature";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackedFeature".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackedFeature".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpatialDetectionArray {
    #[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 detections: ::prost::alloc::vec::Vec<SpatialDetection>,
}
impl ::prost::Name for SpatialDetectionArray {
    const NAME: &'static str = "SpatialDetectionArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.SpatialDetectionArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.SpatialDetectionArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackDetection2D {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub results: ::prost::alloc::vec::Vec<
        super::super::vision_msgs::msg::ObjectHypothesisWithPose,
    >,
    #[prost(message, optional, tag = "3")]
    pub bbox: ::core::option::Option<super::super::vision_msgs::msg::BoundingBox2D>,
    #[prost(bool, tag = "4")]
    pub is_tracking: bool,
    #[prost(string, tag = "5")]
    pub tracking_id: ::prost::alloc::string::String,
    #[prost(int32, tag = "6")]
    pub tracking_age: i32,
    #[prost(int32, tag = "7")]
    pub tracking_status: i32,
}
impl ::prost::Name for TrackDetection2D {
    const NAME: &'static str = "TrackDetection2D";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackDetection2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackDetection2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackDetection2DArray {
    #[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 detections: ::prost::alloc::vec::Vec<TrackDetection2D>,
}
impl ::prost::Name for TrackDetection2DArray {
    const NAME: &'static str = "TrackDetection2DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackDetection2DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackDetection2DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoFocusCtrl {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub auto_focus_mode: u32,
    #[prost(bool, tag = "3")]
    pub trigger_auto_focus: bool,
}
impl ::prost::Name for AutoFocusCtrl {
    const NAME: &'static str = "AutoFocusCtrl";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.AutoFocusCtrl".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.AutoFocusCtrl".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedFeatures {
    #[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 features: ::prost::alloc::vec::Vec<TrackedFeature>,
}
impl ::prost::Name for TrackedFeatures {
    const NAME: &'static str = "TrackedFeatures";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackedFeatures".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.TrackedFeatures".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImageMarkerArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub markers: ::prost::alloc::vec::Vec<
        super::super::visualization_msgs::msg::ImageMarker,
    >,
}
impl ::prost::Name for ImageMarkerArray {
    const NAME: &'static str = "ImageMarkerArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.ImageMarkerArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.ImageMarkerArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandLandmark {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub label: ::prost::alloc::string::String,
    #[prost(float, tag = "3")]
    pub lm_score: f32,
    #[prost(message, repeated, tag = "4")]
    pub landmark: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Pose2D>,
    #[prost(message, optional, tag = "5")]
    pub position: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(bool, tag = "6")]
    pub is_spatial: bool,
}
impl ::prost::Name for HandLandmark {
    const NAME: &'static str = "HandLandmark";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.HandLandmark".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.HandLandmark".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandLandmarkArray {
    #[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 landmarks: ::prost::alloc::vec::Vec<HandLandmark>,
}
impl ::prost::Name for HandLandmarkArray {
    const NAME: &'static str = "HandLandmarkArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.depthai_ros_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.depthai_ros_msgs.msg.HandLandmarkArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.depthai_ros_msgs.msg.HandLandmarkArray".into()
    }
}
