CGAL 6.2 - dD Spatial Searching: GeneralDistance Concept Reference

CGAL 6.2 - dD Spatial Searching

Loading...
Searching...
No Matches
List of all members
GeneralDistance Concept Reference
Reference Manual » Concepts

## Definition

Requirements of a distance class defining a distance between a query item denoting a spatial object and a point. To optimize distance computations transformed distances are used, e.g., for a Euclidean distance the transformed distance is the squared Euclidean distance.

Has models
  `CGAL::Manhattan_distance_iso_box_point<Traits>`
  `CGAL::Euclidean_distance_sphere_point<Traits>`

## Types
typedef unspecified_type | D
| Dimension Tag.
typedef unspecified_type | FT
| Number type.
typedef unspecified_type | Point_d
| Point type.
typedef unspecified_type | Query_item
| Query item type.

## Operations
FT | transformed_distance (Query_item q, Point_d r)
| Returns the transformed distance between `q` and `r`.
template<typename Coord_iterator >
FT | transformed_distance_from_coordinates (Query_item q, Coord_iterator begin, Coord_iterator end) const
| Optional: must be defined when used with a `Kd_tree` where `EnablePointsCache` is set to `Tag_true`.
template<typename Coord_iterator >
FT | interruptible_transformed_distance (Query_item q, Coord_iterator begin, Coord_iterator end, FT stop_if_geq_to_this) const
| Optional: in most cases (e.g., Euclidean distance), the distance computation algorithm knows before its end that the distance will be greater than or equal to some given value.
FT | min_distance_to_rectangle (Query_item q, Kd_tree_rectangle< FT, D > r) const
| Returns the transformed distance between `q` and the point on the boundary of `r` closest to `q`.
FT | max_distance_to_rectangle (Query_item q, Kd_tree_rectangle< FT, D > r) const
| Returns the transformed distance between `q` and the point on the boundary of `r` furthest to `q`.
FT | transformed_distance (FT d) const
| Returns the transformed distance.
FT | inverse_of_transformed_distance (FT d) const
| Returns the inverse of the transformed distance.

## Member Function Documentation

## ◆ interruptible_transformed_distance()

template<typename Coord_iterator >

FT GeneralDistance::interruptible_transformed_distance | ( | Query_item | q,
|  | Coord_iterator | begin,
|  | Coord_iterator | end,
|  | FT | stop_if_geq_to_this
| ) |  | const

Optional: in most cases (e.g., Euclidean distance), the distance computation algorithm knows before its end that the distance will be greater than or equal to some given value.

In this function, the computation can be stopped when the distance is going to be greater than or equal to `stop_if_geq_to_this`. In this case, the only requirement of the return value it to be \( \geq \) `stop_if_geq_to_this`. Note that points cache does not have to be activated to enable this optimization.

Returns the transformed distance between `q` and the point whose Cartesian coordinates are contained in the range [`begin`, `end`), or any value \( \geq \) `stop_if_geq_to_this` if the transformed distance is \( \geq \) `stop_if_geq_to_this`.

## ◆ transformed_distance_from_coordinates()

template<typename Coord_iterator >

FT GeneralDistance::transformed_distance_from_coordinates | ( | Query_item | q,
|  | Coord_iterator | begin,
|  | Coord_iterator | end
| ) |  | const

Optional: must be defined when used with a `Kd_tree` where `EnablePointsCache` is set to `Tag_true`.

Returns the transformed distance between `q` and the point whose Cartesian coordinates are contained in the range [`begin`, `end`).