17#ifndef _FGE_C_RANDOM_HPP_INCLUDED
18#define _FGE_C_RANDOM_HPP_INCLUDED
20#include "FastEngine/fge_extern.hpp"
21#include "FastEngine/C_vector.hpp"
22#include "FastEngine/graphic/C_color.hpp"
41template<
typename TEngine>
51 explicit Random(uint64_t seed);
69 T
range(T min, T max);
76 [[nodiscard]] TEngine
const&
getEngine()
const;
95 fge::Vector2<T>
rangeVec2(T min_x, T max_x, T min_y, T max_y);
110 fge::Vector3<T>
rangeVec3(T min_x, T max_x, T min_y, T max_y, T min_z, T max_z);
186 std::string
randStr(std::size_t length,
187 std::string
const& bucket =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy0123456789");
205#include <FastEngine/C_random.inl>
Definition C_color.hpp:35
A class to generate random numbers.
Definition C_random.hpp:43
fge::Vector2< T > rangeVec2(T min_x, T max_x, T min_y, T max_y)
Generate a random vector2 within a range.
Definition C_random.inl:87
fge::Vector2< T > randVec2()
Generate a random vector2.
Definition C_random.inl:120
fge::Vector3< T > randVec3()
Generate a random vector3.
Definition C_random.inl:127
fge::Color rangeColor(uint32_t min, uint32_t max)
Generate a random color.
Definition C_random.inl:100
fge::Color randColor()
Generate a random color.
Definition C_random.inl:133
TEngine const & getEngine() const
Get the random engine.
Definition C_random.inl:37
void setSeed(uint64_t seed)
Set the 64-bit seed of the random number generator.
Definition C_random.inl:30
fge::Vector3< T > rangeVec3(T min_x, T max_x, T min_y, T max_y, T min_z, T max_z)
Generate a random vector3 within a range.
Definition C_random.inl:94
T range(T min, T max)
Generate a random number within a range.
Definition C_random.inl:49
T rand()
Generate a random value.
Definition C_random.inl:68
std::string randStr(std::size_t length, std::string const &bucket="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy0123456789")
Generate a random character sequence.
Definition C_random.inl:139
FGE_API fge::Random< std::mt19937_64 > _random
Default random number generator instance.