le2d v0.4.7
2D game engine framework
 
Loading...
Searching...
No Matches
le::BasicRandom< Gen > Class Template Reference

Stateful random number generator. More...

#include <le2d/random.hpp>

Public Member Functions

 BasicRandom (std::uint32_t const seed)
 Initialize generator with a custom seed.
 
 explicit (false) BasicRandom()
 Initialize generator with a standard random device.
 
template<std::integral Type = int>
auto next_int (Type const lo, Type const hi) -> Type
 
auto next_index (std::size_t const size) -> std::size_t
 
auto next_float (float const lo, float const hi)
 
auto next_bool () -> bool
 
auto next_sign () -> float
 
auto next_vec2 (glm::vec2 const lo, glm::vec2 const hi) -> glm::vec2
 
auto next_vec2 (float const lo, float const hi) -> glm::vec2
 
auto next_signed_float (float const positive_lo, float const positive_hi) -> float
 
auto next_signed_vec2 (glm::vec2 const positive_lo, glm::vec2 const positive_hi) -> glm::vec2
 
auto next_signed_vec2 (float const positive_lo, float const positive_hi) -> glm::vec2
 

Detailed Description

template<typename Gen>
class le::BasicRandom< Gen >

Stateful random number generator.

Template Parameters
GenRandom generator / engine.

Constructor & Destructor Documentation

◆ BasicRandom()

template<typename Gen >
le::BasicRandom< Gen >::BasicRandom ( std::uint32_t const  seed)
inlineexplicit

Initialize generator with a custom seed.

Member Function Documentation

◆ explicit()

template<typename Gen >
le::BasicRandom< Gen >::explicit ( false  )
inline

Initialize generator with a standard random device.

◆ next_bool()

template<typename Gen >
auto le::BasicRandom< Gen >::next_bool ( ) -> bool
inline
Returns
true or false.

◆ next_float()

template<typename Gen >
auto le::BasicRandom< Gen >::next_float ( float const  lo,
float const  hi 
)
inline
Returns
Random float in [lo, hi].

◆ next_index()

template<typename Gen >
auto le::BasicRandom< Gen >::next_index ( std::size_t const  size) -> std::size_t
inline
Returns
Random index in [0, size).

◆ next_int()

template<typename Gen >
template<std::integral Type = int>
auto le::BasicRandom< Gen >::next_int ( Type const  lo,
Type const  hi 
) -> Type
inline
Returns
Random integer in [lo, hi].

◆ next_sign()

template<typename Gen >
auto le::BasicRandom< Gen >::next_sign ( ) -> float
inline
Returns
-1.0f or 1.0f.

◆ next_signed_float()

template<typename Gen >
auto le::BasicRandom< Gen >::next_signed_float ( float const  positive_lo,
float const  positive_hi 
) -> float
inline
Returns
Random signed float with magnitude between [positive_lo, positive_hi].

◆ next_signed_vec2() [1/2]

template<typename Gen >
auto le::BasicRandom< Gen >::next_signed_vec2 ( float const  positive_lo,
float const  positive_hi 
) -> glm::vec2
inline
Returns
Random signed vec2 with magnitude between [positive_lo, positive_hi].

◆ next_signed_vec2() [2/2]

template<typename Gen >
auto le::BasicRandom< Gen >::next_signed_vec2 ( glm::vec2 const  positive_lo,
glm::vec2 const  positive_hi 
) -> glm::vec2
inline
Returns
Random signed vec2 with magnitude between [positive_lo, positive_hi].

◆ next_vec2() [1/2]

template<typename Gen >
auto le::BasicRandom< Gen >::next_vec2 ( float const  lo,
float const  hi 
) -> glm::vec2
inline
Returns
Random vec2 in [lo, hi].

◆ next_vec2() [2/2]

template<typename Gen >
auto le::BasicRandom< Gen >::next_vec2 ( glm::vec2 const  lo,
glm::vec2 const  hi 
) -> glm::vec2
inline
Returns
Random vec2 in [lo, hi].

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