From 85907727fe7316ce9dc0d3fb6df5b1c5478093d3 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Mon, 29 Apr 2024 14:59:10 +0200 Subject: [PATCH] Refactor to reduce redundancy --- .../fj-core/src/operations/build/half_edge.rs | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/crates/fj-core/src/operations/build/half_edge.rs b/crates/fj-core/src/operations/build/half_edge.rs index 3c26a0b24..37532c4fb 100644 --- a/crates/fj-core/src/operations/build/half_edge.rs +++ b/crates/fj-core/src/operations/build/half_edge.rs @@ -1,9 +1,11 @@ -use fj_interop::ext::ArrayExt; use fj_math::{Arc, Point, Scalar}; use crate::{ geometry::{CurveBoundary, HalfEdgeGeom, LocalCurveGeom, SurfacePath}, - operations::{geometry::UpdateHalfEdgeGeometry, insert::Insert}, + operations::{ + geometry::{UpdateCurveGeometry, UpdateHalfEdgeGeometry}, + insert::Insert, + }, storage::Handle, topology::{Curve, HalfEdge, Surface, Vertex}, Core, @@ -115,21 +117,26 @@ pub trait BuildHalfEdge { surface: Handle, core: &mut Core, ) -> Handle { - let boundary = boundary.unwrap_or_default(); - let path = SurfacePath::line_from_points_with_coords( - boundary.inner.zip_ext(points_surface), - ); - let half_edge = HalfEdge::unjoined(core).insert(core); - core.layers.geometry.define_curve( - half_edge.curve().clone(), - surface, - LocalCurveGeom { path }, + half_edge.curve().clone().make_line_on_surface( + points_surface, + boundary, + surface.clone(), + &mut core.layers.geometry, ); + core.layers.geometry.define_half_edge( half_edge.clone(), - HalfEdgeGeom { path, boundary }, + HalfEdgeGeom { + path: core + .layers + .geometry + .of_curve(half_edge.curve()) + .local_on(&surface) + .path, + boundary: boundary.unwrap_or_default(), + }, ); half_edge