From 9ba7e0873e1f9fe14378021e87c5dc41e376bbc9 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Fri, 28 Feb 2025 20:48:34 +0100 Subject: [PATCH] Prepare to support curved surfaces --- experiments/2024-12-09/src/geometry/sketch.rs | 6 ++++-- experiments/2024-12-09/src/operations/connect.rs | 6 ++++-- experiments/2024-12-09/src/operations/flip.rs | 2 +- experiments/2024-12-09/src/operations/translate.rs | 2 +- experiments/2024-12-09/src/topology/face.rs | 5 ++--- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/experiments/2024-12-09/src/geometry/sketch.rs b/experiments/2024-12-09/src/geometry/sketch.rs index 7b84a30a1..ea3713fa2 100644 --- a/experiments/2024-12-09/src/geometry/sketch.rs +++ b/experiments/2024-12-09/src/geometry/sketch.rs @@ -5,7 +5,9 @@ use itertools::Itertools; use crate::{ math::{Plane, Point}, object::Handle, - topology::{face::Face, half_edge::HalfEdge, vertex::Vertex}, + topology::{ + face::Face, half_edge::HalfEdge, surface::Surface, vertex::Vertex, + }, }; pub struct Sketch { @@ -48,7 +50,7 @@ impl Sketch { }, ); - Face::new(surface, half_edges, false) + Face::new(Surface { geometry: surface }, half_edges, false) } } diff --git a/experiments/2024-12-09/src/operations/connect.rs b/experiments/2024-12-09/src/operations/connect.rs index 0ceb99e9d..0497201d1 100644 --- a/experiments/2024-12-09/src/operations/connect.rs +++ b/experiments/2024-12-09/src/operations/connect.rs @@ -1,7 +1,9 @@ use crate::{ math::Plane, object::Handle, - topology::{face::Face, half_edge::HalfEdge, solid::Solid}, + topology::{ + face::Face, half_edge::HalfEdge, solid::Solid, surface::Surface, + }, }; pub trait ConnectExt { @@ -54,7 +56,7 @@ impl ConnectExt for Handle { [&q.start, r, s].map(|vertex| vertex.point), ); let face = Face::new( - surface, + Surface { geometry: surface }, [&q.start, r, s, &t.start].map(|vertex| { Handle::new(HalfEdge { start: vertex.clone(), diff --git a/experiments/2024-12-09/src/operations/flip.rs b/experiments/2024-12-09/src/operations/flip.rs index 191e88d88..0fa8e96f2 100644 --- a/experiments/2024-12-09/src/operations/flip.rs +++ b/experiments/2024-12-09/src/operations/flip.rs @@ -7,7 +7,7 @@ pub trait FlipExt { impl FlipExt for Face { fn flip(&self) -> Self { Face::new( - self.surface.flip().geometry, + self.surface.flip(), self.half_edges.clone(), self.is_internal, ) diff --git a/experiments/2024-12-09/src/operations/translate.rs b/experiments/2024-12-09/src/operations/translate.rs index 9aa4402cd..8dc899759 100644 --- a/experiments/2024-12-09/src/operations/translate.rs +++ b/experiments/2024-12-09/src/operations/translate.rs @@ -15,7 +15,7 @@ impl TranslateExt for Face { let offset = offset.into(); Face::new( - self.surface.translate(offset).geometry, + self.surface.translate(offset), self.half_edges .iter() .map(|half_edge| Handle::new(half_edge.translate(offset))), diff --git a/experiments/2024-12-09/src/topology/face.rs b/experiments/2024-12-09/src/topology/face.rs index 48c4f4719..65d5362ee 100644 --- a/experiments/2024-12-09/src/topology/face.rs +++ b/experiments/2024-12-09/src/topology/face.rs @@ -5,7 +5,6 @@ use itertools::Itertools; use crate::{ extra::triangulate::triangulate, geometry::TriMesh, - math::Plane, object::{Handle, HandleAny, Object}, }; @@ -20,12 +19,12 @@ pub struct Face { impl Face { pub fn new( - surface: Plane, + surface: Surface, half_edges: impl IntoIterator>, is_internal: bool, ) -> Self { Self { - surface: Surface { geometry: surface }, + surface, half_edges: half_edges.into_iter().collect(), is_internal, }