pub struct MdlAnimMesh {
pub mesh: MdlMesh,
pub sample_period: f32,
pub anim_verts: Vec<[f32; 3]>,
pub anim_t_verts: Vec<[f32; 3]>,
pub data_ptr_1: u32,
pub data_count_1: u32,
pub padding_24: u32,
pub anim_vertices_ptr: u32,
pub anim_tex_vertices_ptr: u32,
pub anim_vertices_count: u32,
pub anim_tex_vertices_count: u32,
}Expand description
Animated mesh with per-frame vertex sets.
Extends MdlMesh with animated vertex positions and texture coordinates
that vary over time. The sample_period controls the animation playback rate.
Binary layout: 56 extra bytes (0x38) after the 332-byte TriMesh header.
Note: ResetAnim processes the extra data BEFORE calling ResetTriMeshParts
(reversed order vs other subtypes).
Verified via InputBinary::ResetAnim (0x004a0060) and Ghidra struct
MdlNodeAnimMesh (468 bytes total = 412 TriMesh + 56 extra).
See docs/notes/mdl_mdx.md §Mesh Subtype Structs.
Fields§
§mesh: MdlMeshThe base triangle mesh.
sample_period: f32Animation sampling period (f32). AnimMesh extra +0x00.
anim_verts: Vec<[f32; 3]>Animated vertex positions (Vector: x, y, z per entry).
Data pointed to by CExoArrayList at anim extra +0x04.
anim_t_verts: Vec<[f32; 3]>Animated texture coordinates (Vector: u, v, w per entry).
Data pointed to by CExoArrayList at anim extra +0x10.
data_ptr_1: u32Runtime data pointer 1 (u32, relocated if data_count_1 != 0). Extra +0x1C.
data_count_1: u32Size guard for data_ptr_1 (u32). Extra +0x20.
padding_24: u32Padding (u32). Extra +0x24.
anim_vertices_ptr: u32Runtime animated vertices pointer (u32). Extra +0x28.
anim_tex_vertices_ptr: u32Runtime animated texture vertices pointer (u32). Extra +0x2C.
anim_vertices_count: u32Count for anim_vertices_ptr (u32). Extra +0x30.
anim_tex_vertices_count: u32Count for anim_tex_vertices_ptr (u32). Extra +0x34.
Trait Implementations§
Source§impl Clone for MdlAnimMesh
impl Clone for MdlAnimMesh
Source§fn clone(&self) -> MdlAnimMesh
fn clone(&self) -> MdlAnimMesh
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more