CGAL 6.1 - dD Frechet Distance
Loading...
Searching...
No Matches
CGAL::Frechet_distance::Neighbor_search< PointRange, Traits > Class Template Reference

#include <CGAL/Frechet_distance/Neighbor_search.h>

Definition

template<class PointRange, class Traits>
class CGAL::Frechet_distance::Neighbor_search< PointRange, Traits >

A data structure to store polylines with a function that enables to find those polylines which are closer than a distance bound to a query polyline.

Template Parameters
Traitsa model of FrechetDistanceTraits
PointRangea model of the concept RandomAccessContainer with Traits::Point_d as value type.
Examples
Frechet_distance/Frechet_DS_2.cpp, Frechet_distance/Frechet_DS_3.cpp, Frechet_distance/Frechet_DS_d.cpp, and Frechet_distance/parallel_Frechet_DS_2.cpp.

Public Types

using Point = Traits::Point_d
 

Public Member Functions

template<typename ConcurrencyTag = Sequential_tag, typename PolylineRange >
 Neighbor_search (const PolylineRange &polylines, ConcurrencyTag tag=ConcurrencyTag())
 constructs a neighbor search data structure for polylines
 
template<typename ConcurrencyTag = Sequential_tag>
std::vector< std::size_t > get_close_curves (const PointRange &query, double distance)
 returns the indices of the inserted polylines that are closer than distance to the polyline query.
 

Constructor & Destructor Documentation

◆ Neighbor_search()

template<class PointRange , class Traits >
template<typename ConcurrencyTag = Sequential_tag, typename PolylineRange >
CGAL::Frechet_distance::Neighbor_search< PointRange, Traits >::Neighbor_search ( const PolylineRange &  polylines,
ConcurrencyTag  tag = ConcurrencyTag() 
)

constructs a neighbor search data structure for polylines

Template Parameters
ConcurrencyTagenables sequential versus parallel construction. Possible values are Sequential_tag, Parallel_tag, and Parallel_if_available_tag.
PolylineRangemust be a model of RandomAccessRange with value type PointRange

Member Function Documentation

◆ get_close_curves()

template<class PointRange , class Traits >
template<typename ConcurrencyTag = Sequential_tag>
std::vector< std::size_t > CGAL::Frechet_distance::Neighbor_search< PointRange, Traits >::get_close_curves ( const PointRange &  query,
double  distance 
)

returns the indices of the inserted polylines that are closer than distance to the polyline query.

Parameters
querythe query polyline
distancethe distance bound
Template Parameters
ConcurrencyTagenables sequential versus parallel computation. Possible values are Sequential_tag, Parallel_tag, and Parallel_if_available_tag.
Returns
a vector of indices of the inserted polylines that are closer than distance to the polyline query.
Examples
Frechet_distance/Frechet_DS_2.cpp, Frechet_distance/Frechet_DS_3.cpp, and Frechet_distance/Frechet_DS_d.cpp.