// __author__ = Juan Carlos De Abreu (jcabreur@gmail.com)

/**
 * This class define a random number generator, that use the C++ rand function.
 */

#ifndef MATH_RANDOM_H__
#define MATH_RANDOM_H__

#include "../../global.h"
#include "../../Base/Singleton.h"

BEGIN_TEG_NAMESPACE();

#define RAND(x, y) math::Random::GetInstance().generateNumber(x, y)

namespace math {

class Random : public Singleton<Random> {
public:
  // Random constructor.
  Random();

  // Random destructor.
  ~Random();

  // Method to generate a random number in a specific range.
  double generateNumber(const double& rangeMin, const double& rangeMax);
};

}; // Namespace math

END_TEG_NAMESPACE();

#endif  // MATH_RANDOM_H__
