package com.vitco.low.triangulate;
import org.poly2tri.geometry.polygon.PolygonPoint;
import org.poly2tri.triangulation.delaunay.DelaunayTriangle;
import java.util.ArrayList;
/**
* A naive triangulation that simply puts two triangles for every voxel side.
*/
public class Grid2TriNaive {
// compute the triangulation
public static ArrayList<DelaunayTriangle> triangulate(boolean[][] bits) {
ArrayList<DelaunayTriangle> result = new ArrayList<DelaunayTriangle>();
int lenY = bits[0].length;
for (int x = 0; x < bits.length; x++) {
for (int y = 0; y < lenY; y++) {
if (bits[x][y]) {
result.add(new DelaunayTriangle(new PolygonPoint(x, y), new PolygonPoint(x + 1, y), new PolygonPoint(x, y + 1)));
result.add(new DelaunayTriangle(new PolygonPoint(x, y + 1), new PolygonPoint(x + 1, y), new PolygonPoint(x + 1, y + 1)));
}
}
}
return result;
}
}