// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LinkState {
    #[prost(string, tag = "1")]
    pub link_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "3")]
    pub twist: ::core::option::Option<super::super::geometry_msgs::msg::Twist>,
    #[prost(string, tag = "4")]
    pub reference_frame: ::prost::alloc::string::String,
}
impl ::prost::Name for LinkState {
    const NAME: &'static str = "LinkState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.LinkState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.LinkState".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct OdePhysics {
    #[prost(bool, tag = "1")]
    pub auto_disable_bodies: bool,
    #[prost(uint32, tag = "2")]
    pub sor_pgs_precon_iters: u32,
    #[prost(uint32, tag = "3")]
    pub sor_pgs_iters: u32,
    #[prost(double, tag = "4")]
    pub sor_pgs_w: f64,
    #[prost(double, tag = "5")]
    pub sor_pgs_rms_error_tol: f64,
    #[prost(double, tag = "6")]
    pub contact_surface_layer: f64,
    #[prost(double, tag = "7")]
    pub contact_max_correcting_vel: f64,
    #[prost(double, tag = "8")]
    pub cfm: f64,
    #[prost(double, tag = "9")]
    pub erp: f64,
    #[prost(uint32, tag = "10")]
    pub max_contacts: u32,
}
impl ::prost::Name for OdePhysics {
    const NAME: &'static str = "ODEPhysics";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.ODEPhysics".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.ODEPhysics".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ModelState {
    #[prost(string, tag = "1")]
    pub model_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "3")]
    pub twist: ::core::option::Option<super::super::geometry_msgs::msg::Twist>,
    #[prost(string, tag = "4")]
    pub reference_frame: ::prost::alloc::string::String,
}
impl ::prost::Name for ModelState {
    const NAME: &'static str = "ModelState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.ModelState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.ModelState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OdeJointProperties {
    #[prost(double, repeated, tag = "1")]
    pub damping: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "2")]
    pub hi_stop: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "3")]
    pub lo_stop: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "4")]
    pub erp: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "5")]
    pub cfm: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "6")]
    pub stop_erp: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "7")]
    pub stop_cfm: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "8")]
    pub fudge_factor: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "9")]
    pub fmax: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "10")]
    pub vel: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for OdeJointProperties {
    const NAME: &'static str = "ODEJointProperties";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.ODEJointProperties".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.ODEJointProperties".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EntityState {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "3")]
    pub twist: ::core::option::Option<super::super::geometry_msgs::msg::Twist>,
    #[prost(string, tag = "4")]
    pub reference_frame: ::prost::alloc::string::String,
}
impl ::prost::Name for EntityState {
    const NAME: &'static str = "EntityState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.EntityState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.EntityState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SensorPerformanceMetric {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(double, tag = "2")]
    pub sim_update_rate: f64,
    #[prost(double, tag = "3")]
    pub real_update_rate: f64,
    #[prost(double, tag = "4")]
    pub fps: f64,
}
impl ::prost::Name for SensorPerformanceMetric {
    const NAME: &'static str = "SensorPerformanceMetric";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.SensorPerformanceMetric".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.SensorPerformanceMetric".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PerformanceMetrics {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub real_time_factor: f64,
    #[prost(message, repeated, tag = "3")]
    pub sensors: ::prost::alloc::vec::Vec<SensorPerformanceMetric>,
}
impl ::prost::Name for PerformanceMetrics {
    const NAME: &'static str = "PerformanceMetrics";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.PerformanceMetrics".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.PerformanceMetrics".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LinkStates {
    #[prost(string, repeated, tag = "1")]
    pub name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "2")]
    pub pose: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, repeated, tag = "3")]
    pub twist: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Twist>,
}
impl ::prost::Name for LinkStates {
    const NAME: &'static str = "LinkStates";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.LinkStates".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.LinkStates".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ModelStates {
    #[prost(string, repeated, tag = "1")]
    pub name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "2")]
    pub pose: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, repeated, tag = "3")]
    pub twist: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Twist>,
}
impl ::prost::Name for ModelStates {
    const NAME: &'static str = "ModelStates";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.ModelStates".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.ModelStates".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorldState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, repeated, tag = "2")]
    pub name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "3")]
    pub pose: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, repeated, tag = "4")]
    pub twist: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Twist>,
    #[prost(message, repeated, tag = "5")]
    pub wrench: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Wrench>,
}
impl ::prost::Name for WorldState {
    const NAME: &'static str = "WorldState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.WorldState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.WorldState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContactState {
    #[prost(string, tag = "1")]
    pub info: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub collision1_name: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub collision2_name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "4")]
    pub wrenches: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Wrench>,
    #[prost(message, optional, tag = "5")]
    pub total_wrench: ::core::option::Option<super::super::geometry_msgs::msg::Wrench>,
    #[prost(message, repeated, tag = "6")]
    pub contact_positions: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(message, repeated, tag = "7")]
    pub contact_normals: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, repeated, tag = "8")]
    pub depths: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for ContactState {
    const NAME: &'static str = "ContactState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.ContactState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.ContactState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContactsState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub states: ::prost::alloc::vec::Vec<ContactState>,
}
impl ::prost::Name for ContactsState {
    const NAME: &'static str = "ContactsState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.ContactsState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.ContactsState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WheelSlip {
    #[prost(string, repeated, tag = "1")]
    pub name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(double, repeated, tag = "2")]
    pub lateral_slip: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "3")]
    pub longitudinal_slip: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for WheelSlip {
    const NAME: &'static str = "WheelSlip";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.gazebo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.gazebo_msgs.msg.WheelSlip".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.gazebo_msgs.msg.WheelSlip".into()
    }
}
