FastEngine 0.9.3
A multiplayer oriented 2D engine made with Vulkan.
Loading...
Searching...
No Matches
fge::Random< TEngine > Class Template Reference

A class to generate random numbers. More...

#include <C_random.hpp>

Public Member Functions

 Random (uint64_t seed)
 Initialize the random number generator.
 
void setSeed (uint64_t seed)
 Set the 64-bit seed of the random number generator.
 
template<typename T >
range (T min, T max)
 Generate a random number within a range.
 
TEngine const & getEngine () const
 Get the random engine.
 
TEngine & getEngine ()
 Get the random engine.
 
template<typename T >
fge::Vector2< T > rangeVec2 (T min_x, T max_x, T min_y, T max_y)
 Generate a random vector2 within a range.
 
template<typename T >
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.
 
fge::Color rangeColor (uint32_t min, uint32_t max)
 Generate a random color.
 
fge::Color rangeColor (uint8_t min_r, uint8_t max_r, uint8_t min_g, uint8_t max_g, uint8_t min_b, uint8_t max_b, uint8_t min_a, uint8_t max_a)
 Generate a random color.
 
template<typename T >
rand ()
 Generate a random value.
 
template<typename T >
fge::Vector2< T > randVec2 ()
 Generate a random vector2.
 
template<typename T >
fge::Vector3< T > randVec3 ()
 Generate a random vector3.
 
fge::Color randColor ()
 Generate a random color.
 
std::string randStr (std::size_t length, std::string const &bucket="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy0123456789")
 Generate a random character sequence.
 

Detailed Description

template<typename TEngine>
class fge::Random< TEngine >

A class to generate random numbers.

This class is a wrapper for the C++ random number generator. It is thread-safe and can be used in a multi-threaded environment.

Constructor & Destructor Documentation

◆ Random()

template<typename TEngine >
fge::Random< TEngine >::Random ( uint64_t seed)
explicit

Initialize the random number generator.

Parameters
seeda 64-bit seed for the random number generator

Member Function Documentation

◆ getEngine() [1/2]

template<typename TEngine >
TEngine & fge::Random< TEngine >::getEngine ( )
nodiscard

Get the random engine.

Returns
The random engine

◆ getEngine() [2/2]

template<typename TEngine >
TEngine const & fge::Random< TEngine >::getEngine ( ) const
nodiscard

Get the random engine.

Returns
The random engine

◆ rand()

template<typename TEngine >
template<typename T >
T fge::Random< TEngine >::rand ( )

Generate a random value.

Template Parameters
TType of the random number
Returns
The random value

◆ randColor()

template<typename TEngine >
fge::Color fge::Random< TEngine >::randColor ( )

Generate a random color.

Returns
A random color

◆ randStr()

template<typename TEngine >
std::string fge::Random< TEngine >::randStr ( std::size_t length,
std::string const & bucket = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy0123456789" )

Generate a random character sequence.

Generate a random character sequence of the given length and using the given bucket of characters.

Parameters
lengthThe length of the character sequence
bucketThe bucket of characters to use
Returns
A random character sequence

◆ randVec2()

template<typename TEngine >
template<typename T >
fge::Vector2< T > fge::Random< TEngine >::randVec2 ( )

Generate a random vector2.

Template Parameters
TType of the random number in the vector
Returns
A random vector2

◆ randVec3()

template<typename TEngine >
template<typename T >
fge::Vector3< T > fge::Random< TEngine >::randVec3 ( )

Generate a random vector3.

Template Parameters
TType of the random number in the vector
Returns
A random vector3

◆ range()

template<typename TEngine >
template<typename T >
T fge::Random< TEngine >::range ( T min,
T max )

Generate a random number within a range.

Template Parameters
TType of the random number
Parameters
minMinimum value of the range
maxMaximum value of the range (included)
Returns
The random number

◆ rangeColor() [1/2]

template<typename TEngine >
fge::Color fge::Random< TEngine >::rangeColor ( uint32_t min,
uint32_t max )

Generate a random color.

Parameters
minMinimum 32-bit value of the range
maxMaximum 32-bit value of the range (included)
Returns
A random color

◆ rangeColor() [2/2]

template<typename TEngine >
fge::Color fge::Random< TEngine >::rangeColor ( uint8_t min_r,
uint8_t max_r,
uint8_t min_g,
uint8_t max_g,
uint8_t min_b,
uint8_t max_b,
uint8_t min_a,
uint8_t max_a )

Generate a random color.

Parameters
min_rMinimum red value of the range
max_rMaximum red value of the range (included)
min_gMinimum green value of the range
max_gMaximum green value of the range (included)
min_bMinimum blue value of the range
max_bMaximum blue value of the range (included)
min_aMinimum alpha value of the range
max_aMaximum alpha value of the range (included)
Returns
A random color

◆ rangeVec2()

template<typename TEngine >
template<typename T >
fge::Vector2< T > fge::Random< TEngine >::rangeVec2 ( T min_x,
T max_x,
T min_y,
T max_y )

Generate a random vector2 within a range.

Template Parameters
TType of the random number in the vector
Parameters
min_xMinimum value of the x range
max_xMaximum value of the x range (included)
min_yMinimum value of the y range
max_yMaximum value of the y range (included)
Returns
A random vector2

◆ rangeVec3()

template<typename TEngine >
template<typename T >
fge::Vector3< T > fge::Random< TEngine >::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.

Template Parameters
TType of the random number in the vector
Parameters
min_xMinimum value of the x range
max_xMaximum value of the x range (included)
min_yMinimum value of the y range
max_yMaximum value of the y range (included)
min_zMinimum value of the z range
max_zMaximum value of the z range (included)
Returns
A random vector3

◆ setSeed()

template<typename TEngine >
void fge::Random< TEngine >::setSeed ( uint64_t seed)

Set the 64-bit seed of the random number generator.

Parameters
seeda 64-bit seed for the random number generator

The documentation for this class was generated from the following files: