Fix point merge for Marching Cubes with multiple isosurfaces
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.