diff --git a/lib/rbx_loader/src/union.rs b/lib/rbx_loader/src/union.rs index b4b8131..1dd9d07 100644 --- a/lib/rbx_loader/src/union.rs +++ b/lib/rbx_loader/src/union.rs @@ -47,42 +47,42 @@ pub fn convert(roblox_physics_data:&[u8])->Result<model::Mesh,Error>{ let mut vertex_id_from=HashMap::new(); let mut acquire_pos_id=|pos|{ let p=vec3::try_from_f32_array(pos).map_err(Error::Planar64Vec3)?; - Ok(PositionId::new(*pos_id_from.entry(p).or_insert_with(||{ - let pos_id=unique_pos.len(); + Ok(*pos_id_from.entry(p).or_insert_with(||{ + let pos_id=PositionId::new(unique_pos.len() as u32); unique_pos.push(p); pos_id - }) as u32)) + })) }; let mut acquire_tex_id=|tex|{ let h=bytemuck::cast::<[f32;2],[u32;2]>(tex); - TextureCoordinateId::new(*tex_id_from.entry(h).or_insert_with(||{ - let tex_id=unique_tex.len(); + *tex_id_from.entry(h).or_insert_with(||{ + let tex_id=TextureCoordinateId::new(unique_tex.len() as u32); unique_tex.push(glam::Vec2::from_array(tex)); tex_id - }) as u32) + }) }; let mut acquire_normal_id=|normal|{ let n=vec3::try_from_f32_array(normal).map_err(Error::Planar64Vec3)?; - Ok(NormalId::new(*normal_id_from.entry(n).or_insert_with(||{ - let normal_id=unique_normal.len(); + Ok(*normal_id_from.entry(n).or_insert_with(||{ + let normal_id=NormalId::new(unique_normal.len() as u32); unique_normal.push(n); normal_id - }) as u32)) + })) }; let mut acquire_color_id=|color|{ let h=bytemuck::cast::<[f32;4],[u32;4]>(color); - ColorId::new(*color_id_from.entry(h).or_insert_with(||{ - let color_id=unique_color.len(); + *color_id_from.entry(h).or_insert_with(||{ + let color_id=ColorId::new(unique_color.len() as u32); unique_color.push(glam::Vec4::from_array(color)); color_id - }) as u32) + }) }; let mut acquire_vertex_id=|vertex:IndexedVertex|{ - VertexId::new(*vertex_id_from.entry(vertex.clone()).or_insert_with(||{ - let vertex_id=unique_vertices.len(); + *vertex_id_from.entry(vertex.clone()).or_insert_with(||{ + let vertex_id=VertexId::new(unique_vertices.len() as u32); unique_vertices.push(vertex); vertex_id - }) as u32) + }) }; let color=acquire_color_id([1.0f32;4]); let tex=acquire_tex_id([0.0f32;2]);