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

#include <CGAL/Epeck_d.h>

Definition

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

Public Member Functions

Construct_circumcenter_d construct_circumcenter_d_object ()
 
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_power_sphere_d construct_power_sphere_d_object ()
 
Power_side_of_bounded_power_sphere_d power_side_of_bounded_power_sphere_d_object ()