VTK
|
convenience class to quickly generate a pool of random numbers More...
#include <vtkRandomPool.h>
Public Member Functions | |
vtkIdType | GetTotalSize () |
This convenience method returns the total size of the memory pool, i.e., Size*NumberOfComponents. More... | |
virtual void | SetSequence (vtkRandomSequence *seq) |
Specify the random sequence generator used to produce the random pool. More... | |
virtual vtkRandomSequence * | GetSequence () |
Specify the random sequence generator used to produce the random pool. More... | |
virtual void | SetSize (vtkIdType) |
Methods to set and get the size of the pool. More... | |
virtual vtkIdType | GetSize () |
Methods to set and get the size of the pool. More... | |
virtual void | SetNumberOfComponents (vtkIdType) |
Methods to set and get the number of components in the pool. More... | |
virtual vtkIdType | GetNumberOfComponents () |
Methods to set and get the number of components in the pool. More... | |
const double * | GeneratePool () |
These methods provide access to the raw random pool as a double array. More... | |
const double * | GetPool () |
These methods provide access to the raw random pool as a double array. More... | |
double | GetValue (vtkIdType i) |
These methods provide access to the raw random pool as a double array. More... | |
double | GetValue (vtkIdType i, int compNum) |
These methods provide access to the raw random pool as a double array. More... | |
void | PopulateDataArray (vtkDataArray *da, double minRange, double maxRange) |
Methods to populate data arrays of various types with values within a specified (min,max) range. More... | |
void | PopulateDataArray (vtkDataArray *da, int compNumber, double minRange, double maxRange) |
Methods to populate data arrays of various types with values within a specified (min,max) range. More... | |
virtual void | SetChunkSize (vtkIdType) |
Specify the work chunk size at which point multithreading kicks in. More... | |
virtual vtkIdType | GetChunkSize () |
Specify the work chunk size at which point multithreading kicks in. More... | |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. More... | |
virtual void | DebugOff () |
Turn debugging output off. More... | |
bool | GetDebug () |
Get the value of the debug flag. More... | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. More... | |
virtual void | Modified () |
Update the modification time for this object. More... | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. More... | |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
vtkTypeBool | HasObserver (unsigned long event) |
vtkTypeBool | HasObserver (const char *event) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Allow user to set the AbortFlagOn() with the return value of the callback method. More... | |
int | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
int | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. More... | |
virtual void | Delete () |
Delete a VTK object. More... | |
virtual void | FastDelete () |
Delete a reference to this object. More... | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. More... | |
virtual void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). More... | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). More... | |
int | GetReferenceCount () |
Return the current reference count of this object. More... | |
void | SetReferenceCount (int) |
Sets the reference count. More... | |
void | PrintRevisions (ostream &) |
Legacy. More... | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
Protected Member Functions | |
vtkRandomPool () | |
~vtkRandomPool () override | |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
~vtkObject () override | |
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) |
These methods allow a command to exclusively grab all events. More... | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. More... | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Protected Attributes | |
vtkTimeStamp | GenerateTime |
vtkRandomSequence * | Sequence |
vtkIdType | Size |
int | NumberOfComponents |
vtkIdType | ChunkSize |
vtkIdType | TotalSize |
double * | Pool |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
Protected Attributes inherited from vtkObjectBase | |
vtkAtomicInt32 | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
typedef vtkObject | Superclass |
Standard methods for instantiation, type information, and printing. More... | |
static vtkRandomPool * | New () |
Standard methods for instantiation, type information, and printing. More... | |
static vtkTypeBool | IsTypeOf (const char *type) |
Standard methods for instantiation, type information, and printing. More... | |
static vtkRandomPool * | SafeDownCast (vtkObjectBase *o) |
Standard methods for instantiation, type information, and printing. More... | |
virtual vtkTypeBool | IsA (const char *type) |
Standard methods for instantiation, type information, and printing. More... | |
vtkRandomPool * | NewInstance () const |
Standard methods for instantiation, type information, and printing. More... | |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Standard methods for instantiation, type information, and printing. More... | |
virtual vtkObjectBase * | NewInstanceInternal () const |
Standard methods for instantiation, type information, and printing. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from vtkObject | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. More... | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
Static Public Member Functions inherited from vtkObjectBase | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. More... | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
convenience class to quickly generate a pool of random numbers
vtkRandomPool generates random numbers, and can do so using multithreading. It supports parallel applications where generating random numbers on the fly is difficult (i.e., non-deterministic). Also, it can be used to populate vtkDataArrays in an efficient manner. By default it uses an instance of vtkMersenneTwister to generate random sequences, but any subclass of vtkRandomSequence may be used. It also supports simple methods to generate, access, and pass random memory pools between objects.
In threaded applications, these class may be conveniently used to pre-generate a sequence of random numbers, followed by the use of deterministic accessor methods to produce random sequences without problems etc. due to unpredictable work load and order of thread execution.
Definition at line 48 of file vtkRandomPool.h.
typedef vtkObject vtkRandomPool::Superclass |
Standard methods for instantiation, type information, and printing.
Definition at line 56 of file vtkRandomPool.h.
|
protected |
|
overrideprotected |
|
static |
Standard methods for instantiation, type information, and printing.
|
static |
Standard methods for instantiation, type information, and printing.
|
virtual |
Standard methods for instantiation, type information, and printing.
Reimplemented from vtkObjectBase.
|
static |
Standard methods for instantiation, type information, and printing.
|
protectedvirtual |
Standard methods for instantiation, type information, and printing.
vtkRandomPool* vtkRandomPool::NewInstance | ( | ) | const |
Standard methods for instantiation, type information, and printing.
|
overridevirtual |
Standard methods for instantiation, type information, and printing.
Reimplemented from vtkObject.
|
virtual |
Specify the random sequence generator used to produce the random pool.
By default vtkMersenneTwister is used.
|
virtual |
Specify the random sequence generator used to produce the random pool.
By default vtkMersenneTwister is used.
|
virtual |
Methods to set and get the size of the pool.
The size must be specified before invoking GeneratePool(). Note the number of components will affect the total size (allocated memory is Size*NumberOfComponents).
|
virtual |
Methods to set and get the size of the pool.
The size must be specified before invoking GeneratePool(). Note the number of components will affect the total size (allocated memory is Size*NumberOfComponents).
|
virtual |
Methods to set and get the number of components in the pool.
This is a convenience capability and can be used to interface with vtkDataArrays. By default the number of components is =1.
|
virtual |
Methods to set and get the number of components in the pool.
This is a convenience capability and can be used to interface with vtkDataArrays. By default the number of components is =1.
|
inline |
This convenience method returns the total size of the memory pool, i.e., Size*NumberOfComponents.
Definition at line 93 of file vtkRandomPool.h.
const double* vtkRandomPool::GeneratePool | ( | ) |
These methods provide access to the raw random pool as a double array.
The size of the array is Size*NumberOfComponents. Each x value ranges between (0<=x<=1). The class will generate the pool as necessary (a modified time for generation is maintained). Also a method is available for getting the value at the ith pool position and compNum component. Finally, note that the GetValue() method uses modulo reduction to ensure that the request remains inside of the pool. Two forms are provided, the first assumes NumberOfComponents=1; the second allows access to a particular component. The GetPool() and GetValue() methods should only be called after GeneratePool() has been invoked;
|
inline |
These methods provide access to the raw random pool as a double array.
The size of the array is Size*NumberOfComponents. Each x value ranges between (0<=x<=1). The class will generate the pool as necessary (a modified time for generation is maintained). Also a method is available for getting the value at the ith pool position and compNum component. Finally, note that the GetValue() method uses modulo reduction to ensure that the request remains inside of the pool. Two forms are provided, the first assumes NumberOfComponents=1; the second allows access to a particular component. The GetPool() and GetValue() methods should only be called after GeneratePool() has been invoked;
Definition at line 109 of file vtkRandomPool.h.
These methods provide access to the raw random pool as a double array.
The size of the array is Size*NumberOfComponents. Each x value ranges between (0<=x<=1). The class will generate the pool as necessary (a modified time for generation is maintained). Also a method is available for getting the value at the ith pool position and compNum component. Finally, note that the GetValue() method uses modulo reduction to ensure that the request remains inside of the pool. Two forms are provided, the first assumes NumberOfComponents=1; the second allows access to a particular component. The GetPool() and GetValue() methods should only be called after GeneratePool() has been invoked;
Definition at line 110 of file vtkRandomPool.h.
These methods provide access to the raw random pool as a double array.
The size of the array is Size*NumberOfComponents. Each x value ranges between (0<=x<=1). The class will generate the pool as necessary (a modified time for generation is maintained). Also a method is available for getting the value at the ith pool position and compNum component. Finally, note that the GetValue() method uses modulo reduction to ensure that the request remains inside of the pool. Two forms are provided, the first assumes NumberOfComponents=1; the second allows access to a particular component. The GetPool() and GetValue() methods should only be called after GeneratePool() has been invoked;
Definition at line 111 of file vtkRandomPool.h.
void vtkRandomPool::PopulateDataArray | ( | vtkDataArray * | da, |
double | minRange, | ||
double | maxRange | ||
) |
Methods to populate data arrays of various types with values within a specified (min,max) range.
Note that compNumber is used to specify the range for a particular component; otherwise all generated components are within the (min,max) range specified. (Thus it is possible to make multiple calls to generate random numbers for each component with different ranges.) Internally the type of the data array passed in is used to cast to the appropriate type. Also the size and number of components of the vtkDataArray controls the total number of random numbers generated; so the input data array should be pre-allocated with (SetNumberOfComponents, SetNumberOfTuples).
void vtkRandomPool::PopulateDataArray | ( | vtkDataArray * | da, |
int | compNumber, | ||
double | minRange, | ||
double | maxRange | ||
) |
Methods to populate data arrays of various types with values within a specified (min,max) range.
Note that compNumber is used to specify the range for a particular component; otherwise all generated components are within the (min,max) range specified. (Thus it is possible to make multiple calls to generate random numbers for each component with different ranges.) Internally the type of the data array passed in is used to cast to the appropriate type. Also the size and number of components of the vtkDataArray controls the total number of random numbers generated; so the input data array should be pre-allocated with (SetNumberOfComponents, SetNumberOfTuples).
|
virtual |
Specify the work chunk size at which point multithreading kicks in.
For small memory pools < ChunkSize, no threading is used. Larger pools are computed using vtkMultiThreader.
|
virtual |
Specify the work chunk size at which point multithreading kicks in.
For small memory pools < ChunkSize, no threading is used. Larger pools are computed using vtkMultiThreader.
|
protected |
Definition at line 148 of file vtkRandomPool.h.
|
protected |
Definition at line 151 of file vtkRandomPool.h.
|
protected |
Definition at line 152 of file vtkRandomPool.h.
|
protected |
Definition at line 153 of file vtkRandomPool.h.
|
protected |
Definition at line 154 of file vtkRandomPool.h.
|
protected |
Definition at line 157 of file vtkRandomPool.h.
|
protected |
Definition at line 158 of file vtkRandomPool.h.