internal static void test_MeshMeshCut_CutInSingleTriangle() { Console.WriteLine($"test_MeshMeshCut_CutInSingleTriangle."); var shape = test_Bool.MakeBox( center: new Vector3d(5, 5, 0), size: new Vector3d(10, 10, 2) ); var tool = test_Bool.MakeBox( center: new Vector3d(2.5, 7.5, 1), size: new Vector3d(.5, .5, .5) ); MeshTransforms.Translate(shape, new Vector3d(1, 1, 1)); MeshTransforms.Translate(tool, new Vector3d(1, 1, 1)); var error = false; DMesh3 ret; using (var c = new ConsoleColorController()) { var meshCut = new MeshMeshCut(); meshCut.Target = shape; meshCut.CutMesh = tool; meshCut.Compute(); } }
private static void TestWithCloseNumber(double closeEnough) { Console.WriteLine($"test_MeshMeshCut_rounding: {closeEnough}"); var shape = test_Bool.MakeBox( center: new Vector3d(0, 0, 0), size: new Vector3d(2, 2, 2) ); var tool = test_Bool.MakeBox( center: new Vector3d(0, 0, closeEnough), size: new Vector3d(1, 1, 1) ); MeshTransforms.Translate(shape, new Vector3d(1, 1, 1)); MeshTransforms.Translate(tool, new Vector3d(1, 1, 1)); var error = false; DMesh3 ret; using (var c = new ConsoleColorController()) { var meshCut = new MeshMeshCut(); meshCut.Target = shape; meshCut.CutMesh = tool; meshCut.Compute(); ret = meshCut.Target; if (!ret.IsClosed()) { error = TestUtil.ConsoleError("Mesh is not closed.", ret) || error; } meshCut.RemoveContained(); if (ret.IsClosed()) { error = TestUtil.ConsoleError("Mesh should not be closed.", ret) || error; } if (ret.BoundaryEdgeIndices().Count() != 8) { error = TestUtil.ConsoleError($"Mesh should have 8 open edges. It has {ret.BoundaryEdgeIndices().Count()}.", ret) || error; } } if (!error) { Console.WriteLine("ok"); } }
private static void TestWithCloseNumber(double closeEnough) { Console.WriteLine("test_bool_rounding"); var shape = MakeBox( center: new Vector3d(0, 0, 0), size: new Vector3d(2, 2, 2) ); var tool = MakeBox( center: new Vector3d(0, 0, closeEnough), size: new Vector3d(1, 1, 1) ); DMesh3 ret; using (var c = new ConsoleColorController()) { ret = ComputeBoolean(shape, tool, MeshBoolean.boolOperation.Union, true); } if (IsNotNullAndClosed(ret)) { TestUtil.ConsoleError("Test not implemented."); // even if it works we might want to test more } }