Introduced signatures for periodic triangulations

This commit is contained in:
Mael Rouxel-Labbé 2017-11-17 18:28:34 +01:00
parent b32a7f8b00
commit 302b3c24fe
2 changed files with 44 additions and 0 deletions

View File

@ -35,6 +35,9 @@
#include <CGAL/Triangulation_cell_base_with_info_3.h>
#include <CGAL/Regular_triangulation_3.h>
#include <CGAL/Regular_triangulation_cell_base_3.h>
#include <CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h>
#include <CGAL/Periodic_3_triangulation_3.h>
#include <CGAL/Periodic_3_regular_triangulation_3.h>
#include <boost/variant.hpp>
#include <boost/tuple/tuple.hpp>
#include <utility>
@ -68,6 +71,7 @@ struct Get_io_signature_aux<T, false>
{
std::string operator()() const
{
std::cerr << "Type without signature: " << typeid(T).name() << std::endl;
return std::string();
}
}; // end template partial specialization Get_io_signature_aux<T, false>
@ -218,6 +222,32 @@ Get_io_signature<Regular_triangulation_3<Gt, Tds> >
};
#endif
#ifdef CGAL_PERIODIC_3_TRIANGULATION_3_H
template <class Gt, class Tds>
struct
Get_io_signature<Periodic_3_triangulation_3<Gt, Tds> >
{
std::string operator()() {
return std::string("Periodic_3_triangulation_3(") +
Get_io_signature<typename Tds::Vertex::Point>()() +
",Vb(" + Get_io_signature<typename Tds::Vertex>()() +
"),Cb(" + Get_io_signature<typename Tds::Cell>()() +
"))";
}
};
#endif
#ifdef CGAL_PERIODIC_3_REGULAR_TRIANGULATION_3_H
template <class Gt, class Tds>
struct
Get_io_signature<Periodic_3_regular_triangulation_3<Gt, Tds> >
{
std::string operator()() {
return Get_io_signature<Periodic_3_triangulation_3<Gt, Tds> >()();
}
};
#endif
#ifdef CGAL_TRIANGULATION_VERTEX_BASE_3_H
template <class Gt, class Vb>
struct Get_io_signature<Triangulation_vertex_base_3<Gt, Vb> >
@ -283,6 +313,17 @@ Get_io_signature<Regular_triangulation_cell_base_3<Gt, Cb, Container> >
};
#endif
#ifdef CGAL_REGULAR_TRIANGULATION_CELL_BASE_WITH_CIRCUMCENTER_3_H
template <class Gt, class Cb>
struct
Get_io_signature<Regular_triangulation_cell_base_with_weighted_circumcenter_3<Gt, Cb> >
{
std::string operator()() {
return "RTWWCcb_3";
}
};
#endif
} // end namespace CGAL

View File

@ -35,6 +35,7 @@
// vertex and cell bases
#include <CGAL/Mesh_vertex_base_3.h>
#include <CGAL/Mesh_cell_base_3.h>
#include <CGAL/Mesh_3/io_signature.h>
#include <CGAL/assertions.h>
#include <CGAL/array.h>
@ -133,6 +134,8 @@ public:
using Base::inexact_locate;
#endif
static std::string io_signature() { return Get_io_signature<Base>()(); }
/// Constructor
Periodic_3_regular_triangulation_3_mesher_3(const Iso_cuboid& domain = Iso_cuboid(0,0,0,1,1,1),
const Geom_traits& gt = Geom_traits())