From 87015a4abcd45d6c69b289467c9e37426e1f0930 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 5 Jun 2026 21:47:17 +0200 Subject: feat(engine): add fns for changing mesh data --- engine/src/mesh.rs | 14 ++++++++++++++ engine/src/mesh/vertex_buffer.rs | 5 +++++ 2 files changed, 19 insertions(+) (limited to 'engine/src') diff --git a/engine/src/mesh.rs b/engine/src/mesh.rs index a223f60..9aa1f80 100644 --- a/engine/src/mesh.rs +++ b/engine/src/mesh.rs @@ -26,6 +26,11 @@ impl Mesh &self.vertex_buf } + pub fn vertex_buf_mut(&mut self) -> &mut vertex_buffer::VertexBuffer + { + &mut self.vertex_buf + } + #[must_use] pub fn indices(&self) -> Option<&[u32]> { @@ -38,6 +43,15 @@ impl Mesh self.indices.as_deref_mut() } + pub fn set_indices(&mut self, indices: impl IntoIterator) + { + let curr_indices = self.indices.get_or_insert_with(|| Vec::new()); + + curr_indices.clear(); + + curr_indices.extend(indices.into_iter()); + } + /// Finds the vertex positions that are furthest in every 3D direction. Keep in mind /// that this can be quite time-expensive if the mesh has many vertices. pub fn find_furthest_vertex_positions(&self) -> DirectionPositions diff --git a/engine/src/mesh/vertex_buffer.rs b/engine/src/mesh/vertex_buffer.rs index 3e3c467..9d77270 100644 --- a/engine/src/mesh/vertex_buffer.rs +++ b/engine/src/mesh/vertex_buffer.rs @@ -163,6 +163,11 @@ impl VertexBuffer &self.buf } + pub fn clear(&mut self) + { + self.buf.clear(); + } + pub fn iter( &self, vertex_attr_name: &str, -- cgit v1.2.3-18-g5258