pub enum Mesh {
V8(MeshInner<AttributeV8, SsbhArray<VertexWeightV8>>),
V9(MeshInner<AttributeV9, SsbhArray<VertexWeightV8>>),
V10(MeshInner<AttributeV10, SsbhByteBuffer>),
}
Expand description
The vertex buffers and associated geometric data for a mesh. Compatible with file version 1.8, 1.9, and 1.10.
Variants§
V8(MeshInner<AttributeV8, SsbhArray<VertexWeightV8>>)
Mesh version 1.8.
V9(MeshInner<AttributeV9, SsbhArray<VertexWeightV8>>)
Mesh version 1.9. Adds AttributeUsageV9::Binormal and names to vertex attributes.
V10(MeshInner<AttributeV10, SsbhByteBuffer>)
Mesh version 1.10. Adds AttributeDataTypeV10::HalfFloat2. Vertex indices for skin weights use u16 instead of u32.
Implementations§
source§impl Mesh
impl Mesh
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 Mesh
impl BinRead for Mesh
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>
Read
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>
Read
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>
Read
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>
Read
Self
from the reader, assuming big-endian byte order, using the
given arguments. Read moresource§impl PartialEq for Mesh
impl PartialEq for Mesh
source§impl SsbhWrite for Mesh
impl SsbhWrite for Mesh
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<()>
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 moresource§fn size_in_bytes(&self) -> u64
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
fn alignment_in_bytes() -> u64
The alignment for pointers of this type, which is useful for offset calculations.
impl StructuralPartialEq for Mesh
Auto Trait Implementations§
impl RefUnwindSafe for Mesh
impl Send for Mesh
impl Sync for Mesh
impl Unpin for Mesh
impl UnwindSafe for Mesh
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more