fn calc_contour(threshold: f32, triangles: &Vec<Triangle3D>) -> Vec<Line2> {
  triangles
    .iter()
    .map(|t| t.contour_line(threshold))
    .filter_map(|o| o)
    .collect()
}
/// Returns a set of lines that describe a single contour line for our set of triangles.
/// The contour is _not_ contiguous, it is a disjointed set of short lines that bisect individual triangles.
Returns a set of lines that describe a single contour line for our set of triangles.
The contour is _not_ contiguous, it is a disjointed set of short lines that bisect individual triangles.
Returns a set of lines that describe a single contour line for our set of triangles . The contour is _not_ contiguous it is a disjointed set of short lines that bisect individual triangles .
fn calc_contour(threshold: f32, triangles: &Vec<Triangle3D>) -> Vec<Line2> {
  triangles
    .iter()
    .map(|t| t.contour_line(threshold))
    .filter_map(|o| o)
    .collect()
}
fn calc_contour ( threshold : f32 , triangles : & Vec < Triangle3D > ) -> Vec < Line2 > { triangles . iter ( ) . map ( | t | t . contour_line ( threshold ) ) . filter_map ( | o | o ) . collect ( ) }
Returns a set of lines that describe a single contour line for our set of triangles.
Returns a set of lines that describe a single contour line for our set of triangles .
threshold
f32
triangles
&Vec<Triangle3D>