## DelaunayLiftedTraits_d

### Definition

Requirements of the second traits class to be used with the class Delaunay_d.

### Types

DelaunayLiftedTraits_d::Point_d
| the dD point type on which the Delaunay algorithm operates
DelaunayLiftedTraits_d::Hyperplane_d
| a dD plane
DelaunayLiftedTraits_d::Vector_d
| a dD vector
DelaunayLiftedTraits_d::Ray_d
| a dD ray
DelaunayLiftedTraits_d::RT
| a arithmetic ring type
DelaunayLiftedTraits_d::Construct_vector_d
| Function object type that provides Vector_d operator()(int d, CGAL::Null_vector), which constructs and returns the null vector.
DelaunayLiftedTraits_d::Construct_hyperplane_d
| Function object type that provides Hyperplane_d operator()(ForwardIterator first, ForwardIterator last, Point_d p, CGAL::Oriented_side side), which constructs and returns a hyperplane passing through the points in tuple[first,last) and oriented such that p is on the side side of the returned hyperplane. When side==ON_ORIENTED_BOUNDARY then any hyperplane containing the tuple is returned.
DelaunayLiftedTraits_d::Vector_to_point_d
| Function object type that provides Point_d operator()(Vector_d v), which constructs and returns the point defined by 0+v.
DelaunayLiftedTraits_d::Point_to_vector_d
| Function object type that provides Vector_d operator()(Point_d v), which constructs and returns the vector defined by p-0.
DelaunayLiftedTraits_d::Orientation_d
| Function object type that provides Orientation operator()(ForwardIterator first, ForwardIterator last), which determines the orientation of the points tuple[first,last).
DelaunayLiftedTraits_d::Orthogonal_vector_d
| Function object type that provides Vector_d operator()(Hyperplane_d h), which constructs and returns a vector orthogonal to h and pointing from the boundary into its positive halfspace.
DelaunayLiftedTraits_d::Oriented_side_d
| Predicate object type that provides Oriented_side operator()(Hyperplane_d h, Point_d p), which determines the oriented side of p with respect to h.
DelaunayLiftedTraits_d::Has_on_positive_side_d
| Predicate object type that provides bool operator()(Hyperplane_d h, Point_d p), which return true iff p lies in the positive halfspace determined by h.
DelaunayLiftedTraits_d::Affinely_independent_d
| Predicate object type that provides bool operator()(ForwardIterator first, ForwardIterator last), which determines if the points tuple[first,last) are affinely independent.
DelaunayLiftedTraits_d::Contained_in_simplex_d
| Predicate object type that provides bool operator()(ForwardIterator first, ForwardIterator last, Point_d p), which determines if p is contained in the closed simplex defined by the points in tuple[first,last).
DelaunayLiftedTraits_d::Contained_in_affined_hull_d
| Predicate object type that provides bool operator()(ForwardIterator first, ForwardIterator last, Point_d p), which determines if p is contained in the affine hull of the points in tuple[first,last).
DelaunayLiftedTraits_d::Intersect_d
| Predicate object type that provides Object operator()(Ray_d r, Hyperplane_d h), which determines if r and h intersect and returns the corresponding polymorphic object.

The previous requirements are all identical to the concept ConvexHullTraits_d. The Delaunay class adds the following requirements.

DelaunayLiftedTraits_d::Project_along_d_axis_d
| Predicate object type that provides DelaunayTraits_d::Point_d operator()(Point_d p), which determines the d-1-dimensional point from the d-dimensional point p while discarding the last coordinate.
DelaunayLiftedTraits_d::Lift_to_paraboloid_d
| Predicate object type that provides Point_d operator()(DelaunayTraits_d::Point_d p), which determines the d-dimensional point from the d-1-dimensional point p while lifting it to the paraboloid of revolution.
DelaunayLiftedTraits_d::Component_accessor_d
| Predicate object type that provides RT homogeneous(Vector_d v,int i) and int dimension(Vector_d v), where the former determines the ith coordinate of v and the latter the dimension of v.

### Creation

A default constructor and copy constructor is required.

### Operations

For each of the above function and predicate object types, Func_obj_type, a function must exist with the name func_obj_type_object that creates an instance of the function or predicate object type. For example:

Construct_vector_d | traits.construct_vector_d_object ()

### Has Models

CGAL::Cartesian_d<FT,LA>
CGAL::Homogeneous_d<RT,LA>