#[repr(u8)]
pub enum BoneKind {
Show 16 variants
Neck,
Chest,
Waist,
Hip,
ThighL,
ThighR,
AnkleL,
AnkleR,
FootL,
FootR,
UpperArmL,
UpperArmR,
ForearmL,
ForearmR,
WristL,
WristR,
}
Expand description
Describes the various types of bones in the skeleton.
All of this information is static rather than dynamic information. “Static” here refers to information that does not change - this information is “hard coded”. This includes:
- The parent/child relationships between the various types of bones
- The pose of the bones when performing a calibration
- Names of the bones
- Etc
Where possible, this information is provided as const
functions so that they
can be evaluated at compile-time.
There is also dynamic information associated with bones. “Dynamic” here refers to
the fact that some bone data cannot be known up front and changes as the skeletal
model receives inputs and produces outputs. This data is stored in the
Skeleton
as an Edge
.
BoneKind
is also represented as a u8
, so it can be used as an index for an
array. This is used for example in BoneMap
. Please note that we make no
stability guarantees for the particular value that any variant gets, only that
these values are contiguous and start at 0. Use the variant directly or refer to
the various functions implemented on this type for stability.
Variants
Neck
Chest
Waist
Hip
ThighL
ThighR
AnkleL
AnkleR
FootL
FootR
UpperArmL
UpperArmR
ForearmL
ForearmR
WristL
WristR
Implementations
sourceimpl BoneKind
impl BoneKind
pub const MAX: BoneKind = _
pub const MIN: BoneKind = _
pub const ROOT: BoneKind = _
sourcepub const fn num_types() -> usize
pub const fn num_types() -> usize
Returns the number of unique kinds of bones. This is equivalent to the number
of variants in BoneKind
pub const NUM_TYPES: usize = 16usize
sourcepub const fn children(&self) -> &'static [Self]ⓘNotable traits for &mut [u8]impl Write for &mut [u8]impl Read for &[u8]
pub const fn children(&self) -> &'static [Self]ⓘNotable traits for &mut [u8]impl Write for &mut [u8]impl Read for &[u8]
Returns the children of any particular bone.
The slice is 'static
, which means the lifetime of the returned slice lives
for the entire duration of the program. This is because the parent/child
relationship of bones is known at compile-time.
pub fn iter() -> Map<RangeInclusive<u8>, fn(_: u8) -> BoneKind>
sourcepub fn calibration_rotation(self) -> Global<UnitQuat>
pub fn calibration_rotation(self) -> Global<UnitQuat>
Returns the initial calibration pose of the bone. Rotating the up vector by this rotation would cause it to point in the same target direction as the bone.
sourcepub fn calibration_rotation_local(self) -> Local<UnitQuat>
pub fn calibration_rotation_local(self) -> Local<UnitQuat>
Returns the initial calibration pose of the bone, as a rotation relative to the
parent bone. See also: Self::calibration_rotation
Trait Implementations
sourceimpl FromPrimitive for BoneKind
impl FromPrimitive for BoneKind
sourcefn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
i64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
u64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
isize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
i8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
i16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
i32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
i128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
usize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
u8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
u16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
u32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourcefn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
u128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moresourceimpl ToPrimitive for BoneKind
impl ToPrimitive for BoneKind
sourcefn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
self
to an i64
. If the value cannot be
represented by an i64
, then None
is returned. Read moresourcefn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
self
to a u64
. If the value cannot be
represented by a u64
, then None
is returned. Read moresourcefn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned. Read moresourcefn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned. Read moresourcefn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned. Read moresourcefn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned. Read moresourcefn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned. Read moresourcefn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned. Read moresourcefn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned. Read moresourcefn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned. Read moresourcefn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
self
to a u32
. If the value cannot be
represented by a u32
, then None
is returned. Read moresourcefn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
self
to a u128
. If the value cannot be
represented by a u128
(u64
under the default implementation), then
None
is returned. Read moreimpl Copy for BoneKind
impl Eq for BoneKind
impl StructuralEq for BoneKind
impl StructuralPartialEq for BoneKind
Auto Trait Implementations
impl RefUnwindSafe for BoneKind
impl Send for BoneKind
impl Sync for BoneKind
impl Unpin for BoneKind
impl UnwindSafe for BoneKind
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.