Fixed trailing whitespace in refine_mesh_3.h (no real changes)

This commit is contained in:
Mael Rouxel-Labbé 2017-10-31 15:06:39 +01:00
parent 62fa9be278
commit c038e25f98
1 changed files with 343 additions and 346 deletions

View File

@ -27,7 +27,6 @@
#include <CGAL/license/Mesh_3.h> #include <CGAL/license/Mesh_3.h>
#include <CGAL/config.h> #include <CGAL/config.h>
#include <CGAL/Mesh_3/config.h> #include <CGAL/Mesh_3/config.h>
#include <CGAL/Mesh_3/Dump_c3t3.h> #include <CGAL/Mesh_3/Dump_c3t3.h>
@ -37,190 +36,190 @@
namespace CGAL { namespace CGAL {
namespace details { namespace details {
/** /**
* @class Insert_vertex_in_c3t3 * @class Insert_vertex_in_c3t3
* *
* A functor designed to insert unweighted points into the triangulation * A functor designed to insert unweighted points into the triangulation
* of a C3T3 from C3T3::Tr::Vertex , keeping the dimension and indices. * of a C3T3 from C3T3::Tr::Vertex , keeping the dimension and indices.
*/ */
template <typename C3T3> template <typename C3T3>
class Insert_vertex_in_c3t3 class Insert_vertex_in_c3t3
{ {
private: private:
typedef typename C3T3::Vertex_handle Vertex_handle; typedef typename C3T3::Vertex_handle Vertex_handle;
typedef typename C3T3::Index Index; typedef typename C3T3::Index Index;
typedef typename C3T3::Triangulation Tr; typedef typename C3T3::Triangulation Tr;
typedef typename Tr::Geom_traits Geom_traits; typedef typename Tr::Geom_traits Geom_traits;
typedef typename Tr::Vertex Vertex; typedef typename Tr::Vertex Vertex;
typedef typename Tr::Weighted_point Weighted_point; typedef typename Tr::Weighted_point Weighted_point;
typedef typename Weighted_point::Weight Weight; typedef typename Weighted_point::Weight Weight;
public: public:
Insert_vertex_in_c3t3(C3T3& c3t3) Insert_vertex_in_c3t3(C3T3& c3t3)
: r_c3t3_(c3t3) {} : r_c3t3_(c3t3) {}
void operator()(const Vertex& vertex) const void operator()(const Vertex& vertex) const
{ {
typename Geom_traits::Construct_point_3 cp = typename Geom_traits::Construct_point_3 cp =
r_c3t3_.triangulation().geom_traits().construct_point_3_object(); r_c3t3_.triangulation().geom_traits().construct_point_3_object();
typename Geom_traits::Compute_weight_3 cw = typename Geom_traits::Compute_weight_3 cw =
r_c3t3_.triangulation().geom_traits().compute_weight_3_object(); r_c3t3_.triangulation().geom_traits().compute_weight_3_object();
// Get vh properties // Get vh properties
int dimension = vertex.in_dimension(); int dimension = vertex.in_dimension();
Weight w = (dimension < 2) ? cw(vertex.point()) : 0; Weight w = (dimension < 2) ? cw(vertex.point()) : 0;
Weighted_point point(cp(vertex.point()), w); Weighted_point point(cp(vertex.point()), w);
Index index = vertex.index(); Index index = vertex.index();
// Insert point and restore handle properties // Insert point and restore handle properties
Vertex_handle new_vertex = r_c3t3_.triangulation().insert(point); Vertex_handle new_vertex = r_c3t3_.triangulation().insert(point);
r_c3t3_.set_index(new_vertex, index); r_c3t3_.set_index(new_vertex, index);
r_c3t3_.set_dimension(new_vertex, dimension); r_c3t3_.set_dimension(new_vertex, dimension);
#if defined(CGAL_LINKED_WITH_TBB)\ #if defined(CGAL_LINKED_WITH_TBB)\
&& !defined(CGAL_PARALLEL_MESH_3_DO_NOT_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE) && !defined(CGAL_PARALLEL_MESH_3_DO_NOT_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE)
if (boost::is_convertible<typename C3T3::Concurrency_tag, CGAL::Parallel_tag>::value) if (boost::is_convertible<typename C3T3::Concurrency_tag, CGAL::Parallel_tag>::value)
{ {
if (dimension == -1) if (dimension == -1)
r_c3t3_.add_far_point(new_vertex); r_c3t3_.add_far_point(new_vertex);
} }
#endif #endif
#ifdef CGAL_SEQUENTIAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE #ifdef CGAL_SEQUENTIAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
if (boost::is_convertible<typename C3T3::Concurrency_tag, CGAL::Sequential_tag>::value) if (boost::is_convertible<typename C3T3::Concurrency_tag, CGAL::Sequential_tag>::value)
{ {
if (dimension == -1) if (dimension == -1)
r_c3t3_.add_far_point(new_vertex); r_c3t3_.add_far_point(new_vertex);
} }
#endif #endif
}
private:
C3T3& r_c3t3_;
};
} }
private:
C3T3& r_c3t3_;
};
} // namespace details
namespace parameters { namespace parameters {
namespace internal { namespace internal {
const int undef_parameter = -1; const int undef_parameter = -1;
// Helpers // Helpers
struct Optimization_options_base struct Optimization_options_base
{ {
Optimization_options_base(bool b) Optimization_options_base(bool b)
: b_(b), time_limit_(undef_parameter), bound_(undef_parameter) {} : b_(b), time_limit_(undef_parameter), bound_(undef_parameter) {}
operator bool() const { return b_; } operator bool() const { return b_; }
bool is_time_limit_set() const { return time_limit_ != undef_parameter; } bool is_time_limit_set() const { return time_limit_ != undef_parameter; }
void set_time_limit(double d) { time_limit_ = d; } void set_time_limit(double d) { time_limit_ = d; }
double time_limit() const { return time_limit_; } double time_limit() const { return time_limit_; }
bool is_bound_set() const { return bound_ != undef_parameter; } bool is_bound_set() const { return bound_ != undef_parameter; }
void set_bound(double d) { bound_ = d; } void set_bound(double d) { bound_ = d; }
double bound() const { return bound_; } double bound() const { return bound_; }
private: private:
bool b_; bool b_;
double time_limit_; double time_limit_;
double bound_; double bound_;
}; };
struct Global_optimization_options_base struct Global_optimization_options_base
{ {
Global_optimization_options_base() Global_optimization_options_base()
: convergence_(undef_parameter), max_it_nb_(undef_parameter) {} : convergence_(undef_parameter), max_it_nb_(undef_parameter) {}
bool is_convergence_set() const { return convergence_ != undef_parameter; } bool is_convergence_set() const { return convergence_ != undef_parameter; }
void set_convergence(double d) { convergence_ = d; } void set_convergence(double d) { convergence_ = d; }
double convergence() const { return convergence_; } double convergence() const { return convergence_; }
bool is_max_iteration_number_set() const { return max_it_nb_ != undef_parameter; } bool is_max_iteration_number_set() const { return max_it_nb_ != undef_parameter; }
void set_max_iteration_number(int i) { max_it_nb_ = i; } void set_max_iteration_number(int i) { max_it_nb_ = i; }
int max_iteration_number() const { return max_it_nb_; } int max_iteration_number() const { return max_it_nb_; }
private: private:
double convergence_; double convergence_;
int max_it_nb_; int max_it_nb_;
}; };
// Perturb // Perturb
struct Perturb_options : public Optimization_options_base struct Perturb_options : public Optimization_options_base
{ {
Perturb_options(bool b) : Optimization_options_base(b) {} Perturb_options(bool b) : Optimization_options_base(b) {}
}; };
// Exude // Exude
struct Exude_options : public Optimization_options_base struct Exude_options : public Optimization_options_base
{ {
Exude_options(bool b) : Optimization_options_base(b) {} Exude_options(bool b) : Optimization_options_base(b) {}
}; };
// Odt // Odt
struct Odt_options : public Optimization_options_base struct Odt_options : public Optimization_options_base
, public Global_optimization_options_base , public Global_optimization_options_base
{ {
Odt_options(bool b) : Optimization_options_base(b) Odt_options(bool b) : Optimization_options_base(b)
, Global_optimization_options_base() {} , Global_optimization_options_base() {}
}; };
// Lloyd // Lloyd
struct Lloyd_options : public Optimization_options_base struct Lloyd_options : public Optimization_options_base
, public Global_optimization_options_base , public Global_optimization_options_base
{ {
Lloyd_options(bool b) : Optimization_options_base(b) Lloyd_options(bool b) : Optimization_options_base(b)
, Global_optimization_options_base() {} , Global_optimization_options_base() {}
}; };
// Manifold // Manifold
struct Manifold_options { struct Manifold_options {
enum { enum {
NON_MANIFOLD = 0, NON_MANIFOLD = 0,
MANIFOLD_WITH_BOUNDARY = 8, MANIFOLD_WITH_BOUNDARY = 8,
NO_BOUNDARY = 16, NO_BOUNDARY = 16,
MANIFOLD = 24 MANIFOLD = 24
}; };
Manifold_options(const int topology) Manifold_options(const int topology)
: mesh_topology(topology) : mesh_topology(topology)
{} {}
Manifold_options() Manifold_options()
: mesh_topology(NON_MANIFOLD) : mesh_topology(NON_MANIFOLD)
{} {}
int mesh_topology; int mesh_topology;
}; };
// Various Mesh_3 option // Various Mesh_3 option
struct Mesh_3_options { struct Mesh_3_options {
Mesh_3_options() Mesh_3_options()
: dump_after_init_prefix() : dump_after_init_prefix()
, dump_after_refine_surface_prefix() , dump_after_refine_surface_prefix()
, dump_after_refine_prefix() , dump_after_refine_prefix()
, dump_after_glob_opt_prefix() , dump_after_glob_opt_prefix()
, dump_after_perturb_prefix() , dump_after_perturb_prefix()
, dump_after_exude_prefix() , dump_after_exude_prefix()
, number_of_initial_points() , number_of_initial_points()
, nonlinear_growth_of_balls(false) , nonlinear_growth_of_balls(false)
{} {}
std::string dump_after_init_prefix; std::string dump_after_init_prefix;
std::string dump_after_refine_surface_prefix; std::string dump_after_refine_surface_prefix;
std::string dump_after_refine_prefix; std::string dump_after_refine_prefix;
std::string dump_after_glob_opt_prefix; std::string dump_after_glob_opt_prefix;
std::string dump_after_perturb_prefix; std::string dump_after_perturb_prefix;
std::string dump_after_exude_prefix; std::string dump_after_exude_prefix;
int number_of_initial_points; int number_of_initial_points;
bool nonlinear_growth_of_balls; bool nonlinear_growth_of_balls;
}; // end struct Mesh_3_options }; // end struct Mesh_3_options
} // end namespace internal } // end namespace internal
// see <CGAL/config.h> // see <CGAL/config.h>
CGAL_PRAGMA_DIAG_PUSH CGAL_PRAGMA_DIAG_PUSH
@ -228,187 +227,187 @@ CGAL_PRAGMA_DIAG_PUSH
CGAL_MESH_3_IGNORE_BOOST_PARAMETER_NAME_WARNINGS CGAL_MESH_3_IGNORE_BOOST_PARAMETER_NAME_WARNINGS
// ----------------------------------- // -----------------------------------
// Perturb // Perturb
// ----------------------------------- // -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Perturb_options), perturb, tag, BOOST_PARAMETER_FUNCTION((internal::Perturb_options), perturb, tag,
(optional (time_limit_, *, internal::undef_parameter ) (optional (time_limit_, *, internal::undef_parameter )
(sliver_bound_, *, default_values::perturb_sliver_bound ))) (sliver_bound_, *, default_values::perturb_sliver_bound )))
{ {
internal::Perturb_options options(true); internal::Perturb_options options(true);
if ( internal::undef_parameter != time_limit_ )
options.set_time_limit(time_limit_);
options.set_bound(sliver_bound_);
return options;
}
inline internal::Perturb_options no_perturb() { return internal::Perturb_options(false); }
// -----------------------------------
// Exude
// -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Exude_options), exude, tag,
(optional (time_limit_, *, internal::undef_parameter )
(sliver_bound_, *, default_values::exude_sliver_bound )))
{
internal::Exude_options options(true);
if ( internal::undef_parameter != time_limit_ )
options.set_time_limit(time_limit_);
options.set_bound(sliver_bound_);
return options;
}
inline internal::Exude_options no_exude() { return internal::Exude_options(false); }
// -----------------------------------
// Odt
// -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Odt_options), odt, tag,
(optional (time_limit_, *, 0 )
(max_iteration_number_, *, 0 )
(convergence_, *, default_values::odt_convergence_ratio )
(freeze_bound_, *, default_values::odt_freeze_ratio )))
{
internal::Odt_options options(true);
if ( internal::undef_parameter != time_limit_ )
options.set_time_limit(time_limit_); options.set_time_limit(time_limit_);
options.set_bound(freeze_bound_);
options.set_convergence(convergence_);
options.set_max_iteration_number(max_iteration_number_);
return options; options.set_bound(sliver_bound_);
}
inline internal::Odt_options no_odt() { return internal::Odt_options(false); } return options;
}
// ----------------------------------- inline internal::Perturb_options no_perturb() { return internal::Perturb_options(false); }
// Lloyd
// -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Lloyd_options), lloyd, tag,
(optional (time_limit_, *, 0 )
(max_iteration_number_, *, 0 )
(convergence_, *, default_values::lloyd_convergence_ratio )
(freeze_bound_, *, default_values::lloyd_freeze_ratio )))
{
internal::Lloyd_options options(true);
// -----------------------------------
// Exude
// -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Exude_options), exude, tag,
(optional (time_limit_, *, internal::undef_parameter )
(sliver_bound_, *, default_values::exude_sliver_bound )))
{
internal::Exude_options options(true);
if ( internal::undef_parameter != time_limit_ )
options.set_time_limit(time_limit_); options.set_time_limit(time_limit_);
options.set_bound(freeze_bound_);
options.set_convergence(convergence_);
options.set_max_iteration_number(max_iteration_number_);
return options; options.set_bound(sliver_bound_);
}
inline internal::Lloyd_options no_lloyd() { return internal::Lloyd_options(false); } return options;
}
// ----------------------------------- inline internal::Exude_options no_exude() { return internal::Exude_options(false); }
// Manifold options ------------------
// ----------------------------------- // -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Manifold_options), manifold_options, tag, // Odt
(optional // -----------------------------------
(mesh_topology_, (int), -1) BOOST_PARAMETER_FUNCTION((internal::Odt_options), odt, tag,
) (optional (time_limit_, *, 0 )
(max_iteration_number_, *, 0 )
(convergence_, *, default_values::odt_convergence_ratio )
(freeze_bound_, *, default_values::odt_freeze_ratio )))
{
internal::Odt_options options(true);
options.set_time_limit(time_limit_);
options.set_bound(freeze_bound_);
options.set_convergence(convergence_);
options.set_max_iteration_number(max_iteration_number_);
return options;
}
inline internal::Odt_options no_odt() { return internal::Odt_options(false); }
// -----------------------------------
// Lloyd
// -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Lloyd_options), lloyd, tag,
(optional (time_limit_, *, 0 )
(max_iteration_number_, *, 0 )
(convergence_, *, default_values::lloyd_convergence_ratio )
(freeze_bound_, *, default_values::lloyd_freeze_ratio )))
{
internal::Lloyd_options options(true);
options.set_time_limit(time_limit_);
options.set_bound(freeze_bound_);
options.set_convergence(convergence_);
options.set_max_iteration_number(max_iteration_number_);
return options;
}
inline internal::Lloyd_options no_lloyd() { return internal::Lloyd_options(false); }
// -----------------------------------
// Manifold options ------------------
// -----------------------------------
BOOST_PARAMETER_FUNCTION((internal::Manifold_options), manifold_options, tag,
(optional
(mesh_topology_, (int), -1)
)
)
{
internal::Manifold_options options;
options.mesh_topology = mesh_topology_;
return options;
}
inline internal::Manifold_options manifold()
{
return internal::Manifold_options(
internal::Manifold_options::MANIFOLD);
}
inline internal::Manifold_options manifold_with_boundary()
{
return internal::Manifold_options(
internal::Manifold_options::MANIFOLD_WITH_BOUNDARY);
}
inline internal::Manifold_options non_manifold()
{
return internal::Manifold_options(
internal::Manifold_options::NON_MANIFOLD);
}
// -----------------------------------
// Mesh options
// -----------------------------------
// Undocumented Boost parameter for refine_mesh_3 and make_mesh_3.
// Allows to dump the mesh at given stage of the mesh generation
// algorithm.
BOOST_PARAMETER_FUNCTION((internal::Mesh_3_options), mesh_3_options, tag,
(optional
(dump_after_init_prefix_, (std::string), "" )
(dump_after_refine_surface_prefix_, (std::string), "" )
(dump_after_refine_prefix_, (std::string), "" )
(dump_after_glob_opt_prefix_, (std::string), "" )
(dump_after_perturb_prefix_, (std::string), "" )
(dump_after_exude_prefix_, (std::string), "" )
(number_of_initial_points_, (int), -1)
) )
{ )
internal::Manifold_options options; {
options.mesh_topology = mesh_topology_; internal::Mesh_3_options options;
return options;
}
inline internal::Manifold_options manifold() options.dump_after_init_prefix=dump_after_init_prefix_;
{ options.dump_after_refine_surface_prefix=dump_after_refine_surface_prefix_;
return internal::Manifold_options( options.dump_after_refine_prefix=dump_after_refine_prefix_;
internal::Manifold_options::MANIFOLD); options.dump_after_glob_opt_prefix=dump_after_glob_opt_prefix_;
} options.dump_after_perturb_prefix=dump_after_perturb_prefix_;
inline internal::Manifold_options manifold_with_boundary() options.dump_after_exude_prefix=dump_after_exude_prefix_;
{ options.number_of_initial_points=number_of_initial_points_;
return internal::Manifold_options(
internal::Manifold_options::MANIFOLD_WITH_BOUNDARY);
}
inline internal::Manifold_options non_manifold()
{
return internal::Manifold_options(
internal::Manifold_options::NON_MANIFOLD);
}
// ----------------------------------- return options;
// Mesh options }
// -----------------------------------
// Undocumented Boost parameter for refine_mesh_3 and make_mesh_3. // Undocumented Boost parameter for refine_mesh_3 and make_mesh_3.
// Allows to dump the mesh at given stage of the mesh generation // Default Mesh_3_options: dump at every stage of the mesh generation.
// algorithm. inline internal::Mesh_3_options mesh_3_dump()
BOOST_PARAMETER_FUNCTION((internal::Mesh_3_options), mesh_3_options, tag, {
(optional internal::Mesh_3_options options;
(dump_after_init_prefix_, (std::string), "" )
(dump_after_refine_surface_prefix_, (std::string), "" )
(dump_after_refine_prefix_, (std::string), "" )
(dump_after_glob_opt_prefix_, (std::string), "" )
(dump_after_perturb_prefix_, (std::string), "" )
(dump_after_exude_prefix_, (std::string), "" )
(number_of_initial_points_, (int), -1)
)
)
{
internal::Mesh_3_options options;
options.dump_after_init_prefix=dump_after_init_prefix_; options.dump_after_init_prefix = "mesh_dump_after_init";
options.dump_after_refine_surface_prefix=dump_after_refine_surface_prefix_; options.dump_after_refine_surface_prefix = "mesh_dump_after_refine_surface";
options.dump_after_refine_prefix=dump_after_refine_prefix_; options.dump_after_refine_prefix = "mesh_dump_after_refine";
options.dump_after_glob_opt_prefix=dump_after_glob_opt_prefix_; options.dump_after_glob_opt_prefix = "mesh_dump_after_glob_opt";
options.dump_after_perturb_prefix=dump_after_perturb_prefix_; options.dump_after_perturb_prefix = "mesh_dump_after_perturb";
options.dump_after_exude_prefix=dump_after_exude_prefix_; options.dump_after_exude_prefix = "mesh_dump_after_exude";
options.number_of_initial_points=number_of_initial_points_;
return options; return options;
} }
// Undocumented Boost parameter for refine_mesh_3 and make_mesh_3.
// Default Mesh_3_options: dump at every stage of the mesh generation.
inline internal::Mesh_3_options mesh_3_dump()
{
internal::Mesh_3_options options;
options.dump_after_init_prefix="mesh_dump_after_init";
options.dump_after_refine_surface_prefix="mesh_dump_after_refine_surface";
options.dump_after_refine_prefix="mesh_dump_after_refine";
options.dump_after_glob_opt_prefix="mesh_dump_after_glob_opt";
options.dump_after_perturb_prefix="mesh_dump_after_perturb";
options.dump_after_exude_prefix="mesh_dump_after_exude";
return options;
}
CGAL_PRAGMA_DIAG_POP CGAL_PRAGMA_DIAG_POP
// ----------------------------------- // -----------------------------------
// Reset_c3t3 (undocumented) // Reset_c3t3 (undocumented)
// ----------------------------------- // -----------------------------------
CGAL_MESH_BOOLEAN_PARAMETER(Reset,reset_c3t3,no_reset_c3t3) CGAL_MESH_BOOLEAN_PARAMETER(Reset, reset_c3t3, no_reset_c3t3)
// CGAL_MESH_BOOLEAN_PARAMETER defined in <CGAL/Mesh_3/global_parameters.h> // CGAL_MESH_BOOLEAN_PARAMETER defined in <CGAL/Mesh_3/global_parameters.h>
// see <CGAL/config.h> // see <CGAL/config.h>
CGAL_PRAGMA_DIAG_PUSH CGAL_PRAGMA_DIAG_PUSH
// see <CGAL/Mesh_3/config.h> // see <CGAL/Mesh_3/config.h>
CGAL_MESH_3_IGNORE_BOOST_PARAMETER_NAME_WARNINGS CGAL_MESH_3_IGNORE_BOOST_PARAMETER_NAME_WARNINGS
// ----------------------------------- // -----------------------------------
// Parameters // Parameters
// ----------------------------------- // -----------------------------------
BOOST_PARAMETER_NAME( exude_param ) BOOST_PARAMETER_NAME( exude_param )
BOOST_PARAMETER_NAME( perturb_param ) BOOST_PARAMETER_NAME( perturb_param )
BOOST_PARAMETER_NAME( odt_param ) BOOST_PARAMETER_NAME( odt_param )
BOOST_PARAMETER_NAME( lloyd_param ) BOOST_PARAMETER_NAME( lloyd_param )
BOOST_PARAMETER_NAME( reset_param ) BOOST_PARAMETER_NAME( reset_param )
BOOST_PARAMETER_NAME( mesh_options_param ) BOOST_PARAMETER_NAME( mesh_options_param )
BOOST_PARAMETER_NAME( manifold_options_param ) BOOST_PARAMETER_NAME( manifold_options_param )
CGAL_PRAGMA_DIAG_POP CGAL_PRAGMA_DIAG_POP
} // end namespace parameters } // end namespace parameters
@ -564,10 +563,8 @@ void refine_mesh_3_impl(C3T3& c3t3,
dump_c3t3(c3t3, mesh_options.dump_after_exude_prefix); dump_c3t3(c3t3, mesh_options.dump_after_exude_prefix);
} }
} }
} // end namespace CGAL } // end namespace CGAL
#endif // CGAL_REFINE_MESH_3_H #endif // CGAL_REFINE_MESH_3_H