// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Accelerometer {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub x: f32,
    #[prost(float, tag = "3")]
    pub y: f32,
    #[prost(float, tag = "4")]
    pub z: f32,
}
impl ::prost::Name for Accelerometer {
    const NAME: &'static str = "Accelerometer";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Accelerometer".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Accelerometer".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AgentState {
    #[prost(float, tag = "1")]
    pub temp: f32,
    #[prost(float, tag = "2")]
    pub battery: f32,
}
impl ::prost::Name for AgentState {
    const NAME: &'static str = "AgentState";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.AgentState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.AgentState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ForceResistance {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub px: f32,
    #[prost(float, tag = "3")]
    pub py: f32,
    #[prost(float, tag = "4")]
    pub pz: f32,
    #[prost(float, tag = "5")]
    pub fx: f32,
    #[prost(float, tag = "6")]
    pub fy: f32,
    #[prost(float, tag = "7")]
    pub fz: f32,
}
impl ::prost::Name for ForceResistance {
    const NAME: &'static str = "ForceResistance";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.ForceResistance".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.ForceResistance".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GameState {
    #[prost(float, tag = "1")]
    pub time: f32,
    #[prost(string, tag = "2")]
    pub playmode: ::prost::alloc::string::String,
    #[prost(int32, tag = "3")]
    pub score_left: i32,
    #[prost(int32, tag = "4")]
    pub score_right: i32,
}
impl ::prost::Name for GameState {
    const NAME: &'static str = "GameState";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.GameState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.GameState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GyroRate {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub x: f32,
    #[prost(float, tag = "3")]
    pub y: f32,
    #[prost(float, tag = "4")]
    pub z: f32,
}
impl ::prost::Name for GyroRate {
    const NAME: &'static str = "GyroRate";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.GyroRate".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.GyroRate".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Hear {
    #[prost(string, tag = "1")]
    pub team: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub time: f32,
    #[prost(bool, tag = "3")]
    pub self_: bool,
    #[prost(float, repeated, tag = "4")]
    pub direction: ::prost::alloc::vec::Vec<f32>,
    #[prost(string, tag = "5")]
    pub message: ::prost::alloc::string::String,
}
impl ::prost::Name for Hear {
    const NAME: &'static str = "Hear";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Hear".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Hear".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HingeJointPos {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub ax: f32,
}
impl ::prost::Name for HingeJointPos {
    const NAME: &'static str = "HingeJointPos";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.HingeJointPos".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.HingeJointPos".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UniversalJointPos {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub ax1: f32,
    #[prost(float, tag = "3")]
    pub ax2: f32,
}
impl ::prost::Name for UniversalJointPos {
    const NAME: &'static str = "UniversalJointPos";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.UniversalJointPos".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.UniversalJointPos".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Spherical {
    #[prost(float, tag = "1")]
    pub r: f32,
    #[prost(float, tag = "2")]
    pub phi: f32,
    #[prost(float, tag = "3")]
    pub theta: f32,
}
impl ::prost::Name for Spherical {
    const NAME: &'static str = "Spherical";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Spherical".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Spherical".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Ball {
    #[prost(message, optional, tag = "1")]
    pub center: ::core::option::Option<Spherical>,
}
impl ::prost::Name for Ball {
    const NAME: &'static str = "Ball";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Ball".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Ball".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct FieldLine {
    #[prost(message, optional, tag = "1")]
    pub start: ::core::option::Option<Spherical>,
    #[prost(message, optional, tag = "2")]
    pub end: ::core::option::Option<Spherical>,
}
impl ::prost::Name for FieldLine {
    const NAME: &'static str = "FieldLine";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.FieldLine".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.FieldLine".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Flag {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub base: ::core::option::Option<Spherical>,
}
impl ::prost::Name for Flag {
    const NAME: &'static str = "Flag";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Flag".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Flag".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Goalpost {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub top: ::core::option::Option<Spherical>,
}
impl ::prost::Name for Goalpost {
    const NAME: &'static str = "Goalpost";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Goalpost".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Goalpost".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Player {
    #[prost(string, tag = "1")]
    pub team: ::prost::alloc::string::String,
    #[prost(int32, tag = "2")]
    pub id: i32,
    #[prost(message, repeated, tag = "3")]
    pub head: ::prost::alloc::vec::Vec<Spherical>,
    #[prost(message, repeated, tag = "4")]
    pub rlowerarm: ::prost::alloc::vec::Vec<Spherical>,
    #[prost(message, repeated, tag = "5")]
    pub llowerarm: ::prost::alloc::vec::Vec<Spherical>,
    #[prost(message, repeated, tag = "6")]
    pub rfoot: ::prost::alloc::vec::Vec<Spherical>,
    #[prost(message, repeated, tag = "7")]
    pub lfoot: ::prost::alloc::vec::Vec<Spherical>,
}
impl ::prost::Name for Player {
    const NAME: &'static str = "Player";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Player".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Player".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Vision {
    #[prost(message, repeated, tag = "1")]
    pub ball: ::prost::alloc::vec::Vec<Ball>,
    #[prost(message, repeated, tag = "2")]
    pub field_lines: ::prost::alloc::vec::Vec<FieldLine>,
    #[prost(message, repeated, tag = "3")]
    pub flags: ::prost::alloc::vec::Vec<Flag>,
    #[prost(message, repeated, tag = "4")]
    pub goalposts: ::prost::alloc::vec::Vec<Goalpost>,
    #[prost(message, repeated, tag = "5")]
    pub players: ::prost::alloc::vec::Vec<Player>,
}
impl ::prost::Name for Vision {
    const NAME: &'static str = "Vision";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Vision".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Vision".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Percept {
    #[prost(message, repeated, tag = "1")]
    pub gyro_rates: ::prost::alloc::vec::Vec<GyroRate>,
    #[prost(message, repeated, tag = "2")]
    pub hinge_joints: ::prost::alloc::vec::Vec<HingeJointPos>,
    #[prost(message, repeated, tag = "3")]
    pub universal_joints: ::prost::alloc::vec::Vec<UniversalJointPos>,
    #[prost(message, repeated, tag = "4")]
    pub force_resistances: ::prost::alloc::vec::Vec<ForceResistance>,
    #[prost(message, repeated, tag = "5")]
    pub accelerometers: ::prost::alloc::vec::Vec<Accelerometer>,
    #[prost(message, repeated, tag = "6")]
    pub vision: ::prost::alloc::vec::Vec<Vision>,
    #[prost(message, optional, tag = "7")]
    pub game_state: ::core::option::Option<GameState>,
    #[prost(message, repeated, tag = "8")]
    pub agent_state: ::prost::alloc::vec::Vec<AgentState>,
    #[prost(message, repeated, tag = "9")]
    pub hears: ::prost::alloc::vec::Vec<Hear>,
}
impl ::prost::Name for Percept {
    const NAME: &'static str = "Percept";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Percept".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Percept".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Synchronize {}
impl ::prost::Name for Synchronize {
    const NAME: &'static str = "Synchronize";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Synchronize".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Synchronize".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UniversalJointVel {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub ax1: f32,
    #[prost(float, tag = "3")]
    pub ax2: f32,
}
impl ::prost::Name for UniversalJointVel {
    const NAME: &'static str = "UniversalJointVel";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.UniversalJointVel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.UniversalJointVel".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Beam {
    #[prost(double, tag = "1")]
    pub x: f64,
    #[prost(double, tag = "2")]
    pub y: f64,
    #[prost(double, tag = "3")]
    pub rot: f64,
}
impl ::prost::Name for Beam {
    const NAME: &'static str = "Beam";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Beam".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Beam".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HingeJointVel {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub ax: f32,
}
impl ::prost::Name for HingeJointVel {
    const NAME: &'static str = "HingeJointVel";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.HingeJointVel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.HingeJointVel".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Say {
    #[prost(string, tag = "1")]
    pub message: ::prost::alloc::string::String,
}
impl ::prost::Name for Say {
    const NAME: &'static str = "Say";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Say".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Say".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Effector {
    #[prost(message, repeated, tag = "1")]
    pub hinge_joint_vels: ::prost::alloc::vec::Vec<HingeJointVel>,
    #[prost(message, repeated, tag = "2")]
    pub universal_joint_vels: ::prost::alloc::vec::Vec<UniversalJointVel>,
    #[prost(message, repeated, tag = "3")]
    pub beams: ::prost::alloc::vec::Vec<Beam>,
    #[prost(message, repeated, tag = "4")]
    pub says: ::prost::alloc::vec::Vec<Say>,
}
impl ::prost::Name for Effector {
    const NAME: &'static str = "Effector";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Effector".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rcss3d_agent_msgs.msg.Effector".into()
    }
}
