#[repr(C)]pub struct MarkerPose {
pub timestamp: u64,
pub marker_id: u16,
pub x: f64,
pub y: f64,
pub z: f64,
pub rotation: [f64; 9],
pub position_rmse: f64,
pub rotation_rmse: f64,
pub sensors: u8,
}Expand description
Position and orientation of one tracked marker in world coordinates.
One MarkerPose is produced per localized marker per tracking
update. A crate::PoseStream delivers these as they arrive from the
device.
§Units
All positions (x, y, z and
position_rmse) are in meters; rotation error
(rotation_rmse) is in radians.
The layout is #[repr(C)] so the C API can use a struct with the same
fields directly. This does not affect the MessagePack wire format, which
is derived from the field definitions, not the memory layout.
Fields§
§timestamp: u64Microseconds since the tracking device started. All markers from the same tracking update share one timestamp. Subtract two poses’ timestamps to get the elapsed time between them; the absolute value is not a wall-clock time and is only meaningful relative to other poses from the same device session.
marker_id: u16Identifier of the marker this pose belongs to.
x: f64World-space position in meters (of the first model emitter).
y: f64§z: f64§rotation: [f64; 9]Rotation matrix (row-major 3x3), model frame to world frame.
position_rmse: f64Estimated RMS error of the position, in meters (the same units as x/y/z).
rotation_rmse: f64Estimated RMS error of the rotation, expressed as the magnitude of an axis-angle perturbation 3-vector (radians).
sensors: u8Number of sensors that contributed to this measurement.
Trait Implementations§
Source§impl Clone for MarkerPose
impl Clone for MarkerPose
Source§fn clone(&self) -> MarkerPose
fn clone(&self) -> MarkerPose
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MarkerPose
impl Debug for MarkerPose
Source§impl<'de> Deserialize<'de> for MarkerPose
impl<'de> Deserialize<'de> for MarkerPose
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MarkerPose
impl PartialEq for MarkerPose
Source§fn eq(&self, other: &MarkerPose) -> bool
fn eq(&self, other: &MarkerPose) -> bool
self and other values to be equal, and is used by ==.