diff --git a/crates/fj-kernel/src/algorithms/approx/curve.rs b/crates/fj-kernel/src/algorithms/approx/curve.rs index 9ec6a211d..783729e23 100644 --- a/crates/fj-kernel/src/algorithms/approx/curve.rs +++ b/crates/fj-kernel/src/algorithms/approx/curve.rs @@ -38,7 +38,7 @@ impl Approx for GlobalCurve { ) -> Self::Approximation { match self.kind() { CurveKind::Circle(curve) => approx_circle(curve, range, tolerance), - CurveKind::Line(_) => Vec::new(), + CurveKind::Line(_) => vec![range.start()], } } } diff --git a/crates/fj-kernel/src/algorithms/approx/edge.rs b/crates/fj-kernel/src/algorithms/approx/edge.rs index 1ac553167..cf76001e0 100644 --- a/crates/fj-kernel/src/algorithms/approx/edge.rs +++ b/crates/fj-kernel/src/algorithms/approx/edge.rs @@ -34,26 +34,6 @@ impl Approx for Edge { } }; - let mut points = self.curve().approx(tolerance, range); - - // Insert the exact vertices of this edge into the approximation. This - // means we don't rely on the curve approximation to deliver accurate - // representations of these vertices, which they might not be able to - // do. - // - // If we used inaccurate representations of those vertices here, then - // that would lead to bugs in the approximation, as points that should - // refer to the same vertex would be understood to refer to very close, - // but distinct vertices. - let vertices = self - .vertices() - .convert(|vertex| (vertex.position(), vertex.global().position())); - if let Some([(point_curve, point_global), _]) = vertices { - let point_surface = - self.curve().kind().point_from_curve_coords(point_curve); - points.insert(0, (point_surface, point_global)); - } - - points + self.curve().approx(tolerance, range) } }