Lightmetrica  0.0.1.50dbee3 (yosakoi)
 All Classes Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | List of all members
RewindableSamplerImpl Class Referencefinal

Public Member Functions

 LM_COMPONENT_IMPL_DEF ("default")
 
virtual SamplerClone () const override
 
virtual void SetSeed (unsigned int seed) override
 
virtual Math::Float Next () override
 
virtual unsigned int NextUInt () override
 
virtual Math::Vec2 NextVec2 () override
 
virtual RandomRng () override
 
virtual void Configure (Random *rng) override
 
virtual void Rewind (int index) override
 
virtual int SampleIndex () const override
 
- Public Member Functions inherited from RewindableSampler
 LM_COMPONENT_INTERFACE_DEF ("rewindablesampler")
 
- Public Member Functions inherited from Sampler
LM_PUBLIC_API void SetSeedWithCurrentTime ()
 
- Public Member Functions inherited from Component
virtual std::string ComponentInterfaceTypeName () const =0
 
virtual std::string ComponentImplTypeName () const =0
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 
Inheritance diagram for RewindableSamplerImpl:
RewindableSampler Sampler Component SIMDAlignedType

Member Function Documentation

virtual Sampler* RewindableSamplerImpl::Clone ( ) const
inlineoverridevirtual

Clone the sampler.

Returns
Duplicated sampler.

Implements Sampler.

virtual void RewindableSamplerImpl::Configure ( Random rng)
inlineoverridevirtual

Configure the sampler. Initializes underlying random number generator with the given value. This function must be called before use. Ownership of #rng is delegated to this class. Seed is not explicitly refreshed, so do not forget to call SetSeed after calling this function before use.

Parameters
rngRandom number generator.

Implements RewindableSampler.

virtual Math::Float RewindableSamplerImpl::Next ( )
inlineoverridevirtual

Sample a floating-point value.

Returns
Sampled value.

Implements Sampler.

virtual unsigned int RewindableSamplerImpl::NextUInt ( )
inlineoverridevirtual

Sample a unsigned integer value.

Returns
Sampled value.

Implements Sampler.

virtual Math::Vec2 RewindableSamplerImpl::NextVec2 ( )
inlineoverridevirtual

Sample a floating-point 2d vector value.

Returns
Sampled value.

Implements Sampler.

virtual void RewindableSamplerImpl::Rewind ( int  index)
inlineoverridevirtual

Rewind the sampler to the given index. Moves the index of the sampler to #index and gets the sampler ready to regenerate random numbers after #index. The index values can be obtained by SampleIndex function. In the condition of the same seed, this function guarantees to generate same sequence of samples after #index.

Parameters
indexSample index.
See also
SampleIndex

Implements RewindableSampler.

virtual Random* RewindableSamplerImpl::Rng ( )
inlineoverridevirtual

Ger underlying random number generator if available.

Returns
Random number generator.

Implements Sampler.

virtual int RewindableSamplerImpl::SampleIndex ( ) const
inlineoverridevirtual

Get the current sampler index. The value is used for rewinding the sampler.

Returns
Current sample index.
See also
Rewind

Implements RewindableSampler.

virtual void RewindableSamplerImpl::SetSeed ( unsigned int  seed)
inlineoverridevirtual

Set seed and initialize internal state. This function is valid only for

Parameters
seedSeed.

Implements Sampler.


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