From 92ab896339692c7dab300ad4d11a94fa03ee3ef4 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 4 Feb 2025 21:47:27 +0100 Subject: check joint length consistency --- world/src/mesh.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/world/src/mesh.rs b/world/src/mesh.rs index b0b55b7..96976ce 100644 --- a/world/src/mesh.rs +++ b/world/src/mesh.rs @@ -17,7 +17,7 @@ use crate::{Args, TextureCache, load_texture}; use anyhow::Result; use gltf::{Mesh, Node, buffer::Data}; -use log::{debug, info}; +use log::{debug, info, warn}; use std::path::Path; use weareshared::{ Affine3A, Vec3A, @@ -46,11 +46,13 @@ pub fn import_mesh( } let reader = p.reader(|buf| Some(&buffers[buf.index()])); + let mut num_vertex = 0; let va_position = reader .read_positions() .map(|iter| { let a = iter.map(|[x, y, z]| vec3a(x, y, z)).collect::>(); debug!("{} vertex positions", a.len()); + num_vertex = a.len(); store.set(&a) }) .transpose()?; @@ -81,6 +83,9 @@ pub fn import_mesh( .map(|iter| { let a = iter.into_u16().collect::>(); debug!("{} vertex joint indecies", a.len()); + if a.len() != num_vertex { + warn!("joint index count does not vertex count") + } store.set(&a) }) .transpose()?; @@ -90,6 +95,9 @@ pub fn import_mesh( .map(|iter| { let a = iter.into_f32().collect::>(); debug!("{} vertex joint weights", a.len()); + if a.len() != num_vertex { + warn!("joint weight count does not vertex count") + } store.set(&a) }) .transpose()?; -- cgit v1.2.3-70-g09d2