Commit: ca109986a67042fd487c8bb1eb0db662bbccfb3d
Author: Howard Trickey
Date: Wed Aug 5 10:03:06 2020 -0400
Branches: newboolean
https://developer.blender.org/rBca109986a67042fd487c8bb1eb0db662bbccfb3d
Add some more boolean unit tests.
===================================================================
M tests/gtests/blenlib/BLI_boolean_test.cc
===================================================================
diff --git a/tests/gtests/blenlib/BLI_boolean_test.cc
b/tests/gtests/blenlib/BLI_boolean_test.cc
index f4c43bcd84e..3dc8a61cf3c 100644
--- a/tests/gtests/blenlib/BLI_boolean_test.cc
+++ b/tests/gtests/blenlib/BLI_boolean_test.cc
@@ -17,7 +17,7 @@
namespace blender::meshintersect {
-constexpr bool DO_OBJ = false;
+constexpr bool DO_OBJ = true;
/* Build and hold a Mesh from a string spec. Also hold and own resources used
by Mesh. */
class MeshBuilder {
@@ -154,6 +154,56 @@ TEST(boolean_trimesh, TetTetTrimesh)
if (DO_OBJ) {
write_obj_mesh(out2, "tettet_union_tm");
}
+
+ MeshBuilder mb3(spec);
+ Mesh out3 = boolean_trimesh(
+ mb3.mesh, BOOLEAN_UNION, 2, [](int t) { return t < 4 ? 0 : 1; }, false,
&mb3.arena);
+ out3.populate_vert();
+ EXPECT_EQ(out3.vert_size(), 10);
+ EXPECT_EQ(out3.face_size(), 16);
+ if (DO_OBJ) {
+ write_obj_mesh(out3, "tettet_union_binary_tm");
+ }
+
+ MeshBuilder mb4(spec);
+ Mesh out4 = boolean_trimesh(
+ mb4.mesh, BOOLEAN_UNION, 2, [](int t) { return t < 4 ? 0 : 1; }, true,
&mb4.arena);
+ out4.populate_vert();
+ EXPECT_EQ(out4.vert_size(), 10);
+ EXPECT_EQ(out4.face_size(), 16);
+ if (DO_OBJ) {
+ write_obj_mesh(out4, "tettet_union_binary_self_tm");
+ }
+
+ MeshBuilder mb5(spec);
+ Mesh out5 = boolean_trimesh(
+ mb5.mesh, BOOLEAN_ISECT, 2, [](int t) { return t < 4 ? 0 : 1; }, false,
&mb5.arena);
+ out5.populate_vert();
+ EXPECT_EQ(out5.vert_size(), 4);
+ EXPECT_EQ(out5.face_size(), 4);
+ if (DO_OBJ) {
+ write_obj_mesh(out5, "tettet_intersect_binary_tm");
+ }
+
+ MeshBuilder mb6(spec);
+ Mesh out6 = boolean_trimesh(
+ mb6.mesh, BOOLEAN_DIFFERENCE, 2, [](int t) { return t < 4 ? 0 : 1; },
false, &mb6.arena);
+ out6.populate_vert();
+ EXPECT_EQ(out6.vert_size(), 6);
+ EXPECT_EQ(out6.face_size(), 8);
+ if (DO_OBJ) {
+ write_obj_mesh(out6, "tettet_difference_binary_tm");
+ }
+
+ MeshBuilder mb7(spec);
+ Mesh out7 = boolean_trimesh(
+ mb7.mesh, BOOLEAN_DIFFERENCE, 2, [](int t) { return t < 4 ? 1 : 0; },
false, &mb7.arena);
+ out7.populate_vert();
+ EXPECT_EQ(out7.vert_size(), 8);
+ EXPECT_EQ(out7.face_size(), 12);
+ if (DO_OBJ) {
+ write_obj_mesh(out7, "tettet_difference_rev_binary_tm");
+ }
}
TEST(boolean_trimesh, TetTet2Trimesh)
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs