Relocate TrackedDevicePoses and make indexable

This commit is contained in:
Benjamin Saunders
2017-05-14 12:23:41 -07:00
parent 8217cf31b3
commit c19014ba8c
2 changed files with 18 additions and 10 deletions

View File

@ -123,13 +123,3 @@ pub enum Eye {
Left = sys::EVREye_EVREye_Eye_Left as isize, Left = sys::EVREye_EVREye_Eye_Left as isize,
Right = sys::EVREye_EVREye_Eye_Right as isize, Right = sys::EVREye_EVREye_Eye_Right as isize,
} }
#[derive(Debug, Copy, Clone)]
pub struct TrackedDevicePoses {
data: [TrackedDevicePose; sys::k_unMaxTrackedDeviceCount as usize]
}
impl TrackedDevicePoses {
pub fn iter(&self) -> slice::Iter<TrackedDevicePose> { self.data.iter() }
pub fn len(&self) -> usize { self.data.len() }
}

View File

@ -64,3 +64,21 @@ pub enum TrackedControllerRole {
LeftHand = sys::ETrackedControllerRole_ETrackedControllerRole_TrackedControllerRole_LeftHand as isize, LeftHand = sys::ETrackedControllerRole_ETrackedControllerRole_TrackedControllerRole_LeftHand as isize,
RightHand = sys::ETrackedControllerRole_ETrackedControllerRole_TrackedControllerRole_RightHand as isize, RightHand = sys::ETrackedControllerRole_ETrackedControllerRole_TrackedControllerRole_RightHand as isize,
} }
#[derive(Debug, Copy, Clone)]
pub struct TrackedDevicePoses {
data: [TrackedDevicePose; sys::k_unMaxTrackedDeviceCount as usize]
}
impl TrackedDevicePoses {
pub fn iter(&self) -> slice::Iter<TrackedDevicePose> { self.data.iter() }
pub fn len(&self) -> usize { self.data.len() }
}
impl ::std::ops::Index<TrackedDeviceIndex> for TrackedDevicePoses {
type Output = TrackedDevicePose;
fn index(&self, index: TrackedDeviceIndex) -> &TrackedDevicePose {
&self.data[index as usize]
}
}