mirror of
https://github.com/hannobraun/Fornjot
synced 2025-02-19 05:35:55 +00:00
Return top edge from half-edge sweep
This is going to be required in the face sweep code, to make sure the top of the solid is properly stitched up with the sides.
This commit is contained in:
parent
b04638ea0a
commit
819001eb0b
@ -17,7 +17,7 @@ use crate::{
|
||||
use super::{Sweep, SweepCache};
|
||||
|
||||
impl Sweep for (Handle<HalfEdge>, Color) {
|
||||
type Swept = Handle<Face>;
|
||||
type Swept = (Handle<Face>, Handle<HalfEdge>);
|
||||
|
||||
fn sweep_with_cache(
|
||||
self,
|
||||
@ -137,7 +137,7 @@ impl Sweep for (Handle<HalfEdge>, Color) {
|
||||
let cycle = {
|
||||
let a = bottom_edge;
|
||||
let [d, b] = side_edges;
|
||||
let c = top_edge;
|
||||
let c = top_edge.clone();
|
||||
|
||||
let mut edges = [a, b, c, d];
|
||||
|
||||
@ -167,7 +167,9 @@ impl Sweep for (Handle<HalfEdge>, Color) {
|
||||
color: Some(color),
|
||||
..Default::default()
|
||||
};
|
||||
face.build(objects).insert(objects)
|
||||
let face = face.build(objects).insert(objects);
|
||||
|
||||
(face, top_edge)
|
||||
}
|
||||
}
|
||||
|
||||
@ -202,7 +204,7 @@ mod tests {
|
||||
.insert(&mut services.objects)
|
||||
};
|
||||
|
||||
let face = (half_edge, Color::default())
|
||||
let (face, _) = (half_edge, Color::default())
|
||||
.sweep([0., 0., 1.], &mut services.objects);
|
||||
|
||||
let expected_face = {
|
||||
|
@ -65,7 +65,7 @@ impl Sweep for Handle<Face> {
|
||||
let cycle = cycle.reverse(objects);
|
||||
|
||||
for half_edge in cycle.half_edges().cloned() {
|
||||
let face = (half_edge, self.color())
|
||||
let (face, _) = (half_edge, self.color())
|
||||
.sweep_with_cache(path, cache, objects);
|
||||
|
||||
faces.push(face);
|
||||
@ -155,7 +155,9 @@ mod tests {
|
||||
.build(&mut services.objects)
|
||||
.insert(&mut services.objects)
|
||||
};
|
||||
(half_edge, Color::default()).sweep(UP, &mut services.objects)
|
||||
let (face, _) =
|
||||
(half_edge, Color::default()).sweep(UP, &mut services.objects);
|
||||
face
|
||||
});
|
||||
|
||||
assert!(side_faces
|
||||
@ -222,7 +224,9 @@ mod tests {
|
||||
.insert(&mut services.objects)
|
||||
.reverse(&mut services.objects)
|
||||
};
|
||||
(half_edge, Color::default()).sweep(DOWN, &mut services.objects)
|
||||
let (face, _) = (half_edge, Color::default())
|
||||
.sweep(DOWN, &mut services.objects);
|
||||
face
|
||||
});
|
||||
|
||||
assert!(side_faces
|
||||
|
Loading…
Reference in New Issue
Block a user