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

Class that can generate normally distributed values. For efficiency, the values will be in the range [0..standardDeviation*5], for polar coordinates distance. More...

#include <KisSprayRandomDistributions.h>

+ Inheritance diagram for KisSprayNormalDistributionPolarDistance:

Public Member Functions

 KisSprayNormalDistributionPolarDistance ()
 
 KisSprayNormalDistributionPolarDistance (double mean, double standardDeviation)
 
- Public Member Functions inherited from KisSprayNormalDistribution
 KisSprayNormalDistribution ()
 Construct an invalid KisSprayNormalDistribution.
 
 KisSprayNormalDistribution (double mean, double standardDeviation)
 Construct a new normal 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 normally distributed values. For efficiency, the values will be in the range [0..standardDeviation*5], for polar coordinates distance.

See also
KisSprayNormalDistribution

Definition at line 153 of file KisSprayRandomDistributions.h.

Constructor & Destructor Documentation

◆ KisSprayNormalDistributionPolarDistance() [1/2]

KisSprayNormalDistributionPolarDistance::KisSprayNormalDistributionPolarDistance ( )

Definition at line 248 of file KisSprayRandomDistributions.cpp.

249{}

◆ KisSprayNormalDistributionPolarDistance() [2/2]

KisSprayNormalDistributionPolarDistance::KisSprayNormalDistributionPolarDistance ( double mean,
double standardDeviation )

Definition at line 251 of file KisSprayRandomDistributions.cpp.

252{
253 KIS_SAFE_ASSERT_RECOVER_RETURN(standardDeviation > 0.0);
254
255 const double m_c1 = 1.0 / (standardDeviation * std::sqrt(2.0 * M_PI));
256 const double m_c2 = 2.0 * standardDeviation * standardDeviation;
257 KisSprayFunctionBasedDistribution::initialize(1000, 0.0, standardDeviation * 5.0,
258 [mean, m_c1, m_c2](double x)
259 {
260 const double shiftedX = x - mean;
261 return 2.0 * x * m_c1 * std::exp(-(shiftedX * shiftedX / m_c2));
262 }
263 );
264}
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
#define M_PI
Definition kis_global.h:111

References KisSprayFunctionBasedDistribution::initialize(), KIS_SAFE_ASSERT_RECOVER_RETURN, and M_PI.


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