Refactor to reduce redundancy

This commit is contained in:
Hanno Braun 2024-04-29 14:59:10 +02:00
parent 0904651d6c
commit 85907727fe

View File

@ -1,9 +1,11 @@
use fj_interop::ext::ArrayExt;
use fj_math::{Arc, Point, Scalar}; use fj_math::{Arc, Point, Scalar};
use crate::{ use crate::{
geometry::{CurveBoundary, HalfEdgeGeom, LocalCurveGeom, SurfacePath}, geometry::{CurveBoundary, HalfEdgeGeom, LocalCurveGeom, SurfacePath},
operations::{geometry::UpdateHalfEdgeGeometry, insert::Insert}, operations::{
geometry::{UpdateCurveGeometry, UpdateHalfEdgeGeometry},
insert::Insert,
},
storage::Handle, storage::Handle,
topology::{Curve, HalfEdge, Surface, Vertex}, topology::{Curve, HalfEdge, Surface, Vertex},
Core, Core,
@ -115,21 +117,26 @@ pub trait BuildHalfEdge {
surface: Handle<Surface>, surface: Handle<Surface>,
core: &mut Core, core: &mut Core,
) -> Handle<HalfEdge> { ) -> Handle<HalfEdge> {
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); let half_edge = HalfEdge::unjoined(core).insert(core);
core.layers.geometry.define_curve( half_edge.curve().clone().make_line_on_surface(
half_edge.curve().clone(), points_surface,
surface, boundary,
LocalCurveGeom { path }, surface.clone(),
&mut core.layers.geometry,
); );
core.layers.geometry.define_half_edge( core.layers.geometry.define_half_edge(
half_edge.clone(), 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 half_edge