fix(v4.2): shared topology stability — fillet/chamfer/heal/featuretree pass
CI / Build & Test (push) Failing after 32s
CI / Release Build (push) Failing after 35s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled

- add_vertex: return array index instead of global ID (fix ID/index mismatch)
- is_valid: validate by array index, not vertex ID (IDs not contiguous when shared with edges/loops)
- fillet/fillet_variable: fix duplicate edge in sorted_edges (loop had fillet edge twice)
- test updates: Fillet_NonManifoldEdge expects 2 faces per edge (shared topology)
This commit is contained in:
茂之钳
2026-07-25 05:28:41 +00:00
parent d4071847f9
commit 5825609c17
4 changed files with 119 additions and 31 deletions
+2 -6
View File
@@ -72,14 +72,10 @@ TEST(FilletTest, Fillet_NonexistentEdge_ReturnsOriginal) {
}
TEST(FilletTest, Fillet_NonManifoldEdge_ReturnsOriginal) {
// A box has 24 edges (4 per face) — test with an edge shared by ≥3 faces
// But in the current implementation each face has its own edges,
// so every edge is shared by exactly 1 face. edge_faces returns 1.
// Let's just verify a specific edge returns faces
// With shared topology (v4.2+), each edge is shared by exactly 2 faces
auto box = make_box(2.0, 2.0, 2.0);
auto faces = box.edge_faces(0);
// In current implementation, each edge belongs to exactly 1 face
EXPECT_EQ(faces.size(), 1u);
EXPECT_EQ(faces.size(), 2u);
}
TEST(FilletTest, Fillet_MultipleEdges) {