CGAL 6.2 - dD Geometry Kernel: CGAL::Epeck_d< DimensionTag > Struct Template Reference

CGAL 6.2 - dD Geometry Kernel

Loading...
Searching...
No Matches
List of all members | Classes | Public Types | Public Member Functions
CGAL::Epeck_d< DimensionTag > Struct Template Reference
Reference Manual » Kernels

`#include <CGAL/Epeck_d.h>`

## Definition

template<typename DimensionTag>
struct CGAL::Epeck_d< DimensionTag >

A model for `Kernel_d`, minus `Kernel_d::Point_of_sphere_d`, that uses Cartesian coordinates to represent the geometric objects.

This kernel is default constructible and copyable. It does not carry any state so it is possible to use objects created by one instance with functors created by another one.

This kernel supports construction of points from `double` Cartesian coordinates. It provides exact geometric predicates and constructions. The geometric predicates are made exact without sacrificing speed thanks to the use of filters. The geometric constructions are made exact without sacrificing speed thanks to a lazy mechanism, similar to `Exact_predicates_exact_constructions_kernel`. A construction creates an approximate object, and stores a directed acyclic graph (DAG) of the operation and arguments used. When an operation needs more precision on an object than is currently available, which should be rare, CGAL reconstructs exactly all the ancestors of the object and replaces this part of the graph with exact objects. This should be transparent for users, those details do not affect the functionality, but they can cause surprising running time where the costly part of an algorithm is not the construction itself, but a seemingly trivial use afterwards that causes exact reconstruction of a large part of the structure.

`Sphere_d` is represented internally with a center and a squared radius, and the exact type used by the kernel is a rational type. This means that `Kernel_d::Point_of_sphere_d` cannot be implemented exactly in dimensions up to 3 (higher dimensions would require a decomposition of an integer as a sum of `d` squares), so currently it is not provided at all.

Template Parameters

  DimensionTag | is a tag representing the dimension of the ambient Euclidean space. It may be either `Dimension_tag<d>` where `d` is an integer or `Dynamic_dimension_tag`. In the latter case, the dimension of the space is specified for each point when it is constructed, so it does not need to be known at compile-time.

Attention
  Only the interfaces specific to this class are listed below. Refer to the concepts for the rest.
  Known bugs: the functor `Kernel_d::Intersect_d` is not yet implemented. `Kernel_d::Contained_in_affine_hull_d` assumes that the iterators refer to an affinely independent family. `Kernel_d::Orientation_d` only works for points, not vectors. Visual Studio 2015 is not supported.
  This kernel requires the Eigen library.

Is model of
  `Kernel_d`
  `DelaunayTriangulationTraits`
  `RegularTriangulationTraits`
  `SearchTraits`
  `RangeSearchTraits`

See also
  `CGAL::Cartesian_d<FieldNumberType>`
  `CGAL::Homogeneous_d<RingNumberType>`
  `CGAL::Epick_d<DimensionTag>`

## Classes
class | Cartesian_const_iterator
| A bidirectional iterator over the Cartesian coordinates of a point. More...
class | Compute_power_product_d
class | Compute_squared_radius_d
class | Compute_squared_radius_smallest_orthogonal_sphere_d
class | Construct_bbox_d
class | Construct_cartesian_const_iterator_d
class | Construct_circumcenter_d
class | Construct_power_sphere_d
class | Point_d
| represents a point in the Euclidean space More...
class | Power_side_of_bounded_power_sphere_d
class | Side_of_bounded_sphere_d
class | Vector_d
| represents a vector in the Euclidean space More...
class | Weighted_point_d
| represents a weighted point in the Euclidean space More...

## Public Types
typedef DimensionTag | Dimension
| the dimension

## Public Member Functions
Compute_power_product_d | compute_power_product_d_object ()
Compute_squared_radius_d | compute_squared_radius_d_object ()
Compute_squared_radius_smallest_orthogonal_sphere_d | compute_squared_radius_smallest_orthogonal_sphere_d_object ()
Construct_bbox_d | construct_bbox_d_object ()
Construct_cartesian_const_iterator_d | construct_cartesian_const_iterator_d_object ()
Construct_circumcenter_d | construct_circumcenter_d_object ()
Construct_power_sphere_d | construct_power_sphere_d_object ()
Power_side_of_bounded_power_sphere_d | power_side_of_bounded_power_sphere_d_object ()