@sentryware/s2-node 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +45 -0
- package/.dockerignore +1 -0
- package/.gitmodules +3 -0
- package/CHANGELOG.md +33 -0
- package/LICENSE +201 -0
- package/README.md +147 -0
- package/binding.gyp +170 -0
- package/docker/Dockerfile.node20.test +8 -0
- package/docker/Dockerfile.node22.test +8 -0
- package/docker/Dockerfile.node24.test +8 -0
- package/index.d.ts +117 -0
- package/index.js +6 -0
- package/jest.config.js +184 -0
- package/package.json +43 -0
- package/publish-linux.sh +18 -0
- package/publish-osx.sh +19 -0
- package/src/builder.cc +84 -0
- package/src/builder.h +29 -0
- package/src/cell.cc +71 -0
- package/src/cell.h +26 -0
- package/src/cell_id.cc +210 -0
- package/src/cell_id.h +44 -0
- package/src/cell_union.cc +237 -0
- package/src/cell_union.h +34 -0
- package/src/earth.cc +185 -0
- package/src/earth.h +33 -0
- package/src/latlng.cc +132 -0
- package/src/latlng.h +28 -0
- package/src/loop.cc +51 -0
- package/src/loop.h +21 -0
- package/src/point.cc +69 -0
- package/src/point.h +23 -0
- package/src/polygon.cc +36 -0
- package/src/polygon.h +20 -0
- package/src/polyline.cc +186 -0
- package/src/polyline.h +34 -0
- package/src/region_coverer.cc +450 -0
- package/src/region_coverer.h +56 -0
- package/src/s2.cc +27 -0
- package/test/Cell.test.js +37 -0
- package/test/CellId.test.js +135 -0
- package/test/CellUnion.test.js +150 -0
- package/test/Earth.test.js +62 -0
- package/test/LatLng.test.js +45 -0
- package/test/Point.test.js +14 -0
- package/test/Polyline.test.js +78 -0
- package/test/RegionCoverer.test.js +301 -0
- package/test.sh +16 -0
- package/third_party/s2geometry/.travis.yml +163 -0
- package/third_party/s2geometry/AUTHORS +13 -0
- package/third_party/s2geometry/CONTRIBUTING.md +65 -0
- package/third_party/s2geometry/CONTRIBUTORS +30 -0
- package/third_party/s2geometry/LICENSE +202 -0
- package/third_party/s2geometry/NOTICE +5 -0
- package/third_party/s2geometry/README.md +127 -0
- package/third_party/s2geometry/doc/examples/point_index.cc +44 -0
- package/third_party/s2geometry/doc/examples/term_index.cc +99 -0
- package/third_party/s2geometry/doc/examples/term_index.py +101 -0
- package/third_party/s2geometry/src/python/coder.i +125 -0
- package/third_party/s2geometry/src/python/pywraps2_test.py +786 -0
- package/third_party/s2geometry/src/python/s2.i +37 -0
- package/third_party/s2geometry/src/python/s2_common.i +756 -0
- package/third_party/s2geometry/src/s2/_fp_contract_off.h +60 -0
- package/third_party/s2geometry/src/s2/base/casts.h +318 -0
- package/third_party/s2geometry/src/s2/base/commandlineflags.h +67 -0
- package/third_party/s2geometry/src/s2/base/integral_types.h +31 -0
- package/third_party/s2geometry/src/s2/base/log_severity.h +40 -0
- package/third_party/s2geometry/src/s2/base/logging.h +173 -0
- package/third_party/s2geometry/src/s2/base/mutex.h +61 -0
- package/third_party/s2geometry/src/s2/base/port.h +999 -0
- package/third_party/s2geometry/src/s2/base/spinlock.h +60 -0
- package/third_party/s2geometry/src/s2/base/stringprintf.cc +107 -0
- package/third_party/s2geometry/src/s2/base/stringprintf.h +53 -0
- package/third_party/s2geometry/src/s2/base/strtoint.cc +65 -0
- package/third_party/s2geometry/src/s2/base/strtoint.h +106 -0
- package/third_party/s2geometry/src/s2/base/timer.h +50 -0
- package/third_party/s2geometry/src/s2/encoded_s2cell_id_vector.cc +164 -0
- package/third_party/s2geometry/src/s2/encoded_s2cell_id_vector.h +110 -0
- package/third_party/s2geometry/src/s2/encoded_s2cell_id_vector_test.cc +232 -0
- package/third_party/s2geometry/src/s2/encoded_s2point_vector.cc +838 -0
- package/third_party/s2geometry/src/s2/encoded_s2point_vector.h +140 -0
- package/third_party/s2geometry/src/s2/encoded_s2point_vector_test.cc +344 -0
- package/third_party/s2geometry/src/s2/encoded_s2shape_index.cc +181 -0
- package/third_party/s2geometry/src/s2/encoded_s2shape_index.h +276 -0
- package/third_party/s2geometry/src/s2/encoded_s2shape_index_test.cc +244 -0
- package/third_party/s2geometry/src/s2/encoded_string_vector.cc +66 -0
- package/third_party/s2geometry/src/s2/encoded_string_vector.h +164 -0
- package/third_party/s2geometry/src/s2/encoded_string_vector_test.cc +69 -0
- package/third_party/s2geometry/src/s2/encoded_uint_vector.h +299 -0
- package/third_party/s2geometry/src/s2/encoded_uint_vector_test.cc +124 -0
- package/third_party/s2geometry/src/s2/id_set_lexicon.cc +81 -0
- package/third_party/s2geometry/src/s2/id_set_lexicon.h +199 -0
- package/third_party/s2geometry/src/s2/id_set_lexicon_test.cc +70 -0
- package/third_party/s2geometry/src/s2/mutable_s2shape_index.cc +1585 -0
- package/third_party/s2geometry/src/s2/mutable_s2shape_index.h +600 -0
- package/third_party/s2geometry/src/s2/mutable_s2shape_index_test.cc +589 -0
- package/third_party/s2geometry/src/s2/r1interval.h +220 -0
- package/third_party/s2geometry/src/s2/r1interval_test.cc +185 -0
- package/third_party/s2geometry/src/s2/r2.h +26 -0
- package/third_party/s2geometry/src/s2/r2rect.cc +93 -0
- package/third_party/s2geometry/src/s2/r2rect.h +234 -0
- package/third_party/s2geometry/src/s2/r2rect_test.cc +228 -0
- package/third_party/s2geometry/src/s2/s1angle.cc +54 -0
- package/third_party/s2geometry/src/s2/s1angle.h +336 -0
- package/third_party/s2geometry/src/s2/s1angle_test.cc +185 -0
- package/third_party/s2geometry/src/s2/s1chord_angle.cc +159 -0
- package/third_party/s2geometry/src/s2/s1chord_angle.h +369 -0
- package/third_party/s2geometry/src/s2/s1chord_angle_test.cc +207 -0
- package/third_party/s2geometry/src/s2/s1interval.cc +296 -0
- package/third_party/s2geometry/src/s2/s1interval.h +266 -0
- package/third_party/s2geometry/src/s2/s1interval_test.cc +469 -0
- package/third_party/s2geometry/src/s2/s2boolean_operation.cc +2391 -0
- package/third_party/s2geometry/src/s2/s2boolean_operation.h +501 -0
- package/third_party/s2geometry/src/s2/s2boolean_operation_test.cc +1400 -0
- package/third_party/s2geometry/src/s2/s2builder.cc +1828 -0
- package/third_party/s2geometry/src/s2/s2builder.h +1057 -0
- package/third_party/s2geometry/src/s2/s2builder_graph.cc +1084 -0
- package/third_party/s2geometry/src/s2/s2builder_graph.h +799 -0
- package/third_party/s2geometry/src/s2/s2builder_graph_test.cc +462 -0
- package/third_party/s2geometry/src/s2/s2builder_layer.h +50 -0
- package/third_party/s2geometry/src/s2/s2builder_test.cc +1329 -0
- package/third_party/s2geometry/src/s2/s2builderutil_closed_set_normalizer.cc +313 -0
- package/third_party/s2geometry/src/s2/s2builderutil_closed_set_normalizer.h +221 -0
- package/third_party/s2geometry/src/s2/s2builderutil_closed_set_normalizer_test.cc +261 -0
- package/third_party/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.cc +392 -0
- package/third_party/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies.h +86 -0
- package/third_party/s2geometry/src/s2/s2builderutil_find_polygon_degeneracies_test.cc +182 -0
- package/third_party/s2geometry/src/s2/s2builderutil_graph_shape.h +57 -0
- package/third_party/s2geometry/src/s2/s2builderutil_lax_polygon_layer.cc +212 -0
- package/third_party/s2geometry/src/s2/s2builderutil_lax_polygon_layer.h +218 -0
- package/third_party/s2geometry/src/s2/s2builderutil_lax_polygon_layer_test.cc +367 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2point_vector_layer.cc +74 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2point_vector_layer.h +122 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2point_vector_layer_test.cc +167 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polygon_layer.cc +191 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polygon_layer.h +211 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polygon_layer_test.cc +312 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polyline_layer.cc +105 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polyline_layer.h +174 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polyline_layer_test.cc +220 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.cc +98 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer.h +292 -0
- package/third_party/s2geometry/src/s2/s2builderutil_s2polyline_vector_layer_test.cc +233 -0
- package/third_party/s2geometry/src/s2/s2builderutil_snap_functions.cc +354 -0
- package/third_party/s2geometry/src/s2/s2builderutil_snap_functions.h +239 -0
- package/third_party/s2geometry/src/s2/s2builderutil_snap_functions_test.cc +716 -0
- package/third_party/s2geometry/src/s2/s2builderutil_testing.cc +37 -0
- package/third_party/s2geometry/src/s2/s2builderutil_testing.h +100 -0
- package/third_party/s2geometry/src/s2/s2builderutil_testing_test.cc +85 -0
- package/third_party/s2geometry/src/s2/s2cap.cc +347 -0
- package/third_party/s2geometry/src/s2/s2cap.h +286 -0
- package/third_party/s2geometry/src/s2/s2cap_test.cc +379 -0
- package/third_party/s2geometry/src/s2/s2cell.cc +552 -0
- package/third_party/s2geometry/src/s2/s2cell.h +249 -0
- package/third_party/s2geometry/src/s2/s2cell_id.cc +619 -0
- package/third_party/s2geometry/src/s2/s2cell_id.h +705 -0
- package/third_party/s2geometry/src/s2/s2cell_id_test.cc +633 -0
- package/third_party/s2geometry/src/s2/s2cell_index.cc +149 -0
- package/third_party/s2geometry/src/s2/s2cell_index.h +660 -0
- package/third_party/s2geometry/src/s2/s2cell_index_test.cc +411 -0
- package/third_party/s2geometry/src/s2/s2cell_test.cc +687 -0
- package/third_party/s2geometry/src/s2/s2cell_union.cc +515 -0
- package/third_party/s2geometry/src/s2/s2cell_union.h +399 -0
- package/third_party/s2geometry/src/s2/s2cell_union_test.cc +598 -0
- package/third_party/s2geometry/src/s2/s2centroids.cc +84 -0
- package/third_party/s2geometry/src/s2/s2centroids.h +87 -0
- package/third_party/s2geometry/src/s2/s2centroids_test.cc +82 -0
- package/third_party/s2geometry/src/s2/s2closest_cell_query.cc +123 -0
- package/third_party/s2geometry/src/s2/s2closest_cell_query.h +385 -0
- package/third_party/s2geometry/src/s2/s2closest_cell_query_base.h +841 -0
- package/third_party/s2geometry/src/s2/s2closest_cell_query_base_test.cc +63 -0
- package/third_party/s2geometry/src/s2/s2closest_cell_query_test.cc +412 -0
- package/third_party/s2geometry/src/s2/s2closest_edge_query.cc +106 -0
- package/third_party/s2geometry/src/s2/s2closest_edge_query.h +421 -0
- package/third_party/s2geometry/src/s2/s2closest_edge_query_base.h +946 -0
- package/third_party/s2geometry/src/s2/s2closest_edge_query_base_test.cc +59 -0
- package/third_party/s2geometry/src/s2/s2closest_edge_query_test.cc +505 -0
- package/third_party/s2geometry/src/s2/s2closest_edge_query_testing.h +91 -0
- package/third_party/s2geometry/src/s2/s2closest_point_query.cc +66 -0
- package/third_party/s2geometry/src/s2/s2closest_point_query.h +465 -0
- package/third_party/s2geometry/src/s2/s2closest_point_query_base.h +767 -0
- package/third_party/s2geometry/src/s2/s2closest_point_query_base_test.cc +63 -0
- package/third_party/s2geometry/src/s2/s2closest_point_query_test.cc +312 -0
- package/third_party/s2geometry/src/s2/s2contains_point_query.h +328 -0
- package/third_party/s2geometry/src/s2/s2contains_point_query_test.cc +159 -0
- package/third_party/s2geometry/src/s2/s2contains_vertex_query.cc +39 -0
- package/third_party/s2geometry/src/s2/s2contains_vertex_query.h +66 -0
- package/third_party/s2geometry/src/s2/s2contains_vertex_query_test.cc +67 -0
- package/third_party/s2geometry/src/s2/s2convex_hull_query.cc +198 -0
- package/third_party/s2geometry/src/s2/s2convex_hull_query.h +110 -0
- package/third_party/s2geometry/src/s2/s2convex_hull_query_test.cc +208 -0
- package/third_party/s2geometry/src/s2/s2coords.cc +146 -0
- package/third_party/s2geometry/src/s2/s2coords.h +459 -0
- package/third_party/s2geometry/src/s2/s2coords_internal.h +71 -0
- package/third_party/s2geometry/src/s2/s2coords_test.cc +218 -0
- package/third_party/s2geometry/src/s2/s2crossing_edge_query.cc +380 -0
- package/third_party/s2geometry/src/s2/s2crossing_edge_query.h +220 -0
- package/third_party/s2geometry/src/s2/s2crossing_edge_query_test.cc +382 -0
- package/third_party/s2geometry/src/s2/s2debug.cc +23 -0
- package/third_party/s2geometry/src/s2/s2debug.h +69 -0
- package/third_party/s2geometry/src/s2/s2distance_target.h +165 -0
- package/third_party/s2geometry/src/s2/s2earth.cc +52 -0
- package/third_party/s2geometry/src/s2/s2earth.h +268 -0
- package/third_party/s2geometry/src/s2/s2earth_test.cc +146 -0
- package/third_party/s2geometry/src/s2/s2edge_clipping.cc +462 -0
- package/third_party/s2geometry/src/s2/s2edge_clipping.h +183 -0
- package/third_party/s2geometry/src/s2/s2edge_clipping_test.cc +335 -0
- package/third_party/s2geometry/src/s2/s2edge_crosser.cc +85 -0
- package/third_party/s2geometry/src/s2/s2edge_crosser.h +343 -0
- package/third_party/s2geometry/src/s2/s2edge_crosser_test.cc +264 -0
- package/third_party/s2geometry/src/s2/s2edge_crossings.cc +515 -0
- package/third_party/s2geometry/src/s2/s2edge_crossings.h +138 -0
- package/third_party/s2geometry/src/s2/s2edge_crossings_internal.h +59 -0
- package/third_party/s2geometry/src/s2/s2edge_crossings_test.cc +246 -0
- package/third_party/s2geometry/src/s2/s2edge_distances.cc +419 -0
- package/third_party/s2geometry/src/s2/s2edge_distances.h +192 -0
- package/third_party/s2geometry/src/s2/s2edge_distances_test.cc +539 -0
- package/third_party/s2geometry/src/s2/s2edge_tessellator.cc +276 -0
- package/third_party/s2geometry/src/s2/s2edge_tessellator.h +101 -0
- package/third_party/s2geometry/src/s2/s2edge_tessellator_test.cc +492 -0
- package/third_party/s2geometry/src/s2/s2edge_vector_shape.h +85 -0
- package/third_party/s2geometry/src/s2/s2edge_vector_shape_test.cc +66 -0
- package/third_party/s2geometry/src/s2/s2error.cc +29 -0
- package/third_party/s2geometry/src/s2/s2error.h +147 -0
- package/third_party/s2geometry/src/s2/s2error_test.cc +31 -0
- package/third_party/s2geometry/src/s2/s2furthest_edge_query.cc +117 -0
- package/third_party/s2geometry/src/s2/s2furthest_edge_query.h +439 -0
- package/third_party/s2geometry/src/s2/s2furthest_edge_query_test.cc +487 -0
- package/third_party/s2geometry/src/s2/s2latlng.cc +90 -0
- package/third_party/s2geometry/src/s2/s2latlng.h +234 -0
- package/third_party/s2geometry/src/s2/s2latlng_rect.cc +727 -0
- package/third_party/s2geometry/src/s2/s2latlng_rect.h +434 -0
- package/third_party/s2geometry/src/s2/s2latlng_rect_bounder.cc +344 -0
- package/third_party/s2geometry/src/s2/s2latlng_rect_bounder.h +89 -0
- package/third_party/s2geometry/src/s2/s2latlng_rect_bounder_test.cc +306 -0
- package/third_party/s2geometry/src/s2/s2latlng_rect_test.cc +1030 -0
- package/third_party/s2geometry/src/s2/s2latlng_test.cc +165 -0
- package/third_party/s2geometry/src/s2/s2lax_loop_shape.cc +104 -0
- package/third_party/s2geometry/src/s2/s2lax_loop_shape.h +153 -0
- package/third_party/s2geometry/src/s2/s2lax_loop_shape_test.cc +101 -0
- package/third_party/s2geometry/src/s2/s2lax_polygon_shape.cc +348 -0
- package/third_party/s2geometry/src/s2/s2lax_polygon_shape.h +183 -0
- package/third_party/s2geometry/src/s2/s2lax_polygon_shape_test.cc +234 -0
- package/third_party/s2geometry/src/s2/s2lax_polyline_shape.cc +118 -0
- package/third_party/s2geometry/src/s2/s2lax_polyline_shape.h +124 -0
- package/third_party/s2geometry/src/s2/s2lax_polyline_shape_test.cc +62 -0
- package/third_party/s2geometry/src/s2/s2loop.cc +1509 -0
- package/third_party/s2geometry/src/s2/s2loop.h +711 -0
- package/third_party/s2geometry/src/s2/s2loop_measures.cc +313 -0
- package/third_party/s2geometry/src/s2/s2loop_measures.h +280 -0
- package/third_party/s2geometry/src/s2/s2loop_measures_test.cc +367 -0
- package/third_party/s2geometry/src/s2/s2loop_test.cc +1371 -0
- package/third_party/s2geometry/src/s2/s2max_distance_targets.cc +265 -0
- package/third_party/s2geometry/src/s2/s2max_distance_targets.h +241 -0
- package/third_party/s2geometry/src/s2/s2max_distance_targets_test.cc +367 -0
- package/third_party/s2geometry/src/s2/s2measures.cc +128 -0
- package/third_party/s2geometry/src/s2/s2measures.h +78 -0
- package/third_party/s2geometry/src/s2/s2measures_test.cc +135 -0
- package/third_party/s2geometry/src/s2/s2metrics.cc +122 -0
- package/third_party/s2geometry/src/s2/s2metrics.h +199 -0
- package/third_party/s2geometry/src/s2/s2metrics_test.cc +127 -0
- package/third_party/s2geometry/src/s2/s2min_distance_targets.cc +295 -0
- package/third_party/s2geometry/src/s2/s2min_distance_targets.h +273 -0
- package/third_party/s2geometry/src/s2/s2min_distance_targets_test.cc +239 -0
- package/third_party/s2geometry/src/s2/s2padded_cell.cc +162 -0
- package/third_party/s2geometry/src/s2/s2padded_cell.h +108 -0
- package/third_party/s2geometry/src/s2/s2padded_cell_test.cc +138 -0
- package/third_party/s2geometry/src/s2/s2point.h +38 -0
- package/third_party/s2geometry/src/s2/s2point_compression.cc +388 -0
- package/third_party/s2geometry/src/s2/s2point_compression.h +78 -0
- package/third_party/s2geometry/src/s2/s2point_compression_test.cc +305 -0
- package/third_party/s2geometry/src/s2/s2point_index.h +345 -0
- package/third_party/s2geometry/src/s2/s2point_index_test.cc +147 -0
- package/third_party/s2geometry/src/s2/s2point_region.cc +72 -0
- package/third_party/s2geometry/src/s2/s2point_region.h +76 -0
- package/third_party/s2geometry/src/s2/s2point_region_test.cc +100 -0
- package/third_party/s2geometry/src/s2/s2point_span.h +57 -0
- package/third_party/s2geometry/src/s2/s2point_test.cc +47 -0
- package/third_party/s2geometry/src/s2/s2point_vector_shape.h +127 -0
- package/third_party/s2geometry/src/s2/s2point_vector_shape_test.cc +59 -0
- package/third_party/s2geometry/src/s2/s2pointutil.cc +131 -0
- package/third_party/s2geometry/src/s2/s2pointutil.h +138 -0
- package/third_party/s2geometry/src/s2/s2pointutil_test.cc +157 -0
- package/third_party/s2geometry/src/s2/s2polygon.cc +1569 -0
- package/third_party/s2geometry/src/s2/s2polygon.h +934 -0
- package/third_party/s2geometry/src/s2/s2polygon_test.cc +3025 -0
- package/third_party/s2geometry/src/s2/s2polyline.cc +645 -0
- package/third_party/s2geometry/src/s2/s2polyline.h +379 -0
- package/third_party/s2geometry/src/s2/s2polyline_alignment.cc +414 -0
- package/third_party/s2geometry/src/s2/s2polyline_alignment.h +245 -0
- package/third_party/s2geometry/src/s2/s2polyline_alignment_internal.h +158 -0
- package/third_party/s2geometry/src/s2/s2polyline_alignment_test.cc +610 -0
- package/third_party/s2geometry/src/s2/s2polyline_measures.cc +42 -0
- package/third_party/s2geometry/src/s2/s2polyline_measures.h +53 -0
- package/third_party/s2geometry/src/s2/s2polyline_measures_test.cc +57 -0
- package/third_party/s2geometry/src/s2/s2polyline_simplifier.cc +187 -0
- package/third_party/s2geometry/src/s2/s2polyline_simplifier.h +109 -0
- package/third_party/s2geometry/src/s2/s2polyline_simplifier_test.cc +165 -0
- package/third_party/s2geometry/src/s2/s2polyline_test.cc +554 -0
- package/third_party/s2geometry/src/s2/s2predicates.cc +1486 -0
- package/third_party/s2geometry/src/s2/s2predicates.h +282 -0
- package/third_party/s2geometry/src/s2/s2predicates_internal.h +135 -0
- package/third_party/s2geometry/src/s2/s2predicates_test.cc +1427 -0
- package/third_party/s2geometry/src/s2/s2projections.cc +109 -0
- package/third_party/s2geometry/src/s2/s2projections.h +161 -0
- package/third_party/s2geometry/src/s2/s2projections_test.cc +78 -0
- package/third_party/s2geometry/src/s2/s2r2rect.cc +88 -0
- package/third_party/s2geometry/src/s2/s2r2rect.h +292 -0
- package/third_party/s2geometry/src/s2/s2r2rect_test.cc +312 -0
- package/third_party/s2geometry/src/s2/s2region.cc +26 -0
- package/third_party/s2geometry/src/s2/s2region.h +142 -0
- package/third_party/s2geometry/src/s2/s2region_coverer.cc +514 -0
- package/third_party/s2geometry/src/s2/s2region_coverer.h +356 -0
- package/third_party/s2geometry/src/s2/s2region_coverer_test.cc +509 -0
- package/third_party/s2geometry/src/s2/s2region_intersection.cc +84 -0
- package/third_party/s2geometry/src/s2/s2region_intersection.h +79 -0
- package/third_party/s2geometry/src/s2/s2region_term_indexer.cc +270 -0
- package/third_party/s2geometry/src/s2/s2region_term_indexer.h +299 -0
- package/third_party/s2geometry/src/s2/s2region_term_indexer_test.cc +209 -0
- package/third_party/s2geometry/src/s2/s2region_test.cc +370 -0
- package/third_party/s2geometry/src/s2/s2region_union.cc +90 -0
- package/third_party/s2geometry/src/s2/s2region_union.h +83 -0
- package/third_party/s2geometry/src/s2/s2region_union_test.cc +89 -0
- package/third_party/s2geometry/src/s2/s2shape.h +283 -0
- package/third_party/s2geometry/src/s2/s2shape_index.cc +321 -0
- package/third_party/s2geometry/src/s2/s2shape_index.h +781 -0
- package/third_party/s2geometry/src/s2/s2shape_index_buffered_region.cc +113 -0
- package/third_party/s2geometry/src/s2/s2shape_index_buffered_region.h +135 -0
- package/third_party/s2geometry/src/s2/s2shape_index_buffered_region_test.cc +162 -0
- package/third_party/s2geometry/src/s2/s2shape_index_measures.cc +92 -0
- package/third_party/s2geometry/src/s2/s2shape_index_measures.h +100 -0
- package/third_party/s2geometry/src/s2/s2shape_index_measures_test.cc +136 -0
- package/third_party/s2geometry/src/s2/s2shape_index_region.h +350 -0
- package/third_party/s2geometry/src/s2/s2shape_index_region_test.cc +161 -0
- package/third_party/s2geometry/src/s2/s2shape_index_test.cc +24 -0
- package/third_party/s2geometry/src/s2/s2shape_measures.cc +138 -0
- package/third_party/s2geometry/src/s2/s2shape_measures.h +95 -0
- package/third_party/s2geometry/src/s2/s2shape_measures_test.cc +139 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.cc +120 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries.h +66 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_build_polygon_boundaries_test.cc +170 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_coding.cc +253 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_coding.h +283 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_coding_test.cc +54 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_contains_brute_force.cc +40 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_contains_brute_force.h +41 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_contains_brute_force_test.cc +55 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_count_edges.h +57 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_count_edges_test.cc +43 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_edge_iterator.cc +45 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_edge_iterator.h +72 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_edge_iterator_test.cc +116 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_get_reference_point.cc +107 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_get_reference_point.h +48 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_get_reference_point_test.cc +104 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_range_iterator.cc +58 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_range_iterator.h +65 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_range_iterator_test.cc +61 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_shape_edge.h +58 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_shape_edge_id.h +97 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_testing.cc +104 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_testing.h +36 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.cc +440 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs.h +72 -0
- package/third_party/s2geometry/src/s2/s2shapeutil_visit_crossing_edge_pairs_test.cc +184 -0
- package/third_party/s2geometry/src/s2/s2testing.cc +464 -0
- package/third_party/s2geometry/src/s2/s2testing.h +385 -0
- package/third_party/s2geometry/src/s2/s2testing_test.cc +166 -0
- package/third_party/s2geometry/src/s2/s2text_format.cc +506 -0
- package/third_party/s2geometry/src/s2/s2text_format.h +289 -0
- package/third_party/s2geometry/src/s2/s2text_format_test.cc +417 -0
- package/third_party/s2geometry/src/s2/s2wedge_relations.cc +80 -0
- package/third_party/s2geometry/src/s2/s2wedge_relations.h +64 -0
- package/third_party/s2geometry/src/s2/s2wedge_relations_test.cc +89 -0
- package/third_party/s2geometry/src/s2/sequence_lexicon.h +296 -0
- package/third_party/s2geometry/src/s2/sequence_lexicon_test.cc +113 -0
- package/third_party/s2geometry/src/s2/strings/ostringstream.cc +35 -0
- package/third_party/s2geometry/src/s2/strings/ostringstream.h +105 -0
- package/third_party/s2geometry/src/s2/strings/serialize.cc +46 -0
- package/third_party/s2geometry/src/s2/strings/serialize.h +40 -0
- package/third_party/s2geometry/src/s2/third_party/absl/algorithm/algorithm.h +187 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/attributes.h +666 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/casts.h +189 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/config.h +462 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/dynamic_annotations.cc +129 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/dynamic_annotations.h +394 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/atomic_hook.h +168 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/identity.h +33 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/inline_variable.h +117 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/invoke.h +188 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/raw_logging.cc +254 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/raw_logging.h +205 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/throw_delegate.cc +106 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/throw_delegate.h +71 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/internal/unaligned_access.h +322 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/log_severity.h +77 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/macros.h +236 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/optimization.h +177 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/policy_checks.h +124 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/port.h +97 -0
- package/third_party/s2geometry/src/s2/third_party/absl/base/thread_annotations.h +277 -0
- package/third_party/s2geometry/src/s2/third_party/absl/container/fixed_array.h +523 -0
- package/third_party/s2geometry/src/s2/third_party/absl/container/inlined_vector.h +1453 -0
- package/third_party/s2geometry/src/s2/third_party/absl/container/internal/compressed_tuple.h +191 -0
- package/third_party/s2geometry/src/s2/third_party/absl/container/internal/container_memory.h +424 -0
- package/third_party/s2geometry/src/s2/third_party/absl/container/internal/layout.h +739 -0
- package/third_party/s2geometry/src/s2/third_party/absl/memory/memory.h +755 -0
- package/third_party/s2geometry/src/s2/third_party/absl/meta/type_traits.h +436 -0
- package/third_party/s2geometry/src/s2/third_party/absl/numeric/int128.cc +232 -0
- package/third_party/s2geometry/src/s2/third_party/absl/numeric/int128.h +656 -0
- package/third_party/s2geometry/src/s2/third_party/absl/numeric/int128_have_intrinsic.inc +3 -0
- package/third_party/s2geometry/src/s2/third_party/absl/numeric/int128_no_intrinsic.inc +3 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/ascii.cc +198 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/ascii.h +239 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/ascii_ctype.h +66 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/internal/bits.h +53 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/internal/memutil.cc +110 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/internal/memutil.h +146 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/internal/resize_uninitialized.h +72 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/match.cc +38 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/match.h +89 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/numbers.cc +909 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/numbers.h +187 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/str_cat.cc +240 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/str_cat.h +398 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/str_join.h +22 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/str_split.cc +47 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/str_split.h +43 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/string_view.cc +245 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/string_view.h +602 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/strip.cc +42 -0
- package/third_party/s2geometry/src/s2/third_party/absl/strings/strip.h +130 -0
- package/third_party/s2geometry/src/s2/third_party/absl/types/span.h +793 -0
- package/third_party/s2geometry/src/s2/third_party/absl/utility/utility.h +299 -0
- package/third_party/s2geometry/src/s2/util/bits/bit-interleave.cc +274 -0
- package/third_party/s2geometry/src/s2/util/bits/bit-interleave.h +53 -0
- package/third_party/s2geometry/src/s2/util/bits/bits.cc +155 -0
- package/third_party/s2geometry/src/s2/util/bits/bits.h +745 -0
- package/third_party/s2geometry/src/s2/util/coding/coder.cc +83 -0
- package/third_party/s2geometry/src/s2/util/coding/coder.h +553 -0
- package/third_party/s2geometry/src/s2/util/coding/nth-derivative.h +134 -0
- package/third_party/s2geometry/src/s2/util/coding/transforms.h +62 -0
- package/third_party/s2geometry/src/s2/util/coding/varint.cc +289 -0
- package/third_party/s2geometry/src/s2/util/coding/varint.h +476 -0
- package/third_party/s2geometry/src/s2/util/endian/endian.h +859 -0
- package/third_party/s2geometry/src/s2/util/gtl/btree.h +2471 -0
- package/third_party/s2geometry/src/s2/util/gtl/btree_container.h +411 -0
- package/third_party/s2geometry/src/s2/util/gtl/btree_map.h +79 -0
- package/third_party/s2geometry/src/s2/util/gtl/btree_set.h +73 -0
- package/third_party/s2geometry/src/s2/util/gtl/compact_array.h +653 -0
- package/third_party/s2geometry/src/s2/util/gtl/container_logging.h +291 -0
- package/third_party/s2geometry/src/s2/util/gtl/dense_hash_set.h +358 -0
- package/third_party/s2geometry/src/s2/util/gtl/densehashtable.h +1493 -0
- package/third_party/s2geometry/src/s2/util/gtl/hashtable_common.h +253 -0
- package/third_party/s2geometry/src/s2/util/gtl/layout.h +28 -0
- package/third_party/s2geometry/src/s2/util/gtl/legacy_random_shuffle.h +77 -0
- package/third_party/s2geometry/src/s2/util/hash/mix.h +76 -0
- package/third_party/s2geometry/src/s2/util/math/exactfloat/exactfloat.cc +832 -0
- package/third_party/s2geometry/src/s2/util/math/exactfloat/exactfloat.h +646 -0
- package/third_party/s2geometry/src/s2/util/math/mathutil.cc +75 -0
- package/third_party/s2geometry/src/s2/util/math/mathutil.h +189 -0
- package/third_party/s2geometry/src/s2/util/math/matrix3x3.h +574 -0
- package/third_party/s2geometry/src/s2/util/math/vector.h +569 -0
- package/third_party/s2geometry/src/s2/util/math/vector3_hash.h +54 -0
- package/third_party/s2geometry/src/s2/util/units/length-units.cc +21 -0
- package/third_party/s2geometry/src/s2/util/units/length-units.h +135 -0
- package/third_party/s2geometry/src/s2/util/units/physical-units.h +313 -0
- package/third_party/s2geometry/src/s2/value_lexicon.h +234 -0
- package/third_party/s2geometry/src/s2/value_lexicon_test.cc +121 -0
- package/third_party/s2geometry/third_party/cmake/FindGFlags.cmake +48 -0
- package/third_party/s2geometry/third_party/cmake/FindGlog.cmake +48 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
// Copyright Google Inc. All Rights Reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
|
|
16
|
+
#ifndef S2_S2TEXT_FORMAT_H_
|
|
17
|
+
#define S2_S2TEXT_FORMAT_H_
|
|
18
|
+
|
|
19
|
+
// s2text_format contains a collection of functions for converting
|
|
20
|
+
// geometry to and from a human-readable format. It is mainly
|
|
21
|
+
// intended for testing and debugging. Be aware that the
|
|
22
|
+
// human-readable format is *not* designed to preserve the full
|
|
23
|
+
// precision of the original object, so it should not be used
|
|
24
|
+
// for data storage.
|
|
25
|
+
|
|
26
|
+
#include <memory>
|
|
27
|
+
#include <string>
|
|
28
|
+
#include <vector>
|
|
29
|
+
|
|
30
|
+
#include "s2/third_party/absl/base/attributes.h"
|
|
31
|
+
#include "s2/third_party/absl/strings/string_view.h"
|
|
32
|
+
#include "s2/s2cell_id.h"
|
|
33
|
+
#include "s2/s2cell_union.h"
|
|
34
|
+
#include "s2/s2debug.h"
|
|
35
|
+
#include "s2/s2latlng_rect.h"
|
|
36
|
+
#include "s2/s2point_span.h"
|
|
37
|
+
|
|
38
|
+
class MutableS2ShapeIndex;
|
|
39
|
+
class S2LaxPolygonShape;
|
|
40
|
+
class S2LaxPolylineShape;
|
|
41
|
+
class S2Loop;
|
|
42
|
+
class S2Polygon;
|
|
43
|
+
class S2Polyline;
|
|
44
|
+
class S2ShapeIndex;
|
|
45
|
+
|
|
46
|
+
namespace s2textformat {
|
|
47
|
+
|
|
48
|
+
// Returns an S2Point corresponding to the given a latitude-longitude
|
|
49
|
+
// coordinate in degrees. Example of the input format:
|
|
50
|
+
// "-20:150"
|
|
51
|
+
S2Point MakePointOrDie(absl::string_view str);
|
|
52
|
+
|
|
53
|
+
// As above, but do not S2_CHECK-fail on invalid input. Returns true if conversion
|
|
54
|
+
// is successful.
|
|
55
|
+
ABSL_MUST_USE_RESULT bool MakePoint(absl::string_view str, S2Point* point);
|
|
56
|
+
|
|
57
|
+
ABSL_DEPRECATED("Use MakePointOrDie.")
|
|
58
|
+
inline S2Point MakePoint(absl::string_view str) { return MakePointOrDie(str); }
|
|
59
|
+
|
|
60
|
+
// Parses a string of one or more latitude-longitude coordinates in degrees,
|
|
61
|
+
// and return the corresponding vector of S2LatLng points.
|
|
62
|
+
// Examples of the input format:
|
|
63
|
+
// "" // no points
|
|
64
|
+
// "-20:150" // one point
|
|
65
|
+
// "-20:150, -20:151, -19:150" // three points
|
|
66
|
+
std::vector<S2LatLng> ParseLatLngsOrDie(absl::string_view str);
|
|
67
|
+
|
|
68
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
69
|
+
// conversion is successful.
|
|
70
|
+
ABSL_MUST_USE_RESULT bool ParseLatLngs(absl::string_view str,
|
|
71
|
+
std::vector<S2LatLng>* latlngs);
|
|
72
|
+
|
|
73
|
+
ABSL_DEPRECATED("Use ParseLatLngsOrDie.")
|
|
74
|
+
inline std::vector<S2LatLng> ParseLatLngs(absl::string_view str) {
|
|
75
|
+
return ParseLatLngsOrDie(str);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Parses a string in the same format as ParseLatLngs, and return the
|
|
79
|
+
// corresponding vector of S2Point values.
|
|
80
|
+
std::vector<S2Point> ParsePointsOrDie(absl::string_view str);
|
|
81
|
+
|
|
82
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
83
|
+
// conversion is successful.
|
|
84
|
+
ABSL_MUST_USE_RESULT bool ParsePoints(absl::string_view str,
|
|
85
|
+
std::vector<S2Point>* vertices);
|
|
86
|
+
|
|
87
|
+
ABSL_DEPRECATED("Use ParsePointsOrDie.")
|
|
88
|
+
inline std::vector<S2Point> ParsePoints(absl::string_view str) {
|
|
89
|
+
return ParsePointsOrDie(str);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Given a string in the same format as ParseLatLngs, returns a single S2LatLng.
|
|
93
|
+
S2LatLng MakeLatLngOrDie(absl::string_view str);
|
|
94
|
+
|
|
95
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
96
|
+
// conversion is successful.
|
|
97
|
+
ABSL_MUST_USE_RESULT bool MakeLatLng(absl::string_view str, S2LatLng* latlng);
|
|
98
|
+
|
|
99
|
+
// Given a string in the same format as ParseLatLngs, returns the minimal
|
|
100
|
+
// bounding S2LatLngRect that contains the coordinates.
|
|
101
|
+
S2LatLngRect MakeLatLngRectOrDie(absl::string_view str);
|
|
102
|
+
|
|
103
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
104
|
+
// conversion is successful.
|
|
105
|
+
ABSL_MUST_USE_RESULT bool MakeLatLngRect(absl::string_view str,
|
|
106
|
+
S2LatLngRect* rect);
|
|
107
|
+
|
|
108
|
+
ABSL_DEPRECATED("Use MakeLatLngRectOrDie.")
|
|
109
|
+
inline S2LatLngRect MakeLatLngRect(absl::string_view str) {
|
|
110
|
+
return MakeLatLngRectOrDie(str);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Parses an S2CellId in the format "f/dd..d" where "f" is a digit in the
|
|
114
|
+
// range [0-5] representing the S2CellId face, and "dd..d" is a string of
|
|
115
|
+
// digits in the range [0-3] representing each child's position with respect
|
|
116
|
+
// to its parent. (Note that the latter string may be empty.)
|
|
117
|
+
//
|
|
118
|
+
// For example "4/" represents S2CellId::FromFace(4), and "3/02" represents
|
|
119
|
+
// S2CellId::FromFace(3).child(0).child(2).
|
|
120
|
+
//
|
|
121
|
+
// This function is a wrapper for S2CellId::FromDebugString().
|
|
122
|
+
S2CellId MakeCellIdOrDie(absl::string_view str);
|
|
123
|
+
|
|
124
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
125
|
+
// conversion is successful.
|
|
126
|
+
ABSL_MUST_USE_RESULT bool MakeCellId(absl::string_view str, S2CellId* cell_id);
|
|
127
|
+
|
|
128
|
+
// Parses a comma-separated list of S2CellIds in the format above, and returns
|
|
129
|
+
// the corresponding S2CellUnion. (Note that S2CellUnions are automatically
|
|
130
|
+
// normalized by sorting, removing duplicates, and replacing groups of 4 child
|
|
131
|
+
// cells by their parent cell.)
|
|
132
|
+
S2CellUnion MakeCellUnionOrDie(absl::string_view str);
|
|
133
|
+
|
|
134
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
135
|
+
// conversion is successful.
|
|
136
|
+
ABSL_MUST_USE_RESULT bool MakeCellUnion(absl::string_view str,
|
|
137
|
+
S2CellUnion* cell_union);
|
|
138
|
+
|
|
139
|
+
// Given a string of latitude-longitude coordinates in degrees,
|
|
140
|
+
// returns a newly allocated loop. Example of the input format:
|
|
141
|
+
// "-20:150, 10:-120, 0.123:-170.652"
|
|
142
|
+
// The strings "empty" or "full" create an empty or full loop respectively.
|
|
143
|
+
std::unique_ptr<S2Loop> MakeLoopOrDie(absl::string_view str,
|
|
144
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
145
|
+
|
|
146
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
147
|
+
// conversion is successful.
|
|
148
|
+
ABSL_MUST_USE_RESULT bool MakeLoop(absl::string_view str,
|
|
149
|
+
std::unique_ptr<S2Loop>* loop,
|
|
150
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
151
|
+
|
|
152
|
+
ABSL_DEPRECATED("Use MakeLoopOrDie.")
|
|
153
|
+
std::unique_ptr<S2Loop> MakeLoop(absl::string_view str,
|
|
154
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
155
|
+
|
|
156
|
+
// Similar to MakeLoop(), but returns an S2Polyline rather than an S2Loop.
|
|
157
|
+
std::unique_ptr<S2Polyline> MakePolylineOrDie(
|
|
158
|
+
absl::string_view str,
|
|
159
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
160
|
+
|
|
161
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
162
|
+
// conversion is successful.
|
|
163
|
+
ABSL_MUST_USE_RESULT bool MakePolyline(absl::string_view str,
|
|
164
|
+
std::unique_ptr<S2Polyline>* polyline,
|
|
165
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
166
|
+
|
|
167
|
+
ABSL_DEPRECATED("Use MakePolylineOrDie.")
|
|
168
|
+
std::unique_ptr<S2Polyline> MakePolyline(
|
|
169
|
+
absl::string_view str,
|
|
170
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
171
|
+
|
|
172
|
+
// Like MakePolyline, but returns an S2LaxPolylineShape instead.
|
|
173
|
+
std::unique_ptr<S2LaxPolylineShape> MakeLaxPolylineOrDie(absl::string_view str);
|
|
174
|
+
|
|
175
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
176
|
+
// conversion is successful.
|
|
177
|
+
ABSL_MUST_USE_RESULT bool MakeLaxPolyline(
|
|
178
|
+
absl::string_view str, std::unique_ptr<S2LaxPolylineShape>* lax_polyline);
|
|
179
|
+
|
|
180
|
+
ABSL_DEPRECATED("Use MakeLaxPolylineOrDie.")
|
|
181
|
+
std::unique_ptr<S2LaxPolylineShape> MakeLaxPolyline(absl::string_view str);
|
|
182
|
+
|
|
183
|
+
// Given a sequence of loops separated by semicolons, returns a newly
|
|
184
|
+
// allocated polygon. Loops are automatically normalized by inverting them
|
|
185
|
+
// if necessary so that they enclose at most half of the unit sphere.
|
|
186
|
+
// (Historically this was once a requirement of polygon loops. It also
|
|
187
|
+
// hides the problem that if the user thinks of the coordinates as X:Y
|
|
188
|
+
// rather than LAT:LNG, it yields a loop with the opposite orientation.)
|
|
189
|
+
//
|
|
190
|
+
// Examples of the input format:
|
|
191
|
+
// "10:20, 90:0, 20:30" // one loop
|
|
192
|
+
// "10:20, 90:0, 20:30; 5.5:6.5, -90:-180, -15.2:20.3" // two loops
|
|
193
|
+
// "" // the empty polygon (consisting of no loops)
|
|
194
|
+
// "empty" // the empty polygon (consisting of no loops)
|
|
195
|
+
// "full" // the full polygon (consisting of one full loop).
|
|
196
|
+
std::unique_ptr<S2Polygon> MakePolygonOrDie(
|
|
197
|
+
absl::string_view str,
|
|
198
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
199
|
+
|
|
200
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
201
|
+
// conversion is successful.
|
|
202
|
+
ABSL_MUST_USE_RESULT bool MakePolygon(absl::string_view str,
|
|
203
|
+
std::unique_ptr<S2Polygon>* polygon,
|
|
204
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
205
|
+
|
|
206
|
+
ABSL_DEPRECATED("Use MakePolygonOrDie.")
|
|
207
|
+
std::unique_ptr<S2Polygon> MakePolygon(absl::string_view str,
|
|
208
|
+
S2Debug debug_override = S2Debug::ALLOW);
|
|
209
|
+
|
|
210
|
+
// Like MakePolygon(), except that it does not normalize loops (i.e., it
|
|
211
|
+
// gives you exactly what you asked for).
|
|
212
|
+
std::unique_ptr<S2Polygon> MakeVerbatimPolygonOrDie(absl::string_view str);
|
|
213
|
+
|
|
214
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
215
|
+
// conversion is successful.
|
|
216
|
+
ABSL_MUST_USE_RESULT bool MakeVerbatimPolygon(
|
|
217
|
+
absl::string_view str, std::unique_ptr<S2Polygon>* polygon);
|
|
218
|
+
|
|
219
|
+
ABSL_DEPRECATED("Use MakeVerbatimPolygonOrDie.")
|
|
220
|
+
std::unique_ptr<S2Polygon> MakeVerbatimPolygon(absl::string_view str);
|
|
221
|
+
|
|
222
|
+
// Parses a string in the same format as MakePolygon, except that loops must
|
|
223
|
+
// be oriented so that the interior of the loop is always on the left, and
|
|
224
|
+
// polygons with degeneracies are supported. As with MakePolygon, "full" and
|
|
225
|
+
// denotes the full polygon and "" or "empty" denote the empty polygon.
|
|
226
|
+
std::unique_ptr<S2LaxPolygonShape> MakeLaxPolygonOrDie(absl::string_view str);
|
|
227
|
+
|
|
228
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
229
|
+
// conversion is successful.
|
|
230
|
+
ABSL_MUST_USE_RESULT bool MakeLaxPolygon(
|
|
231
|
+
absl::string_view str, std::unique_ptr<S2LaxPolygonShape>* lax_polygon);
|
|
232
|
+
|
|
233
|
+
ABSL_DEPRECATED("Use MakeLaxPolygonOrDie.")
|
|
234
|
+
std::unique_ptr<S2LaxPolygonShape> MakeLaxPolygon(absl::string_view str);
|
|
235
|
+
|
|
236
|
+
// Returns a MutableS2ShapeIndex containing the points, polylines, and loops
|
|
237
|
+
// (in the form of a single polygon) described by the following format:
|
|
238
|
+
//
|
|
239
|
+
// point1|point2|... # line1|line2|... # polygon1|polygon2|...
|
|
240
|
+
//
|
|
241
|
+
// Examples:
|
|
242
|
+
// 1:2 | 2:3 # # // Two points
|
|
243
|
+
// # 0:0, 1:1, 2:2 | 3:3, 4:4 # // Two polylines
|
|
244
|
+
// # # 0:0, 0:3, 3:0; 1:1, 2:1, 1:2 // Two nested loops (one polygon)
|
|
245
|
+
// 5:5 # 6:6, 7:7 # 0:0, 0:1, 1:0 // One of each
|
|
246
|
+
// # # empty // One empty polygon
|
|
247
|
+
// # # empty | full // One empty polygon, one full polygon
|
|
248
|
+
//
|
|
249
|
+
// Loops should be directed so that the region's interior is on the left.
|
|
250
|
+
// Loops can be degenerate (they do not need to meet S2Loop requirements).
|
|
251
|
+
//
|
|
252
|
+
// CAVEAT: Because whitespace is ignored, empty polygons must be specified
|
|
253
|
+
// as the string "empty" rather than as the empty string ("").
|
|
254
|
+
std::unique_ptr<MutableS2ShapeIndex> MakeIndexOrDie(absl::string_view str);
|
|
255
|
+
|
|
256
|
+
// As above, but does not S2_CHECK-fail on invalid input. Returns true if
|
|
257
|
+
// conversion is successful.
|
|
258
|
+
ABSL_MUST_USE_RESULT bool MakeIndex(
|
|
259
|
+
absl::string_view str, std::unique_ptr<MutableS2ShapeIndex>* index);
|
|
260
|
+
|
|
261
|
+
ABSL_DEPRECATED("Use MakeIndexOrDie.")
|
|
262
|
+
std::unique_ptr<MutableS2ShapeIndex> MakeIndex(absl::string_view str);
|
|
263
|
+
|
|
264
|
+
// Convert an S2Point, S2LatLng, S2LatLngRect, S2CellId, S2CellUnion, loop,
|
|
265
|
+
// polyline, or polygon to the string format above.
|
|
266
|
+
string ToString(const S2Point& point);
|
|
267
|
+
string ToString(const S2LatLng& latlng);
|
|
268
|
+
string ToString(const S2LatLngRect& rect);
|
|
269
|
+
string ToString(const S2CellId& cell_id);
|
|
270
|
+
string ToString(const S2CellUnion& cell_union);
|
|
271
|
+
string ToString(const S2Loop& loop);
|
|
272
|
+
string ToString(S2PointLoopSpan loop);
|
|
273
|
+
string ToString(const S2Polyline& polyline);
|
|
274
|
+
string ToString(const S2Polygon& polygon, const char* loop_separator = ";\n");
|
|
275
|
+
string ToString(const std::vector<S2Point>& points);
|
|
276
|
+
string ToString(const std::vector<S2LatLng>& points);
|
|
277
|
+
string ToString(const S2LaxPolylineShape& polyline);
|
|
278
|
+
string ToString(const S2LaxPolygonShape& polygon,
|
|
279
|
+
const char* loop_separator = ";\n");
|
|
280
|
+
|
|
281
|
+
// Convert the contents of an S2ShapeIndex to the format above. The index may
|
|
282
|
+
// contain S2Shapes of any type. Shapes are reordered if necessary so that
|
|
283
|
+
// all point geometry (shapes of dimension 0) are first, followed by all
|
|
284
|
+
// polyline geometry, followed by all polygon geometry.
|
|
285
|
+
string ToString(const S2ShapeIndex& index);
|
|
286
|
+
|
|
287
|
+
} // namespace s2textformat
|
|
288
|
+
|
|
289
|
+
#endif // S2_S2TEXT_FORMAT_H_
|