A sample with arbitrary dimensions with fine-grained sampling control.
More...
#include <SampleFlow.h>
|
| SampleFlow () |
| Creates a flow of totally random values.
|
|
| SampleFlow (const real *savedDims, std::size_t numSavedDims) |
| Creates a flow with the first N dimensions pre-calculated.
|
|
real | flow1D () |
| Makes a 1-D sample by consuming the next dimension.
|
|
std::array< real, 2 > | flow2D () |
| Makes a 2-D sample by consuming the next two dimensions.
|
|
std::array< real, 3 > | flow3D () |
| Makes a 3-D sample by consuming the next three dimensions.
|
|
template<std::size_t N> |
std::array< real, N > | flowND () |
| Makes a N -D sample by consuming the next N dimension.
|
|
bool | pick (real pickProbability) |
| Consumes the next dimension and use it to perform a random pick. Effectively using flow1D() to perform a random pick.
|
|
bool | unflowedPick (real pickProbability) |
| Uses the next dimension to perform a random pick without consuming it. This method does not cause the sample stream to flow.
|
|
bool | unflowedRandomPick (real pickProbability) |
| Performs a random pick independent to this flow. No dimension is being consumed. This method is intentionally non-const to support sample recording.
|
|
A sample with arbitrary dimensions with fine-grained sampling control.
◆ SampleFlow() [1/2]
ph::SampleFlow::SampleFlow |
( |
| ) |
|
|
inline |
Creates a flow of totally random values.
◆ SampleFlow() [2/2]
ph::SampleFlow::SampleFlow |
( |
const real * | savedDims, |
|
|
std::size_t | numSavedDims ) |
|
inline |
Creates a flow with the first N dimensions pre-calculated.
◆ flow1D()
real ph::SampleFlow::flow1D |
( |
| ) |
|
|
inline |
Makes a 1-D sample by consuming the next dimension.
- Returns
- A 1-D sample.
◆ flow2D()
std::array< real, 2 > ph::SampleFlow::flow2D |
( |
| ) |
|
|
inline |
Makes a 2-D sample by consuming the next two dimensions.
- Returns
- A 2-D sample.
◆ flow3D()
std::array< real, 3 > ph::SampleFlow::flow3D |
( |
| ) |
|
|
inline |
Makes a 3-D sample by consuming the next three dimensions.
- Returns
- A 3-D sample.
◆ flowND()
template<std::size_t N>
std::array< real, N > ph::SampleFlow::flowND |
( |
| ) |
|
|
inline |
Makes a N
-D sample by consuming the next N
dimension.
- Template Parameters
-
N | Number of dimensions of the sample. |
- Returns
- A
N
-D sample.
◆ pick()
bool ph::SampleFlow::pick |
( |
real | pickProbability | ) |
|
|
inline |
Consumes the next dimension and use it to perform a random pick. Effectively using flow1D()
to perform a random pick.
- Parameters
-
pickProbability | The probability for the pick to succeed. |
- Returns
true
if the pick is successful, otherwise false
. The probability for the pick to be successful is equal to pickProbability
, assuming the source of the sample flow is uniformly random.
◆ unflowedPick()
bool ph::SampleFlow::unflowedPick |
( |
real | pickProbability | ) |
|
|
inline |
Uses the next dimension to perform a random pick without consuming it. This method does not cause the sample stream to flow.
- Parameters
-
pickProbability | The probability for the pick to succeed. |
- Returns
true
if the pick is successful, otherwise false
. The probability for the pick to be successful is equal to pickProbability
, assuming the source of the sample flow is uniformly random.
◆ unflowedRandomPick()
bool ph::SampleFlow::unflowedRandomPick |
( |
real | pickProbability | ) |
|
|
inline |
Performs a random pick independent to this flow. No dimension is being consumed. This method is intentionally non-const
to support sample recording.
- Parameters
-
pickProbability | The probability for the pick to succeed. |
- Returns
true
if the pick is successful, otherwise false
. The probability for the pick to be successful is equal to pickProbability
, assuming the source of the sample flow is uniformly random.
The documentation for this class was generated from the following file: