| Wayverb
    | 
#include <raytracer.h>
| Public Types | |
| using | iterator_category = std::random_access_iterator_tag | 
| using | value_type = glm::vec3 | 
| using | difference_type = std::ptrdiff_t | 
| using | pointer = glm::vec3 * | 
| using | reference = glm::vec3 & | 
| Public Member Functions | |
| constexpr | random_direction_generator_iterator (difference_type pos, Engine &engine) | 
| constexpr | random_direction_generator_iterator (const random_direction_generator_iterator &)=default | 
| constexpr | random_direction_generator_iterator (random_direction_generator_iterator &&) noexcept=default | 
| constexpr random_direction_generator_iterator & | operator= (const random_direction_generator_iterator &)=default | 
| constexpr random_direction_generator_iterator & | operator= (random_direction_generator_iterator &&) noexcept=default | 
| value_type | operator* () const | 
| constexpr random_direction_generator_iterator & | operator++ () | 
| constexpr random_direction_generator_iterator & | operator-- () | 
| constexpr random_direction_generator_iterator | operator++ (int) | 
| constexpr random_direction_generator_iterator | operator-- (int) | 
| constexpr random_direction_generator_iterator | operator+ (difference_type n) const | 
| constexpr random_direction_generator_iterator | operator- (difference_type n) const | 
| constexpr random_direction_generator_iterator & | operator+= (difference_type n) | 
| constexpr random_direction_generator_iterator & | operator-= (difference_type n) | 
| constexpr difference_type | operator- (const random_direction_generator_iterator &rhs) | 
| constexpr bool | operator== (const random_direction_generator_iterator &rhs) | 
| constexpr bool | operator!= (const random_direction_generator_iterator &rhs) | 
| constexpr bool | operator< (const random_direction_generator_iterator &rhs) | 
| constexpr bool | operator<= (const random_direction_generator_iterator &rhs) | 
| constexpr bool | operator> (const random_direction_generator_iterator &rhs) | 
| constexpr bool | operator>= (const random_direction_generator_iterator &rhs) | 
This could be WAY more generic but my deadline is rly soon so maybe another time.
| using wayverb::raytracer::random_direction_generator_iterator< Engine >::iterator_category = std::random_access_iterator_tag | 
'Random access' is misleading: you get a random value every time, so if you read back and forwards over the same region you'll get different values each time. shrug