CGAL 5.6.3 - dD Spatial Searching

Loading...
Searching...
No Matches
List of all members
CGAL::Fuzzy_sphere< Traits > Class Template Reference
dD Spatial Searching Reference » Range Query Item Classes

`#include <CGAL/Fuzzy_sphere.h>`

## Definition

template<typename Traits>
class CGAL::Fuzzy_sphere< Traits >

The class `Fuzzy_sphere` implements fuzzy `d`-dimensional spheres.

A fuzzy sphere with radius \( r\) and fuzziness value \( \epsilon\) has as inner approximation a sphere with radius \( r-\epsilon\) and as outer approximation a sphere with radius \( r+\epsilon\). Points are returned depending on their location respective to the approximations, as follows:

- points in the inner approximation (boundary included) are always returned.
- points in the outer approximation (boundary included) and not in the previous category may or may not be returned.
- points that do not fit in the two previous categories are never returned.

Note that if the fuzziness value is strictly greater than the radius, there is no inner approximation.

Template Parameters

  Traits | must be a model of the concept `SearchTraits`, for example `CGAL::Cartesian_d<double>`.

Is Model Of:
  `FuzzyQueryItem`

Examples
  Spatial_searching/circular_query.cpp, Spatial_searching/fuzzy_range_query.cpp, and Spatial_searching/searching_with_circular_query.cpp.

## Types
typedef unspecified_type | D
| Dimension Tag.
typedef Traits::Point_d | Point_d
| Point type.
typedef Traits::FT | FT
| Number type.

## Creation
| Fuzzy_sphere (Point_d center, FT radius, FT epsilon=FT(0), Traits t=Traits())
| Construct a fuzzy sphere centered at `center` with radius `radius` and fuzziness value `epsilon`.
| Fuzzy_sphere (Traits::Base::Point_d center, FT radius, FT epsilon=FT(0), Traits t=Traits())
| Construct a fuzzy sphere centered at `center` with radius `radius` and fuzziness value `epsilon`.

## Operations
bool | contains (const Point_d &p) const
| Test whether the fuzzy sphere contains `p`.
template<typename Coord_iterator >
bool | contains_point_given_as_coordinates (Coord_iterator begin, Coord_iterator end) const
| Test whether the fuzzy sphere contains the point whose Cartesian coordinates are contained in the range [`begin`, `end`).
bool | inner_range_intersects (const Kd_tree_rectangle< FT, D > &rectangle) const
| Test whether the inner sphere intersects the rectangle associated with a node of a tree.
bool | outer_range_contains (const Kd_tree_rectangle< FT, D > &rectangle) const
| Test whether the outer sphere encloses the rectangle associated with a node of a tree.

## Constructor & Destructor Documentation

## ◆ Fuzzy_sphere()

template<typename Traits >

CGAL::Fuzzy_sphere< Traits >::Fuzzy_sphere | ( | Traits::Base::Point_d | center,
|  | FT | radius,
|  | FT | epsilon = `FT(0)`,
|  | Traits | t = `Traits()`
| ) |  |

Construct a fuzzy sphere centered at `center` with radius `radius` and fuzziness value `epsilon`.

Attention
  Only available in case `Traits` is `Search_traits_adapter<Key,PointPropertyMap,BaseTraits>`.

## Member Function Documentation

## ◆ contains()

template<typename Traits >

bool CGAL::Fuzzy_sphere< Traits >::contains | ( | const Point_d & | p | ) | const

Test whether the fuzzy sphere contains `p`.

That is, whether the distance between the center of the fuzzy sphere and `p` is less than \( r\).

## ◆ inner_range_intersects()

template<typename Traits >

bool CGAL::Fuzzy_sphere< Traits >::inner_range_intersects | ( | const Kd_tree_rectangle< FT, D > & | rectangle | ) | const

Test whether the inner sphere intersects the rectangle associated with a node of a tree.

That is, whether the minimal distance between the center of the fuzzy sphere and `rectangle` is less than \( r-\epsilon\).

## ◆ outer_range_contains()

template<typename Traits >

bool CGAL::Fuzzy_sphere< Traits >::outer_range_contains | ( | const Kd_tree_rectangle< FT, D > & | rectangle | ) | const

Test whether the outer sphere encloses the rectangle associated with a node of a tree.

That is, whether the maximal distance between the center of the fuzzy sphere and `rectangle` is less than \( r+\epsilon\).