Set curve geometry in BuildShell method

This commit is contained in:
Hanno Braun 2024-04-29 15:48:28 +02:00
parent e032ab1bc7
commit b29d7312a9

View File

@ -4,10 +4,10 @@ use fj_interop::ext::ArrayExt;
use fj_math::Point; use fj_math::Point;
use crate::{ use crate::{
geometry::CurveBoundary, geometry::{CurveBoundary, HalfEdgeGeom},
operations::{ operations::{
build::{BuildFace, BuildHalfEdge, BuildSurface, Polygon}, build::{BuildFace, BuildHalfEdge, BuildSurface, Polygon},
geometry::UpdateHalfEdgeGeometry, geometry::{UpdateCurveGeometry, UpdateHalfEdgeGeometry},
insert::{Insert, IsInserted, IsInsertedNo, IsInsertedYes}, insert::{Insert, IsInserted, IsInsertedNo, IsInsertedYes},
join::JoinCycle, join::JoinCycle,
reverse::ReverseCurveCoordinateSystems, reverse::ReverseCurveCoordinateSystems,
@ -90,21 +90,27 @@ pub trait BuildShell {
.map(|((vertex, positions), (curve, boundary))| { .map(|((vertex, positions), (curve, boundary))| {
let boundary = boundary.reverse(); let boundary = boundary.reverse();
let half_edge = HalfEdge::line_segment( let curve = curve.make_line_on_surface(
positions, positions,
Some(boundary), Some(boundary),
surface.clone(), surface.clone(),
core, &mut core.layers.geometry,
); );
half_edge
HalfEdge::unjoined(core)
.update_start_vertex(|_, _| vertex, core) .update_start_vertex(|_, _| vertex, core)
.update_curve(|_, _| curve, core) .update_curve(|_, _| curve.clone(), core)
.insert(core) .insert(core)
.set_geometry( .set_geometry(
*core HalfEdgeGeom {
path: core
.layers .layers
.geometry .geometry
.of_half_edge(&half_edge), .of_curve(&curve)
.local_on(&surface)
.path,
boundary,
},
&mut core.layers.geometry, &mut core.layers.geometry,
) )
}) })