// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EntityFactory {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(bool, tag = "2")]
    pub allow_renaming: bool,
    #[prost(string, tag = "3")]
    pub sdf: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub sdf_filename: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub clone_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "6")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(string, tag = "7")]
    pub relative_to: ::prost::alloc::string::String,
}
impl ::prost::Name for EntityFactory {
    const NAME: &'static str = "EntityFactory";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.EntityFactory".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.EntityFactory".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Entity {
    #[prost(uint64, tag = "1")]
    pub id: u64,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub r#type: u32,
}
impl ::prost::Name for Entity {
    const NAME: &'static str = "Entity";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Entity".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Entity".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct WorldReset {
    #[prost(bool, tag = "1")]
    pub all: bool,
    #[prost(bool, tag = "2")]
    pub time_only: bool,
    #[prost(bool, tag = "3")]
    pub model_only: bool,
}
impl ::prost::Name for WorldReset {
    const NAME: &'static str = "WorldReset";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.WorldReset".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.WorldReset".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct WorldControl {
    #[prost(bool, tag = "1")]
    pub pause: bool,
    #[prost(bool, tag = "2")]
    pub step: bool,
    #[prost(uint32, tag = "3")]
    pub multi_step: u32,
    #[prost(message, optional, tag = "4")]
    pub reset: ::core::option::Option<WorldReset>,
    #[prost(uint32, tag = "5")]
    pub seed: u32,
    #[prost(message, optional, tag = "6")]
    pub run_to_sim_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
}
impl ::prost::Name for WorldControl {
    const NAME: &'static str = "WorldControl";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.WorldControl".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.WorldControl".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JointWrench {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub body_1_name: ::core::option::Option<super::super::std_msgs::msg::String>,
    #[prost(message, optional, tag = "3")]
    pub body_1_id: ::core::option::Option<super::super::std_msgs::msg::UInt32>,
    #[prost(message, optional, tag = "4")]
    pub body_2_name: ::core::option::Option<super::super::std_msgs::msg::String>,
    #[prost(message, optional, tag = "5")]
    pub body_2_id: ::core::option::Option<super::super::std_msgs::msg::UInt32>,
    #[prost(message, optional, tag = "6")]
    pub body_1_wrench: ::core::option::Option<super::super::geometry_msgs::msg::Wrench>,
    #[prost(message, optional, tag = "7")]
    pub body_2_wrench: ::core::option::Option<super::super::geometry_msgs::msg::Wrench>,
}
impl ::prost::Name for JointWrench {
    const NAME: &'static str = "JointWrench";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.JointWrench".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.JointWrench".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Contact {
    #[prost(message, optional, tag = "1")]
    pub collision1: ::core::option::Option<Entity>,
    #[prost(message, optional, tag = "2")]
    pub collision2: ::core::option::Option<Entity>,
    #[prost(message, repeated, tag = "3")]
    pub positions: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, repeated, tag = "4")]
    pub normals: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Vector3>,
    #[prost(double, repeated, tag = "5")]
    pub depths: ::prost::alloc::vec::Vec<f64>,
    #[prost(message, repeated, tag = "6")]
    pub wrenches: ::prost::alloc::vec::Vec<JointWrench>,
}
impl ::prost::Name for Contact {
    const NAME: &'static str = "Contact";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Contact".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Contact".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Contacts {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub contacts: ::prost::alloc::vec::Vec<Contact>,
}
impl ::prost::Name for Contacts {
    const NAME: &'static str = "Contacts";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Contacts".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Contacts".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SensorNoise {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub r#type: u32,
    #[prost(double, tag = "3")]
    pub mean: f64,
    #[prost(double, tag = "4")]
    pub stddev: f64,
    #[prost(double, tag = "5")]
    pub bias_mean: f64,
    #[prost(double, tag = "6")]
    pub bias_stddev: f64,
    #[prost(double, tag = "7")]
    pub precision: f64,
    #[prost(double, tag = "8")]
    pub dynamic_bias_stddev: f64,
    #[prost(double, tag = "9")]
    pub dynamic_bias_correlation_time: f64,
}
impl ::prost::Name for SensorNoise {
    const NAME: &'static str = "SensorNoise";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.SensorNoise".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.SensorNoise".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Light {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub r#type: u32,
    #[prost(message, optional, tag = "4")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "5")]
    pub diffuse: ::core::option::Option<super::super::std_msgs::msg::ColorRgba>,
    #[prost(message, optional, tag = "6")]
    pub specular: ::core::option::Option<super::super::std_msgs::msg::ColorRgba>,
    #[prost(float, tag = "7")]
    pub attenuation_constant: f32,
    #[prost(float, tag = "8")]
    pub attenuation_linear: f32,
    #[prost(float, tag = "9")]
    pub attenuation_quadratic: f32,
    #[prost(message, optional, tag = "10")]
    pub direction: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(float, tag = "11")]
    pub range: f32,
    #[prost(bool, tag = "12")]
    pub cast_shadows: bool,
    #[prost(float, tag = "13")]
    pub spot_inner_angle: f32,
    #[prost(float, tag = "14")]
    pub spot_outer_angle: f32,
    #[prost(float, tag = "15")]
    pub spot_falloff: f32,
    #[prost(uint32, tag = "16")]
    pub id: u32,
    #[prost(uint32, tag = "17")]
    pub parent_id: u32,
    #[prost(float, tag = "18")]
    pub intensity: f32,
}
impl ::prost::Name for Light {
    const NAME: &'static str = "Light";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Light".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Light".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackVisual {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub id: u32,
    #[prost(bool, tag = "4")]
    pub inherit_orientation: bool,
    #[prost(double, tag = "5")]
    pub min_dist: f64,
    #[prost(double, tag = "6")]
    pub max_dist: f64,
    #[prost(bool, tag = "7")]
    pub is_static: bool,
    #[prost(bool, tag = "8")]
    pub use_model_frame: bool,
    #[prost(message, optional, tag = "9")]
    pub xyz: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(bool, tag = "10")]
    pub inherit_yaw: bool,
}
impl ::prost::Name for TrackVisual {
    const NAME: &'static str = "TrackVisual";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.TrackVisual".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.TrackVisual".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StringVec {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, repeated, tag = "2")]
    pub data: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for StringVec {
    const NAME: &'static str = "StringVec";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.StringVec".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.StringVec".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Float32Array {
    #[prost(float, repeated, tag = "1")]
    pub data: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for Float32Array {
    const NAME: &'static str = "Float32Array";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Float32Array".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Float32Array".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParamVec {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub params: ::prost::alloc::vec::Vec<super::super::rcl_interfaces::msg::Parameter>,
}
impl ::prost::Name for ParamVec {
    const NAME: &'static str = "ParamVec";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.ParamVec".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.ParamVec".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EntityWrench {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub entity: ::core::option::Option<Entity>,
    #[prost(message, optional, tag = "3")]
    pub wrench: ::core::option::Option<super::super::geometry_msgs::msg::Wrench>,
}
impl ::prost::Name for EntityWrench {
    const NAME: &'static str = "EntityWrench";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.EntityWrench".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.EntityWrench".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoRecord {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub start: bool,
    #[prost(bool, tag = "3")]
    pub stop: bool,
    #[prost(string, tag = "4")]
    pub format: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub save_filename: ::prost::alloc::string::String,
}
impl ::prost::Name for VideoRecord {
    const NAME: &'static str = "VideoRecord";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.VideoRecord".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.VideoRecord".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterialColor {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub entity: ::core::option::Option<Entity>,
    #[prost(message, optional, tag = "3")]
    pub ambient: ::core::option::Option<super::super::std_msgs::msg::ColorRgba>,
    #[prost(message, optional, tag = "4")]
    pub diffuse: ::core::option::Option<super::super::std_msgs::msg::ColorRgba>,
    #[prost(message, optional, tag = "5")]
    pub specular: ::core::option::Option<super::super::std_msgs::msg::ColorRgba>,
    #[prost(message, optional, tag = "6")]
    pub emissive: ::core::option::Option<super::super::std_msgs::msg::ColorRgba>,
    #[prost(double, tag = "7")]
    pub shininess: f64,
    #[prost(uint32, tag = "8")]
    pub entity_match: u32,
}
impl ::prost::Name for MaterialColor {
    const NAME: &'static str = "MaterialColor";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.MaterialColor".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.MaterialColor".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Altimeter {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub vertical_position: f64,
    #[prost(double, tag = "3")]
    pub vertical_velocity: f64,
    #[prost(double, tag = "4")]
    pub vertical_reference: f64,
}
impl ::prost::Name for Altimeter {
    const NAME: &'static str = "Altimeter";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Altimeter".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Altimeter".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GuiCamera {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub view_controller: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "4")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "5")]
    pub track: ::core::option::Option<TrackVisual>,
    #[prost(string, tag = "6")]
    pub projection_type: ::prost::alloc::string::String,
}
impl ::prost::Name for GuiCamera {
    const NAME: &'static str = "GuiCamera";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.GuiCamera".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.GuiCamera".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dataframe {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub src_address: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub dst_address: ::prost::alloc::string::String,
    #[prost(uint32, repeated, tag = "4")]
    pub data: ::prost::alloc::vec::Vec<u32>,
    #[prost(double, tag = "5")]
    pub rssi: f64,
}
impl ::prost::Name for Dataframe {
    const NAME: &'static str = "Dataframe";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.ros_gz_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Dataframe".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.ros_gz_interfaces.msg.Dataframe".into()
    }
}
