diff options
author | Vojtech Bubnik <bubnikv@gmail.com> | 2021-05-18 16:05:23 +0300 |
---|---|---|
committer | Vojtech Bubnik <bubnikv@gmail.com> | 2021-05-18 16:05:30 +0300 |
commit | 70b4915f9c6a91fef72410cb912b75e1b886b16e (patch) | |
tree | 0e113c30ce76e2db452edd2b16aa65967e97468f /xs | |
parent | 1256aebd889222971825faf917ddc20e22b15b56 (diff) |
TriangleMeshSlicer: Got rid of admesh!
Diffstat (limited to 'xs')
-rw-r--r-- | xs/xsp/TriangleMesh.xsp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/xs/xsp/TriangleMesh.xsp b/xs/xsp/TriangleMesh.xsp index 377bf7b5e..2b07c78ee 100644 --- a/xs/xsp/TriangleMesh.xsp +++ b/xs/xsp/TriangleMesh.xsp @@ -181,8 +181,7 @@ TriangleMesh::slice(z) // convert doubles to floats std::vector<float> z_f = cast<float>(z); - std::vector<ExPolygons> layers; - slice_mesh(*THIS, z_f, 0.049f, layers); + std::vector<ExPolygons> layers = slice_mesh_ex(THIS->its, z_f, 0.049f); AV* layers_av = newAV(); size_t len = layers.size(); @@ -202,14 +201,18 @@ TriangleMesh::slice(z) RETVAL void -TriangleMesh::cut(z, upper, lower) +TriangleMesh::cut(z, upper_mesh, lower_mesh) float z; - TriangleMesh* upper; - TriangleMesh* lower; + TriangleMesh* upper_mesh; + TriangleMesh* lower_mesh; CODE: THIS->require_shared_vertices(); // TriangleMeshSlicer needs this - TriangleMeshSlicer mslicer(THIS); - mslicer.cut(z, upper, lower); + indexed_triangle_set upper, lower; + cut_mesh(THIS->its, z, upper_mesh ? &upper : nullptr, lower_mesh ? &lower : nullptr); + if (upper_mesh) + *upper_mesh = TriangleMesh(upper); + if (lower_mesh) + *lower_mesh = TriangleMesh(lower); std::vector<double> TriangleMesh::bb3() |