pub struct Model { /* private fields */ }Expand description
MODL — Model root chunk (v23–v30, 784–868 bytes)
The root of all model data. Contains Ref<T> fields pointing to every sub-chunk in the file: skeleton, mesh, materials, particles, physics, etc. The preamble (bytes 0x000–0x0E3) is identical across all versions; version-dependent material and physics references follow at 0x0E4+.
Version history: - v23 (784 bytes): Base release layout - v24 (+ikCCD): 796 bytes - v25 (+volumeNoiseMaterials): 808 bytes - v26 (+stbMaterials): 820 bytes - v28 (+reflectionMaterials, +clothPhysics): 844 bytes - v29 (+lensFlareMaterials): 856 bytes - v30 (+dataDrivenMaterials): 868 bytes
Implementations§
Source§impl Model
impl Model
pub fn set_name(&mut self, value: &str)
Sourcepub fn flags(&self) -> ModelFlag
pub fn flags(&self) -> ModelFlag
Not None: only 21 of the corpus’s 56,146 models leave this at zero. These three are latches saying “this work is already done, do not redo it”, and the converter does all three – it sorts every STC_’s animIds, states kAnimRefBound on every bound AnimRef, and derives every BONE.flags from those (m3_anim::SolveBoneAnimFlags). The rest of the shipped bits are left clear so the editor recomputes them. A parsed or restored model overwrites this wholesale.
pub fn set_flags(&mut self, value: ModelFlag)
Sourcepub fn sequences_len(&self) -> usize
pub fn sequences_len(&self) -> usize
Animation sequences (SEQS)
Sourcepub fn sequences(&self, index: usize) -> Option<Ref<'_, Sequence>>
pub fn sequences(&self, index: usize) -> Option<Ref<'_, Sequence>>
Borrows element index in place. None when out of range.
pub fn sequences_mut(&mut self, index: usize) -> Option<RefMut<'_, Sequence>>
Sourcepub fn sequences_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Sequence>>
pub fn sequences_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Sequence>>
Iterate the elements, borrowing each in turn.
pub fn resize_sequences(&mut self, count: usize)
Sourcepub fn sub_track_collections_len(&self) -> usize
pub fn sub_track_collections_len(&self) -> usize
Sub-track containers (STC_) with keyframe refs
Sourcepub fn sub_track_collections(
&self,
index: usize,
) -> Option<Ref<'_, SubTrackContainer>>
pub fn sub_track_collections( &self, index: usize, ) -> Option<Ref<'_, SubTrackContainer>>
Borrows element index in place. None when out of range.
pub fn sub_track_collections_mut( &mut self, index: usize, ) -> Option<RefMut<'_, SubTrackContainer>>
Sourcepub fn sub_track_collections_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, SubTrackContainer>>
pub fn sub_track_collections_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, SubTrackContainer>>
Iterate the elements, borrowing each in turn.
pub fn resize_sub_track_collections(&mut self, count: usize)
Sourcepub fn animation_groups_len(&self) -> usize
pub fn animation_groups_len(&self) -> usize
Animation groups (STG_)
Sourcepub fn animation_groups(&self, index: usize) -> Option<Ref<'_, AnimationGroup>>
pub fn animation_groups(&self, index: usize) -> Option<Ref<'_, AnimationGroup>>
Borrows element index in place. None when out of range.
pub fn animation_groups_mut( &mut self, index: usize, ) -> Option<RefMut<'_, AnimationGroup>>
Sourcepub fn animation_groups_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, AnimationGroup>>
pub fn animation_groups_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, AnimationGroup>>
Iterate the elements, borrowing each in turn.
pub fn resize_animation_groups(&mut self, count: usize)
Sourcepub fn bone_animation_sets_len(&self) -> usize
pub fn bone_animation_sets_len(&self) -> usize
Bone animation sets (BSET, always null)
Sourcepub fn bone_animation_sets(
&self,
index: usize,
) -> Option<Ref<'_, BoneAnimationSet>>
pub fn bone_animation_sets( &self, index: usize, ) -> Option<Ref<'_, BoneAnimationSet>>
Borrows element index in place. None when out of range.
pub fn bone_animation_sets_mut( &mut self, index: usize, ) -> Option<RefMut<'_, BoneAnimationSet>>
Sourcepub fn bone_animation_sets_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, BoneAnimationSet>>
pub fn bone_animation_sets_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, BoneAnimationSet>>
Iterate the elements, borrowing each in turn.
pub fn resize_bone_animation_sets(&mut self, count: usize)
Sourcepub fn animation_split_count(&self) -> u32
pub fn animation_split_count(&self) -> u32
Always 0
pub fn set_animation_split_count(&mut self, value: u32)
Sourcepub fn animation_states_len(&self) -> usize
pub fn animation_states_len(&self) -> usize
Animation states (STS_)
Sourcepub fn animation_states(&self, index: usize) -> Option<Ref<'_, AnimationState>>
pub fn animation_states(&self, index: usize) -> Option<Ref<'_, AnimationState>>
Borrows element index in place. None when out of range.
pub fn animation_states_mut( &mut self, index: usize, ) -> Option<RefMut<'_, AnimationState>>
Sourcepub fn animation_states_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, AnimationState>>
pub fn animation_states_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, AnimationState>>
Iterate the elements, borrowing each in turn.
pub fn resize_animation_states(&mut self, count: usize)
Sourcepub fn bones(&self, index: usize) -> Option<Ref<'_, Bone>>
pub fn bones(&self, index: usize) -> Option<Ref<'_, Bone>>
Borrows element index in place. None when out of range.
pub fn bones_mut(&mut self, index: usize) -> Option<RefMut<'_, Bone>>
Sourcepub fn bones_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Bone>>
pub fn bones_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Bone>>
Iterate the elements, borrowing each in turn.
pub fn resize_bones(&mut self, count: usize)
Sourcepub fn skin_bone_count(&self) -> u32
pub fn skin_bone_count(&self) -> u32
Number of bones affecting skin
pub fn set_skin_bone_count(&mut self, value: u32)
Sourcepub fn divisions_len(&self) -> usize
pub fn divisions_len(&self) -> usize
Mesh divisions (DIV_: faces, regions, batches)
Sourcepub fn divisions(&self, index: usize) -> Option<Ref<'_, MeshDivision>>
pub fn divisions(&self, index: usize) -> Option<Ref<'_, MeshDivision>>
Borrows element index in place. None when out of range.
pub fn divisions_mut( &mut self, index: usize, ) -> Option<RefMut<'_, MeshDivision>>
Sourcepub fn divisions_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, MeshDivision>>
pub fn divisions_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, MeshDivision>>
Iterate the elements, borrowing each in turn.
pub fn resize_divisions(&mut self, count: usize)
Sourcepub fn bone_lookup(&self) -> &[u16]
pub fn bone_lookup(&self) -> &[u16]
Bone index remap table (U16_)
Zero-copy view of the underlying std::vector.
Sourcepub fn bone_lookup_mut(&mut self) -> &mut [u16]
pub fn bone_lookup_mut(&mut self) -> &mut [u16]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_bone_lookup(&mut self, values: &[u16])
pub fn resize_bone_lookup(&mut self, count: usize)
Sourcepub fn bounds(&self) -> Ref<'_, Extent>
pub fn bounds(&self) -> Ref<'_, Extent>
Model bounding volume Borrows the field in place — no copy, no allocation.
pub fn bounds_mut(&mut self) -> RefMut<'_, Extent>
Sourcepub fn collision_bounds(&self) -> Ref<'_, Extent>
pub fn collision_bounds(&self) -> Ref<'_, Extent>
Collision bounding volume Borrows the field in place — no copy, no allocation.
pub fn collision_bounds_mut(&mut self) -> RefMut<'_, Extent>
Sourcepub fn collision_faces(&self) -> &[u16]
pub fn collision_faces(&self) -> &[u16]
Collision triangle indices (U16_)
Zero-copy view of the underlying std::vector.
Sourcepub fn collision_faces_mut(&mut self) -> &mut [u16]
pub fn collision_faces_mut(&mut self) -> &mut [u16]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_collision_faces(&mut self, values: &[u16])
pub fn resize_collision_faces(&mut self, count: usize)
Sourcepub fn collision_verts(&self) -> &[Vector3f]
pub fn collision_verts(&self) -> &[Vector3f]
Collision vertex positions (VEC3)
Zero-copy view of the underlying std::vector.
Sourcepub fn collision_verts_mut(&mut self) -> &mut [Vector3f]
pub fn collision_verts_mut(&mut self) -> &mut [Vector3f]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_collision_verts(&mut self, values: &[Vector3f])
pub fn resize_collision_verts(&mut self, count: usize)
Sourcepub fn collision_normals(&self) -> &[Vector3f]
pub fn collision_normals(&self) -> &[Vector3f]
Collision face normals (VEC3)
Zero-copy view of the underlying std::vector.
Sourcepub fn collision_normals_mut(&mut self) -> &mut [Vector3f]
pub fn collision_normals_mut(&mut self) -> &mut [Vector3f]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_collision_normals(&mut self, values: &[Vector3f])
pub fn resize_collision_normals(&mut self, count: usize)
Sourcepub fn attachment_points_len(&self) -> usize
pub fn attachment_points_len(&self) -> usize
Named bone locations (ATT_)
Sourcepub fn attachment_points(
&self,
index: usize,
) -> Option<Ref<'_, AttachmentPoint>>
pub fn attachment_points( &self, index: usize, ) -> Option<Ref<'_, AttachmentPoint>>
Borrows element index in place. None when out of range.
pub fn attachment_points_mut( &mut self, index: usize, ) -> Option<RefMut<'_, AttachmentPoint>>
Sourcepub fn attachment_points_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, AttachmentPoint>>
pub fn attachment_points_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, AttachmentPoint>>
Iterate the elements, borrowing each in turn.
pub fn resize_attachment_points(&mut self, count: usize)
Sourcepub fn attachment_point_addons(&self) -> &[u16]
pub fn attachment_point_addons(&self) -> &[u16]
Attachment point addon indices (U16_)
Zero-copy view of the underlying std::vector.
Sourcepub fn attachment_point_addons_mut(&mut self) -> &mut [u16]
pub fn attachment_point_addons_mut(&mut self) -> &mut [u16]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_attachment_point_addons(&mut self, values: &[u16])
pub fn resize_attachment_point_addons(&mut self, count: usize)
Sourcepub fn lights_len(&self) -> usize
pub fn lights_len(&self) -> usize
Lights (LITE)
Sourcepub fn lights(&self, index: usize) -> Option<Ref<'_, Light>>
pub fn lights(&self, index: usize) -> Option<Ref<'_, Light>>
Borrows element index in place. None when out of range.
pub fn lights_mut(&mut self, index: usize) -> Option<RefMut<'_, Light>>
Sourcepub fn lights_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Light>>
pub fn lights_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Light>>
Iterate the elements, borrowing each in turn.
pub fn resize_lights(&mut self, count: usize)
Sourcepub fn shadow_boxes_len(&self) -> usize
pub fn shadow_boxes_len(&self) -> usize
Shadow boxes (SHBX)
Sourcepub fn shadow_boxes(&self, index: usize) -> Option<Ref<'_, ShadowBox>>
pub fn shadow_boxes(&self, index: usize) -> Option<Ref<'_, ShadowBox>>
Borrows element index in place. None when out of range.
pub fn shadow_boxes_mut( &mut self, index: usize, ) -> Option<RefMut<'_, ShadowBox>>
Sourcepub fn shadow_boxes_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, ShadowBox>>
pub fn shadow_boxes_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, ShadowBox>>
Iterate the elements, borrowing each in turn.
pub fn resize_shadow_boxes(&mut self, count: usize)
Sourcepub fn cameras_len(&self) -> usize
pub fn cameras_len(&self) -> usize
Cameras (CAM_)
Sourcepub fn cameras(&self, index: usize) -> Option<Ref<'_, Camera>>
pub fn cameras(&self, index: usize) -> Option<Ref<'_, Camera>>
Borrows element index in place. None when out of range.
pub fn cameras_mut(&mut self, index: usize) -> Option<RefMut<'_, Camera>>
Sourcepub fn cameras_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Camera>>
pub fn cameras_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Camera>>
Iterate the elements, borrowing each in turn.
pub fn resize_cameras(&mut self, count: usize)
Sourcepub fn cameras_addons(&self) -> &[u16]
pub fn cameras_addons(&self) -> &[u16]
Camera addon indices (U16_)
Zero-copy view of the underlying std::vector.
Sourcepub fn cameras_addons_mut(&mut self) -> &mut [u16]
pub fn cameras_addons_mut(&mut self) -> &mut [u16]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_cameras_addons(&mut self, values: &[u16])
pub fn resize_cameras_addons(&mut self, count: usize)
Sourcepub fn material_maps_len(&self) -> usize
pub fn material_maps_len(&self) -> usize
Material type+index maps (MATM)
Sourcepub fn material_maps(&self, index: usize) -> Option<Ref<'_, MaterialMap>>
pub fn material_maps(&self, index: usize) -> Option<Ref<'_, MaterialMap>>
Borrows element index in place. None when out of range.
pub fn material_maps_mut( &mut self, index: usize, ) -> Option<RefMut<'_, MaterialMap>>
Sourcepub fn material_maps_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, MaterialMap>>
pub fn material_maps_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, MaterialMap>>
Iterate the elements, borrowing each in turn.
pub fn resize_material_maps(&mut self, count: usize)
Sourcepub fn standard_materials_len(&self) -> usize
pub fn standard_materials_len(&self) -> usize
Standard materials (MAT_)
Sourcepub fn standard_materials(
&self,
index: usize,
) -> Option<Ref<'_, StandardMaterial>>
pub fn standard_materials( &self, index: usize, ) -> Option<Ref<'_, StandardMaterial>>
Borrows element index in place. None when out of range.
pub fn standard_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, StandardMaterial>>
Sourcepub fn standard_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, StandardMaterial>>
pub fn standard_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, StandardMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_standard_materials(&mut self, count: usize)
Sourcepub fn displacement_materials_len(&self) -> usize
pub fn displacement_materials_len(&self) -> usize
Displacement materials (DIS_)
Sourcepub fn displacement_materials(
&self,
index: usize,
) -> Option<Ref<'_, DisplacementMaterial>>
pub fn displacement_materials( &self, index: usize, ) -> Option<Ref<'_, DisplacementMaterial>>
Borrows element index in place. None when out of range.
pub fn displacement_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, DisplacementMaterial>>
Sourcepub fn displacement_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, DisplacementMaterial>>
pub fn displacement_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, DisplacementMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_displacement_materials(&mut self, count: usize)
Sourcepub fn composite_materials_len(&self) -> usize
pub fn composite_materials_len(&self) -> usize
Composite materials (CMP_)
Sourcepub fn composite_materials(
&self,
index: usize,
) -> Option<Ref<'_, CompositeMaterial>>
pub fn composite_materials( &self, index: usize, ) -> Option<Ref<'_, CompositeMaterial>>
Borrows element index in place. None when out of range.
pub fn composite_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, CompositeMaterial>>
Sourcepub fn composite_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, CompositeMaterial>>
pub fn composite_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, CompositeMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_composite_materials(&mut self, count: usize)
Sourcepub fn terrain_materials_len(&self) -> usize
pub fn terrain_materials_len(&self) -> usize
Terrain materials (TER_)
Sourcepub fn terrain_materials(
&self,
index: usize,
) -> Option<Ref<'_, TerrainMaterial>>
pub fn terrain_materials( &self, index: usize, ) -> Option<Ref<'_, TerrainMaterial>>
Borrows element index in place. None when out of range.
pub fn terrain_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, TerrainMaterial>>
Sourcepub fn terrain_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, TerrainMaterial>>
pub fn terrain_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, TerrainMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_terrain_materials(&mut self, count: usize)
Sourcepub fn volume_materials_len(&self) -> usize
pub fn volume_materials_len(&self) -> usize
Volume materials (VOL_)
Sourcepub fn volume_materials(&self, index: usize) -> Option<Ref<'_, VolumeMaterial>>
pub fn volume_materials(&self, index: usize) -> Option<Ref<'_, VolumeMaterial>>
Borrows element index in place. None when out of range.
pub fn volume_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, VolumeMaterial>>
Sourcepub fn volume_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, VolumeMaterial>>
pub fn volume_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, VolumeMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_volume_materials(&mut self, count: usize)
Sourcepub fn hair_materials_len(&self) -> usize
pub fn hair_materials_len(&self) -> usize
Hair materials (HAI_, defunct — always null)
Sourcepub fn hair_materials(&self, index: usize) -> Option<Ref<'_, HairMaterial>>
pub fn hair_materials(&self, index: usize) -> Option<Ref<'_, HairMaterial>>
Borrows element index in place. None when out of range.
pub fn hair_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, HairMaterial>>
Sourcepub fn hair_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, HairMaterial>>
pub fn hair_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, HairMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_hair_materials(&mut self, count: usize)
Sourcepub fn creep_materials_len(&self) -> usize
pub fn creep_materials_len(&self) -> usize
Creep materials (CREP)
Sourcepub fn creep_materials(&self, index: usize) -> Option<Ref<'_, CreepMaterial>>
pub fn creep_materials(&self, index: usize) -> Option<Ref<'_, CreepMaterial>>
Borrows element index in place. None when out of range.
pub fn creep_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, CreepMaterial>>
Sourcepub fn creep_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, CreepMaterial>>
pub fn creep_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, CreepMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_creep_materials(&mut self, count: usize)
Sourcepub fn volume_noise_materials_len(&self) -> usize
pub fn volume_noise_materials_len(&self) -> usize
Volume noise materials (VON_, v25+)
Sourcepub fn volume_noise_materials(
&self,
index: usize,
) -> Option<Ref<'_, VolumeNoiseMaterial>>
pub fn volume_noise_materials( &self, index: usize, ) -> Option<Ref<'_, VolumeNoiseMaterial>>
Borrows element index in place. None when out of range.
pub fn volume_noise_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, VolumeNoiseMaterial>>
Sourcepub fn volume_noise_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, VolumeNoiseMaterial>>
pub fn volume_noise_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, VolumeNoiseMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_volume_noise_materials(&mut self, count: usize)
Sourcepub fn stb_materials_len(&self) -> usize
pub fn stb_materials_len(&self) -> usize
Splat terrain bake materials (STBM, v26+)
Sourcepub fn stb_materials(&self, index: usize) -> Option<Ref<'_, STBMaterial>>
pub fn stb_materials(&self, index: usize) -> Option<Ref<'_, STBMaterial>>
Borrows element index in place. None when out of range.
pub fn stb_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, STBMaterial>>
Sourcepub fn stb_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, STBMaterial>>
pub fn stb_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, STBMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_stb_materials(&mut self, count: usize)
Sourcepub fn reflection_materials_len(&self) -> usize
pub fn reflection_materials_len(&self) -> usize
Reflection materials (REF_, v28+)
Sourcepub fn reflection_materials(
&self,
index: usize,
) -> Option<Ref<'_, ReflectionMaterial>>
pub fn reflection_materials( &self, index: usize, ) -> Option<Ref<'_, ReflectionMaterial>>
Borrows element index in place. None when out of range.
pub fn reflection_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, ReflectionMaterial>>
Sourcepub fn reflection_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, ReflectionMaterial>>
pub fn reflection_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, ReflectionMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_reflection_materials(&mut self, count: usize)
Sourcepub fn lens_flare_materials_len(&self) -> usize
pub fn lens_flare_materials_len(&self) -> usize
Lens flare materials (LFLR, v29+)
Sourcepub fn lens_flare_materials(&self, index: usize) -> Option<Ref<'_, LensFlare>>
pub fn lens_flare_materials(&self, index: usize) -> Option<Ref<'_, LensFlare>>
Borrows element index in place. None when out of range.
pub fn lens_flare_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, LensFlare>>
Sourcepub fn lens_flare_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, LensFlare>>
pub fn lens_flare_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, LensFlare>>
Iterate the elements, borrowing each in turn.
pub fn resize_lens_flare_materials(&mut self, count: usize)
Sourcepub fn data_driven_materials_len(&self) -> usize
pub fn data_driven_materials_len(&self) -> usize
Data-driven materials (MADD, v30+)
Sourcepub fn data_driven_materials(
&self,
index: usize,
) -> Option<Ref<'_, DataDrivenMaterial>>
pub fn data_driven_materials( &self, index: usize, ) -> Option<Ref<'_, DataDrivenMaterial>>
Borrows element index in place. None when out of range.
pub fn data_driven_materials_mut( &mut self, index: usize, ) -> Option<RefMut<'_, DataDrivenMaterial>>
Sourcepub fn data_driven_materials_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, DataDrivenMaterial>>
pub fn data_driven_materials_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, DataDrivenMaterial>>
Iterate the elements, borrowing each in turn.
pub fn resize_data_driven_materials(&mut self, count: usize)
Sourcepub fn particle_emitters_len(&self) -> usize
pub fn particle_emitters_len(&self) -> usize
Particle emitters (PAR_)
Sourcepub fn particle_emitters(
&self,
index: usize,
) -> Option<Ref<'_, ParticleEmitter>>
pub fn particle_emitters( &self, index: usize, ) -> Option<Ref<'_, ParticleEmitter>>
Borrows element index in place. None when out of range.
pub fn particle_emitters_mut( &mut self, index: usize, ) -> Option<RefMut<'_, ParticleEmitter>>
Sourcepub fn particle_emitters_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, ParticleEmitter>>
pub fn particle_emitters_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, ParticleEmitter>>
Iterate the elements, borrowing each in turn.
pub fn resize_particle_emitters(&mut self, count: usize)
Sourcepub fn particle_emitter_copies_len(&self) -> usize
pub fn particle_emitter_copies_len(&self) -> usize
Particle emitter copies (PARC)
Sourcepub fn particle_emitter_copies(
&self,
index: usize,
) -> Option<Ref<'_, ParticleEmitterCopy>>
pub fn particle_emitter_copies( &self, index: usize, ) -> Option<Ref<'_, ParticleEmitterCopy>>
Borrows element index in place. None when out of range.
pub fn particle_emitter_copies_mut( &mut self, index: usize, ) -> Option<RefMut<'_, ParticleEmitterCopy>>
Sourcepub fn particle_emitter_copies_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, ParticleEmitterCopy>>
pub fn particle_emitter_copies_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, ParticleEmitterCopy>>
Iterate the elements, borrowing each in turn.
pub fn resize_particle_emitter_copies(&mut self, count: usize)
Sourcepub fn ribbon_emitters_len(&self) -> usize
pub fn ribbon_emitters_len(&self) -> usize
Ribbon emitters (RIB_)
Sourcepub fn ribbon_emitters(&self, index: usize) -> Option<Ref<'_, RibbonEmitter>>
pub fn ribbon_emitters(&self, index: usize) -> Option<Ref<'_, RibbonEmitter>>
Borrows element index in place. None when out of range.
pub fn ribbon_emitters_mut( &mut self, index: usize, ) -> Option<RefMut<'_, RibbonEmitter>>
Sourcepub fn ribbon_emitters_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, RibbonEmitter>>
pub fn ribbon_emitters_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, RibbonEmitter>>
Iterate the elements, borrowing each in turn.
pub fn resize_ribbon_emitters(&mut self, count: usize)
Sourcepub fn projections_len(&self) -> usize
pub fn projections_len(&self) -> usize
Projectors / decals (PROJ)
Sourcepub fn projections(&self, index: usize) -> Option<Ref<'_, Projector>>
pub fn projections(&self, index: usize) -> Option<Ref<'_, Projector>>
Borrows element index in place. None when out of range.
pub fn projections_mut(&mut self, index: usize) -> Option<RefMut<'_, Projector>>
Sourcepub fn projections_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, Projector>>
pub fn projections_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, Projector>>
Iterate the elements, borrowing each in turn.
pub fn resize_projections(&mut self, count: usize)
Sourcepub fn forces_len(&self) -> usize
pub fn forces_len(&self) -> usize
Forces (FOR_)
Sourcepub fn forces(&self, index: usize) -> Option<Ref<'_, Force>>
pub fn forces(&self, index: usize) -> Option<Ref<'_, Force>>
Borrows element index in place. None when out of range.
pub fn forces_mut(&mut self, index: usize) -> Option<RefMut<'_, Force>>
Sourcepub fn forces_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Force>>
pub fn forces_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Force>>
Iterate the elements, borrowing each in turn.
pub fn resize_forces(&mut self, count: usize)
Sourcepub fn warps(&self, index: usize) -> Option<Ref<'_, Warp>>
pub fn warps(&self, index: usize) -> Option<Ref<'_, Warp>>
Borrows element index in place. None when out of range.
pub fn warps_mut(&mut self, index: usize) -> Option<RefMut<'_, Warp>>
Sourcepub fn warps_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Warp>>
pub fn warps_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, Warp>>
Iterate the elements, borrowing each in turn.
pub fn resize_warps(&mut self, count: usize)
Sourcepub fn view_volumes_len(&self) -> usize
pub fn view_volumes_len(&self) -> usize
View volumes (VVOL)
Sourcepub fn view_volumes(&self, index: usize) -> Option<Ref<'_, ViewVolume>>
pub fn view_volumes(&self, index: usize) -> Option<Ref<'_, ViewVolume>>
Borrows element index in place. None when out of range.
pub fn view_volumes_mut( &mut self, index: usize, ) -> Option<RefMut<'_, ViewVolume>>
Sourcepub fn view_volumes_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, ViewVolume>>
pub fn view_volumes_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, ViewVolume>>
Iterate the elements, borrowing each in turn.
pub fn resize_view_volumes(&mut self, count: usize)
Sourcepub fn rigid_bodies_len(&self) -> usize
pub fn rigid_bodies_len(&self) -> usize
Rigid bodies (PHRB)
Sourcepub fn rigid_bodies(&self, index: usize) -> Option<Ref<'_, RigidBody>>
pub fn rigid_bodies(&self, index: usize) -> Option<Ref<'_, RigidBody>>
Borrows element index in place. None when out of range.
pub fn rigid_bodies_mut( &mut self, index: usize, ) -> Option<RefMut<'_, RigidBody>>
Sourcepub fn rigid_bodies_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, RigidBody>>
pub fn rigid_bodies_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, RigidBody>>
Iterate the elements, borrowing each in turn.
pub fn resize_rigid_bodies(&mut self, count: usize)
Sourcepub fn physics_constraints_len(&self) -> usize
pub fn physics_constraints_len(&self) -> usize
Physics constraints (PHCT)
Sourcepub fn physics_constraints(
&self,
index: usize,
) -> Option<Ref<'_, PhysicsConstraint>>
pub fn physics_constraints( &self, index: usize, ) -> Option<Ref<'_, PhysicsConstraint>>
Borrows element index in place. None when out of range.
pub fn physics_constraints_mut( &mut self, index: usize, ) -> Option<RefMut<'_, PhysicsConstraint>>
Sourcepub fn physics_constraints_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, PhysicsConstraint>>
pub fn physics_constraints_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, PhysicsConstraint>>
Iterate the elements, borrowing each in turn.
pub fn resize_physics_constraints(&mut self, count: usize)
Sourcepub fn physics_joints_len(&self) -> usize
pub fn physics_joints_len(&self) -> usize
Physics joints (PHYJ)
Sourcepub fn physics_joints(&self, index: usize) -> Option<Ref<'_, PhysicsJoint>>
pub fn physics_joints(&self, index: usize) -> Option<Ref<'_, PhysicsJoint>>
Borrows element index in place. None when out of range.
pub fn physics_joints_mut( &mut self, index: usize, ) -> Option<RefMut<'_, PhysicsJoint>>
Sourcepub fn physics_joints_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, PhysicsJoint>>
pub fn physics_joints_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, PhysicsJoint>>
Iterate the elements, borrowing each in turn.
pub fn resize_physics_joints(&mut self, count: usize)
Sourcepub fn cloth_physics_len(&self) -> usize
pub fn cloth_physics_len(&self) -> usize
Cloth physics (PHCL, v28+)
Sourcepub fn cloth_physics(&self, index: usize) -> Option<Ref<'_, ClothPhysics>>
pub fn cloth_physics(&self, index: usize) -> Option<Ref<'_, ClothPhysics>>
Borrows element index in place. None when out of range.
pub fn cloth_physics_mut( &mut self, index: usize, ) -> Option<RefMut<'_, ClothPhysics>>
Sourcepub fn cloth_physics_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, ClothPhysics>>
pub fn cloth_physics_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, ClothPhysics>>
Iterate the elements, borrowing each in turn.
pub fn resize_cloth_physics(&mut self, count: usize)
Sourcepub fn ik_two_joints_len(&self) -> usize
pub fn ik_two_joints_len(&self) -> usize
Two-joint IK solvers (IK2J)
Sourcepub fn ik_two_joints(&self, index: usize) -> Option<Ref<'_, IKTwoJoint>>
pub fn ik_two_joints(&self, index: usize) -> Option<Ref<'_, IKTwoJoint>>
Borrows element index in place. None when out of range.
pub fn ik_two_joints_mut( &mut self, index: usize, ) -> Option<RefMut<'_, IKTwoJoint>>
Sourcepub fn ik_two_joints_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, IKTwoJoint>>
pub fn ik_two_joints_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, IKTwoJoint>>
Iterate the elements, borrowing each in turn.
pub fn resize_ik_two_joints(&mut self, count: usize)
Sourcepub fn ik_ccd_len(&self) -> usize
pub fn ik_ccd_len(&self) -> usize
CCD IK solvers (IKCC, v24+)
Sourcepub fn ik_ccd(&self, index: usize) -> Option<Ref<'_, IKCCD>>
pub fn ik_ccd(&self, index: usize) -> Option<Ref<'_, IKCCD>>
Borrows element index in place. None when out of range.
pub fn ik_ccd_mut(&mut self, index: usize) -> Option<RefMut<'_, IKCCD>>
Sourcepub fn ik_ccd_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, IKCCD>>
pub fn ik_ccd_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, IKCCD>>
Iterate the elements, borrowing each in turn.
pub fn resize_ik_ccd(&mut self, count: usize)
Sourcepub fn ik_joints_len(&self) -> usize
pub fn ik_joints_len(&self) -> usize
IK joints (IKJT)
Sourcepub fn ik_joints(&self, index: usize) -> Option<Ref<'_, IKJoint>>
pub fn ik_joints(&self, index: usize) -> Option<Ref<'_, IKJoint>>
Borrows element index in place. None when out of range.
pub fn ik_joints_mut(&mut self, index: usize) -> Option<RefMut<'_, IKJoint>>
Sourcepub fn ik_joints_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, IKJoint>>
pub fn ik_joints_iter(&self) -> impl ExactSizeIterator<Item = Ref<'_, IKJoint>>
Iterate the elements, borrowing each in turn.
pub fn resize_ik_joints(&mut self, count: usize)
Sourcepub fn one_bone_solvers_len(&self) -> usize
pub fn one_bone_solvers_len(&self) -> usize
One-bone IK solvers (PAOB)
Sourcepub fn one_bone_solvers(&self, index: usize) -> Option<Ref<'_, OneBoneSolver>>
pub fn one_bone_solvers(&self, index: usize) -> Option<Ref<'_, OneBoneSolver>>
Borrows element index in place. None when out of range.
pub fn one_bone_solvers_mut( &mut self, index: usize, ) -> Option<RefMut<'_, OneBoneSolver>>
Sourcepub fn one_bone_solvers_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, OneBoneSolver>>
pub fn one_bone_solvers_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, OneBoneSolver>>
Iterate the elements, borrowing each in turn.
pub fn resize_one_bone_solvers(&mut self, count: usize)
Sourcepub fn turret_behaviors_len(&self) -> usize
pub fn turret_behaviors_len(&self) -> usize
Turret behaviors (PATU)
Sourcepub fn turret_behaviors(&self, index: usize) -> Option<Ref<'_, TurretBehavior>>
pub fn turret_behaviors(&self, index: usize) -> Option<Ref<'_, TurretBehavior>>
Borrows element index in place. None when out of range.
pub fn turret_behaviors_mut( &mut self, index: usize, ) -> Option<RefMut<'_, TurretBehavior>>
Sourcepub fn turret_behaviors_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, TurretBehavior>>
pub fn turret_behaviors_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, TurretBehavior>>
Iterate the elements, borrowing each in turn.
pub fn resize_turret_behaviors(&mut self, count: usize)
Sourcepub fn trigger_data_len(&self) -> usize
pub fn trigger_data_len(&self) -> usize
Trigger data (TRGD)
Sourcepub fn trigger_data(&self, index: usize) -> Option<Ref<'_, TriggerData>>
pub fn trigger_data(&self, index: usize) -> Option<Ref<'_, TriggerData>>
Borrows element index in place. None when out of range.
pub fn trigger_data_mut( &mut self, index: usize, ) -> Option<RefMut<'_, TriggerData>>
Sourcepub fn trigger_data_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, TriggerData>>
pub fn trigger_data_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, TriggerData>>
Iterate the elements, borrowing each in turn.
pub fn resize_trigger_data(&mut self, count: usize)
Sourcepub fn initial_reference_len(&self) -> usize
pub fn initial_reference_len(&self) -> usize
Inverse bind-pose matrices (IREF)
Sourcepub fn initial_reference(
&self,
index: usize,
) -> Option<Ref<'_, InitialReference>>
pub fn initial_reference( &self, index: usize, ) -> Option<Ref<'_, InitialReference>>
Borrows element index in place. None when out of range.
pub fn initial_reference_mut( &mut self, index: usize, ) -> Option<RefMut<'_, InitialReference>>
Sourcepub fn initial_reference_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, InitialReference>>
pub fn initial_reference_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, InitialReference>>
Iterate the elements, borrowing each in turn.
pub fn resize_initial_reference(&mut self, count: usize)
Sourcepub fn tight_hit_test_object(&self) -> Ref<'_, HitTestShape>
pub fn tight_hit_test_object(&self) -> Ref<'_, HitTestShape>
Tight hit-test shape (SSGS, inline) Borrows the field in place — no copy, no allocation.
pub fn tight_hit_test_object_mut(&mut self) -> RefMut<'_, HitTestShape>
Sourcepub fn fuzzy_hit_test_objects_len(&self) -> usize
pub fn fuzzy_hit_test_objects_len(&self) -> usize
Fuzzy hit-test shapes (SSGS)
Sourcepub fn fuzzy_hit_test_objects(
&self,
index: usize,
) -> Option<Ref<'_, HitTestShape>>
pub fn fuzzy_hit_test_objects( &self, index: usize, ) -> Option<Ref<'_, HitTestShape>>
Borrows element index in place. None when out of range.
pub fn fuzzy_hit_test_objects_mut( &mut self, index: usize, ) -> Option<RefMut<'_, HitTestShape>>
Sourcepub fn fuzzy_hit_test_objects_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, HitTestShape>>
pub fn fuzzy_hit_test_objects_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, HitTestShape>>
Iterate the elements, borrowing each in turn.
pub fn resize_fuzzy_hit_test_objects(&mut self, count: usize)
Sourcepub fn attachment_volumes_len(&self) -> usize
pub fn attachment_volumes_len(&self) -> usize
Attachment volumes (ATVL)
Sourcepub fn attachment_volumes(
&self,
index: usize,
) -> Option<Ref<'_, AttachmentVolume>>
pub fn attachment_volumes( &self, index: usize, ) -> Option<Ref<'_, AttachmentVolume>>
Borrows element index in place. None when out of range.
pub fn attachment_volumes_mut( &mut self, index: usize, ) -> Option<RefMut<'_, AttachmentVolume>>
Sourcepub fn attachment_volumes_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, AttachmentVolume>>
pub fn attachment_volumes_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, AttachmentVolume>>
Iterate the elements, borrowing each in turn.
pub fn resize_attachment_volumes(&mut self, count: usize)
Sourcepub fn attachment_volumes_addon_0(&self) -> &[u16]
pub fn attachment_volumes_addon_0(&self) -> &[u16]
Attachment volume addon 0 (U16_)
Zero-copy view of the underlying std::vector.
Sourcepub fn attachment_volumes_addon_0_mut(&mut self) -> &mut [u16]
pub fn attachment_volumes_addon_0_mut(&mut self) -> &mut [u16]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_attachment_volumes_addon_0(&mut self, values: &[u16])
pub fn resize_attachment_volumes_addon_0(&mut self, count: usize)
Sourcepub fn attachment_volumes_addon_1(&self) -> &[u16]
pub fn attachment_volumes_addon_1(&self) -> &[u16]
Attachment volume addon 1 (U16_)
Zero-copy view of the underlying std::vector.
Sourcepub fn attachment_volumes_addon_1_mut(&mut self) -> &mut [u16]
pub fn attachment_volumes_addon_1_mut(&mut self) -> &mut [u16]
Zero-copy mutable view. Resize first — the borrow forbids it after.
pub fn set_attachment_volumes_addon_1(&mut self, values: &[u16])
pub fn resize_attachment_volumes_addon_1(&mut self, count: usize)
Sourcepub fn billboard_behaviors_len(&self) -> usize
pub fn billboard_behaviors_len(&self) -> usize
Billboard behaviors (BBSC)
Sourcepub fn billboard_behaviors(
&self,
index: usize,
) -> Option<Ref<'_, BillboardBehavior>>
pub fn billboard_behaviors( &self, index: usize, ) -> Option<Ref<'_, BillboardBehavior>>
Borrows element index in place. None when out of range.
pub fn billboard_behaviors_mut( &mut self, index: usize, ) -> Option<RefMut<'_, BillboardBehavior>>
Sourcepub fn billboard_behaviors_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, BillboardBehavior>>
pub fn billboard_behaviors_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, BillboardBehavior>>
Iterate the elements, borrowing each in turn.
pub fn resize_billboard_behaviors(&mut self, count: usize)
Sourcepub fn trailing_models_len(&self) -> usize
pub fn trailing_models_len(&self) -> usize
Trailing models (TMD_, defunct)
Sourcepub fn trailing_models(&self, index: usize) -> Option<Ref<'_, TrailingModel>>
pub fn trailing_models(&self, index: usize) -> Option<Ref<'_, TrailingModel>>
Borrows element index in place. None when out of range.
pub fn trailing_models_mut( &mut self, index: usize, ) -> Option<RefMut<'_, TrailingModel>>
Sourcepub fn trailing_models_iter(
&self,
) -> impl ExactSizeIterator<Item = Ref<'_, TrailingModel>>
pub fn trailing_models_iter( &self, ) -> impl ExactSizeIterator<Item = Ref<'_, TrailingModel>>
Iterate the elements, borrowing each in turn.
pub fn resize_trailing_models(&mut self, count: usize)
Sourcepub fn m_3a_anim_hash(&self) -> u32
pub fn m_3a_anim_hash(&self) -> u32
Hash for .m3a animation file binding
pub fn set_m_3a_anim_hash(&mut self, value: u32)
Sourcepub fn m_3a_anim_hashes(&self) -> &[u32]
pub fn m_3a_anim_hashes(&self) -> &[u32]
Additional .m3a hashes (U32_)
Zero-copy view of the underlying std::vector.
Sourcepub fn m_3a_anim_hashes_mut(&mut self) -> &mut [u32]
pub fn m_3a_anim_hashes_mut(&mut self) -> &mut [u32]
Zero-copy mutable view. Resize first — the borrow forbids it after.