DCBIA-OrthoLab / EasyClip-Extension

Apache License 2.0
4 stars 7 forks source link

Easyclip close model #2

Closed bpaniagua closed 3 years ago

bpaniagua commented 8 years ago

After the clipping operation, and when there are multiple open boundaries in the 3D model created by that clip, the close open boundary algorithm creating back a solid shape does not work - only the smallest simple connected boundary opening gets closed.

Maybe this could be solved by keeping record of all points in all new boundaries created by the clipping and making sure (via their neighbourhood polygons?) that they are no longer part of an open boundary after the close open boundary step.

allemangD commented 3 years ago

I'm not sure I understand the problem you described. I did some testing on a torus, but I only found one case where the torus is handled incorrectly. @bpaniagua could you clarify the issue you described here?

In the case where the cut result should contain a hole, the hole seems to only be preserved if the result of the cut contains less than half the original mesh.

image

If I adjust the cutting plane to contain more than half the original shape, then the hole is not preserved.

image

All other orientations I tested seem to produce expected results.

I also did some tests on the torus with open regions in the source mesh.

image

Again, the only issue I found was the one described above.

image

Here are the two torus models (stl) for reference: tori.zip

allemangD commented 3 years ago

From discussion with @bpaniagua:

This issue was requesting the triangulation filter be invoked iteratively as it is here: https://github.com/NIRALUser/SPHARM-PDM/blob/master/Modules/CLI/MetaMeshTools/MeshMath.cxx#L3845-L3966

At this point, however, this doesn't seem appropriate for EasyClip; the module is not meant as a tool to remesh models. There are also questions of what to do with particularly noisy open boundaries, where Delaunay triangulation would produce poor results. Better to explicitly cut the model and fill that newly cut region.

Closing this issue as that's the current behavior.