Enum skeletal_model::BoneKind
source · [−]#[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.