Loading src/csg/tests/levelset/extrude.t.cpp +35 −0 Original line number Diff line number Diff line Loading @@ -354,4 +354,39 @@ TEST_CASE("linear with twist", "[Levelset Extrude]") { } } TEST_CASE("linear with mulmatrix rotation", "[Levelset Extrude]") { double height = 1, size = 2; csg::LinearExtrude my_lin_ext; my_lin_ext.height = height; my_lin_ext.center = false; my_lin_ext.scale = {1, 1}; my_lin_ext.group = csg::Union2D(); csg::Square my_sq; my_sq.size = {2, 2}; my_sq.center = true; // 30 degree rotation auto my_mat = csg::Mulmatrix2D({{0.866025, -0.5}}, {{0.5, 0.866025}}); my_mat.translation = {0, 0}; my_mat.group.objs.push_back(my_sq); my_lin_ext.group.objs.push_back(my_mat); auto my_tree = std::make_shared<csg::Tree>(); my_tree->top.objs.push_back(my_lin_ext); csg::CsgIF my_levelset(my_tree); SECTION("Outside") { CHECK(0 < my_levelset(-1.2 * 0.5 * height, 0, 0.5 * height)); CHECK(0 < my_levelset(0.5 * height, 0.25 * height, 0.5 * height)); } SECTION("Inside") { CHECK(0 < my_levelset(0, 0, 0.5 * height)); CHECK(0 < my_levelset(-1.1 * 0.5 * height, 0, 0.5 * height)); CHECK(0 < my_levelset(0.5 * height, 0.5 * height, 0.5 * height)); } } } // namespace Loading
src/csg/tests/levelset/extrude.t.cpp +35 −0 Original line number Diff line number Diff line Loading @@ -354,4 +354,39 @@ TEST_CASE("linear with twist", "[Levelset Extrude]") { } } TEST_CASE("linear with mulmatrix rotation", "[Levelset Extrude]") { double height = 1, size = 2; csg::LinearExtrude my_lin_ext; my_lin_ext.height = height; my_lin_ext.center = false; my_lin_ext.scale = {1, 1}; my_lin_ext.group = csg::Union2D(); csg::Square my_sq; my_sq.size = {2, 2}; my_sq.center = true; // 30 degree rotation auto my_mat = csg::Mulmatrix2D({{0.866025, -0.5}}, {{0.5, 0.866025}}); my_mat.translation = {0, 0}; my_mat.group.objs.push_back(my_sq); my_lin_ext.group.objs.push_back(my_mat); auto my_tree = std::make_shared<csg::Tree>(); my_tree->top.objs.push_back(my_lin_ext); csg::CsgIF my_levelset(my_tree); SECTION("Outside") { CHECK(0 < my_levelset(-1.2 * 0.5 * height, 0, 0.5 * height)); CHECK(0 < my_levelset(0.5 * height, 0.25 * height, 0.5 * height)); } SECTION("Inside") { CHECK(0 < my_levelset(0, 0, 0.5 * height)); CHECK(0 < my_levelset(-1.1 * 0.5 * height, 0, 0.5 * height)); CHECK(0 < my_levelset(0.5 * height, 0.5 * height, 0.5 * height)); } } } // namespace