From 6dc7f94764bdbb502884bde0641f59f70d0f92b3 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 23 Mar 2025 14:47:16 +0100 Subject: seperate type parsing --- src/classes/mesh.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/classes') diff --git a/src/classes/mesh.rs b/src/classes/mesh.rs index 5a9c229..96e42c2 100644 --- a/src/classes/mesh.rs +++ b/src/classes/mesh.rs @@ -152,13 +152,17 @@ impl VertexData { if channel.dimension == 0 { return None; } + let dim = channel.dimension as usize % 48; let component_offset = channel.offset as usize; let component_size = channel.format.component_size(); let (offset, stride) = self.stream_layout()[channel.stream as usize]; - debug!("reading {ch:?} vertex channel (stride={stride}, offset={offset})"); + debug!( + "reading {ch:?} vertex channel (stride={stride}, offset={offset}, format={:?})", + channel.format + ); let mut out = Vec::new(); for vi in 0..self.vertex_count as usize { - for di in 0..channel.dimension as usize { + for di in 0..dim { let off = offset + vi * stride + component_offset + component_size * di; let e = &self.data[off..]; out.push(match channel.format { @@ -177,7 +181,7 @@ impl VertexData { }) } } - Some((channel.dimension as usize, out)) + Some((dim, out)) } pub fn read_channel_vec( &self, -- cgit v1.2.3-70-g09d2