# 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_is_valid <- function(geog) {
    .Call(`_s2_cpp_s2_is_valid`, geog)
}

cpp_s2_is_valid_reason <- function(geog) {
    .Call(`_s2_cpp_s2_is_valid_reason`, 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_project_normalized <- function(geog1, geog2) {
    .Call(`_s2_cpp_s2_project_normalized`, geog1, geog2)
}

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_cell_union_normalize <- function(cellUnionVector) {
    .Call(`_s2_cpp_s2_cell_union_normalize`, cellUnionVector)
}

cpp_s2_cell_union_is_na <- function(cellUnionVector) {
    .Call(`_s2_cpp_s2_cell_union_is_na`, cellUnionVector)
}

cpp_s2_cell_union_contains <- function(cellUnionVector1, cellUnionVector2) {
    .Call(`_s2_cpp_s2_cell_union_contains`, cellUnionVector1, cellUnionVector2)
}

cpp_s2_cell_union_contains_cell <- function(cellUnionVector, cellIdVector) {
    .Call(`_s2_cpp_s2_cell_union_contains_cell`, cellUnionVector, cellIdVector)
}

cpp_s2_cell_union_intersects <- function(cellUnionVector1, cellUnionVector2) {
    .Call(`_s2_cpp_s2_cell_union_intersects`, cellUnionVector1, cellUnionVector2)
}

cpp_s2_cell_union_intersection <- function(cellUnionVector1, cellUnionVector2) {
    .Call(`_s2_cpp_s2_cell_union_intersection`, cellUnionVector1, cellUnionVector2)
}

cpp_s2_cell_union_union <- function(cellUnionVector1, cellUnionVector2) {
    .Call(`_s2_cpp_s2_cell_union_union`, cellUnionVector1, cellUnionVector2)
}

cpp_s2_cell_union_difference <- function(cellUnionVector1, cellUnionVector2) {
    .Call(`_s2_cpp_s2_cell_union_difference`, cellUnionVector1, cellUnionVector2)
}

cpp_s2_geography_from_cell_union <- function(cellUnionVector) {
    .Call(`_s2_cpp_s2_geography_from_cell_union`, cellUnionVector)
}

cpp_s2_covering_cell_ids <- function(geog, min_level, max_level, max_cells, buffer, interior) {
    .Call(`_s2_cpp_s2_covering_cell_ids`, geog, min_level, max_level, max_cells, buffer, interior)
}

cpp_s2_covering_cell_ids_agg <- function(geog, min_level, max_level, max_cells, buffer, interior, naRm) {
    .Call(`_s2_cpp_s2_covering_cell_ids_agg`, geog, min_level, max_level, max_cells, buffer, interior, naRm)
}

cpp_s2_cell_sentinel <- function() {
    .Call(`_s2_cpp_s2_cell_sentinel`)
}

cpp_s2_cell_from_string <- function(cellString) {
    .Call(`_s2_cpp_s2_cell_from_string`, cellString)
}

cpp_s2_cell_from_lnglat <- function(lnglat) {
    .Call(`_s2_cpp_s2_cell_from_lnglat`, lnglat)
}

cpp_s2_cell_to_lnglat <- function(cellId) {
    .Call(`_s2_cpp_s2_cell_to_lnglat`, cellId)
}

cpp_s2_cell_to_cell_union <- function(cellId) {
    .Call(`_s2_cpp_s2_cell_to_cell_union`, cellId)
}

cpp_s2_cell_is_na <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_is_na`, cellIdVector)
}

cpp_s2_cell_sort <- function(cellIdVector, decreasing) {
    .Call(`_s2_cpp_s2_cell_sort`, cellIdVector, decreasing)
}

cpp_s2_cell_range <- function(cellIdVector, naRm) {
    .Call(`_s2_cpp_s2_cell_range`, cellIdVector, naRm)
}

cpp_s2_cell_unique <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_unique`, cellIdVector)
}

cpp_s2_cell_to_string <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_to_string`, cellIdVector)
}

cpp_s2_cell_debug_string <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_debug_string`, cellIdVector)
}

cpp_s2_cell_is_valid <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_is_valid`, cellIdVector)
}

cpp_s2_cell_center <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_center`, cellIdVector)
}

cpp_s2_cell_polygon <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_polygon`, cellIdVector)
}

cpp_s2_cell_vertex <- function(cellIdVector, k) {
    .Call(`_s2_cpp_s2_cell_vertex`, cellIdVector, k)
}

cpp_s2_cell_level <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_level`, cellIdVector)
}

cpp_s2_cell_area <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_area`, cellIdVector)
}

cpp_s2_cell_area_approx <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_area_approx`, cellIdVector)
}

cpp_s2_cell_parent <- function(cellIdVector, level) {
    .Call(`_s2_cpp_s2_cell_parent`, cellIdVector, level)
}

cpp_s2_cell_child <- function(cellIdVector, k) {
    .Call(`_s2_cpp_s2_cell_child`, cellIdVector, k)
}

cpp_s2_cell_edge_neighbour <- function(cellIdVector, k) {
    .Call(`_s2_cpp_s2_cell_edge_neighbour`, cellIdVector, k)
}

cpp_s2_cell_cummax <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_cummax`, cellIdVector)
}

cpp_s2_cell_cummin <- function(cellIdVector) {
    .Call(`_s2_cpp_s2_cell_cummin`, cellIdVector)
}

cpp_s2_cell_eq <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_eq`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_neq <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_neq`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_lt <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_lt`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_lte <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_lte`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_gte <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_gte`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_gt <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_gt`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_contains <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_contains`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_may_intersect <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_may_intersect`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_distance <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_distance`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_max_distance <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_max_distance`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_common_ancestor_level <- function(cellIdVector1, cellIdVector2) {
    .Call(`_s2_cpp_s2_cell_common_ancestor_level`, cellIdVector1, cellIdVector2)
}

cpp_s2_cell_common_ancestor_level_agg <- function(cellId) {
    .Call(`_s2_cpp_s2_cell_common_ancestor_level_agg`, cellId)
}

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

cpp_s2_geography_is_na <- function(geog) {
    .Call(`_s2_cpp_s2_geography_is_na`, geog)
}

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

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

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_closest_edges <- function(geog1, geog2, n, min_distance, max_distance) {
    .Call(`_s2_cpp_s2_closest_edges`, geog1, geog2, n, min_distance, max_distance)
}

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)
}

cpp_s2_dwithin_matrix_brute_force <- function(geog1, geog2, distance) {
    .Call(`_s2_cpp_s2_dwithin_matrix_brute_force`, geog1, geog2, distance)
}

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_prepared_dwithin <- function(geog1, geog2, distance) {
    .Call(`_s2_cpp_s2_prepared_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_coverage_union_agg <- function(geog, s2options, naRm) {
    .Call(`_s2_cpp_s2_coverage_union_agg`, geog, s2options, naRm)
}

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_rebuild_agg <- function(geog, s2options, naRm) {
    .Call(`_s2_cpp_s2_rebuild_agg`, geog, s2options, 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_point_on_surface <- function(geog) {
    .Call(`_s2_cpp_s2_point_on_surface`, 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_unary_union <- function(geog, s2options) {
    .Call(`_s2_cpp_s2_unary_union`, geog, s2options)
}

cpp_s2_interpolate_normalized <- function(geog, distanceNormalized) {
    .Call(`_s2_cpp_s2_interpolate_normalized`, geog, distanceNormalized)
}

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

cpp_s2_convex_hull <- function(geog) {
    .Call(`_s2_cpp_s2_convex_hull`, geog)
}

cpp_s2_convex_hull_agg <- function(geog, naRm) {
    .Call(`_s2_cpp_s2_convex_hull_agg`, geog, naRm)
}

