Enum ssbh_lib::formats::skel::Skel

source ·
pub enum Skel {
    V10 {
        bone_entries: SsbhArray<SkelBoneEntry>,
        world_transforms: SsbhArray<Matrix4x4>,
        inv_world_transforms: SsbhArray<Matrix4x4>,
        transforms: SsbhArray<Matrix4x4>,
        inv_transforms: SsbhArray<Matrix4x4>,
    },
}
Expand description

An ordered, hierarchical collection of bones and their associated transforms. Each bone entry has transformation matrices stored at the corresponding locations in the transform arrays. The transforms array can be used to calculate the remaining arrays. Compatible with file version 1.0.

Variants§

§

V10

Fields

§bone_entries: SsbhArray<SkelBoneEntry>

A skeleton consisting of an ordered hierarchy of bones.

§world_transforms: SsbhArray<Matrix4x4>

The transformation in world space for each bone in bone_entries. The world space transform for a bone is calculated by accumulating the transformations in transforms with the transformation of the bone’s parent recursively.

§inv_world_transforms: SsbhArray<Matrix4x4>

The inverses of the matrices in world_transforms.

§transforms: SsbhArray<Matrix4x4>

The associated transformation for each of the bones in bone_entries relative to its parent’s world transform. If the bone has no parent, this is equivalent to the corresponding value in world_transforms.

§inv_transforms: SsbhArray<Matrix4x4>

The inverses of the matrices in transforms.

Implementations§

source§

impl Skel

source

pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self, ReadSsbhError>

Tries to read the current SSBH type from path. The entire file is buffered for performance.

source

pub fn read<R: Read + Seek>(reader: &mut R) -> Result<Self, ReadSsbhError>

Tries to read the current SSBH type from reader. For best performance when opening from a file, use from_file instead.

source

pub fn write<W: Write + Seek>(&self, writer: &mut W) -> Result<()>

Tries to write the SSBH type to writer. For best performance when writing to a file, use write_to_file instead.

source

pub fn write_to_file<P: AsRef<Path>>(&self, path: P) -> Result<()>

Tries to write the current SSBH type to path. The entire file is buffered for performance.

Trait Implementations§

source§

impl BinRead for Skel

§

type Args<'__binrw_generated_args_lifetime> = (u16, u16)

The type used for the args parameter of read_args() and read_options(). Read more
source§

fn read_options<R: Read + Seek>( __binrw_generated_var_reader: &mut R, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_> ) -> BinResult<Self>

Read Self from the reader using the given Endian and arguments. Read more
source§

fn read_be<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self::Args<'a>: for<'a> Required,

Read Self from the reader using default arguments and assuming big-endian byte order. Read more
source§

fn read_le<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self::Args<'a>: for<'a> Required,

Read Self from the reader using default arguments and assuming little-endian byte order. Read more
source§

fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self::Args<'a>: for<'a> Required,

Read T from the reader assuming native-endian byte order. Read more
source§

fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek,

Read Self from the reader, assuming big-endian byte order, using the given arguments. Read more
source§

fn read_le_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek,

Read Self from the reader, assuming little-endian byte order, using the given arguments. Read more
source§

fn read_ne_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek,

Read T from the reader, assuming native-endian byte order, using the given arguments. Read more
source§

impl Clone for Skel

source§

fn clone(&self) -> Skel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Skel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Skel

source§

fn eq(&self, other: &Skel) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl SsbhWrite for Skel

source§

fn ssbh_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Result<()>

Writes the byte representation of self to writer. data_ptr is assumed to be the absolute offset where the next data stored behind an offset will be written. Struct that contains no offsets as fields can skip updating data_ptr. Read more
source§

fn size_in_bytes(&self) -> u64

The offset in bytes between successive elements in an array of this type. This should include any alignment or padding.
source§

fn alignment_in_bytes() -> u64

The alignment for pointers of this type, which is useful for offset calculations.
source§

fn write<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write + Seek,

Writes the byte representation of self to writer. This is a convenience method for ssbh_write that handles initializing the data pointer.
source§

impl Version for Skel

source§

impl StructuralPartialEq for Skel

Auto Trait Implementations§

§

impl RefUnwindSafe for Skel

§

impl Send for Skel

§

impl Sync for Skel

§

impl Unpin for Skel

§

impl UnwindSafe for Skel

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.