fix: replace degenerate same-vertex edges with Point in lwpolyline and spline

Empty LwPolyline and single-control-point Spline fallbacks were calling
builder::line(&v, &v) with the same Rc vertex, triggering the
truck-topology panic "Two same vertices cannot construct an edge."

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Sonnet 4.6 committed 2026-04-25 20:30:26 +03:00
1 parent 6b4bc1b832
commit 320312e81a
2 files changed
+2 -6

No files matched your search

+1 -3
View File
@@ -14,10 +14,8 @@ const TAU: f64 = std::f64::consts::TAU;
fn to_truck(pline: &LwPolyline) -> TruckEntity {
let verts = &pline.vertices;
if verts.is_empty() {
let v = builder::vertex(Point3::new(0.0, 0.0, 0.0));
let edge = builder::line(&v, &v);
return TruckEntity {
object: TruckObject::Contour(std::iter::once(edge).collect()),
object: TruckObject::Point(builder::vertex(Point3::new(0.0, 0.0, 0.0))),
snap_pts: vec![],
tangent_geoms: vec![],
key_vertices: vec![],
+1 -3
View File
@@ -18,10 +18,8 @@ fn to_truck(spl: &Spline) -> TruckEntity {
.map(|p| Point3::new(p.x, p.y, p.z))
.collect();
if ctrl_pts.len() < 2 {
let v = builder::vertex(Point3::new(0.0, 0.0, 0.0));
let edge = builder::line(&v, &v);
return TruckEntity {
object: TruckObject::Curve(edge),
object: TruckObject::Point(builder::vertex(Point3::new(0.0, 0.0, 0.0))),
snap_pts: vec![],
tangent_geoms: vec![],
key_vertices: vec![],