Extract building connecting face to dedicated fn

This commit is contained in:
Hanno Braun 2025-04-04 12:49:13 +02:00
parent 5fa10def8b
commit 1ac4a73cd9

View File

@ -2,7 +2,10 @@ use crate::{
handle::Handle,
math::Plane,
topology::{
curve::Curve, face::Face, half_edge::HalfEdge, solid::Solid,
curve::Curve,
face::{Face, HalfEdgeWithEndVertex},
half_edge::HalfEdge,
solid::Solid,
surface::Surface,
},
};
@ -54,10 +57,15 @@ fn build_connecting_faces(bottom: &Face, top: &Face) -> Vec<Handle<Face>> {
bottom
.half_edges_with_end_vertex()
.zip(top.half_edges_with_end_vertex())
.map(|(bottom, top)| {
.map(|(bottom, top)| build_single_connecting_face([bottom, top]))
.collect::<Vec<_>>()
}
fn build_single_connecting_face(
[bottom, top]: [HalfEdgeWithEndVertex; 2],
) -> Handle<Face> {
let is_internal =
match [bottom.half_edge.is_internal, top.half_edge.is_internal]
{
match [bottom.half_edge.is_internal, top.half_edge.is_internal] {
[true, true] => true,
[false, false] => false,
_ => {
@ -90,6 +98,4 @@ fn build_connecting_faces(bottom: &Face, top: &Face) -> Vec<Handle<Face>> {
is_internal,
);
Handle::new(face)
})
.collect::<Vec<_>>()
}