/** * @param grid * @return an array of vertex coordinates, one vertex per edge end, 3 coords per vertex */ public double[] getCoords(float[][] grid) { double[] ret = new double[edges.size() * 3]; Iterator<Integer> it = edges.iterator(); switch (direction) { case 0: for (int i = 0; i < ret.length; i += 3) { ret[i + 0] = grid[0][it.next().intValue()]; ret[i + 1] = grid[1][c1]; ret[i + 2] = grid[2][c2]; } break; case 1: for (int i = 0; i < ret.length; i += 3) { ret[i + 0] = grid[0][c1]; ret[i + 1] = grid[1][it.next().intValue()]; ret[i + 2] = grid[2][c2]; } break; case 2: for (int i = 0; i < ret.length; i += 3) { ret[i + 0] = grid[0][c1]; ret[i + 1] = grid[1][c2]; ret[i + 2] = grid[2][it.next().intValue()]; } break; } return ret; }