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
impl Skel
sourcepub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self, ReadSsbhError>
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.
sourcepub fn read<R: Read + Seek>(reader: &mut R) -> Result<Self, ReadSsbhError>
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.
Trait Implementations§
source§impl BinRead for Skel
impl BinRead for Skel
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>
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>
source§fn read_be<R>(reader: &mut R) -> Result<Self, Error>
fn read_be<R>(reader: &mut R) -> Result<Self, Error>
Self
from the reader using default arguments and assuming
big-endian byte order. Read moresource§fn read_le<R>(reader: &mut R) -> Result<Self, Error>
fn read_le<R>(reader: &mut R) -> Result<Self, Error>
Self
from the reader using default arguments and assuming
little-endian byte order. Read moresource§fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
T
from the reader assuming native-endian byte order. Read moresource§fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Self
from the reader, assuming big-endian byte order, using the
given arguments. Read moresource§impl PartialEq for Skel
impl PartialEq for Skel
source§impl SsbhWrite for Skel
impl SsbhWrite for Skel
source§fn ssbh_write<W: Write + Seek>(
&self,
writer: &mut W,
data_ptr: &mut u64
) -> Result<()>
fn ssbh_write<W: Write + Seek>( &self, writer: &mut W, data_ptr: &mut u64 ) -> Result<()>
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