├── .circleci ├── circle1.0.yml ├── config.yml └── run_test.sh ├── .gitattributes ├── .github └── workflows │ ├── cmake.yml │ ├── documentation.yml │ ├── headers.yml │ └── minimal.yml ├── .gitignore ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE_1_0.txt ├── README.md ├── build.jam ├── doc ├── Jamfile ├── acknowledgments.qbk ├── compiling.qbk ├── concept │ ├── box.qbk │ ├── linestring.qbk │ ├── multi_linestring.qbk │ ├── multi_point.qbk │ ├── multi_polygon.qbk │ ├── point.qbk │ ├── polygon.qbk │ ├── polyhedral_surface.qbk │ ├── ring.qbk │ └── segment.qbk ├── copyright_note_policy.txt ├── debug_clean_doc.sh ├── debug_make_doc.sh ├── design_rationale.qbk ├── doxy │ ├── Doxyfile │ ├── doxygen_input │ │ ├── ggl_doxygen_footer.html │ │ ├── ggl_doxygen_header.html │ │ ├── groups │ │ │ └── groups.hpp │ │ ├── images │ │ │ ├── 07_graph_route_example_svg.png │ │ │ ├── 07_graph_route_example_text.png │ │ │ ├── centroid_polygon.png │ │ │ ├── centroid_ring.png │ │ │ ├── clip_linestring.png │ │ │ ├── clip_polygon.png │ │ │ ├── clip_segment_segment.png │ │ │ ├── combine_box_box.png │ │ │ ├── combine_box_point.png │ │ │ ├── convexhull_polygon_polygon.png │ │ │ ├── envelope_polygon.png │ │ │ ├── linestring.png │ │ │ ├── multi_polygon.png │ │ │ ├── output_main.png │ │ │ ├── polygon.png │ │ │ ├── robust_float.png │ │ │ ├── robust_stars.png │ │ │ ├── robust_triangle_box.png │ │ │ ├── robust_triangles.png │ │ │ ├── set_a_ac.png │ │ │ ├── set_adapt_turns.png │ │ │ ├── set_int_right_union_left.png │ │ │ ├── simplify_example.png │ │ │ ├── simplify_linestring.png │ │ │ ├── source │ │ │ │ ├── centroid_polygon.svg │ │ │ │ ├── centroid_ring.svg │ │ │ │ ├── clip_linestring.svg │ │ │ │ ├── clip_polygon.svg │ │ │ │ ├── clip_polygon_2.svg │ │ │ │ ├── combine_box_box.svg │ │ │ │ ├── combine_box_point.svg │ │ │ │ ├── convexhull_polygon_polygon.svg │ │ │ │ ├── envelope_polygon.svg │ │ │ │ ├── geometries.svg │ │ │ │ ├── intersection_results.svg │ │ │ │ ├── intersection_segment_segment.svg │ │ │ │ ├── linestring_example.svg │ │ │ │ ├── polygon_example.svg │ │ │ │ ├── polygon_example1.svg │ │ │ │ ├── ring.svg │ │ │ │ ├── simplify_example.svg │ │ │ │ ├── simplify_linestring.svg │ │ │ │ ├── union_box_box.svg │ │ │ │ ├── within_polygon.svg │ │ │ │ ├── within_polygon_example.svg │ │ │ │ └── within_ring.svg │ │ │ ├── speed_comparison.png │ │ │ ├── svg_convex_hull_cities.png │ │ │ ├── svg_convex_hull_country.png │ │ │ ├── svg_intersection_countries.png │ │ │ ├── svg_intersection_polygon_box.png │ │ │ ├── svg_intersection_polygon_ring.png │ │ │ ├── svg_intersection_ring_box.png │ │ │ ├── svg_intersection_ring_ring.png │ │ │ ├── svg_intersection_roads.png │ │ │ ├── svg_simplify_country.png │ │ │ ├── svg_simplify_road.png │ │ │ ├── svg_union_polygon_box.png │ │ │ ├── svg_union_polygon_ring.png │ │ │ ├── svg_union_ring_box.png │ │ │ ├── svg_union_ring_ring.png │ │ │ ├── union_box_box.png │ │ │ ├── within_polygon.png │ │ │ ├── within_polygon_example.png │ │ │ ├── within_ring.png │ │ │ ├── x01_qt_example_output.png │ │ │ └── x02_numeric_adaptor_example_output.png │ │ └── sourcecode │ │ │ ├── doxygen_1.cpp │ │ │ ├── doxygen_2.cpp │ │ │ ├── doxygen_3.cpp │ │ │ ├── doxygen_4.cpp │ │ │ └── doxygen_5.cpp │ └── doxygen_output │ │ ├── .gitignore │ │ └── html │ │ ├── 07_graph_route_example_svg.png │ │ ├── 07_graph_route_example_text.png │ │ ├── centroid_polygon.png │ │ ├── centroid_ring.png │ │ ├── clip_linestring.png │ │ ├── clip_polygon.png │ │ ├── combine_box_box.png │ │ ├── combine_box_point.png │ │ ├── envelope_polygon.png │ │ ├── images │ │ ├── accepted_by_boost.png │ │ ├── draft.png │ │ ├── ggl-logo-big.png │ │ └── proposed_boost.png │ │ ├── output_main.png │ │ ├── set_a_ac.png │ │ ├── set_adapt_turns.png │ │ ├── set_int_right_union_left.png │ │ ├── simplify_linestring.png │ │ ├── svg_convex_hull_cities.png │ │ ├── svg_convex_hull_country.png │ │ ├── svg_intersection_countries.png │ │ ├── svg_intersection_polygon_box.png │ │ ├── svg_intersection_polygon_ring.png │ │ ├── svg_intersection_ring_box.png │ │ ├── svg_intersection_ring_ring.png │ │ ├── svg_intersection_roads.png │ │ ├── svg_simplify_country.png │ │ ├── svg_simplify_road.png │ │ ├── svg_union_polygon_box.png │ │ ├── svg_union_polygon_ring.png │ │ ├── svg_union_ring_box.png │ │ ├── svg_union_ring_ring.png │ │ ├── tab_b.gif │ │ ├── tab_l.gif │ │ ├── tab_r.gif │ │ ├── within_polygon.png │ │ ├── within_ring.png │ │ ├── x01_qt_example_output.png │ │ └── x02_numeric_adaptor_example_output.png ├── example_adapting_a_legacy_geometry_object_model.qbk ├── generated │ ├── .gitignore │ └── boost-no-inspect ├── geometry.qbk ├── html │ ├── .gitignore │ ├── img │ │ ├── algorithms │ │ │ ├── buffer_linestring.png │ │ │ ├── buffer_multi_point.png │ │ │ ├── buffer_multi_polygon.png │ │ │ ├── buffer_strategies.png │ │ │ ├── buffer_strategies.svg │ │ │ ├── centroid.png │ │ │ ├── closest_points.png │ │ │ ├── convex_hull.png │ │ │ ├── covered_by.png │ │ │ ├── crosses.png │ │ │ ├── difference_a.png │ │ │ ├── difference_b.png │ │ │ ├── disjoint.png │ │ │ ├── envelope.png │ │ │ ├── intersection.png │ │ │ ├── is_simple_example.png │ │ │ ├── is_valid_example.png │ │ │ ├── is_valid_failure_example.png │ │ │ ├── overlaps.png │ │ │ ├── return_envelope.png │ │ │ ├── sym_difference.png │ │ │ ├── touches_one_geometry.png │ │ │ ├── touches_two_geometries.png │ │ │ ├── union.png │ │ │ └── within.png │ │ ├── geometries │ │ │ └── triangular_pyramid.png │ │ ├── index │ │ │ └── rtree │ │ │ │ ├── build_non_ovl.png │ │ │ │ ├── build_ovl.png │ │ │ │ ├── bulk.png │ │ │ │ ├── disjoint.png │ │ │ │ ├── intersects.png │ │ │ │ ├── intersects_linestring.png │ │ │ │ ├── intersects_mpoly.png │ │ │ │ ├── intersects_poly.png │ │ │ │ ├── intersects_ring.png │ │ │ │ ├── intersects_segment.png │ │ │ │ ├── knn.png │ │ │ │ ├── knn_box_box.png │ │ │ │ ├── knn_pt_box.png │ │ │ │ ├── knn_seg_box.png │ │ │ │ ├── linear.png │ │ │ │ ├── overlaps.png │ │ │ │ ├── path.png │ │ │ │ ├── quadratic.png │ │ │ │ ├── query_non_ovl.png │ │ │ │ ├── query_ovl.png │ │ │ │ ├── rstar.png │ │ │ │ ├── rtree_pt.png │ │ │ │ ├── rtree_pt_disjoint_box.png │ │ │ │ ├── rtree_pt_intersects_box.png │ │ │ │ ├── rtree_pt_knn_box.png │ │ │ │ ├── rtree_pt_knn_pt.png │ │ │ │ ├── rtree_pt_knn_seg.png │ │ │ │ ├── rtree_seg.png │ │ │ │ ├── rtree_seg_disjoint_box.png │ │ │ │ ├── rtree_seg_intersects_box.png │ │ │ │ ├── rtree_seg_knn_box.png │ │ │ │ ├── rtree_seg_knn_pt.png │ │ │ │ ├── rtree_seg_knn_seg.png │ │ │ │ └── within.png │ │ ├── io │ │ │ ├── svg_mapper.png │ │ │ └── svg_mapper_custom.png │ │ ├── nyi.png │ │ ├── ok.png │ │ └── strategies │ │ │ ├── buffer_distance_asymmetric.png │ │ │ ├── buffer_distance_symmetric.png │ │ │ ├── buffer_end_flat.png │ │ │ ├── buffer_end_round.png │ │ │ ├── buffer_join_miter.png │ │ │ ├── buffer_join_round.png │ │ │ ├── buffer_point_circle.png │ │ │ └── buffer_point_square.png │ ├── index.html │ ├── svg_simplify_country.png │ └── svg_simplify_road.png ├── imports.qbk ├── index │ ├── .gitignore │ ├── Doxyfile │ ├── Jamfile │ ├── generated │ │ ├── .gitignore │ │ └── dummy │ ├── imports.qbk │ ├── index.qbk │ ├── introduction.qbk │ ├── make_qbk.py │ ├── rtree.qbk │ ├── rtree │ │ ├── creation.qbk │ │ ├── examples.qbk │ │ ├── exception_safety.qbk │ │ ├── experimental.qbk │ │ ├── introduction.qbk │ │ ├── query.qbk │ │ ├── quickstart.qbk │ │ └── reference.qbk │ └── src │ │ └── examples │ │ ├── Jamfile │ │ └── rtree │ │ ├── Jamfile │ │ ├── interprocess.cpp │ │ ├── interprocess_results.qbk │ │ ├── iterative_query.cpp │ │ ├── iterative_query_results.qbk │ │ ├── mapped_file.cpp │ │ ├── mapped_file_results.qbk │ │ ├── polygons_shared_ptr.cpp │ │ ├── polygons_shared_ptr_results.qbk │ │ ├── polygons_vector.cpp │ │ ├── polygons_vector_results.qbk │ │ ├── quick_start.cpp │ │ ├── quick_start_results.qbk │ │ ├── range_adaptors.cpp │ │ ├── range_adaptors_results.qbk │ │ ├── value_index.cpp │ │ ├── value_index_results.qbk │ │ ├── value_shared_ptr.cpp │ │ ├── value_shared_ptr_results.qbk │ │ ├── variants_map.cpp │ │ └── variants_map_results.qbk ├── introduction.qbk ├── make_qbk.py ├── matrix.qbk ├── other │ ├── ggl.png │ ├── ggl.svg │ ├── logo │ │ ├── DENMARK.TTF │ │ ├── favicon.ico │ │ ├── logo.svg │ │ ├── logo128x128.png │ │ ├── logo16x16.png │ │ ├── logo400x400.png │ │ ├── logo64x64.png │ │ └── logo_bkg.png │ ├── maxima │ │ └── geod.mac │ ├── overlay │ │ ├── de9im_polygons.ppt │ │ ├── de9im_segments.ppt │ │ ├── intersection.ppt │ │ ├── overlay.ppt │ │ └── overlay_spatial_set_operations.ppt │ ├── status.xls │ └── testcases │ │ ├── assemble.ppt │ │ ├── buffer.ppt │ │ ├── dissolve.ppt │ │ ├── get_turn_info.ppt │ │ ├── get_turn_info.xls │ │ ├── multi_overlay_cases.ppt │ │ ├── overlay_cases.ppt │ │ ├── overlay_line_poly_cases.ppt │ │ ├── relate.ppt │ │ └── strategy_segment_intersection_obsolete.ppt ├── quickbook │ ├── arithmetic.qbk │ ├── boolean.qbk │ ├── geometries.qbk │ ├── geometry_concepts.qbk │ ├── geometry_types.qbk │ ├── misc.qbk │ ├── quickref.xml │ ├── readme.txt │ ├── references.qbk │ └── strategy_rationale.qbk ├── quickref.xml ├── quickstart.qbk ├── readme.txt ├── reference.qbk ├── reference │ ├── algorithms │ │ ├── append.qbk │ │ ├── area.qbk │ │ ├── azimuth.qbk │ │ ├── buffer.qbk │ │ ├── buffer_with_strategies.qbk │ │ ├── centroid.qbk │ │ ├── centroid_strategies.qbk │ │ ├── clear.qbk │ │ ├── comparable_distance.qbk │ │ ├── convert.qbk │ │ ├── convex_hull.qbk │ │ ├── correct.qbk │ │ ├── covered_by.qbk │ │ ├── crosses.qbk │ │ ├── densify.qbk │ │ ├── difference.qbk │ │ ├── difference_behavior.qbk │ │ ├── discrete_frechet_distance.qbk │ │ ├── discrete_hausdorff_distance.qbk │ │ ├── disjoint.qbk │ │ ├── distance.qbk │ │ ├── envelope.qbk │ │ ├── equals.qbk │ │ ├── expand.qbk │ │ ├── for_each_point.qbk │ │ ├── for_each_segment.qbk │ │ ├── geometry_rules.qbk │ │ ├── intersection.qbk │ │ ├── intersects.qbk │ │ ├── is_empty.qbk │ │ ├── is_simple.qbk │ │ ├── is_valid.qbk │ │ ├── is_valid_with_failure.qbk │ │ ├── is_valid_with_message.qbk │ │ ├── length.qbk │ │ ├── line_interpolate.qbk │ │ ├── num_geometries.qbk │ │ ├── num_interior_rings.qbk │ │ ├── num_points.qbk │ │ ├── num_segments.qbk │ │ ├── overlaps.qbk │ │ ├── perimeter.qbk │ │ ├── relate.qbk │ │ ├── relation.qbk │ │ ├── reverse.qbk │ │ ├── simplify.qbk │ │ ├── simplify_inserter.qbk │ │ ├── sym_difference.qbk │ │ ├── touches.qbk │ │ ├── transform.qbk │ │ ├── transform_with_strategy.qbk │ │ ├── union.qbk │ │ ├── unique.qbk │ │ └── within.qbk │ ├── core │ │ ├── closure.qbk │ │ ├── coordinate_dimension.qbk │ │ ├── coordinate_system.qbk │ │ ├── coordinate_type.qbk │ │ ├── degree_radian.qbk │ │ ├── get_box.qbk │ │ ├── get_point.qbk │ │ ├── interior_type.qbk │ │ ├── max_corner.qbk │ │ ├── min_corner.qbk │ │ ├── min_max_corner.qbk │ │ ├── point_order.qbk │ │ ├── point_type.qbk │ │ ├── ring_type.qbk │ │ ├── set_box.qbk │ │ ├── set_point.qbk │ │ ├── tag.qbk │ │ └── tag_cast.qbk │ ├── geometries │ │ ├── adapted │ │ │ ├── boost_array.qbk │ │ │ ├── boost_fusion.qbk │ │ │ ├── boost_polygon │ │ │ │ ├── point_data.qbk │ │ │ │ ├── polygon_data.qbk │ │ │ │ ├── polygon_with_holes_data.qbk │ │ │ │ └── rectangle_data.qbk │ │ │ ├── boost_range │ │ │ │ ├── adapts_model.qbk │ │ │ │ ├── filtered.qbk │ │ │ │ ├── reversed.qbk │ │ │ │ ├── sliced.qbk │ │ │ │ ├── strided.qbk │ │ │ │ └── uniqued.qbk │ │ │ ├── boost_tuple.qbk │ │ │ ├── c_array.qbk │ │ │ └── std_array.qbk │ │ ├── box.qbk │ │ ├── linestring.qbk │ │ ├── multi_linestring.qbk │ │ ├── multi_point.qbk │ │ ├── multi_polygon.qbk │ │ ├── point.qbk │ │ ├── point_assign_warning.qbk │ │ ├── point_xy.qbk │ │ ├── point_xyz.qbk │ │ ├── polygon.qbk │ │ ├── polyhedral_surface.qbk │ │ ├── register │ │ │ └── point.qbk │ │ ├── ring.qbk │ │ └── segment.qbk │ ├── io │ │ ├── from_wkt.qbk │ │ ├── read_wkt.qbk │ │ ├── svg.qbk │ │ ├── to_wkt.qbk │ │ ├── wkt.qbk │ │ └── wkt_format.qbk │ ├── status │ │ ├── append_status.qbk │ │ ├── area_status.qbk │ │ ├── buffer_status.qbk │ │ ├── centroid_status.qbk │ │ ├── clear_status.qbk │ │ ├── convert_status.qbk │ │ ├── convex_hull_status.qbk │ │ ├── correct_status.qbk │ │ ├── covered_by_status.qbk │ │ ├── crosses_status.qbk │ │ ├── disjoint_status.qbk │ │ ├── distance_status.qbk │ │ ├── envelope_status.qbk │ │ ├── equals_status.qbk │ │ ├── expand_status.qbk │ │ ├── for_each_point_status.qbk │ │ ├── for_each_segment_status.qbk │ │ ├── intersects_status.qbk │ │ ├── is_empty_status.qbk │ │ ├── is_simple_status.qbk │ │ ├── is_valid_status.qbk │ │ ├── length_status.qbk │ │ ├── num_geometries_status.qbk │ │ ├── num_interior_rings_status.qbk │ │ ├── num_points_status.qbk │ │ ├── overlaps_status.qbk │ │ ├── perimeter_status.qbk │ │ ├── reverse_status.qbk │ │ ├── simplify_status.qbk │ │ ├── transform_status.qbk │ │ ├── unique_status.qbk │ │ ├── within_status.qbk │ │ └── wkt_status.qbk │ └── views │ │ ├── box_view.qbk │ │ └── segment_view.qbk ├── release_notes.qbk ├── robustness.qbk └── src │ ├── copyright_block.qbk │ ├── docutils │ └── tools │ │ ├── doxygen_xml2qbk │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── configuration.hpp │ │ ├── contrib │ │ │ ├── rapidxml-1.13 │ │ │ │ ├── license.txt │ │ │ │ ├── manual.html │ │ │ │ ├── rapidxml.hpp │ │ │ │ ├── rapidxml_iterators.hpp │ │ │ │ ├── rapidxml_print.hpp │ │ │ │ └── rapidxml_utils.hpp │ │ │ └── readme.txt │ │ ├── doxygen_elements.hpp │ │ ├── doxygen_xml2qbk.cpp │ │ ├── doxygen_xml_parser.hpp │ │ ├── file_to_string.hpp │ │ ├── parameter_predicates.hpp │ │ ├── quickbook_output.hpp │ │ ├── rapidxml_util.hpp │ │ └── sample │ │ │ ├── Jamfile │ │ │ ├── apple.qbk │ │ │ ├── eat.qbk │ │ │ ├── fruit.dox │ │ │ ├── fruit.qbk │ │ │ ├── make_qbk.py │ │ │ └── src │ │ │ ├── examples │ │ │ └── apple_example.cpp │ │ │ ├── fruit.cpp │ │ │ └── fruit.hpp │ │ ├── implementation_status │ │ ├── Jamfile │ │ ├── implementation_status.cpp │ │ ├── implementation_status.hpp │ │ ├── implementation_status.sln │ │ ├── implementation_status.vcproj │ │ └── tmp │ │ │ └── Jamfile │ │ └── support_status │ │ ├── Jamfile │ │ ├── qbk_outputter.hpp │ │ ├── support_status.cpp │ │ ├── support_status.sln │ │ ├── support_status.vcxproj │ │ └── text_outputter.hpp │ └── examples │ ├── CMakeLists.txt │ ├── Jamfile │ ├── algorithms │ ├── CMakeLists.txt │ ├── Jamfile │ ├── append.cpp │ ├── area.cpp │ ├── area_with_strategy.cpp │ ├── assign.cpp │ ├── assign_2d_point.cpp │ ├── assign_3d_point.cpp │ ├── assign_box_corners.cpp │ ├── assign_inverse.cpp │ ├── assign_point_from_index.cpp │ ├── assign_point_to_index.cpp │ ├── assign_points.cpp │ ├── azimuth.cpp │ ├── azimuth_strategy.cpp │ ├── buffer_with_strategies.cpp │ ├── centroid.cpp │ ├── clear.cpp │ ├── closest_points.cpp │ ├── closest_points_strategy.cpp │ ├── comparable_distance.cpp │ ├── convert.cpp │ ├── convex_hull.cpp │ ├── correct.cpp │ ├── covered_by.cpp │ ├── create_svg_one.hpp │ ├── create_svg_overlay.hpp │ ├── create_svg_two.hpp │ ├── crosses.cpp │ ├── densify.cpp │ ├── densify_strategy.cpp │ ├── difference.cpp │ ├── discrete_frechet_distance.cpp │ ├── discrete_frechet_distance_strategy.cpp │ ├── discrete_hausdorff_distance.cpp │ ├── discrete_hausdorff_distance_strategy.cpp │ ├── disjoint.cpp │ ├── distance.cpp │ ├── envelope.cpp │ ├── equals.cpp │ ├── expand.cpp │ ├── for_each_point.cpp │ ├── for_each_point_const.cpp │ ├── for_each_segment_const.cpp │ ├── intersection_ls_ls_point.cpp │ ├── intersection_poly_poly.cpp │ ├── intersection_segment.cpp │ ├── intersects_linestring.cpp │ ├── intersects_segment.cpp │ ├── is_empty.cpp │ ├── is_simple.cpp │ ├── is_valid.cpp │ ├── is_valid_failure.cpp │ ├── is_valid_message.cpp │ ├── length.cpp │ ├── length_with_strategy.cpp │ ├── line_interpolate.cpp │ ├── line_interpolate_strategy.cpp │ ├── make_2d_point.cpp │ ├── make_3d_point.cpp │ ├── make_inverse.cpp │ ├── make_with_range.cpp │ ├── num_geometries.cpp │ ├── num_interior_rings.cpp │ ├── num_points.cpp │ ├── num_segments.cpp │ ├── overlaps.cpp │ ├── perimeter.cpp │ ├── relate.cpp │ ├── relation.cpp │ ├── return_envelope.cpp │ ├── reverse.cpp │ ├── simplify.cpp │ ├── simplify_insert.cpp │ ├── sym_difference.cpp │ ├── touches_one_geometry.cpp │ ├── touches_two_geometries.cpp │ ├── transform.cpp │ ├── transform_with_strategy.cpp │ ├── union.cpp │ ├── unique.cpp │ └── within.cpp │ ├── arithmetic │ ├── CMakeLists.txt │ ├── cross_product.cpp │ └── dot_product.cpp │ ├── core │ ├── CMakeLists.txt │ ├── Jamfile │ ├── closure.cpp │ ├── coordinate_dimension.cpp │ ├── coordinate_system.cpp │ ├── coordinate_type.cpp │ ├── degree_radian.cpp │ ├── get_box.cpp │ ├── get_point.cpp │ ├── interior_type.cpp │ ├── point_order.cpp │ ├── point_type.cpp │ ├── ring_type.cpp │ ├── rings.cpp │ ├── set_box.cpp │ ├── set_point.cpp │ ├── tag.cpp │ └── tag_cast.cpp │ ├── examples_utils │ ├── create_svg_buffer.hpp │ └── create_svg_closest_points.hpp │ ├── geometries │ ├── CMakeLists.txt │ ├── Jamfile │ ├── adapted │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── boost_array.cpp │ │ ├── boost_fusion.cpp │ │ ├── boost_polygon_box.cpp │ │ ├── boost_polygon_point.cpp │ │ ├── boost_polygon_polygon.cpp │ │ ├── boost_polygon_ring.cpp │ │ ├── boost_range │ │ │ ├── CMakeLists.txt │ │ │ ├── Jamfile │ │ │ ├── filtered.cpp │ │ │ ├── reversed.cpp │ │ │ ├── sliced.cpp │ │ │ ├── strided.cpp │ │ │ └── uniqued.cpp │ │ ├── boost_tuple.cpp │ │ ├── c_array.cpp │ │ └── std_array.cpp │ ├── box.cpp │ ├── linestring.cpp │ ├── multi_linestring.cpp │ ├── multi_point.cpp │ ├── multi_polygon.cpp │ ├── point.cpp │ ├── point_xy.cpp │ ├── point_xyz.cpp │ ├── polygon.cpp │ ├── polyhedral_surface.cpp │ ├── register │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── box.cpp │ │ ├── box_2d_4values.cpp │ │ ├── box_templated.cpp │ │ ├── linestring.cpp │ │ ├── linestring_templated.cpp │ │ ├── multi_linestring.cpp │ │ ├── multi_point.cpp │ │ ├── multi_point_templated.cpp │ │ ├── multi_polygon.cpp │ │ ├── point.cpp │ │ ├── ring.cpp │ │ └── ring_templated.cpp │ ├── ring.cpp │ └── segment.cpp │ ├── io │ ├── CMakeLists.txt │ ├── Jamfile │ ├── from_wkt.cpp │ ├── read_wkt.cpp │ ├── svg.cpp │ ├── svg_mapper_custom.cpp │ ├── to_wkt.cpp │ └── wkt.cpp │ ├── quick_start.cpp │ ├── strategies │ ├── CMakeLists.txt │ ├── Jamfile │ ├── buffer_distance_asymmetric.cpp │ ├── buffer_distance_symmetric.cpp │ ├── buffer_end_flat.cpp │ ├── buffer_end_round.cpp │ ├── buffer_geographic_point_circle.cpp │ ├── buffer_join_miter.cpp │ ├── buffer_join_round.cpp │ ├── buffer_point_circle.cpp │ └── buffer_point_square.cpp │ └── views │ ├── CMakeLists.txt │ ├── Jamfile │ ├── box_view.cpp │ └── segment_view.cpp ├── example ├── 01_point_example.cpp ├── 02_linestring_example.cpp ├── 03_polygon_example.cpp ├── 04_boost_example.cpp ├── 05_a_overlay_polygon_example.cpp ├── 05_b_overlay_linestring_polygon_example.cpp ├── 06_a_transformation_example.cpp ├── 06_b_transformation_example.cpp ├── 07_a_graph_route_example.cpp ├── 07_b_graph_route_example.cpp ├── Jamfile ├── c01_custom_point_example.cpp ├── c02_custom_box_example.cpp ├── c03_custom_linestring_example.cpp ├── c04_a_custom_triangle_example.cpp ├── c04_b_custom_triangle_example.cpp ├── c05_custom_point_pointer_example.cpp ├── c06_custom_polygon_example.cpp ├── c07_custom_ring_pointer_example.cpp ├── c08_custom_non_std_example.cpp ├── c09_custom_fusion_example.cpp ├── c10_custom_cs_example.cpp ├── c11_custom_cs_transform_example.cpp ├── data │ ├── cities.sql │ ├── cities.wkt │ ├── roads.wkt │ └── world.wkt ├── ml01_multipolygon_simplify.cpp ├── ml02_distance_strategy.cpp ├── ml03_distance_formula.cpp └── with_external_libs │ ├── common │ └── read_countries.hpp │ ├── contrib │ ├── gd-2.0.35 │ │ └── boost_geometry_readme.txt │ ├── shapelib-1.3.0b2 │ │ └── boost_geometry_readme.txt │ └── soci-3.1.0 │ │ └── boost_geometry_readme.txt │ ├── qt │ ├── CMakeLists.txt │ ├── README.md │ ├── qt_world_mapper.cpp │ └── qt_world_mapper.hpp │ ├── wxwidgets │ ├── CMakeLists.txt │ ├── README.md │ └── wxwidgets_world_mapper.cpp │ ├── x02_gd_example.cpp │ ├── x03_a_soci_example.cpp │ ├── x03_b_soci_example.cpp │ ├── x03_c_soci_example.cpp │ ├── x03_d_soci_example.cpp │ └── x05_shapelib_example.cpp ├── extensions ├── Jamfile ├── doc │ └── dummy ├── example │ ├── Jamfile │ ├── experimental │ │ └── geometry_of.cpp │ └── gis │ │ ├── Jamfile │ │ ├── io │ │ └── shapelib │ │ │ └── shapelib.cpp │ │ └── latlong │ │ ├── Jamfile │ │ ├── distance_example.cpp │ │ └── point_ll_example.cpp ├── index.html ├── meta │ └── libraries.json └── test │ ├── Jamfile │ ├── algorithms │ ├── Jamfile │ ├── connect.cpp │ ├── dissolve.cpp │ ├── distance_info.cpp │ ├── is_convex.cpp │ ├── mark_spikes.cpp │ ├── midpoints.cpp │ ├── offset.cpp │ ├── parse.cpp │ ├── remove_holes_if.cpp │ └── selected.cpp │ ├── gis │ ├── Jamfile │ ├── io │ │ ├── Jamfile │ │ ├── shapefile │ │ │ ├── Jamfile │ │ │ └── read.cpp │ │ └── wkb │ │ │ ├── Jamfile │ │ │ ├── read_wkb.cpp │ │ │ └── write_wkb.cpp │ └── latlong │ │ ├── Jamfile │ │ ├── area_ll.cpp │ │ ├── cross_track.cpp │ │ ├── distance_mixed.cpp │ │ ├── parse.cpp │ │ ├── parse_dms.cpp │ │ └── point_ll.cpp │ ├── headers │ └── Jamfile │ ├── index │ └── rtree.cpp │ ├── iterators │ ├── Jamfile │ └── segment_returning_iterator.cpp │ ├── nsphere │ ├── Jamfile │ ├── nsphere-access.cpp │ ├── nsphere-area.cpp │ ├── nsphere-circle.cpp │ ├── nsphere-disjoint.cpp │ ├── nsphere-index_content.cpp │ ├── nsphere-index_margin.cpp │ ├── nsphere-multi_within.cpp │ ├── nsphere-nsphere_in_box.cpp │ ├── nsphere-point_in_nsphere.cpp │ ├── nsphere-point_type.cpp │ └── nsphere-within.cpp │ └── triangulation │ ├── Jamfile │ ├── in_circle_robust.cpp │ └── side_robust.cpp ├── include └── boost │ ├── geometry.hpp │ └── geometry │ ├── algorithms │ ├── append.hpp │ ├── area.hpp │ ├── area_result.hpp │ ├── assign.hpp │ ├── azimuth.hpp │ ├── buffer.hpp │ ├── centroid.hpp │ ├── clear.hpp │ ├── closest_points.hpp │ ├── comparable_distance.hpp │ ├── convert.hpp │ ├── convex_hull.hpp │ ├── correct.hpp │ ├── correct_closure.hpp │ ├── covered_by.hpp │ ├── crosses.hpp │ ├── default_area_result.hpp │ ├── densify.hpp │ ├── detail │ │ ├── assign_box_corners.hpp │ │ ├── assign_indexed_point.hpp │ │ ├── assign_values.hpp │ │ ├── buffer │ │ │ ├── buffer_box.hpp │ │ │ ├── buffer_inserter.hpp │ │ │ ├── buffer_policies.hpp │ │ │ ├── buffered_piece_collection.hpp │ │ │ ├── buffered_ring.hpp │ │ │ ├── get_piece_turns.hpp │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ ├── line_line_intersection.hpp │ │ │ ├── piece_border.hpp │ │ │ ├── turn_in_original_visitor.hpp │ │ │ └── turn_in_piece_visitor.hpp │ │ ├── calculate_null.hpp │ │ ├── calculate_point_order.hpp │ │ ├── calculate_sum.hpp │ │ ├── centroid │ │ │ └── translating_transformer.hpp │ │ ├── closest_feature │ │ │ ├── geometry_to_range.hpp │ │ │ ├── point_to_range.hpp │ │ │ └── range_to_range.hpp │ │ ├── closest_points │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ ├── linear_or_areal_to_areal.hpp │ │ │ ├── linear_to_linear.hpp │ │ │ ├── multipoint_to_geometry.hpp │ │ │ ├── point_to_geometry.hpp │ │ │ ├── range_to_geometry_rtree.hpp │ │ │ ├── segment_to_segment.hpp │ │ │ └── utilities.hpp │ │ ├── comparable_distance │ │ │ ├── implementation.hpp │ │ │ └── interface.hpp │ │ ├── convert_indexed_to_indexed.hpp │ │ ├── convert_point_to_point.hpp │ │ ├── convex_hull │ │ │ ├── graham_andrew.hpp │ │ │ └── interface.hpp │ │ ├── counting.hpp │ │ ├── covered_by │ │ │ ├── implementation.hpp │ │ │ ├── implementation_gc.hpp │ │ │ └── interface.hpp │ │ ├── direction_code.hpp │ │ ├── disjoint │ │ │ ├── areal_areal.hpp │ │ │ ├── box_box.hpp │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ ├── linear_areal.hpp │ │ │ ├── linear_linear.hpp │ │ │ ├── linear_segment_or_box.hpp │ │ │ ├── multipoint_geometry.hpp │ │ │ ├── multirange_geometry.hpp │ │ │ ├── point_box.hpp │ │ │ ├── point_geometry.hpp │ │ │ ├── point_point.hpp │ │ │ └── segment_box.hpp │ │ ├── distance │ │ │ ├── box_to_box.hpp │ │ │ ├── geometry_collection.hpp │ │ │ ├── geometry_to_segment_or_box.hpp │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ ├── is_comparable.hpp │ │ │ ├── iterator_selector.hpp │ │ │ ├── linear_or_areal_to_areal.hpp │ │ │ ├── linear_to_box.hpp │ │ │ ├── linear_to_linear.hpp │ │ │ ├── multipoint_to_geometry.hpp │ │ │ ├── point_to_geometry.hpp │ │ │ ├── range_to_geometry_rtree.hpp │ │ │ ├── segment_to_box.hpp │ │ │ ├── segment_to_segment.hpp │ │ │ └── strategy_utils.hpp │ │ ├── dummy_geometries.hpp │ │ ├── envelope │ │ │ ├── areal.hpp │ │ │ ├── box.hpp │ │ │ ├── geometry_collection.hpp │ │ │ ├── implementation.hpp │ │ │ ├── initialize.hpp │ │ │ ├── interface.hpp │ │ │ ├── intersects_antimeridian.hpp │ │ │ ├── linear.hpp │ │ │ ├── multipoint.hpp │ │ │ ├── point.hpp │ │ │ ├── range.hpp │ │ │ ├── range_of_boxes.hpp │ │ │ ├── segment.hpp │ │ │ └── transform_units.hpp │ │ ├── equals │ │ │ ├── collect_vectors.hpp │ │ │ ├── implementation.hpp │ │ │ ├── implementation_gc.hpp │ │ │ ├── interface.hpp │ │ │ └── point_point.hpp │ │ ├── expand │ │ │ ├── box.hpp │ │ │ ├── implementation.hpp │ │ │ ├── indexed.hpp │ │ │ ├── interface.hpp │ │ │ ├── point.hpp │ │ │ └── segment.hpp │ │ ├── expand_by_epsilon.hpp │ │ ├── extreme_points.hpp │ │ ├── for_each_range.hpp │ │ ├── gc_group_elements.hpp │ │ ├── gc_make_rtree.hpp │ │ ├── gc_topological_dimension.hpp │ │ ├── get_max_size.hpp │ │ ├── has_self_intersections.hpp │ │ ├── interior_iterator.hpp │ │ ├── intersection │ │ │ ├── areal_areal.hpp │ │ │ ├── box_box.hpp │ │ │ ├── box_box_implementation.hpp │ │ │ ├── gc.hpp │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ └── multi.hpp │ │ ├── intersects │ │ │ ├── implementation.hpp │ │ │ └── interface.hpp │ │ ├── is_simple │ │ │ ├── always_simple.hpp │ │ │ ├── areal.hpp │ │ │ ├── debug_print_boundary_points.hpp │ │ │ ├── failure_policy.hpp │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ ├── linear.hpp │ │ │ └── multipoint.hpp │ │ ├── is_valid │ │ │ ├── box.hpp │ │ │ ├── complement_graph.hpp │ │ │ ├── debug_complement_graph.hpp │ │ │ ├── debug_print_turns.hpp │ │ │ ├── debug_validity_phase.hpp │ │ │ ├── has_duplicates.hpp │ │ │ ├── has_invalid_coordinate.hpp │ │ │ ├── has_spikes.hpp │ │ │ ├── has_valid_self_turns.hpp │ │ │ ├── implementation.hpp │ │ │ ├── interface.hpp │ │ │ ├── is_acceptable_turn.hpp │ │ │ ├── linear.hpp │ │ │ ├── multipolygon.hpp │ │ │ ├── pointlike.hpp │ │ │ ├── polygon.hpp │ │ │ ├── ring.hpp │ │ │ └── segment.hpp │ │ ├── make │ │ │ └── make.hpp │ │ ├── max_interval_gap.hpp │ │ ├── multi_modify.hpp │ │ ├── multi_modify_with_predicate.hpp │ │ ├── multi_sum.hpp │ │ ├── normalize.hpp │ │ ├── not.hpp │ │ ├── num_distinct_consecutive_points.hpp │ │ ├── overlaps │ │ │ ├── implementation.hpp │ │ │ └── interface.hpp │ │ ├── overlay │ │ │ ├── add_rings.hpp │ │ │ ├── append_no_duplicates.hpp │ │ │ ├── append_no_dups_or_spikes.hpp │ │ │ ├── approximately_equals.hpp │ │ │ ├── assign_parents.hpp │ │ │ ├── check_enrich.hpp │ │ │ ├── clip_linestring.hpp │ │ │ ├── cluster_info.hpp │ │ │ ├── colocate_clusters.hpp │ │ │ ├── convert_ring.hpp │ │ │ ├── copy_segment_point.hpp │ │ │ ├── copy_segments.hpp │ │ │ ├── debug_traverse.hpp │ │ │ ├── debug_turn_info.hpp │ │ │ ├── discard_duplicate_turns.hpp │ │ │ ├── do_reverse.hpp │ │ │ ├── enrich_intersection_points.hpp │ │ │ ├── enrichment_info.hpp │ │ │ ├── follow.hpp │ │ │ ├── follow_linear_linear.hpp │ │ │ ├── get_clusters.hpp │ │ │ ├── get_distance_measure.hpp │ │ │ ├── get_intersection_points.hpp │ │ │ ├── get_properties_ahead.hpp │ │ │ ├── get_relative_order.hpp │ │ │ ├── get_ring.hpp │ │ │ ├── get_turn_info.hpp │ │ │ ├── get_turn_info_for_endpoint.hpp │ │ │ ├── get_turn_info_helpers.hpp │ │ │ ├── get_turn_info_la.hpp │ │ │ ├── get_turn_info_ll.hpp │ │ │ ├── get_turns.hpp │ │ │ ├── graph │ │ │ │ ├── adapt_operations.hpp │ │ │ │ ├── assign_clustered_counts.hpp │ │ │ │ ├── assign_counts.hpp │ │ │ │ ├── assign_side_counts.hpp │ │ │ │ ├── debug_graph.hpp │ │ │ │ ├── detect_biconnected_components.hpp │ │ │ │ ├── fill_ring_turn_info_map.hpp │ │ │ │ ├── get_tois.hpp │ │ │ │ ├── graph_util.hpp │ │ │ │ ├── is_operation_included.hpp │ │ │ │ ├── is_target_operation.hpp │ │ │ │ ├── node_util.hpp │ │ │ │ ├── select_edge.hpp │ │ │ │ ├── select_toi_by_incoming.hpp │ │ │ │ └── traverse_graph.hpp │ │ │ ├── handle_colocations.hpp │ │ │ ├── handle_self_turns.hpp │ │ │ ├── inconsistent_turns_exception.hpp │ │ │ ├── intersection_insert.hpp │ │ │ ├── is_self_turn.hpp │ │ │ ├── less_by_segment_ratio.hpp │ │ │ ├── linear_linear.hpp │ │ │ ├── needs_self_turns.hpp │ │ │ ├── overlay.hpp │ │ │ ├── overlay_type.hpp │ │ │ ├── pointlike_areal.hpp │ │ │ ├── pointlike_linear.hpp │ │ │ ├── pointlike_pointlike.hpp │ │ │ ├── range_in_geometry.hpp │ │ │ ├── ring_properties.hpp │ │ │ ├── segment_as_subrange.hpp │ │ │ ├── segment_identifier.hpp │ │ │ ├── select_rings.hpp │ │ │ ├── self_turn_points.hpp │ │ │ ├── stream_info.hpp │ │ │ ├── traversal_info.hpp │ │ │ ├── traverse.hpp │ │ │ ├── turn_info.hpp │ │ │ └── turn_operation_id.hpp │ │ ├── partition.hpp │ │ ├── point_is_spike_or_equal.hpp │ │ ├── point_on_border.hpp │ │ ├── position_code.hpp │ │ ├── relate │ │ │ ├── areal_areal.hpp │ │ │ ├── boundary_checker.hpp │ │ │ ├── box_areal.hpp │ │ │ ├── de9im.hpp │ │ │ ├── follow_helpers.hpp │ │ │ ├── implementation.hpp │ │ │ ├── implementation_gc.hpp │ │ │ ├── interface.hpp │ │ │ ├── linear_areal.hpp │ │ │ ├── linear_linear.hpp │ │ │ ├── multi_point_geometry.hpp │ │ │ ├── point_geometry.hpp │ │ │ ├── point_point.hpp │ │ │ ├── relate_impl.hpp │ │ │ ├── result.hpp │ │ │ ├── topology_check.hpp │ │ │ └── turns.hpp │ │ ├── relation │ │ │ ├── implementation.hpp │ │ │ └── interface.hpp │ │ ├── ring_identifier.hpp │ │ ├── sections │ │ │ ├── range_by_section.hpp │ │ │ ├── section_box_policies.hpp │ │ │ ├── section_functions.hpp │ │ │ └── sectionalize.hpp │ │ ├── select_geometry_type.hpp │ │ ├── signed_size_type.hpp │ │ ├── single_geometry.hpp │ │ ├── sub_range.hpp │ │ ├── sweep.hpp │ │ ├── throw_on_empty_input.hpp │ │ ├── touches │ │ │ ├── implementation.hpp │ │ │ └── interface.hpp │ │ ├── tupled_output.hpp │ │ ├── turns │ │ │ ├── compare_turns.hpp │ │ │ ├── debug_turn.hpp │ │ │ ├── filter_continue_turns.hpp │ │ │ ├── print_turns.hpp │ │ │ └── remove_duplicate_turns.hpp │ │ ├── visit.hpp │ │ └── within │ │ │ ├── implementation.hpp │ │ │ ├── implementation_gc.hpp │ │ │ ├── interface.hpp │ │ │ ├── multi_point.hpp │ │ │ └── point_in_geometry.hpp │ ├── difference.hpp │ ├── discrete_frechet_distance.hpp │ ├── discrete_hausdorff_distance.hpp │ ├── disjoint.hpp │ ├── dispatch │ │ ├── closest_points.hpp │ │ ├── disjoint.hpp │ │ ├── distance.hpp │ │ ├── envelope.hpp │ │ ├── expand.hpp │ │ ├── is_simple.hpp │ │ └── is_valid.hpp │ ├── distance.hpp │ ├── envelope.hpp │ ├── equals.hpp │ ├── expand.hpp │ ├── for_each.hpp │ ├── intersection.hpp │ ├── intersects.hpp │ ├── is_convex.hpp │ ├── is_empty.hpp │ ├── is_simple.hpp │ ├── is_valid.hpp │ ├── length.hpp │ ├── line_interpolate.hpp │ ├── make.hpp │ ├── merge_elements.hpp │ ├── not_implemented.hpp │ ├── num_geometries.hpp │ ├── num_interior_rings.hpp │ ├── num_points.hpp │ ├── num_segments.hpp │ ├── overlaps.hpp │ ├── perimeter.hpp │ ├── point_on_surface.hpp │ ├── relate.hpp │ ├── relation.hpp │ ├── remove_spikes.hpp │ ├── reverse.hpp │ ├── simplify.hpp │ ├── sym_difference.hpp │ ├── touches.hpp │ ├── transform.hpp │ ├── union.hpp │ ├── unique.hpp │ ├── validity_failure_type.hpp │ └── within.hpp │ ├── arithmetic │ ├── arithmetic.hpp │ ├── cross_product.hpp │ ├── determinant.hpp │ ├── dot_product.hpp │ ├── infinite_line_functions.hpp │ └── normalize.hpp │ ├── core │ ├── access.hpp │ ├── assert.hpp │ ├── closure.hpp │ ├── config.hpp │ ├── coordinate_dimension.hpp │ ├── coordinate_promotion.hpp │ ├── coordinate_system.hpp │ ├── coordinate_type.hpp │ ├── cs.hpp │ ├── exception.hpp │ ├── exterior_ring.hpp │ ├── geometry_id.hpp │ ├── geometry_types.hpp │ ├── interior_rings.hpp │ ├── interior_type.hpp │ ├── is_areal.hpp │ ├── make.hpp │ ├── mutable_range.hpp │ ├── point_order.hpp │ ├── point_type.hpp │ ├── primary_single_tag.hpp │ ├── radian_access.hpp │ ├── radius.hpp │ ├── reverse_dispatch.hpp │ ├── ring_type.hpp │ ├── static_assert.hpp │ ├── tag.hpp │ ├── tag_cast.hpp │ ├── tags.hpp │ ├── topological_dimension.hpp │ └── visit.hpp │ ├── extensions │ ├── algebra │ │ ├── algebra.hpp │ │ ├── algorithms │ │ │ ├── assign.hpp │ │ │ ├── clear.hpp │ │ │ ├── convert.hpp │ │ │ ├── detail.hpp │ │ │ ├── reverse.hpp │ │ │ ├── rotation.hpp │ │ │ ├── transform_geometrically.hpp │ │ │ └── translation.hpp │ │ ├── core │ │ │ ├── access.hpp │ │ │ ├── coordinate_dimension.hpp │ │ │ ├── coordinate_system.hpp │ │ │ ├── coordinate_type.hpp │ │ │ └── tags.hpp │ │ └── geometries │ │ │ ├── concepts │ │ │ ├── check.hpp │ │ │ ├── matrix_concept.hpp │ │ │ ├── quaternion_concept.hpp │ │ │ ├── rotation_matrix_concept.hpp │ │ │ ├── rotation_quaternion_concept.hpp │ │ │ └── vector_concept.hpp │ │ │ ├── matrix.hpp │ │ │ ├── quaternion.hpp │ │ │ ├── rotation_matrix.hpp │ │ │ ├── rotation_quaternion.hpp │ │ │ └── vector.hpp │ ├── algorithms │ │ ├── connect.hpp │ │ ├── detail │ │ │ └── overlay │ │ │ │ ├── dissolve_traverse.hpp │ │ │ │ ├── dissolver.hpp │ │ │ │ └── split_rings.hpp │ │ ├── dissolve.hpp │ │ ├── distance_info.hpp │ │ ├── inverse.hpp │ │ ├── midpoints.hpp │ │ ├── offset.hpp │ │ ├── offset_appender.hpp │ │ ├── parse.hpp │ │ ├── point_on_line.hpp │ │ ├── remove_holes_if.hpp │ │ ├── remove_marked.hpp │ │ └── selected.hpp │ ├── astronomy │ │ └── core │ │ │ └── cs.hpp │ ├── gis │ │ ├── geographic │ │ │ ├── core │ │ │ │ └── cs.hpp │ │ │ └── strategies │ │ │ │ ├── area_huiller_earth.hpp │ │ │ │ └── distance_cross_track.hpp │ │ ├── io │ │ │ ├── geojson │ │ │ │ └── geojson_writer.hpp │ │ │ ├── shapefile │ │ │ │ └── read.hpp │ │ │ ├── shapelib │ │ │ │ ├── dbf_write_attribute.hpp │ │ │ │ ├── shape_creator.hpp │ │ │ │ ├── shape_reader.hpp │ │ │ │ ├── shp_create_object.hpp │ │ │ │ ├── shp_create_object_multi.hpp │ │ │ │ └── shp_read_object.hpp │ │ │ ├── veshape │ │ │ │ └── write_veshape.hpp │ │ │ └── wkb │ │ │ │ ├── detail │ │ │ │ ├── endian.hpp │ │ │ │ ├── ogc.hpp │ │ │ │ ├── parser.hpp │ │ │ │ └── writer.hpp │ │ │ │ ├── read_wkb.hpp │ │ │ │ ├── utility.hpp │ │ │ │ └── write_wkb.hpp │ │ └── latlong │ │ │ ├── detail │ │ │ └── graticule.hpp │ │ │ ├── latlong.hpp │ │ │ └── point_ll.hpp │ ├── index │ │ └── rtree │ │ │ ├── helpers.hpp │ │ │ ├── rtree.hpp │ │ │ ├── rtree_leaf.hpp │ │ │ └── rtree_node.hpp │ ├── iterators │ │ ├── circular_iterator.hpp │ │ ├── section_iterators.hpp │ │ └── segment_returning_iterator.hpp │ ├── multi │ │ ├── algorithms │ │ │ └── dissolve.hpp │ │ └── gis │ │ │ └── io │ │ │ └── wkb │ │ │ ├── detail │ │ │ ├── parser.hpp │ │ │ └── writer.hpp │ │ │ ├── read_wkb.hpp │ │ │ └── write_wkb.hpp │ ├── nsphere │ │ ├── algorithms │ │ │ ├── append.hpp │ │ │ ├── area.hpp │ │ │ ├── assign.hpp │ │ │ ├── centroid.hpp │ │ │ ├── clear.hpp │ │ │ ├── covered_by.hpp │ │ │ ├── disjoint.hpp │ │ │ ├── envelope.hpp │ │ │ ├── equals.hpp │ │ │ ├── expand.hpp │ │ │ ├── num_points.hpp │ │ │ └── within.hpp │ │ ├── core │ │ │ ├── access.hpp │ │ │ ├── geometry_id.hpp │ │ │ ├── radius.hpp │ │ │ ├── replace_point_type.hpp │ │ │ ├── tags.hpp │ │ │ └── topological_dimension.hpp │ │ ├── geometries │ │ │ ├── concepts │ │ │ │ └── nsphere_concept.hpp │ │ │ └── nsphere.hpp │ │ ├── index │ │ │ └── detail │ │ │ │ ├── algorithms │ │ │ │ ├── bounds.hpp │ │ │ │ ├── comparable_distance_near.hpp │ │ │ │ ├── content.hpp │ │ │ │ ├── is_valid.hpp │ │ │ │ └── margin.hpp │ │ │ │ ├── is_bounding_geometry.hpp │ │ │ │ ├── is_indexable.hpp │ │ │ │ └── rtree │ │ │ │ ├── linear │ │ │ │ └── redistribute_elements.hpp │ │ │ │ └── rstar │ │ │ │ └── redistribute_elements.hpp │ │ ├── nsphere.hpp │ │ ├── strategies │ │ │ ├── cartesian │ │ │ │ ├── disjoint.hpp │ │ │ │ ├── nsphere_in_box.hpp │ │ │ │ └── point_in_nsphere.hpp │ │ │ └── relate │ │ │ │ └── cartesian.hpp │ │ └── views │ │ │ └── center_view.hpp │ ├── strategies │ │ └── cartesian │ │ │ └── distance_info.hpp │ ├── util │ │ ├── get_cs_as_radian.hpp │ │ └── replace_point_type.hpp │ └── views │ │ ├── enveloped_view.hpp │ │ └── section_view.hpp │ ├── formulas │ ├── andoyer_inverse.hpp │ ├── area_formulas.hpp │ ├── authalic_radius_sqr.hpp │ ├── differential_quantities.hpp │ ├── eccentricity_sqr.hpp │ ├── flattening.hpp │ ├── geographic.hpp │ ├── gnomonic_intersection.hpp │ ├── gnomonic_spheroid.hpp │ ├── interpolate_point_spherical.hpp │ ├── karney_direct.hpp │ ├── karney_inverse.hpp │ ├── mean_radius.hpp │ ├── meridian_direct.hpp │ ├── meridian_inverse.hpp │ ├── meridian_segment.hpp │ ├── quarter_meridian.hpp │ ├── result_direct.hpp │ ├── result_inverse.hpp │ ├── sjoberg_intersection.hpp │ ├── spherical.hpp │ ├── thomas_direct.hpp │ ├── thomas_inverse.hpp │ ├── unit_spheroid.hpp │ ├── vertex_latitude.hpp │ ├── vertex_longitude.hpp │ ├── vincenty_direct.hpp │ └── vincenty_inverse.hpp │ ├── geometries │ ├── adapted │ │ ├── boost_any.hpp │ │ ├── boost_array.hpp │ │ ├── boost_fusion.hpp │ │ ├── boost_polygon.hpp │ │ ├── boost_polygon │ │ │ ├── box.hpp │ │ │ ├── hole_iterator.hpp │ │ │ ├── holes_proxy.hpp │ │ │ ├── point.hpp │ │ │ ├── polygon.hpp │ │ │ ├── ring.hpp │ │ │ └── ring_proxy.hpp │ │ ├── boost_range │ │ │ ├── adjacent_filtered.hpp │ │ │ ├── filtered.hpp │ │ │ ├── reversed.hpp │ │ │ ├── sliced.hpp │ │ │ ├── strided.hpp │ │ │ └── uniqued.hpp │ │ ├── boost_tuple.hpp │ │ ├── boost_variant.hpp │ │ ├── boost_variant2.hpp │ │ ├── c_array.hpp │ │ ├── detail │ │ │ └── any.hpp │ │ ├── std_any.hpp │ │ ├── std_array.hpp │ │ ├── std_pair_as_segment.hpp │ │ └── std_variant.hpp │ ├── box.hpp │ ├── concepts │ │ ├── box_concept.hpp │ │ ├── check.hpp │ │ ├── concept_type.hpp │ │ ├── dynamic_geometry_concept.hpp │ │ ├── geometry_collection_concept.hpp │ │ ├── linestring_concept.hpp │ │ ├── multi_linestring_concept.hpp │ │ ├── multi_point_concept.hpp │ │ ├── multi_polygon_concept.hpp │ │ ├── point_concept.hpp │ │ ├── polygon_concept.hpp │ │ ├── polyhedral_surface_concept.hpp │ │ ├── ring_concept.hpp │ │ └── segment_concept.hpp │ ├── geometries.hpp │ ├── geometry_collection.hpp │ ├── helper_geometry.hpp │ ├── infinite_line.hpp │ ├── linestring.hpp │ ├── multi_linestring.hpp │ ├── multi_point.hpp │ ├── multi_polygon.hpp │ ├── point.hpp │ ├── point_xy.hpp │ ├── point_xyz.hpp │ ├── pointing_segment.hpp │ ├── polygon.hpp │ ├── polyhedral_surface.hpp │ ├── register │ │ ├── box.hpp │ │ ├── linestring.hpp │ │ ├── multi_linestring.hpp │ │ ├── multi_point.hpp │ │ ├── multi_polygon.hpp │ │ ├── point.hpp │ │ ├── ring.hpp │ │ └── segment.hpp │ ├── ring.hpp │ └── segment.hpp │ ├── geometry.hpp │ ├── index │ ├── adaptors │ │ └── query.hpp │ ├── detail │ │ ├── algorithms │ │ │ ├── bounds.hpp │ │ │ ├── comparable_distance_centroid.hpp │ │ │ ├── comparable_distance_far.hpp │ │ │ ├── comparable_distance_near.hpp │ │ │ ├── content.hpp │ │ │ ├── diff_abs.hpp │ │ │ ├── intersection_content.hpp │ │ │ ├── is_valid.hpp │ │ │ ├── margin.hpp │ │ │ ├── minmaxdist.hpp │ │ │ ├── nth_element.hpp │ │ │ ├── path_intersection.hpp │ │ │ ├── segment_intersection.hpp │ │ │ ├── smallest_for_indexable.hpp │ │ │ ├── sum_for_indexable.hpp │ │ │ └── union_content.hpp │ │ ├── assert.hpp │ │ ├── bounded_view.hpp │ │ ├── config_begin.hpp │ │ ├── config_end.hpp │ │ ├── distance_predicates.hpp │ │ ├── exception.hpp │ │ ├── is_bounding_geometry.hpp │ │ ├── is_indexable.hpp │ │ ├── maxmin_heap.hpp │ │ ├── meta.hpp │ │ ├── minmax_heap.hpp │ │ ├── predicates.hpp │ │ ├── priority_dequeue.hpp │ │ ├── rtree │ │ │ ├── adaptors.hpp │ │ │ ├── iterators.hpp │ │ │ ├── kmeans │ │ │ │ ├── kmeans.hpp │ │ │ │ └── split.hpp │ │ │ ├── linear │ │ │ │ ├── linear.hpp │ │ │ │ └── redistribute_elements.hpp │ │ │ ├── node │ │ │ │ ├── concept.hpp │ │ │ │ ├── node.hpp │ │ │ │ ├── node_elements.hpp │ │ │ │ ├── pairs.hpp │ │ │ │ ├── scoped_deallocator.hpp │ │ │ │ ├── subtree_destroyer.hpp │ │ │ │ ├── variant_dynamic.hpp │ │ │ │ ├── variant_static.hpp │ │ │ │ ├── variant_visitor.hpp │ │ │ │ ├── weak_dynamic.hpp │ │ │ │ ├── weak_static.hpp │ │ │ │ └── weak_visitor.hpp │ │ │ ├── options.hpp │ │ │ ├── pack_create.hpp │ │ │ ├── quadratic │ │ │ │ ├── quadratic.hpp │ │ │ │ └── redistribute_elements.hpp │ │ │ ├── query_iterators.hpp │ │ │ ├── rstar │ │ │ │ ├── choose_next_node.hpp │ │ │ │ ├── insert.hpp │ │ │ │ ├── redistribute_elements.hpp │ │ │ │ └── rstar.hpp │ │ │ ├── utilities │ │ │ │ ├── are_boxes_ok.hpp │ │ │ │ ├── are_counts_ok.hpp │ │ │ │ ├── are_levels_ok.hpp │ │ │ │ ├── gl_draw.hpp │ │ │ │ ├── print.hpp │ │ │ │ ├── statistics.hpp │ │ │ │ └── view.hpp │ │ │ └── visitors │ │ │ │ ├── children_box.hpp │ │ │ │ ├── copy.hpp │ │ │ │ ├── count.hpp │ │ │ │ ├── destroy.hpp │ │ │ │ ├── distance_query.hpp │ │ │ │ ├── insert.hpp │ │ │ │ ├── is_leaf.hpp │ │ │ │ ├── iterator.hpp │ │ │ │ ├── remove.hpp │ │ │ │ └── spatial_query.hpp │ │ ├── serialization.hpp │ │ ├── tags.hpp │ │ ├── translator.hpp │ │ ├── utilities.hpp │ │ ├── varray.hpp │ │ └── varray_detail.hpp │ ├── distance_predicates.hpp │ ├── equal_to.hpp │ ├── indexable.hpp │ ├── inserter.hpp │ ├── parameters.hpp │ ├── predicates.hpp │ └── rtree.hpp │ ├── io │ ├── dsv │ │ └── write.hpp │ ├── io.hpp │ ├── svg │ │ ├── svg_mapper.hpp │ │ ├── write.hpp │ │ ├── write_svg.hpp │ │ └── write_svg_multi.hpp │ └── wkt │ │ ├── detail │ │ └── prefix.hpp │ │ ├── read.hpp │ │ ├── stream.hpp │ │ ├── wkt.hpp │ │ └── write.hpp │ ├── iterators │ ├── closing_iterator.hpp │ ├── concatenate_iterator.hpp │ ├── detail │ │ ├── has_one_element.hpp │ │ ├── iterator_base.hpp │ │ ├── point_iterator │ │ │ ├── inner_range_type.hpp │ │ │ ├── iterator_type.hpp │ │ │ └── value_type.hpp │ │ └── segment_iterator │ │ │ ├── iterator_type.hpp │ │ │ ├── range_segment_iterator.hpp │ │ │ └── value_type.hpp │ ├── dispatch │ │ ├── point_iterator.hpp │ │ └── segment_iterator.hpp │ ├── ever_circling_iterator.hpp │ ├── flatten_iterator.hpp │ ├── point_iterator.hpp │ ├── point_reverse_iterator.hpp │ └── segment_iterator.hpp │ ├── policies │ ├── compare.hpp │ ├── disjoint_interrupt_policy.hpp │ ├── is_valid │ │ ├── default_policy.hpp │ │ ├── failing_reason_policy.hpp │ │ └── failure_type_policy.hpp │ ├── predicate_based_interrupt_policy.hpp │ ├── relate │ │ ├── direction.hpp │ │ ├── intersection_points.hpp │ │ ├── intersection_policy.hpp │ │ └── intersection_ratios.hpp │ └── robustness │ │ └── segment_ratio.hpp │ ├── srs │ ├── epsg.hpp │ ├── esri.hpp │ ├── iau2000.hpp │ ├── projection.hpp │ ├── projections │ │ ├── code.hpp │ │ ├── constants.hpp │ │ ├── dpar.hpp │ │ ├── epsg.hpp │ │ ├── epsg_params.hpp │ │ ├── epsg_traits.hpp │ │ ├── esri.hpp │ │ ├── esri_params.hpp │ │ ├── esri_traits.hpp │ │ ├── exception.hpp │ │ ├── factory.hpp │ │ ├── grids.hpp │ │ ├── iau2000.hpp │ │ ├── iau2000_params.hpp │ │ ├── iau2000_traits.hpp │ │ ├── impl │ │ │ ├── aasincos.hpp │ │ │ ├── adjlon.hpp │ │ │ ├── base_dynamic.hpp │ │ │ ├── base_static.hpp │ │ │ ├── dms_parser.hpp │ │ │ ├── factory_entry.hpp │ │ │ ├── function_overloads.hpp │ │ │ ├── geocent.hpp │ │ │ ├── pj_apply_gridshift.hpp │ │ │ ├── pj_auth.hpp │ │ │ ├── pj_datum_set.hpp │ │ │ ├── pj_datums.hpp │ │ │ ├── pj_ell_set.hpp │ │ │ ├── pj_ellps.hpp │ │ │ ├── pj_fwd.hpp │ │ │ ├── pj_gauss.hpp │ │ │ ├── pj_generic_inverse.hpp │ │ │ ├── pj_gridinfo.hpp │ │ │ ├── pj_gridlist.hpp │ │ │ ├── pj_init.hpp │ │ │ ├── pj_inv.hpp │ │ │ ├── pj_mlfn.hpp │ │ │ ├── pj_msfn.hpp │ │ │ ├── pj_param.hpp │ │ │ ├── pj_phi2.hpp │ │ │ ├── pj_qsfn.hpp │ │ │ ├── pj_strerrno.hpp │ │ │ ├── pj_transform.hpp │ │ │ ├── pj_tsfn.hpp │ │ │ ├── pj_units.hpp │ │ │ ├── pj_zpoly1.hpp │ │ │ ├── proj_mdist.hpp │ │ │ └── projects.hpp │ │ ├── invalid_point.hpp │ │ ├── par_data.hpp │ │ ├── proj │ │ │ ├── aea.hpp │ │ │ ├── aeqd.hpp │ │ │ ├── airy.hpp │ │ │ ├── aitoff.hpp │ │ │ ├── august.hpp │ │ │ ├── bacon.hpp │ │ │ ├── bipc.hpp │ │ │ ├── boggs.hpp │ │ │ ├── bonne.hpp │ │ │ ├── cass.hpp │ │ │ ├── cc.hpp │ │ │ ├── cea.hpp │ │ │ ├── chamb.hpp │ │ │ ├── col_urban.hpp │ │ │ ├── collg.hpp │ │ │ ├── crast.hpp │ │ │ ├── denoy.hpp │ │ │ ├── eck1.hpp │ │ │ ├── eck2.hpp │ │ │ ├── eck3.hpp │ │ │ ├── eck4.hpp │ │ │ ├── eck5.hpp │ │ │ ├── eqc.hpp │ │ │ ├── eqdc.hpp │ │ │ ├── etmerc.hpp │ │ │ ├── fahey.hpp │ │ │ ├── fouc_s.hpp │ │ │ ├── gall.hpp │ │ │ ├── geocent.hpp │ │ │ ├── geos.hpp │ │ │ ├── gins8.hpp │ │ │ ├── gn_sinu.hpp │ │ │ ├── gnom.hpp │ │ │ ├── goode.hpp │ │ │ ├── gstmerc.hpp │ │ │ ├── hammer.hpp │ │ │ ├── hatano.hpp │ │ │ ├── healpix.hpp │ │ │ ├── igh.hpp │ │ │ ├── imw_p.hpp │ │ │ ├── isea.hpp │ │ │ ├── krovak.hpp │ │ │ ├── labrd.hpp │ │ │ ├── laea.hpp │ │ │ ├── lagrng.hpp │ │ │ ├── larr.hpp │ │ │ ├── lask.hpp │ │ │ ├── latlong.hpp │ │ │ ├── lcc.hpp │ │ │ ├── lcca.hpp │ │ │ ├── loxim.hpp │ │ │ ├── lsat.hpp │ │ │ ├── mbt_fps.hpp │ │ │ ├── mbtfpp.hpp │ │ │ ├── mbtfpq.hpp │ │ │ ├── merc.hpp │ │ │ ├── mill.hpp │ │ │ ├── mod_ster.hpp │ │ │ ├── moll.hpp │ │ │ ├── natearth.hpp │ │ │ ├── nell.hpp │ │ │ ├── nell_h.hpp │ │ │ ├── nocol.hpp │ │ │ ├── nsper.hpp │ │ │ ├── nzmg.hpp │ │ │ ├── ob_tran.hpp │ │ │ ├── ocea.hpp │ │ │ ├── oea.hpp │ │ │ ├── omerc.hpp │ │ │ ├── ortho.hpp │ │ │ ├── poly.hpp │ │ │ ├── putp2.hpp │ │ │ ├── putp3.hpp │ │ │ ├── putp4p.hpp │ │ │ ├── putp5.hpp │ │ │ ├── putp6.hpp │ │ │ ├── qsc.hpp │ │ │ ├── robin.hpp │ │ │ ├── rouss.hpp │ │ │ ├── rpoly.hpp │ │ │ ├── sconics.hpp │ │ │ ├── somerc.hpp │ │ │ ├── stere.hpp │ │ │ ├── sterea.hpp │ │ │ ├── sts.hpp │ │ │ ├── tcc.hpp │ │ │ ├── tcea.hpp │ │ │ ├── tmerc.hpp │ │ │ ├── tpeqd.hpp │ │ │ ├── urm5.hpp │ │ │ ├── urmfps.hpp │ │ │ ├── vandg.hpp │ │ │ ├── vandg2.hpp │ │ │ ├── vandg4.hpp │ │ │ ├── wag2.hpp │ │ │ ├── wag3.hpp │ │ │ ├── wag7.hpp │ │ │ ├── wink1.hpp │ │ │ └── wink2.hpp │ │ ├── proj4.hpp │ │ ├── spar.hpp │ │ ├── srid_traits.hpp │ │ └── str_cast.hpp │ ├── shared_grids.hpp │ ├── shared_grids_boost.hpp │ ├── shared_grids_std.hpp │ ├── sphere.hpp │ ├── spheroid.hpp │ ├── srs.hpp │ └── transformation.hpp │ ├── strategies │ ├── agnostic │ │ ├── buffer_distance_asymmetric.hpp │ │ ├── buffer_distance_symmetric.hpp │ │ ├── point_in_box_by_side.hpp │ │ ├── point_in_point.hpp │ │ ├── point_in_poly_oriented_winding.hpp │ │ ├── point_in_poly_winding.hpp │ │ └── simplify_douglas_peucker.hpp │ ├── area │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── azimuth.hpp │ ├── azimuth │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── buffer.hpp │ ├── buffer │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── cartesian.hpp │ ├── cartesian │ │ ├── azimuth.hpp │ │ ├── box_in_box.hpp │ │ ├── buffer_end_flat.hpp │ │ ├── buffer_end_round.hpp │ │ ├── buffer_join_miter.hpp │ │ ├── buffer_join_round.hpp │ │ ├── buffer_join_round_by_divide.hpp │ │ ├── buffer_point_circle.hpp │ │ ├── buffer_point_square.hpp │ │ ├── buffer_side_straight.hpp │ │ ├── centroid_average.hpp │ │ ├── centroid_bashein_detmer.hpp │ │ ├── centroid_weighted_length.hpp │ │ ├── closest_points_pt_seg.hpp │ │ ├── densify.hpp │ │ ├── disjoint_box_box.hpp │ │ ├── disjoint_segment_box.hpp │ │ ├── distance_projected_point.hpp │ │ ├── distance_projected_point_ax.hpp │ │ ├── distance_pythagoras.hpp │ │ ├── distance_pythagoras_box_box.hpp │ │ ├── distance_pythagoras_point_box.hpp │ │ ├── distance_segment_box.hpp │ │ ├── intersection.hpp │ │ ├── line_interpolate.hpp │ │ ├── point_in_box.hpp │ │ ├── point_in_point.hpp │ │ ├── point_in_poly_crossings_multiply.hpp │ │ ├── point_in_poly_franklin.hpp │ │ ├── point_in_poly_winding.hpp │ │ ├── point_order.hpp │ │ ├── side_rounded_input.hpp │ │ └── turn_in_ring_winding.hpp │ ├── centroid.hpp │ ├── centroid │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── closest_points │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── comparable_distance_result.hpp │ ├── compare.hpp │ ├── concepts │ │ ├── area_concept.hpp │ │ ├── centroid_concept.hpp │ │ ├── convex_hull_concept.hpp │ │ ├── distance_concept.hpp │ │ ├── segment_intersect_concept.hpp │ │ ├── simplify_concept.hpp │ │ └── within_concept.hpp │ ├── convex_hull.hpp │ ├── convex_hull │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── covered_by.hpp │ ├── default_comparable_distance_result.hpp │ ├── default_distance_result.hpp │ ├── default_length_result.hpp │ ├── default_strategy.hpp │ ├── densify.hpp │ ├── densify │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── detail.hpp │ ├── discrete_distance │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── disjoint.hpp │ ├── distance.hpp │ ├── distance │ │ ├── backward_compatibility.hpp │ │ ├── cartesian.hpp │ │ ├── comparable.hpp │ │ ├── detail.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── distance_result.hpp │ ├── envelope │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── expand │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── geographic.hpp │ ├── geographic │ │ ├── azimuth.hpp │ │ ├── buffer_end_round.hpp │ │ ├── buffer_helper.hpp │ │ ├── buffer_join_miter.hpp │ │ ├── buffer_join_round.hpp │ │ ├── buffer_point_circle.hpp │ │ ├── buffer_side_straight.hpp │ │ ├── closest_points_pt_seg.hpp │ │ ├── densify.hpp │ │ ├── disjoint_segment_box.hpp │ │ ├── distance.hpp │ │ ├── distance_andoyer.hpp │ │ ├── distance_cross_track.hpp │ │ ├── distance_cross_track_box_box.hpp │ │ ├── distance_cross_track_point_box.hpp │ │ ├── distance_karney.hpp │ │ ├── distance_segment_box.hpp │ │ ├── distance_thomas.hpp │ │ ├── distance_vincenty.hpp │ │ ├── intersection.hpp │ │ ├── intersection_elliptic.hpp │ │ ├── line_interpolate.hpp │ │ ├── mapping_ssf.hpp │ │ ├── parameters.hpp │ │ ├── point_in_poly_winding.hpp │ │ ├── point_order.hpp │ │ ├── side.hpp │ │ ├── side_andoyer.hpp │ │ ├── side_thomas.hpp │ │ └── side_vincenty.hpp │ ├── index │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── intersection.hpp │ ├── intersection_result.hpp │ ├── intersection_strategies.hpp │ ├── io │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── is_convex │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── length │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── line_interpolate.hpp │ ├── line_interpolate │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── normalize.hpp │ ├── point_order.hpp │ ├── relate │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── side.hpp │ ├── side_info.hpp │ ├── simplify │ │ ├── cartesian.hpp │ │ ├── geographic.hpp │ │ ├── services.hpp │ │ └── spherical.hpp │ ├── spherical.hpp │ ├── spherical │ │ ├── azimuth.hpp │ │ ├── closest_points_pt_seg.hpp │ │ ├── compare.hpp │ │ ├── densify.hpp │ │ ├── disjoint_box_box.hpp │ │ ├── disjoint_segment_box.hpp │ │ ├── distance_cross_track.hpp │ │ ├── distance_cross_track_box_box.hpp │ │ ├── distance_cross_track_point_box.hpp │ │ ├── distance_haversine.hpp │ │ ├── distance_segment_box.hpp │ │ ├── get_radius.hpp │ │ ├── intersection.hpp │ │ ├── line_interpolate.hpp │ │ ├── point_in_point.hpp │ │ ├── point_in_poly_winding.hpp │ │ ├── point_order.hpp │ │ ├── side_by_cross_track.hpp │ │ └── ssf.hpp │ ├── strategies.hpp │ ├── strategy_transform.hpp │ ├── tags.hpp │ ├── transform.hpp │ ├── transform │ │ ├── inverse_transformer.hpp │ │ ├── map_transformer.hpp │ │ ├── matrix_transformers.hpp │ │ └── srs_transformer.hpp │ └── within.hpp │ ├── strategy │ ├── area.hpp │ ├── cartesian │ │ ├── area.hpp │ │ ├── area_box.hpp │ │ ├── envelope.hpp │ │ ├── envelope_box.hpp │ │ ├── envelope_boxes.hpp │ │ ├── envelope_multipoint.hpp │ │ ├── envelope_point.hpp │ │ ├── envelope_range.hpp │ │ ├── envelope_segment.hpp │ │ ├── expand_box.hpp │ │ ├── expand_point.hpp │ │ ├── expand_segment.hpp │ │ ├── in_circle_robust.hpp │ │ ├── precise_area.hpp │ │ ├── side_by_triangle.hpp │ │ ├── side_non_robust.hpp │ │ └── side_robust.hpp │ ├── envelope.hpp │ ├── expand.hpp │ ├── geographic │ │ ├── area.hpp │ │ ├── area_box.hpp │ │ ├── envelope.hpp │ │ ├── envelope_range.hpp │ │ ├── envelope_segment.hpp │ │ └── expand_segment.hpp │ ├── relate.hpp │ └── spherical │ │ ├── area.hpp │ │ ├── area_box.hpp │ │ ├── envelope.hpp │ │ ├── envelope_box.hpp │ │ ├── envelope_boxes.hpp │ │ ├── envelope_multipoint.hpp │ │ ├── envelope_point.hpp │ │ ├── envelope_range.hpp │ │ ├── envelope_segment.hpp │ │ ├── expand_box.hpp │ │ ├── expand_point.hpp │ │ └── expand_segment.hpp │ ├── util │ ├── add_const_if_c.hpp │ ├── algorithm.hpp │ ├── bare_type.hpp │ ├── bounds.hpp │ ├── calculation_type.hpp │ ├── closure_as_bool.hpp │ ├── combine_if.hpp │ ├── compress_variant.hpp │ ├── condition.hpp │ ├── constexpr.hpp │ ├── coordinate_cast.hpp │ ├── for_each_coordinate.hpp │ ├── has_infinite_coordinate.hpp │ ├── has_nan_coordinate.hpp │ ├── has_non_finite_coordinate.hpp │ ├── is_inverse_spheroidal_coordinates.hpp │ ├── math.hpp │ ├── normalize_spheroidal_box_coordinates.hpp │ ├── normalize_spheroidal_coordinates.hpp │ ├── numeric_cast.hpp │ ├── order_as_direction.hpp │ ├── parameter_type_of.hpp │ ├── precise_math.hpp │ ├── promote_floating_point.hpp │ ├── promote_integral.hpp │ ├── range.hpp │ ├── rational.hpp │ ├── select_calculation_type.hpp │ ├── select_coordinate_type.hpp │ ├── select_most_precise.hpp │ ├── sequence.hpp │ ├── series_expansion.hpp │ ├── transform_variant.hpp │ ├── tuples.hpp │ ├── type_traits.hpp │ └── type_traits_std.hpp │ └── views │ ├── box_view.hpp │ ├── closeable_view.hpp │ ├── detail │ ├── boundary_view.hpp │ ├── boundary_view │ │ ├── implementation.hpp │ │ └── interface.hpp │ ├── closed_clockwise_view.hpp │ ├── geometry_collection_view.hpp │ ├── indexed_point_view.hpp │ ├── random_access_view.hpp │ └── two_dimensional_view.hpp │ ├── enumerate_view.hpp │ ├── identity_view.hpp │ ├── reversible_view.hpp │ └── segment_view.hpp ├── index.html ├── index ├── Jamfile ├── doc │ └── dummy ├── example │ ├── 3d_benchmark.cpp │ ├── Jamfile │ ├── benchmark.cpp │ ├── benchmark2.cpp │ ├── benchmark3.cpp │ ├── benchmark_experimental.cpp │ ├── benchmark_insert.cpp │ ├── glut_vis.cpp │ ├── random_test.cpp │ └── serialize.cpp ├── index.html ├── meta │ └── libraries.json └── test │ ├── CMakeLists.txt │ ├── Jamfile │ ├── algorithms │ ├── CMakeLists.txt │ ├── Jamfile │ ├── content.cpp │ ├── intersection_content.cpp │ ├── is_valid.cpp │ ├── margin.cpp │ ├── minmaxdist.cpp │ ├── path_intersection.cpp │ ├── segment_intersection.cpp │ ├── test_content.hpp │ ├── test_intersection_content.hpp │ ├── test_margin.hpp │ ├── test_union_content.hpp │ └── union_content.cpp │ ├── geometry_index_test_common.hpp │ ├── minmax_heap.cpp │ ├── movable.hpp │ ├── rtree │ ├── CMakeLists.txt │ ├── Jamfile │ ├── exceptions │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── rtree_exceptions_lin.cpp │ │ ├── rtree_exceptions_qua.cpp │ │ ├── rtree_exceptions_rst.cpp │ │ ├── test_exceptions.hpp │ │ ├── test_throwing.hpp │ │ └── test_throwing_node.hpp │ ├── generated │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── b2d │ │ │ ├── CMakeLists.txt │ │ │ ├── Jamfile │ │ │ ├── rtree_dlin_add_b2d.cpp │ │ │ ├── rtree_dlin_mod_b2d.cpp │ │ │ ├── rtree_dlin_que_b2d.cpp │ │ │ ├── rtree_dqua_add_b2d.cpp │ │ │ ├── rtree_dqua_mod_b2d.cpp │ │ │ ├── rtree_dqua_que_b2d.cpp │ │ │ ├── rtree_drst_add_b2d.cpp │ │ │ ├── rtree_drst_mod_b2d.cpp │ │ │ ├── rtree_drst_que_b2d.cpp │ │ │ ├── rtree_lin_add_b2d.cpp │ │ │ ├── rtree_lin_mod_b2d.cpp │ │ │ ├── rtree_lin_que_b2d.cpp │ │ │ ├── rtree_qua_add_b2d.cpp │ │ │ ├── rtree_qua_mod_b2d.cpp │ │ │ ├── rtree_qua_que_b2d.cpp │ │ │ ├── rtree_rst_add_b2d.cpp │ │ │ ├── rtree_rst_mod_b2d.cpp │ │ │ └── rtree_rst_que_b2d.cpp │ │ ├── b3d │ │ │ ├── Jamfile │ │ │ ├── rtree_dlin_add_b3d.cpp │ │ │ ├── rtree_dlin_mod_b3d.cpp │ │ │ ├── rtree_dlin_que_b3d.cpp │ │ │ ├── rtree_dqua_add_b3d.cpp │ │ │ ├── rtree_dqua_mod_b3d.cpp │ │ │ ├── rtree_dqua_que_b3d.cpp │ │ │ ├── rtree_drst_add_b3d.cpp │ │ │ ├── rtree_drst_mod_b3d.cpp │ │ │ ├── rtree_drst_que_b3d.cpp │ │ │ ├── rtree_lin_add_b3d.cpp │ │ │ ├── rtree_lin_mod_b3d.cpp │ │ │ ├── rtree_lin_que_b3d.cpp │ │ │ ├── rtree_qua_add_b3d.cpp │ │ │ ├── rtree_qua_mod_b3d.cpp │ │ │ ├── rtree_qua_que_b3d.cpp │ │ │ ├── rtree_rst_add_b3d.cpp │ │ │ ├── rtree_rst_mod_b3d.cpp │ │ │ └── rtree_rst_que_b3d.cpp │ │ ├── p2d │ │ │ ├── Jamfile │ │ │ ├── rtree_dlin_add_p2d.cpp │ │ │ ├── rtree_dlin_mod_p2d.cpp │ │ │ ├── rtree_dlin_que_p2d.cpp │ │ │ ├── rtree_dqua_add_p2d.cpp │ │ │ ├── rtree_dqua_mod_p2d.cpp │ │ │ ├── rtree_dqua_que_p2d.cpp │ │ │ ├── rtree_drst_add_p2d.cpp │ │ │ ├── rtree_drst_mod_p2d.cpp │ │ │ ├── rtree_drst_que_p2d.cpp │ │ │ ├── rtree_lin_add_p2d.cpp │ │ │ ├── rtree_lin_mod_p2d.cpp │ │ │ ├── rtree_lin_que_p2d.cpp │ │ │ ├── rtree_qua_add_p2d.cpp │ │ │ ├── rtree_qua_mod_p2d.cpp │ │ │ ├── rtree_qua_que_p2d.cpp │ │ │ ├── rtree_rst_add_p2d.cpp │ │ │ ├── rtree_rst_mod_p2d.cpp │ │ │ └── rtree_rst_que_p2d.cpp │ │ ├── p3d │ │ │ ├── Jamfile │ │ │ ├── rtree_dlin_add_p3d.cpp │ │ │ ├── rtree_dlin_mod_p3d.cpp │ │ │ ├── rtree_dlin_que_p3d.cpp │ │ │ ├── rtree_dqua_add_p3d.cpp │ │ │ ├── rtree_dqua_mod_p3d.cpp │ │ │ ├── rtree_dqua_que_p3d.cpp │ │ │ ├── rtree_drst_add_p3d.cpp │ │ │ ├── rtree_drst_mod_p3d.cpp │ │ │ ├── rtree_drst_que_p3d.cpp │ │ │ ├── rtree_lin_add_p3d.cpp │ │ │ ├── rtree_lin_mod_p3d.cpp │ │ │ ├── rtree_lin_que_p3d.cpp │ │ │ ├── rtree_qua_add_p3d.cpp │ │ │ ├── rtree_qua_mod_p3d.cpp │ │ │ ├── rtree_qua_que_p3d.cpp │ │ │ ├── rtree_rst_add_p3d.cpp │ │ │ ├── rtree_rst_mod_p3d.cpp │ │ │ └── rtree_rst_que_p3d.cpp │ │ └── s2d │ │ │ ├── Jamfile │ │ │ ├── rtree_dlin_add_s2d.cpp │ │ │ ├── rtree_dlin_mod_s2d.cpp │ │ │ ├── rtree_dlin_que_s2d.cpp │ │ │ ├── rtree_dqua_add_s2d.cpp │ │ │ ├── rtree_dqua_mod_s2d.cpp │ │ │ ├── rtree_dqua_que_s2d.cpp │ │ │ ├── rtree_drst_add_s2d.cpp │ │ │ ├── rtree_drst_mod_s2d.cpp │ │ │ ├── rtree_drst_que_s2d.cpp │ │ │ ├── rtree_lin_add_s2d.cpp │ │ │ ├── rtree_lin_mod_s2d.cpp │ │ │ ├── rtree_lin_que_s2d.cpp │ │ │ ├── rtree_qua_add_s2d.cpp │ │ │ ├── rtree_qua_mod_s2d.cpp │ │ │ ├── rtree_qua_que_s2d.cpp │ │ │ ├── rtree_rst_add_s2d.cpp │ │ │ ├── rtree_rst_mod_s2d.cpp │ │ │ └── rtree_rst_que_s2d.cpp │ ├── interprocess │ │ ├── Jamfile │ │ ├── rtree_interprocess_linear.cpp │ │ ├── rtree_interprocess_linear_dyn.cpp │ │ ├── rtree_interprocess_quadratic.cpp │ │ ├── rtree_interprocess_quadratic_dyn.cpp │ │ ├── rtree_interprocess_rstar.cpp │ │ ├── rtree_interprocess_rstar_dyn.cpp │ │ └── test_interprocess.hpp │ ├── rtree_contains_point.cpp │ ├── rtree_epsilon.cpp │ ├── rtree_insert_remove.cpp │ ├── rtree_intersects_geom.cpp │ ├── rtree_move_pack.cpp │ ├── rtree_non_cartesian.cpp │ ├── rtree_test_generator.cpp │ ├── rtree_values.cpp │ ├── rtree_values_invalid.cpp │ ├── strategies │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── rtree_with_strategies.hpp │ │ ├── rtree_with_strategies_b_l.cpp │ │ ├── rtree_with_strategies_b_q.cpp │ │ ├── rtree_with_strategies_b_r.cpp │ │ ├── rtree_with_strategies_p_l.cpp │ │ ├── rtree_with_strategies_p_q.cpp │ │ ├── rtree_with_strategies_p_r.cpp │ │ ├── rtree_with_strategies_s_l.cpp │ │ ├── rtree_with_strategies_s_q.cpp │ │ └── rtree_with_strategies_s_r.cpp │ └── test_rtree.hpp │ ├── varray.cpp │ ├── varray_old.cpp │ └── varray_test.hpp ├── meta └── libraries.json ├── sublibs └── test ├── CMakeLists.txt ├── Jamfile ├── algorithms ├── CMakeLists.txt ├── Jamfile ├── append.cpp ├── area │ ├── CMakeLists.txt │ ├── Jamfile │ ├── area.cpp │ ├── area_box_sg.cpp │ ├── area_geo.cpp │ ├── area_multi.cpp │ ├── area_sph_geo.cpp │ └── test_area.hpp ├── assign.cpp ├── azimuth.cpp ├── buffer │ ├── CMakeLists.txt │ ├── Jamfile │ ├── aimes_cases.hpp │ ├── buffer.cpp │ ├── buffer_cases.hpp │ ├── buffer_countries.cpp │ ├── buffer_gc.cpp │ ├── buffer_geo_spheroid.cpp │ ├── buffer_linestring.cpp │ ├── buffer_linestring_aimes.cpp │ ├── buffer_linestring_geo.cpp │ ├── buffer_multi_linestring.cpp │ ├── buffer_multi_linestring_geo.cpp │ ├── buffer_multi_point.cpp │ ├── buffer_multi_polygon.cpp │ ├── buffer_multi_polygon_geo.cpp │ ├── buffer_piece_border.cpp │ ├── buffer_point.cpp │ ├── buffer_point_geo.cpp │ ├── buffer_polygon.cpp │ ├── buffer_polygon_geo.cpp │ ├── buffer_ring.cpp │ ├── buffer_variable_width.cpp │ ├── buffer_with_strategies.cpp │ ├── data │ │ ├── gr.wkt │ │ ├── gr_ll.wkt │ │ ├── it.wkt │ │ ├── nl.wkt │ │ ├── no.wkt │ │ └── uk.wkt │ ├── debug_buffer_info.hpp │ ├── images │ │ ├── rt_w15.png │ │ ├── rt_w18.png │ │ ├── rt_w2.png │ │ ├── rt_w22.png │ │ ├── rt_w24.png │ │ ├── rt_w24_graph_right.png │ │ ├── rt_w24_graph_wrong.png │ │ ├── rt_w3.png │ │ └── rt_w7.png │ ├── read_from_wkt_file.hpp │ ├── readme.md │ ├── test_buffer.hpp │ ├── test_buffer_csv.hpp │ ├── test_buffer_geo.hpp │ ├── test_buffer_svg.hpp │ └── test_buffer_svg_per_turn.hpp ├── centroid.cpp ├── centroid_multi.cpp ├── check_validity.hpp ├── clear_multi.cpp ├── closest_points │ ├── CMakeLists.txt │ ├── Jamfile.v2 │ ├── ar_ar.cpp │ ├── common.hpp │ ├── empty_geometry.hpp │ ├── l_ar.cpp │ ├── l_l.cpp │ ├── pl_ar.cpp │ ├── pl_l.cpp │ └── pl_pl.cpp ├── comparable_distance.cpp ├── convert.cpp ├── convert_multi.cpp ├── convex_hull │ ├── CMakeLists.txt │ ├── Jamfile │ ├── convex_hull.cpp │ ├── convex_hull_multi.cpp │ ├── convex_hull_robust.cpp │ ├── convex_hull_sph_geo.cpp │ └── test_convex_hull.hpp ├── correct.cpp ├── correct_closure.cpp ├── correct_multi.cpp ├── covered_by │ ├── CMakeLists.txt │ ├── Jamfile │ ├── covered_by.cpp │ ├── covered_by_gc.cpp │ ├── covered_by_sph.cpp │ ├── covered_by_sph_geo.cpp │ └── test_covered_by.hpp ├── crosses │ ├── CMakeLists.txt │ ├── Jamfile │ ├── crosses.cpp │ ├── crosses_gc.cpp │ ├── crosses_sph.cpp │ └── test_crosses.hpp ├── densify.cpp ├── detail │ ├── CMakeLists.txt │ ├── Jamfile │ ├── approximately_equals.cpp │ ├── calculate_point_order.cpp │ ├── partition.cpp │ ├── sections │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── range_by_section.cpp │ │ ├── sectionalize.cpp │ │ └── sectionalize_const.cpp │ ├── tupled_output.cpp │ └── visit.cpp ├── disjoint │ ├── CMakeLists.txt │ ├── Jamfile │ ├── disjoint.cpp │ ├── disjoint_coverage_a_a.cpp │ ├── disjoint_coverage_l_a.cpp │ ├── disjoint_coverage_l_l.cpp │ ├── disjoint_coverage_p_a.cpp │ ├── disjoint_coverage_p_l.cpp │ ├── disjoint_coverage_p_p.cpp │ ├── disjoint_multi.cpp │ ├── disjoint_point_box_geometry.cpp │ ├── disjoint_seg_box.cpp │ ├── disjoint_sph.cpp │ ├── test_disjoint.hpp │ └── test_disjoint_seg_box.hpp ├── distance │ ├── CMakeLists.txt │ ├── Jamfile │ ├── distance.cpp │ ├── distance_all.cpp │ ├── distance_brute_force.hpp │ ├── distance_ca_ar_ar.cpp │ ├── distance_ca_l_ar.cpp │ ├── distance_ca_l_l.cpp │ ├── distance_ca_pl_ar.cpp │ ├── distance_ca_pl_l.cpp │ ├── distance_ca_pl_pl.cpp │ ├── distance_geo_linear_box.cpp │ ├── distance_geo_pl_l.cpp │ ├── distance_se_geo_ar_ar.cpp │ ├── distance_se_geo_l_ar.cpp │ ├── distance_se_geo_l_l.cpp │ ├── distance_se_geo_pl_ar.cpp │ ├── distance_se_geo_pl_pl.cpp │ ├── distance_se_pl_l.cpp │ ├── distance_se_pl_pl.cpp │ ├── test_distance.hpp │ ├── test_distance_common.hpp │ ├── test_distance_geo_common.hpp │ ├── test_distance_se_common.hpp │ └── test_empty_geometry.hpp ├── envelope_expand │ ├── CMakeLists.txt │ ├── Jamfile │ ├── envelope.cpp │ ├── envelope_multi.cpp │ ├── envelope_on_spheroid.cpp │ ├── expand.cpp │ ├── expand_on_spheroid.cpp │ ├── test_envelope.hpp │ ├── test_envelope_expand_on_spheroid.hpp │ └── test_expand.hpp ├── equals │ ├── CMakeLists.txt │ ├── Jamfile │ ├── equals.cpp │ ├── equals_gc.cpp │ ├── equals_multi.cpp │ ├── equals_on_spheroid.cpp │ ├── equals_sph.cpp │ └── test_equals.hpp ├── for_each.cpp ├── for_each_multi.cpp ├── intersects │ ├── CMakeLists.txt │ ├── Jamfile │ ├── intersects.cpp │ ├── intersects_box_geometry.cpp │ ├── intersects_multi.cpp │ ├── intersects_self.cpp │ ├── intersects_sph.cpp │ ├── intersects_sph_geo.cpp │ └── test_intersects.hpp ├── is_convex.cpp ├── is_empty.cpp ├── is_simple.cpp ├── is_simple_geo.cpp ├── is_valid.cpp ├── is_valid_failure.cpp ├── is_valid_geo.cpp ├── length │ ├── CMakeLists.txt │ ├── Jamfile │ ├── length.cpp │ ├── length_geo.cpp │ ├── length_multi.cpp │ ├── length_sph.cpp │ └── linestring_cases.hpp ├── line_interpolate.cpp ├── make.cpp ├── maximum_gap.cpp ├── merge_elements.cpp ├── num_geometries.cpp ├── num_geometries_multi.cpp ├── num_interior_rings.cpp ├── num_interior_rings_multi.cpp ├── num_points.cpp ├── num_points_multi.cpp ├── num_segments.cpp ├── overlaps │ ├── CMakeLists.txt │ ├── Jamfile │ ├── overlaps.cpp │ ├── overlaps_areal.cpp │ ├── overlaps_box.cpp │ ├── overlaps_gc.cpp │ ├── overlaps_sph.cpp │ └── test_overlaps.hpp ├── overlay │ ├── CMakeLists.txt │ ├── Jamfile │ ├── assemble.cpp │ ├── copy_segment_point.cpp │ ├── dissolver.cpp │ ├── enrich_intersection_points.cpp │ ├── get_clusters.cpp │ ├── get_distance_measure.cpp │ ├── get_ring.cpp │ ├── get_turn_info.cpp │ ├── get_turn_info.xls │ ├── get_turns.cpp │ ├── get_turns_areal_areal.cpp │ ├── get_turns_areal_areal_sph.cpp │ ├── get_turns_const.cpp │ ├── get_turns_linear_areal.cpp │ ├── get_turns_linear_areal_sph.cpp │ ├── get_turns_linear_linear.cpp │ ├── get_turns_linear_linear_geo.cpp │ ├── get_turns_linear_linear_sph.cpp │ ├── multi_overlay_cases.hpp │ ├── multi_overlay_common.hpp │ ├── overlay.cpp │ ├── overlay_cases.hpp │ ├── overlay_common.hpp │ ├── relative_order.cpp │ ├── select_rings.cpp │ ├── self_intersection_points.cpp │ ├── split_rings.cpp │ └── test_get_turns.hpp ├── perimeter │ ├── CMakeLists.txt │ ├── Jamfile │ ├── perimeter.cpp │ ├── perimeter_base.cpp │ ├── perimeter_geo.cpp │ ├── perimeter_multi.cpp │ ├── perimeter_polygon_cases.hpp │ ├── perimeter_sph.cpp │ └── test_perimeter.hpp ├── point_on_surface.cpp ├── predef_relop.hpp ├── pretty_print_geometry.hpp ├── relate │ ├── CMakeLists.txt │ ├── Jamfile │ ├── nan_cases.hpp │ ├── relate_areal_areal.cpp │ ├── relate_areal_areal_sph.cpp │ ├── relate_const_custom.cpp │ ├── relate_gc.cpp │ ├── relate_linear_areal.cpp │ ├── relate_linear_areal_sph.cpp │ ├── relate_linear_linear.cpp │ ├── relate_linear_linear_sph.cpp │ ├── relate_pointlike_geometry.cpp │ └── test_relate.hpp ├── remove_spikes.cpp ├── reverse.cpp ├── reverse_multi.cpp ├── set_operations │ ├── CMakeLists.txt │ ├── Jamfile │ ├── alternative_robustness_strategy.hpp │ ├── check_turn_less.hpp │ ├── difference │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── difference.cpp │ │ ├── difference_areal_linear.cpp │ │ ├── difference_gc.cpp │ │ ├── difference_l_a_sph.cpp │ │ ├── difference_linear_linear.cpp │ │ ├── difference_multi.cpp │ │ ├── difference_multi_areal_linear.cpp │ │ ├── difference_multi_spike.cpp │ │ ├── difference_pl_a.cpp │ │ ├── difference_pl_l.cpp │ │ ├── difference_pl_pl.cpp │ │ ├── difference_tupled.cpp │ │ ├── test_difference.hpp │ │ └── test_difference_linear_linear.hpp │ ├── intersection │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── intersection.cpp │ │ ├── intersection_aa_sph.cpp │ │ ├── intersection_areal_areal_linear.cpp │ │ ├── intersection_box.cpp │ │ ├── intersection_gc.cpp │ │ ├── intersection_integer.cpp │ │ ├── intersection_linear_linear.cpp │ │ ├── intersection_multi.cpp │ │ ├── intersection_pl_a.cpp │ │ ├── intersection_pl_l.cpp │ │ ├── intersection_pl_pl.cpp │ │ ├── intersection_segment.cpp │ │ ├── intersection_tupled.cpp │ │ ├── test_intersection.hpp │ │ └── test_intersection_linear_linear.hpp │ ├── set_ops_areal_areal.cpp │ ├── set_ops_ll.cpp │ ├── set_ops_pp.cpp │ ├── setop_output_type.hpp │ ├── sym_difference │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── sym_difference_areal_areal.cpp │ │ ├── sym_difference_gc.cpp │ │ ├── sym_difference_linear_linear.cpp │ │ ├── sym_difference_tupled.cpp │ │ └── test_sym_difference_linear_linear.hpp │ ├── test_get_turns_ll_invariance.hpp │ ├── test_set_ops_linear_linear.hpp │ ├── test_set_ops_pointlike.hpp │ └── union │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── test_union.hpp │ │ ├── test_union_linear_linear.hpp │ │ ├── union.cpp │ │ ├── union_aa_geo.cpp │ │ ├── union_aa_sph.cpp │ │ ├── union_gc.cpp │ │ ├── union_issues.cpp │ │ ├── union_linear_linear.cpp │ │ ├── union_multi.cpp │ │ ├── union_other_types.cpp │ │ ├── union_pl_pl.cpp │ │ └── union_tupled.cpp ├── similarity │ ├── CMakeLists.txt │ ├── Jamfile │ ├── discrete_frechet_distance.cpp │ ├── discrete_hausdorff_distance.cpp │ ├── test_frechet_distance.hpp │ └── test_hausdorff_distance.hpp ├── simplify.cpp ├── simplify_countries.cpp ├── simplify_multi.cpp ├── test_centroid.hpp ├── test_convert.hpp ├── test_correct.hpp ├── test_for_each.hpp ├── test_is_simple.hpp ├── test_is_valid.hpp ├── test_length.hpp ├── test_overlay.hpp ├── test_reverse.hpp ├── test_simplify.hpp ├── test_unique.hpp ├── touches │ ├── CMakeLists.txt │ ├── Jamfile │ ├── test_touches.hpp │ ├── touches.cpp │ ├── touches_box.cpp │ ├── touches_gc.cpp │ ├── touches_multi.cpp │ ├── touches_self.cpp │ └── touches_sph.cpp ├── transform.cpp ├── transform_multi.cpp ├── unique.cpp ├── unique_multi.cpp └── within │ ├── CMakeLists.txt │ ├── Jamfile │ ├── test_within.hpp │ ├── within.cpp │ ├── within_areal_areal.cpp │ ├── within_gc.cpp │ ├── within_linear_areal.cpp │ ├── within_linear_linear.cpp │ ├── within_multi.cpp │ ├── within_pointlike_geometry.cpp │ ├── within_sph.cpp │ └── within_sph_geo.cpp ├── arithmetic ├── CMakeLists.txt ├── Jamfile ├── cross_product.cpp ├── dot_product.cpp ├── general.cpp └── infinite_line_functions.cpp ├── concepts ├── CMakeLists.txt ├── Jamfile ├── function_asserting_a_point.hpp ├── function_requiring_a_point.hpp ├── linestring_concept.cpp ├── point_array.cpp ├── point_concept_checker.cpp ├── point_geographic_custom_with_wrong_units.cpp ├── point_geographic_with_wrong_units.cpp ├── point_spherical_custom_with_wrong_units.cpp ├── point_spherical_with_wrong_units.cpp ├── point_well_formed.cpp ├── point_well_formed_non_cartesian.cpp ├── point_well_formed_traits.cpp ├── point_with_incorrect_dimension.cpp ├── point_without_coordinate_type.cpp ├── point_without_dimension.cpp ├── point_without_getter.cpp └── point_without_setter.cpp ├── core ├── CMakeLists.txt ├── Jamfile ├── access.cpp ├── assert.cpp ├── coordinate_dimension.cpp ├── coordinate_system.cpp ├── coordinate_type.cpp ├── geometry_id.cpp ├── point_type.cpp ├── radian_access.cpp ├── radius.cpp ├── reverse_dispatch.cpp ├── ring.cpp ├── tag.cpp ├── topological_dimension.cpp └── visit.cpp ├── count_set.hpp ├── cs_undefined ├── CMakeLists.txt ├── Jamfile ├── common.hpp ├── distance.cpp ├── envelope_expand.cpp ├── index.cpp ├── is.cpp ├── measure.cpp ├── other.cpp ├── relops1.cpp ├── relops2.cpp ├── setops1.cpp ├── setops2.cpp ├── test_relops.hpp └── test_setops.hpp ├── expectation_limits.hpp ├── formulas ├── CMakeLists.txt ├── Jamfile ├── direct.cpp ├── direct_accuracy.cpp ├── direct_cases.hpp ├── direct_cases_antipodal.hpp ├── direct_meridian.cpp ├── direct_meridian_cases.hpp ├── intersection.cpp ├── intersection_cases.hpp ├── inverse.cpp ├── inverse_cases.hpp ├── inverse_cases_antipodal.hpp ├── inverse_cases_small_angles.hpp ├── inverse_karney.cpp ├── test_formula.hpp ├── vertex_longitude.cpp └── vertex_longitude_cases.hpp ├── from_wkt.hpp ├── geometries ├── CMakeLists.txt ├── Jamfile ├── adapted.cpp ├── boost_array_as_point.cpp ├── boost_fusion.cpp ├── boost_polygon.cpp ├── boost_polygon_overlay.cpp ├── boost_range.cpp ├── boost_tuple.cpp ├── box.cpp ├── concepts │ └── check.cpp ├── custom_linestring.cpp ├── custom_non_copiable │ ├── CMakeLists.txt │ ├── Jamfile │ ├── adapt_cnc_container.hpp │ ├── adapt_cnc_linestring.hpp │ ├── adapt_cnc_multi_linestring.hpp │ ├── adapt_cnc_multi_polygon.hpp │ ├── adapt_cnc_polygon.hpp │ ├── adapt_cnc_ring.hpp │ ├── cnc_container.hpp │ ├── cnc_linestring.hpp │ ├── cnc_multi_linestring.hpp │ ├── cnc_multi_polygon.hpp │ ├── cnc_polygon.hpp │ ├── cnc_ring.hpp │ ├── custom_different_geometries.cpp │ ├── custom_linestring.cpp │ ├── custom_multi_linestring.cpp │ ├── custom_multi_polygon.cpp │ ├── custom_polygon.cpp │ ├── custom_ring.cpp │ └── helper_functions.hpp ├── infinite_line.cpp ├── initialization.cpp ├── linestring.cpp ├── multi_linestring.cpp ├── multi_point.cpp ├── multi_polygon.cpp ├── point.cpp ├── point_xy.cpp ├── point_xyz.cpp ├── polygon.cpp ├── polyhedral_surface.cpp ├── ring.cpp └── segment.cpp ├── geometry_test_common.hpp ├── geometry_to_crc.hpp ├── headers ├── Jamfile └── main.cpp ├── io ├── CMakeLists.txt ├── Jamfile ├── dsv │ ├── CMakeLists.txt │ ├── Jamfile │ └── dsv_multi.cpp ├── svg │ ├── CMakeLists.txt │ ├── Jamfile │ └── svg.cpp └── wkt │ ├── CMakeLists.txt │ ├── Jamfile │ ├── wkt.cpp │ └── wkt_multi.cpp ├── iterators ├── CMakeLists.txt ├── Jamfile ├── closing_iterator.cpp ├── concatenate_iterator.cpp ├── ever_circling_iterator.cpp ├── flatten_iterator.cpp ├── point_iterator.cpp ├── segment_iterator.cpp └── test_iterator_common.hpp ├── minimal.cpp ├── policies ├── CMakeLists.txt ├── Jamfile └── compare.cpp ├── robustness ├── CMakeLists.txt ├── common │ ├── common_settings.hpp │ ├── make_random_generator.hpp │ └── make_square_polygon.hpp ├── convex_hull │ ├── CMakeLists.txt │ ├── Jamfile │ └── random_multi_points.cpp ├── overlay │ ├── CMakeLists.txt │ ├── areal_areal │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── general_intersection_precision.cpp │ │ ├── interior_triangles.cpp │ │ ├── intersection_pies.cpp │ │ ├── intersection_stars.cpp │ │ ├── intersects.cpp │ │ ├── random_bitset_grids.cpp │ │ ├── random_ellipses_stars.cpp │ │ ├── recursive_polygons.cpp │ │ ├── star_comb.cpp │ │ ├── star_comb.hpp │ │ ├── test_overlay_p_q.hpp │ │ └── ticket_9081.cpp │ ├── buffer │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ ├── many_ring_buffer.cpp │ │ ├── multi_point_growth.cpp │ │ └── recursive_polygons_buffer.cpp │ └── linear_areal │ │ ├── CMakeLists.txt │ │ ├── Jamfile │ │ └── recursive_polygons_linear_areal.cpp └── within │ └── partition_within.cpp ├── srs ├── CMakeLists.txt ├── Jamfile ├── check_geometry.hpp ├── proj4.hpp ├── projection.cpp ├── projection_epsg.cpp ├── projection_interface_d.cpp ├── projection_interface_p4.cpp ├── projection_interface_s.cpp ├── projection_selftest.cpp ├── projection_selftest_cases.hpp ├── projections.cpp ├── projections_combined.cpp ├── projections_static.cpp ├── spar.cpp ├── srs_transformer.cpp ├── transformation_epsg.cpp └── transformation_interface.cpp ├── strategies ├── CMakeLists.txt ├── Jamfile ├── andoyer.cpp ├── buffer_join.cpp ├── buffer_join_geo.cpp ├── buffer_side_straight.cpp ├── cross_track.cpp ├── crossings_multiply.cpp ├── distance.cpp ├── distance_cross_track.cpp ├── distance_cross_track_cases.hpp ├── distance_default_result.cpp ├── douglas_peucker.cpp ├── envelope_segment.cpp ├── franklin.cpp ├── haversine.cpp ├── matrix_transformer.cpp ├── point_in_box.cpp ├── projected_point.cpp ├── pythagoras.cpp ├── pythagoras_point_box.cpp ├── segment_intersection.cpp ├── segment_intersection_collinear.cpp ├── segment_intersection_geo.cpp ├── segment_intersection_geo.hpp ├── segment_intersection_sph.cpp ├── segment_intersection_sph.hpp ├── side_rounded_input.cpp ├── spherical_side.cpp ├── test_projected_point.hpp ├── test_within.hpp ├── thomas.cpp ├── transform_cs.cpp ├── transformer.cpp ├── vincenty.cpp └── winding.cpp ├── string_from_type.hpp ├── test_common ├── test_point.hpp └── with_pointer.hpp ├── test_geometries ├── all_custom_container.hpp ├── all_custom_linestring.hpp ├── all_custom_polygon.hpp ├── all_custom_ring.hpp ├── const_point.hpp ├── copy_on_dereference_geometries.hpp ├── custom_cartesian_point.hpp ├── custom_lon_lat_point.hpp ├── custom_segment.hpp └── wrapped_boost_array.hpp ├── to_svg.hpp ├── util ├── CMakeLists.txt ├── Jamfile ├── algorithm.cpp ├── calculation_type.cpp ├── compress_variant.cpp ├── for_each_coordinate.cpp ├── is_implemented.cpp ├── math_abs.cpp ├── math_divide.cpp ├── math_equals.cpp ├── math_normalize_spheroidal.cpp ├── math_sqrt.cpp ├── number_types.hpp ├── promote_integral.cpp ├── range.cpp ├── rational.cpp ├── select_most_precise.cpp ├── transform_variant.cpp ├── tuples.cpp └── write_dsv.cpp └── views ├── CMakeLists.txt ├── Jamfile ├── box_view.cpp ├── closeable_view.cpp ├── enumerate_view.cpp ├── random_access_view.cpp ├── reversible_closeable.cpp ├── reversible_view.cpp └── segment_view.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.swp 3 | 4 | # Boost.Build 5 | stdcerr 6 | 7 | # Visual Studio (Code) 8 | /.vs 9 | .vscode 10 | 11 | # CMake 12 | /*build* 13 | /cmake-build-debug/ 14 | /cmake-build-release/ 15 | /CMakeSettings.json 16 | 17 | # JetBrains 18 | /.idea 19 | 20 | !build.jam 21 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Boost.Geometry 2 | 3 | Boost.Geometry is a member of [Boost](https://www.boost.org) libraries. 4 | 5 | 6 | ## Table of Contents 7 | 8 | * [**Contribution Tutorial**](http://github.com/boostorg/geometry/wiki/Contribution-Tutorial) 9 | * [**Guidelines for Developers**](http://github.com/boostorg/geometry/wiki/Guidelines-for-Developers) 10 | * [**Generating and Improving Documentation**](https://github.com/boostorg/geometry/wiki/Generating-and-Improving-Documentation) 11 | 12 | ### Resources 13 | * [**Debugging**](http://github.com/boostorg/geometry/wiki/Debugging) 14 | * [**Talks**](http://github.com/boostorg/geometry/wiki/Talks) 15 | -------------------------------------------------------------------------------- /doc/doxy/doxygen_input/ggl_doxygen_footer.html: -------------------------------------------------------------------------------- 1 |
6 | April 2, 2011 7 | |
8 |
9 |
10 | Copyright © 2007-2011 Barend Gehrels, Amsterdam, the Netherlands 11 | Copyright © 2008-2011 Bruno Lalande, Paris, France 12 | Copyright © 2009-2010 Mateusz Loskot, London, UK 13 | 14 | |
15 |