Clementine
Random.h
1 // Copyright 2021 SMS
2 // License(Apache-2.0)
3 // 随机数生成器
4 
5 #pragma once
6 
7 #include "Clem/Core/Math/Math.h"
8 #include <random>
9 #include <stdint.h>
10 
15 class Random
16 {
17 public:
21  Random();
22 
26  void setSeed(uint32_t seed);
27 
34  uint32_t getUint32(uint32_t min = 0, uint32_t max = UINT32_MAX);
35 
43  int32_t getInt32(int32_t min = INT32_MIN, int32_t max = INT32_MAX);
44 
51  float getFloat(float min = 0.0f, float max = 1.0f);
52 
56  Point2 getPoint2(const Point2& min, const Point2& max);
57 
61  Point2i getPoint2i(const Point2i& min, const Point2i& max);
62 
63 private:
64  std::mt19937 generator;
65 };
uint32_t getUint32(uint32_t min=0, uint32_t max=UINT32_MAX)
生成指定范围内的32位随机无符号整数.
Definition: Random.cpp:19
Random()
默认构造函数.
Definition: Random.cpp:9
Point2 getPoint2(const Point2 &min, const Point2 &max)
生成指定范围内的随机二维点.
Definition: Random.cpp:37
int32_t getInt32(int32_t min=INT32_MIN, int32_t max=INT32_MAX)
生成指定范围内的32位随机有符号整数.
Definition: Random.cpp:25
伪随机数生成器.
Definition: Random.h:15
二维向量, 单精度浮点数.
Definition: Vector2.h:19
void setSeed(uint32_t seed)
设置种子.
Definition: Random.cpp:14
float getFloat(float min=0.0f, float max=1.0f)
生成指定范围内的随机单精度浮点数.
Definition: Random.cpp:31
二维向量, 整型.
Definition: Vector2i.h:14
Point2i getPoint2i(const Point2i &min, const Point2i &max)
生成指定范围内的随机二维点.
Definition: Random.cpp:42