## IsStronglyConvexTraits_3

### Definition

Requirements of the traits class used by the funciton is_strongly_convex_3, which is used for postcondition checking by convex_hull_3.

### Types

IsStronglyConvexTraits_3::Plane_3
| a 3D plane
IsStronglyConvexTraits_3::Point_3
| a 3D point
IsStronglyConvexTraits_3::Ray_3
| a 3D ray
IsStronglyConvexTraits_3::Triangle_3
| a 3D triangle
IsStronglyConvexTraits_3::Construct_ray_3
| Function object type that provides Ray_3 operator()(Point_3 p, Point_3 q), which constructs and returns the ray based at point p and passing though q
IsStronglyConvexTraits_3::Construct_triangle_3
| Function object type that provides Triangle_3 operator()(Point_3 p, Point_3 q, Point_3 r), which constructs and returns the triangle with vertices p, q, and r
IsStronglyConvexTraits_3::Coplanar_3
| Predicate object type that provides bool operator()(Point_3 p, Point_3 q, Point_3 r, Point_3 s), which determines if points p, q, r, and s are coplanar or not
IsStronglyConvexTraits_3::Do_intersect_3
| Function object type that provides CGAL::Object operator()(Triangle_3 t, Ray_3 r), which returns true iff t and r intersect.
IsStronglyConvexTraits_3::Has_on_positive_side_3
| Predicate object type that provides bool operator()(Plane_3 h, Point_3 q), which determines of the point q is on the positive side of the halfspace h
IsStronglyConvexTraits_3::Oriented_side_3
| Predicate object type that provides Oriented_side operator()(Plane_3 p, Point_3 q), which determines the position of point q relative to plane p

### Creation

Only a copy constructor is required.

IsStronglyConvexTraits_3 traits ( & t);

### 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_ray_3 | traits.construct_ray_3_object ()

### Has Models

CGAL::Convex_hull_traits_3<R>

### See Also

ConvexHullTraits_3
CGAL::is_strongly_convex_3