Make polyhedral surface a template parameter

This commit is contained in:
Andreas Fabri 2016-11-21 08:35:01 +01:00
parent 32b1fb1c90
commit 698e0941ea
3 changed files with 8 additions and 7 deletions

View File

@ -8,11 +8,12 @@ The class `Convex_hull_traits_3` serves as a traits class for the function
function when `R` is a kernel with exact predicates but inexact constructions
(note that the type `Plane_3` is a triple of `Point_3` and not `R::Plane_3`).
\tparam MFG must be a ,model of MutableFaceGraph
\cgalModels `ConvexHullTraits_3`
\cgalModels `IsStronglyConvexTraits_3`
*/
template< typename R >
template< typename R, typename MFG = Polyhedron_3<R> >
class Convex_hull_traits_3 {
public:
@ -42,7 +43,7 @@ typedef unspecified_type Plane_3;
/*!
*/
typedef Polyhedron_3<R> Polyhedron_3;
typedef MFG Polyhedron_3;
/*!

View File

@ -17,7 +17,7 @@ that is `P` will contain only triangular facets.
\tparam Polyhedron_3 must be a model of `MutableFaceGraph`.
\tparam Traits must be a model of the concept `ConvexHullTraits_3`.
For the purposes of checking the postcondition that the convex hull
is valid, `Traits` should also be a model of the concept
is valid, `Traits` must also be a model of the concept
`IsStronglyConvexTraits_3`.
@ -53,7 +53,7 @@ in case the result is a polyhedron.
\tparam InputIterator must be an input iterator with a value type equivalent to `Traits::Point_3`.
\tparam Traits must be model of the concept `ConvexHullTraits_3`.
For the purposes of checking the postcondition that the convex hull
is valid, `Traits` should also be a model of the concept
is valid, `Traits` must also be a model of the concept
`IsStronglyConvexTraits_3`. Furthermore, `Traits` must define a type `Polyhedron_3` that is a model of
`MutableFaceGraph`.

View File

@ -185,20 +185,20 @@ struct Convex_hull_traits_base_3<R_, Tag_true>{
};
template <class R_, class Has_filtered_predicates_tag = Tag_false>
template <class R_, class Polyhedron = Polyhedron_3<R_>, class Has_filtered_predicates_tag = Tag_false>
class Convex_hull_traits_3 :
public Convex_hull_traits_base_3<R_, Has_filtered_predicates_tag>
{
public:
typedef R_ R;
typedef Convex_hull_traits_3<R, Has_filtered_predicates_tag> Self;
typedef Convex_hull_traits_3<R, Polyhedron, Has_filtered_predicates_tag> Self;
typedef typename R::Point_3 Point_3;
typedef typename R::Segment_3 Segment_3;
typedef typename R::Triangle_3 Triangle_3;
typedef Point_triple<R> Plane_3;
typedef typename R::Vector_3 Vector_3;
typedef CGAL::Polyhedron_3<R> Polyhedron_3;
typedef Polyhedron Polyhedron_3;
typedef typename R::Construct_segment_3 Construct_segment_3;
typedef typename R::Construct_ray_3 Construct_ray_3;