ldsgen::Sphere class

Sphere sequence generator.

The Sphere class is a sequence generator that generates points on a unit sphere using the Van der Corput sequence. It uses the VdCorput class to generate the sequence values and maps them to points on the unit sphere. The pop() method returns the next point on the unit sphere as a std::array<double, 3>, where the first element represents the x-coordinate, the second element represents the y-coordinate of the point, and the third element represents the z-coordinate of the point. The reseed() method is used to reset the state of the sequence generator to a specific seed value.

*     Unit Sphere:
*          *****
*       **       **
*     **           **
*    *               *
*    *      O        *  Points distributed
*    *               *  evenly on surface
*     **           **
*       **       **
*          *****
* 

Constructors, destructors, conversion operators

Sphere(const unsigned long base0, const unsigned long base1)
Construct a new Sphere object.

Public functions

auto pop() -> std::array< double, 3 > -> auto
Generate the next point on the unit sphere.
auto peek() -> std::array< double, 3 > -> auto
Peek at the next value without advancing state.
auto skip(unsigned int n) -> void -> auto
Skip n values in the sequence.
auto reseed(const unsigned long& seed) -> void -> auto
Reset the state of the Sphere sequence generator.
auto get_index() const -> unsigned long -> auto
Get current index.
auto begin() -> GeneratorIterator< Sphere, std::array< double, 3 > > -> auto
Get iterator to beginning.
auto end() const -> GeneratorIterator< Sphere, std::array< double, 3 > > -> auto
Get iterator to end (infinite sequence)

Function documentation

ldsgen::Sphere::Sphere(const unsigned long base0, const unsigned long base1)

Construct a new Sphere object.

Parameters
base0 in the base for the Van der Corput generator (phi coordinate)
base1 in the base for the Circle generator (theta coordinate)

Constructs a Sphere sequence generator with the specified bases for generating points on the unit sphere.

auto ldsgen::Sphere::pop() -> std::array< double, 3 >

Generate the next point on the unit sphere.

Returns std::array<double, 3> the next point on the unit sphere

Returns the next point on the unit sphere as an array of three double values.

auto ldsgen::Sphere::peek() -> std::array< double, 3 >

Peek at the next value without advancing state.

Returns std::array<double, 3> next point on the sphere

auto ldsgen::Sphere::skip(unsigned int n) -> void

Skip n values in the sequence.

Parameters
in number of values to skip

auto ldsgen::Sphere::reseed(const unsigned long& seed) -> void

Reset the state of the Sphere sequence generator.

Parameters
seed in the seed value to reset the sequence generator to

Resets the state of the sequence generator to a specific seed value.

auto ldsgen::Sphere::get_index() const -> unsigned long

Get current index.

Returns unsigned long current index in sequence

auto ldsgen::Sphere::begin() -> GeneratorIterator< Sphere, std::array< double, 3 > >

Get iterator to beginning.

Returns GeneratorIterator<Sphere, std::array<double, 3>>

auto ldsgen::Sphere::end() const -> GeneratorIterator< Sphere, std::array< double, 3 > >

Get iterator to end (infinite sequence)

Returns GeneratorIterator<Sphere, std::array<double, 3>>