diff --git a/src/OpenMesh/Core/Utils/RandomNumberGenerator.cc b/src/OpenMesh/Core/Utils/RandomNumberGenerator.cc index 5e9b3ae8..ef97df73 100644 --- a/src/OpenMesh/Core/Utils/RandomNumberGenerator.cc +++ b/src/OpenMesh/Core/Utils/RandomNumberGenerator.cc @@ -63,12 +63,12 @@ namespace OpenMesh { //== IMPLEMENTATION =========================================================== -RandomNumberGenerator::RandomNumberGenerator(const double _resolution) : +RandomNumberGenerator::RandomNumberGenerator(const size_t _resolution) : resolution_(_resolution), iterations_(1), maxNum_(RAND_MAX + 1.0) { - double tmp = resolution_; + double tmp = double(resolution_); while (tmp > (double(RAND_MAX) + 1.0) ) { iterations_++; tmp /= (double(RAND_MAX) + 1.0); @@ -91,7 +91,7 @@ double RandomNumberGenerator::getRand() const { return randNum / maxNum_; } -double RandomNumberGenerator::resolution() const { +size_t RandomNumberGenerator::resolution() const { return maxNum_; } diff --git a/src/OpenMesh/Core/Utils/RandomNumberGenerator.hh b/src/OpenMesh/Core/Utils/RandomNumberGenerator.hh index 1c69b96a..827e7395 100644 --- a/src/OpenMesh/Core/Utils/RandomNumberGenerator.hh +++ b/src/OpenMesh/Core/Utils/RandomNumberGenerator.hh @@ -56,6 +56,8 @@ #include +#include + //== NAMESPACES =============================================================== @@ -68,6 +70,7 @@ namespace OpenMesh { /** Generate a random number between 0.0 and 1.0 with a guaranteed resolution + * ( Number of possible values ) * * Especially useful on windows, as there MAX_RAND is often only 32k which is * not enough resolution for a lot of applications @@ -80,20 +83,20 @@ public: * * @param _resolution specifies the desired resolution for the random number generated */ - RandomNumberGenerator(const double _resolution); + RandomNumberGenerator(const size_t _resolution); /// returns a random double between 0.0 and 1.0 with a guaranteed resolution double getRand() const; - double resolution() const; + size_t resolution() const; private: /// desired resolution - const double resolution_; + const size_t resolution_; /// number of "blocks" of RAND_MAX that make up the desired _resolution - unsigned int iterations_; + size_t iterations_; /// maximum random number generated, which is used for normalization double maxNum_; diff --git a/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc b/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc index cdbf7adc..e6305ad5 100644 --- a/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc +++ b/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc @@ -116,7 +116,7 @@ update_buffer(VHierarchyNodeHandle _node_handle) if (buffer_[none_zero_pos] != 0) break; } window_max_ = buffer_min_ + none_zero_pos + 1; - for(none_zero_pos=0; none_zero_pos < buffer_size(); ++none_zero_pos) + for(none_zero_pos=0; none_zero_pos < int(buffer_size()); ++none_zero_pos) { if (buffer_[none_zero_pos] != 0) break; }