diff --git a/Triangulation_2/include/CGAL/Regular_triangulation_2.h b/Triangulation_2/include/CGAL/Regular_triangulation_2.h index f15c65004a4..ceb80040eac 100644 --- a/Triangulation_2/include/CGAL/Regular_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Regular_triangulation_2.h @@ -42,149 +42,20 @@ namespace CGAL { -template < typename K_ > -struct Weighted_point_mapper_2 - : public K_ -{ - typedef typename K_::Weighted_point_2 Point_2; - - Weighted_point_mapper_2() {} - Weighted_point_mapper_2(const K_& k) : K_(k) {} -}; - - namespace internal { -template < typename K_ > -struct RegTraits_2 - : public K_ -{ - typedef typename K_::Construct_point_2 Construct_point_2_base; - typedef typename K_::Construct_segment_2 Construct_segment_2_base; - typedef typename K_::Construct_triangle_2 Construct_triangle_2_base; - typedef typename K_::Construct_vector_2 Construct_vector_2_base; - typedef typename K_::Equal_2 Equal_2_base; - typedef typename K_::Compare_x_2 Compare_x_2_base; - typedef typename K_::Compare_y_2 Compare_y_2_base; - typedef typename K_::Orientation_2 Orientation_2_base; - typedef typename K_::Construct_circumcenter_2 Construct_circumcenter_2_base; - typedef typename K_::Less_x_2 Less_x_2_base; - typedef typename K_::Less_y_2 Less_y_2_base; - - - Construct_point_2_base cp; - - RegTraits_2() {} - RegTraits_2(const K_& k) - : K_(k), cp(k.construct_point_2_object()) - {} - - typedef Regular_traits_adaptor_2 Equal_2; - - typedef Regular_traits_adaptor_2 Construct_vector_2; - - typedef Regular_traits_adaptor_2 Compare_x_2; - - typedef Regular_traits_adaptor_2 Compare_y_2; - - typedef Regular_traits_adaptor_2 Orientation_2; - - typedef Regular_traits_adaptor_2 Construct_circumcenter_2; - - typedef Regular_traits_adaptor_2 Construct_triangle_2; - - typedef Regular_traits_adaptor_2 Construct_segment_2; - - typedef Regular_traits_adaptor_2 Less_x_2; - - typedef Regular_traits_adaptor_2 Less_y_2; - - Construct_vector_2 construct_vector_2_object() const - { - return Construct_vector_2(cp, static_cast(*this).construct_vector_2_object()); - } - - Construct_triangle_2 construct_triangle_2_object() const - { - return Construct_triangle_2(cp, static_cast(*this).construct_triangle_2_object()); - } - - Construct_segment_2 construct_segment_2_object() const - { - return Construct_segment_2(cp, static_cast(*this).construct_segment_2_object()); - } - - Equal_2 equal_2_object() const - { - return Equal_2(cp, static_cast(*this).equal_2_object()); - } - - Compare_x_2 compare_x_2_object() const - { - return Compare_x_2(cp, static_cast(*this).compare_x_2_object()); - } - - Compare_y_2 compare_y_2_object() const - { - return Compare_y_2(cp, static_cast(*this).compare_y_2_object()); - } - - Orientation_2 orientation_2_object() const - { - return Orientation_2(cp, static_cast(*this).orientation_2_object()); - } - - Construct_circumcenter_2 construct_circumcenter_2_object() const - { - return Construct_circumcenter_2(cp, static_cast(*this).construct_circumcenter_2_object()); - } - - Less_x_2 less_x_2_object() const - { - return Less_x_2(cp, static_cast(*this).less_x_2_object()); - } - - Less_y_2 less_y_2_object() const - { - return Less_y_2(cp, static_cast(*this).less_y_2_object()); - } -}; - - } // namespace internal - template < class Gt, class Tds = Triangulation_data_structure_2 < Regular_triangulation_vertex_base_2, Regular_triangulation_face_base_2 > > class Regular_triangulation_2 - : public Triangulation_2 >, - Tds> + : public Triangulation_2 { typedef Regular_triangulation_2 Self; - typedef Weighted_point_mapper_2 > RT_traits; - typedef Triangulation_2 Base; + typedef Triangulation_2 Base; + public: typedef Self Triangulation; typedef Tds Triangulation_data_structure; - typedef internal::RegTraits_2 Geom_traits; + typedef Gt Geom_traits; // Traits are not supposed to define Bare_point, but leaving below // for backward compatibility @@ -337,14 +208,14 @@ public: : Base(), _hidden_vertices(0) {} Regular_triangulation_2(const Gt& gt) - : Base(RT_traits(gt)), _hidden_vertices(0) {} + : Base(gt), _hidden_vertices(0) {} Regular_triangulation_2(const Regular_triangulation_2 &rt); template < class InputIterator > Regular_triangulation_2(InputIterator first, InputIterator last, const Gt& gt) - : Base(RT_traits(gt)), _hidden_vertices(0) + : Base(gt), _hidden_vertices(0) { insert(first, last); }