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

#include <CGAL/Epeck_d.h>


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
DimensionTagis 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.
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 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:






See also


class  Compute_squared_radius_d
class  Compute_squared_radius_smallest_orthogonal_sphere_d
class  Construct_circumcenter_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  Weighted_point_d
 represents a weighted point in the Euclidean space More...

Public Member Functions

Construct_circumcenter_d construct_circumcenter_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 ()
Power_side_of_bounded_power_sphere_d power_side_of_bounded_power_sphere_d_object ()