Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSprayCurveBasedDistribution Class Reference

Class that can generate randomly distributed values in the range [0..1] that follow a distribution given by a user defined cubic curve. More...

#include <KisSprayRandomDistributions.h>

+ Inheritance diagram for KisSprayCurveBasedDistribution:

Public Member Functions

 KisSprayCurveBasedDistribution ()
 Construct an invalid KisSprayCurveBasedDistribution.
 
 KisSprayCurveBasedDistribution (const KisCubicCurve &curve, size_t repeat=1)
 Construct a new curve based distribution.
 
- Public Member Functions inherited from KisSprayFunctionBasedDistribution
bool isValid () const
 Return if this object is correctly initialized and can be used to generate values.
 
 KisSprayFunctionBasedDistribution ()
 Construct an invalid KisSprayFunctionBasedDistribution.
 
 KisSprayFunctionBasedDistribution (const KisSprayFunctionBasedDistribution &other)
 
template<typename Function >
 KisSprayFunctionBasedDistribution (int numberOfSamples, double a, double b, Function f)
 Construct a new distribution.
 
double max () const
 Return the maximum value that this distribution can produce.
 
double min () const
 Return the minimum value that this distribution can produce.
 
double operator() (KisRandomSourceSP rs) const
 Get a random value between min and max that follows the distribution.
 
KisSprayFunctionBasedDistributionoperator= (const KisSprayFunctionBasedDistribution &rhs)
 
 ~KisSprayFunctionBasedDistribution ()
 

Additional Inherited Members

- Protected Member Functions inherited from KisSprayFunctionBasedDistribution
template<typename Function >
void initialize (size_t numberOfSamples, double a, double b, Function f)
 Function used to setup the distribution and put it in a valid state. See the constructor for the explanation of the parameters.
 

Detailed Description

Class that can generate randomly distributed values in the range [0..1] that follow a distribution given by a user defined cubic curve.

Definition at line 204 of file KisSprayRandomDistributions.h.

Constructor & Destructor Documentation

◆ KisSprayCurveBasedDistribution() [1/2]

KisSprayCurveBasedDistribution::KisSprayCurveBasedDistribution ( )

Construct an invalid KisSprayCurveBasedDistribution.

Definition at line 340 of file KisSprayRandomDistributions.cpp.

341{}

◆ KisSprayCurveBasedDistribution() [2/2]

KisSprayCurveBasedDistribution::KisSprayCurveBasedDistribution ( const KisCubicCurve & curve,
size_t repeat = 1 )
explicit

Construct a new curve based distribution.

Parameters
curveA cubic curve that will be used as pdf
repeatThe number of times the given curve should repeat in the range [0..1]

Definition at line 343 of file KisSprayRandomDistributions.cpp.

344{
346
347 KisSprayFunctionBasedDistribution::initialize(((curve.points().size() % 4) + 1) * 1000 * repeat, 0.0, 1.0,
348 [curve, repeat](double x)
349 {
350 const double sx = x * static_cast<double>(repeat);
351 return curve.value(sx - std::floor(sx));
352 }
353 );
354}
void initialize(size_t numberOfSamples, double a, double b, Function f)
Function used to setup the distribution and put it in a valid state. See the constructor for the expl...
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128
QList< KisCubicCurvePoint > points

References KisSprayFunctionBasedDistribution::initialize(), KIS_SAFE_ASSERT_RECOVER_RETURN, and KisCubicCurve::points.


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