use super::geometry_msgs::{Point, Pose};
use super::std_msgs::Header;
crate::ros_message! {
pub struct Marker("mocap4r2_msgs/msg/Marker") {
pub id_type: i8,
pub marker_index: i32,
pub marker_name: String,
pub translation: Point,
}
}
crate::ros_message! {
pub struct Markers("mocap4r2_msgs/msg/Markers") {
pub header: Header,
pub frame_number: u32,
pub markers: Vec<Marker>,
}
}
crate::ros_message! {
pub struct RigidBody("mocap4r2_msgs/msg/RigidBody") {
pub rigid_body_name: String,
pub markers: Vec<Marker>,
pub pose: Pose,
}
}
crate::ros_message! {
pub struct RigidBodies("mocap4r2_msgs/msg/RigidBodies") {
pub header: Header,
pub frame_number: u32,
pub rigidbodies: Vec<RigidBody>,
}
}
impl Marker {
pub const USE_NAME: i8 = 0;
pub const USE_INDEX: i8 = 1;
pub const USE_BOTH: i8 = 2;
}
#[cfg(test)]
mod tests {
use super::*;
use crate::ros::Message;
#[test]
fn hashes_match_rosidl() {
assert_eq!(
Marker::type_hash(),
"RIHS01_0cadb14b00eb93dfd5d1b774f04f13efc0c2e08a3bee1abbaef9f67f6b10b943"
);
assert_eq!(
Markers::type_hash(),
"RIHS01_36a59e85fa0dcebed1f0a91d748ca17e259b187f779e725af5c6701e8a03054a"
);
assert_eq!(
RigidBody::type_hash(),
"RIHS01_7a1bca552c93a8da4f09083ef4327410b6687a95fe14db29292c4619166f5e66"
);
assert_eq!(
RigidBodies::type_hash(),
"RIHS01_1f2d74f2a1706c59639a2349b7be91e9e4d751fad6fc3048c59d8f1f0576ea70"
);
}
}