## ConvexHullTraits_d

### Definition

Requirements of the traits class to be used with the class Convex_hull_d.

### Types

ConvexHullTraits_d::Point_d
| the dD point type on which the convex hull algorithm operates
ConvexHullTraits_d::Hyperplane_d
| a dD plane
ConvexHullTraits_d::Vector_d
| a dD vector
ConvexHullTraits_d::Ray_d
| a dD ray
ConvexHullTraits_d::RT
| an arithmetic ring type
ConvexHullTraits_d::Construct_vector_d
| Function object type that provides Vector_d operator()(int d, CGAL::Null_vector), which constructs and returns the null vector.
ConvexHullTraits_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.
ConvexHullTraits_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.
ConvexHullTraits_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.
ConvexHullTraits_d::Orientation_d
| Function object type that provides Orientation operator()(ForwardIterator first, ForwardIterator last), which determines the orientation of the points tuple[first,last).
ConvexHullTraits_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.
ConvexHullTraits_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.
ConvexHullTraits_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.
ConvexHullTraits_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.
ConvexHullTraits_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).
ConvexHullTraits_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).
ConvexHullTraits_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.

### 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>
CGAL::Convex_hull_d_traits_3<R>