JNIEXPORT void JNICALL Java_com_uber_h3core_NativeMethods_polygonToCells()

in src/main/c/h3-java/src/jniapi.c [659:684]


JNIEXPORT void JNICALL Java_com_uber_h3core_NativeMethods_polygonToCells(
    JNIEnv *env, jobject thiz, jdoubleArray verts, jintArray holeSizes,
    jdoubleArray holeVerts, jint res, jint flags, jlongArray results) {
    GeoPolygon polygon;
    if (CreateGeoPolygon(env, verts, holeSizes, holeVerts, &polygon)) {
        return;
    }

    jlong *resultsElements = (**env).GetLongArrayElements(env, results, 0);

    H3Error err;
    if (resultsElements != NULL) {
        // if sz is too small, bad things will happen
        err = polygonToCells(&polygon, res, flags, resultsElements);

        (**env).ReleaseLongArrayElements(env, results, resultsElements, 0);
    } else {
        ThrowOutOfMemoryError(env);
    }

    DestroyGeoPolygon(env, verts, holeSizes, holeVerts, &polygon);

    if (err) {
        ThrowH3Exception(env, err);
    }
}