Skip to main content

DefaultDistanceStrategy

Type Alias DefaultDistanceStrategy 

Source
pub type DefaultDistanceStrategy<A, B> = <<<<A as Geometry>::Point as Point>::Cs as CoordinateSystem>::Family as DefaultDistance<<<<B as Geometry>::Point as Point>::Cs as CoordinateSystem>::Family>>::Strategy;
Expand description

Type alias resolving the default distance strategy for the pair (A, B) by walking A -> A::Point -> Cs -> Family -> DefaultDistance<…B's Family…>::Strategy.

Replaces the C++ free function boost::geometry::strategy::distance::services:: default_strategy<G1, G2>::type from strategies/distance/services.hpp, plumbed through the per-CS files.

At call sites in geometry-algorithm::distance, this is the type the strategy-less distance(a, b) overload monomorphises against:

pub fn distance<A: Geometry, B: Geometry>(a: &A, b: &B)
    -> <DefaultDistanceStrategy<A, B> as DistanceStrategy<A, B>>::Out
where
    DefaultDistanceStrategy<A, B>: DistanceStrategy<A, B>,
{
    DefaultDistanceStrategy::<A, B>::default().distance(a, b)
}