- Add strategy::andoyer, strategy::thomas and strategy::vincenty policies.
- By default use strategy::andoyer in all strategies consistently.
- Further improve the consistency of parameters by adding default
Spheroid = srs::spheroid<double> where it's missing.
- In every geographic strategy use the same order of template parameters:
Formula[, Order], Spheroid, CalculationType.
- Calculate default Order based on Formula.
- Remove ExpandEpsN and LongSegment from template parameters.
- Make strategies' constructors explicit
- Rename relate_cartesian_segments to cartesian_segments,
relate_geodesic_segments to geographic_segments,
relate_spherical_segments to spherical_segments, etc.
- Use radius 1 by default in area::spherical strategy for backward
compatibility.
vincenty - fix error in formula (missing sqr)
differential_quantities - fix error in formula (wrong equation and lack of normalization)
andoyer - wrong azimuth at south pole
Conflicts:
include/boost/geometry/algorithms/detail/azimuth.hpp
include/boost/geometry/formulas/spherical.hpp
include/boost/geometry/strategies/spherical/intersection.hpp
include/boost/geometry/strategies/strategies.hpp
test/strategies/segment_intersection_sph.cpp
Also modify the interface of relate_geodesic_segments intersection
strategy - take Policy by apply() function argument.
- add overloads for all relational operations taking strategy.
- change the interface of get_turns, take strategy.
- change the interface of partition, take overlap and expand policies as
function parameters instead of struct template parameters.
- specialize collect vectors by Side strategy and use this equals()
optimization only if it's compatible with passed side strategy.
- move the implementation of disjoint Segment/Box from algorithm to
strategy.
- add default_strategy service for relate, defining intersection or
within/covered_by strategies depending on input geometries.
- add default strategy service for disjoint, defining relate or specific
disjoint strategies.
Winding strategy now takes side strategy as template parameter and in
constructor.
default_strategy now casts geometry tags for both geometries and into more
tags so strategies may be dispatched more conveniently.
Instead of taking Policy as struct template parameter take it as apply()
method parameter.
Add members defining types of and returning point_in_geometry and side
strategies.
Make intersection strategies default within/covered_by strategies for L/L,
L/A and A/A geometries.