VTK
|
Dispatch to functor vtkDataArrayType. More...
#include <vtkDataArrayDispatcher.h>
Public Member Functions | |
vtkDataArrayDispatcher (DefaultFunctorType &f) | |
vtkDataArrayDispatcher () | |
virtual | ~vtkDataArrayDispatcher () |
ReturnType | Go (vtkDataArray *lhs) |
Protected Attributes | |
DefaultFunctorType * | DefaultFunctor |
bool | OwnsFunctor |
Dispatch to functor vtkDataArrayType.
vtkDataArrayDispatcher is a class that allows calling a functor based on the data type of the vtkDataArray subclass. This is a wrapper around the vtkTemplateMacro (VTK_TT) to allow easier implementation and readibility, while at the same time the ability to use statefull functors.
Note: By default the return type is void. Note: The functor parameter must be of type vtkDataArrayDispatcherPointer
The functors that are passed around can contain state, and are allowed to be const or non const. If you are using a functor that does have state, make sure your copy constructor is correct.
struct sizeOfFunctor{ template<typename T> int operator()(const vtkDataArrayDispatcherPointer<T>& t) const { return t.NumberOfComponents * t.NumberOfTuples; } }; Here is an example of using the dispatcher. \code vtkDataArrayDispatcher<sizeOfFunctor,int> dispatcher; int arrayLength = dispatcher.Go(vtkDataArrayPtr);
Definition at line 89 of file vtkDataArrayDispatcher.h.
vtkDataArrayDispatcher< DefaultFunctorType, ReturnType >::vtkDataArrayDispatcher | ( | DefaultFunctorType & | f | ) |
Specify the functor that is to be used when dispatching. This allows you to specify a statefull functor.
struct storeLengthFunctor { int length; storeLengthFunctor():length(0){} template<typename T> void operator()(vtkDataArrayDispatcherPointer<T> array) { length += array.NumberOfComponents * array.NumberOfTuples; } }; storeLengthFunctor storedLength; vtkDataArrayDispatcher<storeLengthFunctor> dispatcher(storedLength); dispatcher.Go(exampleDataArray);
Definition at line 121 of file vtkDataArrayDispatcher.h.
vtkDataArrayDispatcher< DefaultFunctorType, ReturnType >::vtkDataArrayDispatcher | ( | ) |
Default constructor which will create an instance of the DefaultFunctorType and use that single instance for all calls.
Definition at line 129 of file vtkDataArrayDispatcher.h.
vtkDataArrayDispatcher< DefaultFunctorType, ReturnType >::~vtkDataArrayDispatcher | ( | ) | [virtual] |
Definition at line 137 of file vtkDataArrayDispatcher.h.
ReturnType vtkDataArrayDispatcher< DefaultFunctorType, ReturnType >::Go | ( | vtkDataArray * | lhs | ) |
Execute the default functor with the passed in vtkDataArray;
Definition at line 148 of file vtkDataArrayDispatcher.h.
DefaultFunctorType* vtkDataArrayDispatcher< DefaultFunctorType, ReturnType >::DefaultFunctor [protected] |
Definition at line 113 of file vtkDataArrayDispatcher.h.
bool vtkDataArrayDispatcher< DefaultFunctorType, ReturnType >::OwnsFunctor [protected] |
Definition at line 114 of file vtkDataArrayDispatcher.h.