mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-04 18:08:26 +00:00
Inline redundant variable
This commit is contained in:
parent
e4c5f5aaf3
commit
e93b583e40
@ -41,34 +41,36 @@ pub fn triangulate(face: &Face) -> TriMesh {
|
||||
}
|
||||
|
||||
fn points_from_half_edges(face: &Face) -> Vec<TriangulationPoint> {
|
||||
let points_from_half_edges = face.half_edges.iter().map(|half_edge| {
|
||||
let point_global = half_edge.start.point;
|
||||
face.half_edges
|
||||
.iter()
|
||||
.map(|half_edge| {
|
||||
let point_global = half_edge.start.point;
|
||||
|
||||
// Here, we project a 3D point (from the vertex) into the face's
|
||||
// surface, creating a 2D point. Through the surface, this 2D point has
|
||||
// a position in 3D space.
|
||||
//
|
||||
// But this position isn't necessarily going to be the same as the
|
||||
// position of the original 3D point, due to numerical inaccuracy.
|
||||
//
|
||||
// This doesn't matter. Neither does the fact, that other faces might
|
||||
// share the same vertices and project them into their own surfaces,
|
||||
// creating more redundancy.
|
||||
//
|
||||
// The reason that it doesn't, is that we're using the projected 2D
|
||||
// points _only_ for this local triangulation. Once that tells us how
|
||||
// the different 3D points must connect, we use the original 3D points
|
||||
// to build those triangles. We never convert the 2D points back into
|
||||
// 3D.
|
||||
let point_surface = face.surface.geometry.project_point(point_global);
|
||||
// Here, we project a 3D point (from the vertex) into the face's
|
||||
// surface, creating a 2D point. Through the surface, this 2D point
|
||||
// has a position in 3D space.
|
||||
//
|
||||
// But this position isn't necessarily going to be the same as the
|
||||
// position of the original 3D point, due to numerical inaccuracy.
|
||||
//
|
||||
// This doesn't matter. Neither does the fact, that other faces
|
||||
// might share the same vertices and project them into their own
|
||||
// surfaces, creating more redundancy.
|
||||
//
|
||||
// The reason that it doesn't, is that we're using the projected 2D
|
||||
// points _only_ for this local triangulation. Once that tells us
|
||||
// how the different 3D points must connect, we use the original 3D
|
||||
// points to build those triangles. We never convert the 2D points
|
||||
// back into 3D.
|
||||
let point_surface =
|
||||
face.surface.geometry.project_point(point_global);
|
||||
|
||||
TriangulationPoint {
|
||||
point_surface,
|
||||
point_global,
|
||||
}
|
||||
});
|
||||
|
||||
points_from_half_edges.collect()
|
||||
TriangulationPoint {
|
||||
point_surface,
|
||||
point_global,
|
||||
}
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn triangles(points: &[TriangulationPoint]) -> Vec<[TriangulationPoint; 3]> {
|
||||
|
Loading…
Reference in New Issue
Block a user