fix: SDF nan/edge cases + B-Rep vertex index → ID fix + IGES 1-based DE + STEP cleanup
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user