Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSprayCurveBasedDistributionPolarDistance 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, for polar coordinates distance. More...

#include <KisSprayRandomDistributions.h>

+ Inheritance diagram for KisSprayCurveBasedDistributionPolarDistance:

Public Member Functions

 KisSprayCurveBasedDistributionPolarDistance ()
 
 KisSprayCurveBasedDistributionPolarDistance (const KisCubicCurve &curve, size_t repeat=1)
 
- 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, for polar coordinates distance.

See also
KisSprayCurveBasedDistribution

Definition at line 227 of file KisSprayRandomDistributions.h.

Constructor & Destructor Documentation

◆ KisSprayCurveBasedDistributionPolarDistance() [1/2]

KisSprayCurveBasedDistributionPolarDistance::KisSprayCurveBasedDistributionPolarDistance ( )

Definition at line 356 of file KisSprayRandomDistributions.cpp.

357{}

◆ KisSprayCurveBasedDistributionPolarDistance() [2/2]

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

Definition at line 359 of file KisSprayRandomDistributions.cpp.

360{
362
363 KisSprayFunctionBasedDistribution::initialize(((curve.points().size() % 4) + 1) * 1000 * repeat, 0.0, 1.0,
364 [curve, repeat](double x)
365 {
366 const double sx = x * static_cast<double>(repeat);
367 return 2.0 * x * curve.value(sx - std::floor(sx));
368 }
369 );
370}
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: