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