header_utils
Loading...
Searching...
No Matches
Geometry

Functions

template<std::floating_point T = float, typename RANDOM = std::default_random_engine>
T ghassanpl::random::radians (RANDOM &rng=::ghassanpl::random::default_random_engine)
template<std::floating_point T = float, typename RANDOM = std::default_random_engine>
T ghassanpl::random::degrees (RANDOM &rng=::ghassanpl::random::default_random_engine)
template<std::floating_point T = float, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::unit_vector (RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in (trec2< T > const &rect, RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in (glm::tvec2< T > const &max, RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in (geometry::tellipse< T > const &el, RANDOM &rng=::ghassanpl::random::default_random_engine)
 TODO: This doesn't seem uniform.
template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in (geometry::ttriangle< T > const &tr, RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in (geometry::immutable::tpolygon< T > const &poly, RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename T, geometry::shape< T > S, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_on (S const &shape, RANDOM &rng=::ghassanpl::random::default_random_engine)
 Returns a random point on the edge of the shape.
template<typename RANDOM = std::default_random_engine>
glm::ivec2 ghassanpl::random::neighbor (RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename RANDOM = std::default_random_engine>
glm::ivec2 ghassanpl::random::diagonal_neighbor (RANDOM &rng=::ghassanpl::random::default_random_engine)
template<typename RANDOM = std::default_random_engine>
glm::ivec2 ghassanpl::random::surrounding (RANDOM &rng=::ghassanpl::random::default_random_engine)
template<std::floating_point T = float>
constexpr glm::tvec2< T > ghassanpl::random::halton_sequence_2d (size_t index, size_t base_x=2, size_t base_y=3)
 Returns the nth quasi-random vector in the [0, 1]^2 space.

Detailed Description

Function Documentation

◆ degrees()

template<std::floating_point T = float, typename RANDOM = std::default_random_engine>
T ghassanpl::random::degrees ( RANDOM & rng = ::ghassanpl::random::default_random_engine)
nodiscard

Definition at line 30 of file random_geom.h.

◆ diagonal_neighbor()

template<typename RANDOM = std::default_random_engine>
glm::ivec2 ghassanpl::random::diagonal_neighbor ( RANDOM & rng = ::ghassanpl::random::default_random_engine)
nodiscard

Definition at line 142 of file random_geom.h.

◆ halton_sequence_2d()

template<std::floating_point T = float>
glm::tvec2< T > ghassanpl::random::halton_sequence_2d ( size_t index,
size_t base_x = 2,
size_t base_y = 3 )
nodiscardconstexpr

Returns the nth quasi-random vector in the [0, 1]^2 space.

Definition at line 177 of file random_geom.h.

◆ neighbor()

template<typename RANDOM = std::default_random_engine>
glm::ivec2 ghassanpl::random::neighbor ( RANDOM & rng = ::ghassanpl::random::default_random_engine)
nodiscard

Definition at line 128 of file random_geom.h.

◆ point_in() [1/5]

template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in ( geometry::immutable::tpolygon< T > const & poly,
RANDOM & rng = ::ghassanpl::random::default_random_engine )
nodiscard

Definition at line 73 of file random_geom.h.

◆ point_in() [2/5]

template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in ( geometry::tellipse< T > const & el,
RANDOM & rng = ::ghassanpl::random::default_random_engine )
nodiscard

TODO: This doesn't seem uniform.

Definition at line 56 of file random_geom.h.

◆ point_in() [3/5]

template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in ( geometry::ttriangle< T > const & tr,
RANDOM & rng = ::ghassanpl::random::default_random_engine )
nodiscard

Definition at line 64 of file random_geom.h.

◆ point_in() [4/5]

template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in ( glm::tvec2< T > const & max,
RANDOM & rng = ::ghassanpl::random::default_random_engine )
nodiscard

Definition at line 49 of file random_geom.h.

◆ point_in() [5/5]

template<typename T, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_in ( trec2< T > const & rect,
RANDOM & rng = ::ghassanpl::random::default_random_engine )
nodiscard

Definition at line 43 of file random_geom.h.

◆ point_on()

template<typename T, geometry::shape< T > S, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::point_on ( S const & shape,
RANDOM & rng = ::ghassanpl::random::default_random_engine )
nodiscard

Returns a random point on the edge of the shape.

Definition at line 95 of file random_geom.h.

◆ radians()

template<std::floating_point T = float, typename RANDOM = std::default_random_engine>
T ghassanpl::random::radians ( RANDOM & rng = ::ghassanpl::random::default_random_engine)
nodiscard

Definition at line 23 of file random_geom.h.

◆ surrounding()

template<typename RANDOM = std::default_random_engine>
glm::ivec2 ghassanpl::random::surrounding ( RANDOM & rng = ::ghassanpl::random::default_random_engine)
nodiscard

Definition at line 156 of file random_geom.h.

◆ unit_vector()

template<std::floating_point T = float, typename RANDOM = std::default_random_engine>
glm::tvec2< T > ghassanpl::random::unit_vector ( RANDOM & rng = ::ghassanpl::random::default_random_engine)
nodiscard

Definition at line 37 of file random_geom.h.