protected void setHull(double[] coords, int nump, int[][] faceIndices, int numf) { initBuffers(nump); setPoints(coords, nump); computeMaxAndMin(); for (int i = 0; i < numf; i++) { Face face = Face.create(pointBuffer, faceIndices[i]); HalfEdge he = face.he0; do { HalfEdge heOpp = findHalfEdge(he.head(), he.tail()); if (heOpp != null) { he.setOpposite(heOpp); } he = he.next; }while (he != face.he0); faces.Add(face); } }