mirror of https://github.com/CGAL/cgal
make the random generator seeding integer a named parameter
This commit is contained in:
parent
bb040bd24b
commit
faadf52a54
|
|
@ -44,8 +44,10 @@ CGAL_add_named_parameter(number_of_points_per_edge_t, number_of_points_per_edge,
|
|||
CGAL_add_named_parameter(number_of_points_on_edges_t, number_of_points_on_edges, number_of_points_on_edges)
|
||||
CGAL_add_named_parameter(nb_points_per_area_unit_t, nb_points_per_area_unit, number_of_points_per_area_unit)
|
||||
CGAL_add_named_parameter(nb_points_per_distance_unit_t, nb_points_per_distance_unit, number_of_points_per_distance_unit)
|
||||
|
||||
//to be documented
|
||||
CGAL_add_named_parameter(face_normal_t, face_normal, face_normal_map)
|
||||
CGAL_add_named_parameter(random_seed_t, random_seed, random_seed)
|
||||
|
||||
//internal
|
||||
CGAL_add_named_parameter(weight_calculator_t, weight_calculator, weight_calculator)
|
||||
|
|
|
|||
|
|
@ -46,12 +46,12 @@ namespace Polygon_mesh_processing {
|
|||
|
||||
namespace internal {
|
||||
|
||||
template<typename GT, typename PM, typename VCMap, typename VPMap>
|
||||
template<typename GT, typename PM, typename VCMap, typename VPMap, typename RNG>
|
||||
void random_perturbation_impl(PM& tmesh,
|
||||
const double& max_size,
|
||||
VCMap vcmap,
|
||||
VPMap vpmap,
|
||||
const int seed,
|
||||
RNG& rng,
|
||||
const GT& gt)
|
||||
{
|
||||
typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor;
|
||||
|
|
@ -65,8 +65,6 @@ namespace internal {
|
|||
Tree tree(faces(tmesh).first, faces(tmesh).second, tmesh);
|
||||
tree.accelerate_distance_queries();
|
||||
|
||||
CGAL::Random rng(seed);
|
||||
|
||||
typename GT::Construct_translated_point_3 translate
|
||||
= gt.construct_translated_point_3_object();
|
||||
typename GT::Construct_vector_3 vec
|
||||
|
|
@ -112,6 +110,8 @@ namespace internal {
|
|||
* constrained-or-not status of each vertex of `tmesh`. A constrained vertex
|
||||
* cannot be modified at all during remeshing
|
||||
* \cgalParamEnd
|
||||
* \cgalParambegin{random_seed} an non-negative integer value to seed the random
|
||||
number generator, and make the perturbation deterministic
|
||||
* \cgalNamedParamsEnd
|
||||
*
|
||||
*/
|
||||
|
|
@ -149,12 +149,14 @@ void random_perturbation(TriangleMesh& tmesh
|
|||
VCMap vcmap = choose_param(get_param(np, internal_np::vertex_is_constrained),
|
||||
internal::No_constraint_pmap<vertex_descriptor>());
|
||||
|
||||
unsigned int seed = choose_param(get_param(np, internal_np::random_seed), -1);
|
||||
|
||||
internal::random_perturbation_impl(tmesh,
|
||||
perturbation_max_size,
|
||||
vcmap,
|
||||
vpmap,
|
||||
0/*seed*/,
|
||||
gt);
|
||||
perturbation_max_size,
|
||||
vcmap,
|
||||
vpmap,
|
||||
((seed == -1) ? CGAL::Random() : CGAL::Random(seed)),
|
||||
gt);
|
||||
|
||||
#ifdef CGAL_PMP_RANDOM_PERTURBATION_VERBOSE
|
||||
t.stop();
|
||||
|
|
|
|||
Loading…
Reference in New Issue