From 467b66750ff73fed4e3bedbefb7336a48f671524 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Mon, 20 Jan 2025 19:32:09 +0100 Subject: [PATCH] Add `Face::translate` --- experiments/2024-12-09/src/topology/face.rs | 22 +++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/experiments/2024-12-09/src/topology/face.rs b/experiments/2024-12-09/src/topology/face.rs index 0a614d152..f354a6374 100644 --- a/experiments/2024-12-09/src/topology/face.rs +++ b/experiments/2024-12-09/src/topology/face.rs @@ -2,8 +2,8 @@ use spade::Triangulation; use crate::{ geometry::{AnyOp, Handle, Operation, Sketch, TriMesh, Triangle}, - math::{Plane, Point}, - storage::Store, + math::{Plane, Point, Vector}, + storage::{Store, Stores}, }; use super::Vertex; @@ -45,6 +45,24 @@ impl Face { vertices: self.vertices.clone(), } } + + #[allow(unused)] // code that uses it is being worked on + pub fn translate( + &self, + offset: impl Into>, + stores: &mut Stores, + ) -> Self { + let offset = offset.into(); + + Self { + surface: stores.get().insert(self.surface.translate(offset)), + vertices: self + .vertices + .iter() + .map(|vertex| stores.get().insert(vertex.translate(offset))) + .collect(), + } + } } impl Operation for Face {