public static List indexedConvexPolygons()

in commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/Planes.java [316:344]


    public static List<ConvexPolygon3D> indexedConvexPolygons(final List<? extends Vector3D> vertices,
            final int[][] faceIndices, final Precision.DoubleEquivalence precision) {
        final int numFaces = faceIndices.length;
        final List<ConvexPolygon3D> polygons = new ArrayList<>(numFaces);
        final List<Vector3D> faceVertices = new ArrayList<>();

        int[] face;
        for (int i = 0; i < numFaces; ++i) {
            face = faceIndices[i];
            if (face.length < EuclideanUtils.TRIANGLE_VERTEX_COUNT) {
                throw new IllegalArgumentException(MessageFormat.format(
                        "Invalid number of vertex indices for face at index {0}: required at least {1} but found {2}",
                        i, EuclideanUtils.TRIANGLE_VERTEX_COUNT, face.length));
            }

            for (final int vertexIndex : face) {
                faceVertices.add(vertices.get(vertexIndex));
            }

            polygons.add(convexPolygonFromVertices(
                        faceVertices,
                        precision
                    ));

            faceVertices.clear();
        }

        return polygons;
    }