68 lines
2.2 KiB
C
68 lines
2.2 KiB
C
|
|
/*=========================================================================
|
||
|
|
|
||
|
|
Program: Visualization Toolkit
|
||
|
|
Module: vtkGaussianRandomSequence.h
|
||
|
|
|
||
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
|
All rights reserved.
|
||
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||
|
|
|
||
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||
|
|
PURPOSE. See the above copyright notice for more information.
|
||
|
|
=========================================================================*/
|
||
|
|
/**
|
||
|
|
* @class vtkGaussianRandomSequence
|
||
|
|
* @brief Gaussian sequence of pseudo random numbers
|
||
|
|
*
|
||
|
|
* vtkGaussianRandomSequence is a sequence of pseudo random numbers
|
||
|
|
* distributed according to the Gaussian/normal distribution (mean=0 and
|
||
|
|
* standard deviation=1)
|
||
|
|
*
|
||
|
|
* This is just an interface.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef vtkGaussianRandomSequence_h
|
||
|
|
#define vtkGaussianRandomSequence_h
|
||
|
|
|
||
|
|
#include "vtkCommonCoreModule.h" // For export macro
|
||
|
|
#include "vtkRandomSequence.h"
|
||
|
|
|
||
|
|
class VTKCOMMONCORE_EXPORT vtkGaussianRandomSequence : public vtkRandomSequence
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
///@{
|
||
|
|
/**
|
||
|
|
* Standard methods for type information and printing.
|
||
|
|
*/
|
||
|
|
vtkTypeMacro(vtkGaussianRandomSequence, vtkRandomSequence);
|
||
|
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
||
|
|
///@}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Convenient method to return a value given the mean and standard deviation
|
||
|
|
* of the Gaussian distribution from the Gaussian distribution of mean=0
|
||
|
|
* and standard deviation=1.0. There is an initial implementation that can
|
||
|
|
* be overridden by a subclass.
|
||
|
|
*/
|
||
|
|
virtual double GetScaledValue(double mean, double standardDeviation);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the next value in the sequence given the mean and standard
|
||
|
|
* deviation of the Gaussian.
|
||
|
|
*
|
||
|
|
* \see vtkGaussianRandomSequence::GetScaledValue
|
||
|
|
*/
|
||
|
|
double GetNextScaledValue(double mean, double standardDeviation);
|
||
|
|
|
||
|
|
protected:
|
||
|
|
vtkGaussianRandomSequence();
|
||
|
|
~vtkGaussianRandomSequence() override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
vtkGaussianRandomSequence(const vtkGaussianRandomSequence&) = delete;
|
||
|
|
void operator=(const vtkGaussianRandomSequence&) = delete;
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif // #ifndef vtkGaussianRandomSequence_h
|