Skip to content

Fix point merge for Marching Cubes with multiple isosurfaces

Kenneth Moreland requested to merge kmorel/vtk-m:fix-mc-merge into master

When the Marching Cubes algorithm merges points together for multiple isosurfaces, it uses an ArrayHandleZip to combine the isosurface id and the edge identification. This is to prevent merging points from different isosurfaces. However, internally this has to do an array copy.

It was doing this copy with ArrayCopy. A recent change to that method made the copy fail for ArrayHandleZip. The fix is to change to ArrayCopyDevice.

The reason why this bug was introduced was because there was no test case for this specific use. A regression test has been updated to test for this case.

Merge request reports