| #pragma once |
| |
| #ifndef TRANDOM_INCLUDED |
| #define TRANDOM_INCLUDED |
| |
| #include "tcommon.h" |
| |
| #undef DVAPI |
| #undef DVVAR |
| #ifdef TNZCORE_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| |
| |
| class DVAPI TRandom { |
| public: |
| TRandom(UINT seed = 0); |
| ~TRandom(); |
| |
| |
| void reset(); |
| |
| |
| void setSeed(UINT seed); |
| |
| |
| UINT getUInt(UINT end = c_maxuint); |
| |
| |
| int getInt(int begin, int end); |
| |
| |
| float getFloat(); |
| |
| |
| float getFloat(float end); |
| |
| |
| float getFloat(float begin, float end); |
| |
| |
| bool getBool(); |
| |
| |
| double getDouble(); |
| |
| private: |
| UINT seed; |
| int idx1, idx2; |
| UINT ran[56]; |
| |
| enum RANDOM_FLOAT_TYPE { |
| RANDOM_FLOAT_TYPE_NONE, |
| RANDOM_FLOAT_TYPE_1, |
| RANDOM_FLOAT_TYPE_2, |
| RANDOM_FLOAT_TYPE_HOW_MANY |
| }; |
| |
| static RANDOM_FLOAT_TYPE RandomFloatType; |
| |
| inline UINT getNextUINT(); |
| inline void setRandomFloatType(); |
| }; |
| |
| #endif |