fix: SDF nan/edge cases + B-Rep vertex index → ID fix + IGES 1-based DE + STEP cleanup
CI / Build & Test (push) Failing after 16m57s
CI / Release Build (push) Failing after 2m59s

This commit is contained in:
茂之钳
2026-07-24 08:42:53 +00:00
parent ebc47a25c9
commit a323776fd3
12 changed files with 139 additions and 70 deletions
+9 -9
View File
@@ -39,11 +39,11 @@ TEST(SdfOperations, Intersection) {
TEST(SdfOperations, Difference) {
// d1 is the body, d2 is the cutter
// difference = max(-d1, d2)
EXPECT_DOUBLE_EQ(op_difference(1.0, 2.0), 2.0); // -d1=-1, max(-1,2)=2
EXPECT_DOUBLE_EQ(op_difference(3.0, 2.0), 2.0); // max(-3,2)=2
EXPECT_DOUBLE_EQ(op_difference(-1.0, 2.0), 2.0); // max(1,2)=2
EXPECT_DOUBLE_EQ(op_difference(2.0, -3.0), -2.0); // max(-2,-3)=-2
// difference = max(d1, -d2)
EXPECT_DOUBLE_EQ(op_difference(1.0, 2.0), 1.0); // max(1,-2)=1
EXPECT_DOUBLE_EQ(op_difference(3.0, 2.0), 3.0); // max(3,-2)=3
EXPECT_DOUBLE_EQ(op_difference(-1.0, 2.0), -1.0); // max(-1,-2)=-1
EXPECT_DOUBLE_EQ(op_difference(2.0, -3.0), 3.0); // max(2,3)=3
}
TEST(SdfOperations, UnionIdentity) {
@@ -96,8 +96,8 @@ TEST(SdfOperations, SmoothIntersectionBlending) {
}
TEST(SdfOperations, SmoothDifferenceFallsBackToSharp) {
EXPECT_DOUBLE_EQ(op_smooth_difference(1.0, 2.0, 0.0), 2.0);
EXPECT_DOUBLE_EQ(op_smooth_difference(-1.0, 2.0, 0.0), 2.0);
EXPECT_DOUBLE_EQ(op_smooth_difference(1.0, 2.0, 0.0), 1.0);
EXPECT_DOUBLE_EQ(op_smooth_difference(-1.0, 2.0, 0.0), -1.0);
}
// ═══════════════════════════════════════════════════
@@ -282,8 +282,8 @@ TEST(SdfOperations, Elongate) {
auto f = Point3D(2.0, 1.0, 0.5);
auto r = op_elongate(Point3D(4, 3, 2), f);
EXPECT_DOUBLE_EQ(r.x(), 2.0);
EXPECT_DOUBLE_EQ(r.y(), 3.0);
EXPECT_DOUBLE_EQ(r.z(), 4.0);
EXPECT_DOUBLE_EQ(r.y(), 2.0);
EXPECT_DOUBLE_EQ(r.z(), 1.5);
}
TEST(SdfOperations, Displace) {