Modified alpha_shapes_2's Vb and Fb to work with the Lazy_alpha_nt modifs

from commit 1b75558
This commit is contained in:
Mael Rouxel-Labbé 2017-05-02 11:42:57 +02:00
parent e51b53c9bb
commit 8b939eeffb
2 changed files with 38 additions and 25 deletions

View File

@ -32,26 +32,32 @@
namespace CGAL {
template < class Gt, class Fb_ = Default,class ExactAlphaComparisonTag =Tag_false >
class Alpha_shape_face_base_2 : public Default::Get<Fb_, Triangulation_face_base_2<Gt> >::type
template <class Gt,
class Fb_ = Default,
class ExactAlphaComparisonTag = Tag_false,
class Weighted_tag = Tag_false>
class Alpha_shape_face_base_2
: public Default::Get<Fb_, Triangulation_face_base_2<Gt> >::type
{
typedef typename Default::Get<Fb_, Triangulation_face_base_2<Gt> >::type Fb;
typedef typename Fb::Triangulation_data_structure TDS;
public:
typedef TDS Triangulation_data_structure;
typedef typename TDS::Vertex_handle Vertex_handle;
typedef typename TDS::Face_handle Face_handle;
typedef typename internal::Alpha_nt_selector_2<Gt,ExactAlphaComparisonTag>::Type_of_alpha Type_of_alpha;
typedef Type_of_alpha FT;
typedef Triple<Type_of_alpha, Type_of_alpha, Type_of_alpha> Interval_3;
public:
typedef typename Fb::Vertex_handle Vertex_handle;
typedef typename Fb::Face_handle Face_handle;
template < typename TDS2 >
struct Rebind_TDS {
typedef typename Fb::template Rebind_TDS<TDS2>::Other Fb2;
typedef Alpha_shape_face_base_2<Gt,Fb2,ExactAlphaComparisonTag> Other;
typedef typename Fb::template Rebind_TDS<TDS2>::Other Fb2;
typedef Alpha_shape_face_base_2<
Gt, Fb2, ExactAlphaComparisonTag, Weighted_tag> Other;
};
typedef typename internal::Alpha_nt_selector_2<
Gt, ExactAlphaComparisonTag, Weighted_tag>::Type_of_alpha Type_of_alpha;
typedef Type_of_alpha NT;
typedef Type_of_alpha FT;
typedef Triple<Type_of_alpha, Type_of_alpha, Type_of_alpha> Interval_3;
private:
Interval_3 vec_edge[3];

View File

@ -32,26 +32,33 @@
namespace CGAL {
//-------------------------------------------------------------------
template <class Gt, class Vb_ = Default, class ExactAlphaComparisonTag = Tag_false >
class Alpha_shape_vertex_base_2 : public Default::Get<Vb_, Triangulation_vertex_base_2<Gt> >::type
template <class Gt,
class Vb_ = Default,
class ExactAlphaComparisonTag = Tag_false,
class Weighted_tag = Tag_false>
class Alpha_shape_vertex_base_2
: public Default::Get<Vb_, Triangulation_vertex_base_2<Gt> >::type
{
typedef typename Default::Get<Vb_, Triangulation_vertex_base_2<Gt> >::type Vb;
typedef typename Vb::Triangulation_data_structure TDS;
public:
typedef TDS Triangulation_data_structure;
typedef typename TDS::Vertex_handle Vertex_handle;
typedef typename TDS::Face_handle Face_handle;
typedef typename internal::Alpha_nt_selector_2<Gt,ExactAlphaComparisonTag>::Type_of_alpha Type_of_alpha;
typedef Type_of_alpha FT;
typedef std::pair< Type_of_alpha, Type_of_alpha > Interval2;
typedef typename Vb::Point Point;
public:
typedef typename Vb::Vertex_handle Vertex_handle;
typedef typename Vb::Face_handle Face_handle;
typedef typename Vb::Point Point;
template < typename TDS2 >
struct Rebind_TDS {
typedef typename Vb::template Rebind_TDS<TDS2>::Other Vb2;
typedef Alpha_shape_vertex_base_2 <Gt,Vb2,ExactAlphaComparisonTag> Other;
typedef typename Vb::template Rebind_TDS<TDS2>::Other Vb2;
typedef Alpha_shape_vertex_base_2<
Gt, Vb2, ExactAlphaComparisonTag, Weighted_tag> Other;
};
typedef typename internal::Alpha_nt_selector_2<
Gt, ExactAlphaComparisonTag, Weighted_tag>::Type_of_alpha Type_of_alpha;
typedef Type_of_alpha NT;
typedef std::pair< Type_of_alpha, Type_of_alpha > Interval2;
private:
Interval2 I;