40 #ifndef PCL_COMMON_RANDOM_HPP_
41 #define PCL_COMMON_RANDOM_HPP_
43 #include <boost/version.hpp>
44 #include <pcl/pcl_macros.h>
49 : distribution_ (min, max)
50 , generator_ (rng_, distribution_)
53 if(parameters_.
seed != -1)
61 : parameters_ (parameters)
62 , distribution_ (parameters_.min, parameters_.max)
63 , generator_ (rng_, distribution_)
65 if(parameters_.
seed != -1)
66 rng_.seed (parameters_.
seed);
70 template <
typename T>
void
75 parameters_.seed = seed;
76 rng_.seed(parameters_.seed);
81 template <
typename T>
void
84 parameters_.min = min;
85 parameters_.max = max;
86 parameters_.seed = seed;
87 #if BOOST_VERSION >= 104700
88 typename DistributionType::param_type params (parameters_.min, parameters_.max);
89 distribution_.param (params);
91 distribution_ = DistributionType (parameters_.min, parameters_.max);
93 distribution_.reset ();
94 generator_.distribution () = distribution_;
97 parameters_.seed = seed;
98 rng_.seed (parameters_.seed);
103 template <
typename T>
void
106 parameters_ = parameters;
107 #if BOOST_VERSION >= 104700
108 typename DistributionType::param_type params (parameters_.min, parameters_.max);
109 distribution_.param (params);
111 distribution_ = DistributionType (parameters_.min, parameters_.max);
113 distribution_.reset ();
114 generator_.distribution () = distribution_;
115 if (parameters_.seed != -1)
116 rng_.seed (parameters_.seed);
120 template <
typename T>
122 : distribution_ (mean, sigma)
123 , generator_ (rng_, distribution_)
132 template <
typename T>
134 : parameters_ (parameters)
135 , distribution_ (parameters_.mean, parameters_.sigma)
136 , generator_ (rng_, distribution_)
143 template <
typename T>
void
148 parameters_.seed = seed;
154 template <
typename T>
void
157 parameters_.mean = mean;
158 parameters_.sigma = sigma;
159 parameters_.seed = seed;
160 #if BOOST_VERSION >= 104700
161 typename DistributionType::param_type params (parameters_.mean, parameters_.sigma);
162 distribution_.param (params);
166 distribution_.reset ();
167 generator_.distribution () = distribution_;
169 rng_.seed (parameters_.seed);
173 template <
typename T>
void
176 parameters_ = parameters;
177 #if BOOST_VERSION >= 104700
178 typename DistributionType::param_type params (parameters_.mean, parameters_.sigma);
179 distribution_.param (params);
183 distribution_.reset ();
184 generator_.distribution () = distribution_;
185 if (parameters_.seed != -1)
186 rng_.seed (parameters_.seed);
void setSeed(pcl::uint32_t seed)
Change seed value.
void setSeed(pcl::uint32_t seed)
Change seed value.
UniformGenerator(T min=0, T max=1, pcl::uint32_t seed=-1)
Constructor.
NormalGenerator(T mean=0, T sigma=1, pcl::uint32_t seed=-1)
Constructor.
EngineType rng_
random number generator
void setParameters(T min, T max, pcl::uint32_t seed=-1)
Set the uniform number generator parameters.
void setParameters(T mean, T sigma, pcl::uint32_t seed=-1)
Set the normal number generator parameters.
Parameters parameters_
parameters
normal_distribution< T >::type DistributionType