# Generated by using Rcpp::compileAttributes() -> do not edit by hand
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

cpp_s2_init <- function() {
    invisible(.Call(`_s2_cpp_s2_init`))
}

cpp_s2_is_collection <- function(geog) {
    .Call(`_s2_cpp_s2_is_collection`, geog)
}

cpp_s2_dimension <- function(geog) {
    .Call(`_s2_cpp_s2_dimension`, geog)
}

cpp_s2_num_points <- function(geog) {
    .Call(`_s2_cpp_s2_num_points`, geog)
}

cpp_s2_is_empty <- function(geog) {
    .Call(`_s2_cpp_s2_is_empty`, geog)
}

cpp_s2_area <- function(geog) {
    .Call(`_s2_cpp_s2_area`, geog)
}

cpp_s2_length <- function(geog) {
    .Call(`_s2_cpp_s2_length`, geog)
}

cpp_s2_perimeter <- function(geog) {
    .Call(`_s2_cpp_s2_perimeter`, geog)
}

cpp_s2_x <- function(geog) {
    .Call(`_s2_cpp_s2_x`, geog)
}

cpp_s2_y <- function(geog) {
    .Call(`_s2_cpp_s2_y`, geog)
}

cpp_s2_distance <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_distance`, geog1, geog2)
}

cpp_s2_max_distance <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_max_distance`, geog1, geog2)
}

cpp_s2_bounds_cap <- function(geog) {
    .Call(`_s2_cpp_s2_bounds_cap`, geog)
}

cpp_s2_bounds_rect <- function(geog) {
    .Call(`_s2_cpp_s2_bounds_rect`, geog)
}

cpp_s2_geog_point <- function(x, y) {
    .Call(`_s2_cpp_s2_geog_point`, x, y)
}

cpp_s2_make_line <- function(x, y, featureId) {
    .Call(`_s2_cpp_s2_make_line`, x, y, featureId)
}

cpp_s2_make_polygon <- function(x, y, featureId, ringId, oriented, check) {
    .Call(`_s2_cpp_s2_make_polygon`, x, y, featureId, ringId, oriented, check)
}

s2_geography_from_wkb <- function(wkb, oriented, check) {
    .Call(`_s2_s2_geography_from_wkb`, wkb, oriented, check)
}

s2_geography_from_wkt <- function(wkt, oriented, check) {
    .Call(`_s2_s2_geography_from_wkt`, wkt, oriented, check)
}

s2_geography_full <- function(x) {
    .Call(`_s2_s2_geography_full`, x)
}

s2_geography_to_wkt <- function(s2_geography, precision, trim) {
    .Call(`_s2_s2_geography_to_wkt`, s2_geography, precision, trim)
}

s2_geography_to_wkb <- function(s2_geography, endian) {
    .Call(`_s2_s2_geography_to_wkb`, s2_geography, endian)
}

s2_geography_format <- function(s2_geography, maxCoords, precision, trim) {
    .Call(`_s2_s2_geography_format`, s2_geography, maxCoords, precision, trim)
}

s2_lnglat_from_numeric <- function(lng, lat) {
    .Call(`_s2_s2_lnglat_from_numeric`, lng, lat)
}

s2_lnglat_from_s2_point <- function(s2_point) {
    .Call(`_s2_s2_lnglat_from_s2_point`, s2_point)
}

data_frame_from_s2_lnglat <- function(xptr) {
    .Call(`_s2_data_frame_from_s2_lnglat`, xptr)
}

cpp_s2_closest_feature <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_closest_feature`, geog1, geog2)
}

cpp_s2_farthest_feature <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_farthest_feature`, geog1, geog2)
}

cpp_s2_may_intersect_matrix <- function(geog1, geog2, maxEdgesPerCell, maxFeatureCells, s2options) {
    .Call(`_s2_cpp_s2_may_intersect_matrix`, geog1, geog2, maxEdgesPerCell, maxFeatureCells, s2options)
}

cpp_s2_contains_matrix <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_contains_matrix`, geog1, geog2, s2options)
}

cpp_s2_within_matrix <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_within_matrix`, geog1, geog2, s2options)
}

cpp_s2_intersects_matrix <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_intersects_matrix`, geog1, geog2, s2options)
}

cpp_s2_equals_matrix <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_equals_matrix`, geog1, geog2, s2options)
}

cpp_s2_touches_matrix <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_touches_matrix`, geog1, geog2, s2options)
}

cpp_s2_dwithin_matrix <- function(geog1, geog2, distance) {
    .Call(`_s2_cpp_s2_dwithin_matrix`, geog1, geog2, distance)
}

cpp_s2_distance_matrix <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_distance_matrix`, geog1, geog2)
}

cpp_s2_max_distance_matrix <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_max_distance_matrix`, geog1, geog2)
}

cpp_s2_contains_matrix_brute_force <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_contains_matrix_brute_force`, geog1, geog2, s2options)
}

cpp_s2_within_matrix_brute_force <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_within_matrix_brute_force`, geog1, geog2, s2options)
}

cpp_s2_intersects_matrix_brute_force <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_intersects_matrix_brute_force`, geog1, geog2, s2options)
}

cpp_s2_disjoint_matrix_brute_force <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_disjoint_matrix_brute_force`, geog1, geog2, s2options)
}

cpp_s2_equals_matrix_brute_force <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_equals_matrix_brute_force`, geog1, geog2, s2options)
}

s2_point_from_numeric <- function(x, y, z) {
    .Call(`_s2_s2_point_from_numeric`, x, y, z)
}

s2_point_from_s2_lnglat <- function(s2_lnglat) {
    .Call(`_s2_s2_point_from_s2_lnglat`, s2_lnglat)
}

data_frame_from_s2_point <- function(s2_point) {
    .Call(`_s2_data_frame_from_s2_point`, s2_point)
}

cpp_s2_intersects <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_intersects`, geog1, geog2, s2options)
}

cpp_s2_equals <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_equals`, geog1, geog2, s2options)
}

cpp_s2_contains <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_contains`, geog1, geog2, s2options)
}

cpp_s2_touches <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_touches`, geog1, geog2, s2options)
}

cpp_s2_dwithin <- function(geog1, geog2, distance) {
    .Call(`_s2_cpp_s2_dwithin`, geog1, geog2, distance)
}

cpp_s2_intersects_box <- function(geog, lng1, lat1, lng2, lat2, detail, s2options) {
    .Call(`_s2_cpp_s2_intersects_box`, geog, lng1, lat1, lng2, lat2, detail, s2options)
}

cpp_s2_intersection <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_intersection`, geog1, geog2, s2options)
}

cpp_s2_union <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_union`, geog1, geog2, s2options)
}

cpp_s2_difference <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_difference`, geog1, geog2, s2options)
}

cpp_s2_sym_difference <- function(geog1, geog2, s2options) {
    .Call(`_s2_cpp_s2_sym_difference`, geog1, geog2, s2options)
}

cpp_s2_union_agg <- function(geog, s2options, naRm) {
    .Call(`_s2_cpp_s2_union_agg`, geog, s2options, naRm)
}

cpp_s2_centroid_agg <- function(geog, naRm) {
    .Call(`_s2_cpp_s2_centroid_agg`, geog, naRm)
}

cpp_s2_closest_point <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_closest_point`, geog1, geog2)
}

cpp_s2_minimum_clearance_line_between <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_minimum_clearance_line_between`, geog1, geog2)
}

cpp_s2_centroid <- function(geog) {
    .Call(`_s2_cpp_s2_centroid`, geog)
}

cpp_s2_boundary <- function(geog) {
    .Call(`_s2_cpp_s2_boundary`, geog)
}

cpp_s2_rebuild <- function(geog, s2options) {
    .Call(`_s2_cpp_s2_rebuild`, geog, s2options)
}

cpp_s2_buffer_cells <- function(geog, distance, maxCells, minLevel) {
    .Call(`_s2_cpp_s2_buffer_cells`, geog, distance, maxCells, minLevel)
}

s2_xptr_test <- function(size) {
    .Call(`_s2_s2_xptr_test`, size)
}

s2_xptr_test_op <- function(s2_xptr_test) {
    invisible(.Call(`_s2_s2_xptr_test_op`, s2_xptr_test))
}

