|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Template class for multidimensional operations. More...
#include <MultiOperate.hpp>
Public Types | |
| typedef MultiOp< Dims, MultidimensionalOperator, SkipDims+1 > | Base_t |
Public Member Functions | |
| void | iterate (const MultiIndex< Dims > &End) |
| Explicitly call iteration, from zero index up to the specified end. | |
| MultiOperate () | |
| Default constructor, does nothing. | |
| MultiOperate (const MultiIndex< Dims > &End) | |
| Multidimensional operation calling the iterator right away. | |
| MultiOperate (const MultiIndex< Dims > &Start, const MultiIndex< Dims > &End) | |
| Multidimensional operation calling the iterator right away. | |
| template<class T > | |
| MultiOperate (const T &t) | |
| template<class T > | |
| MultiOperate (const T &t, const MultiIndex< Dims > &End) | |
| template<class T > | |
| MultiOperate (const T &t, const MultiIndex< Dims > &Start, const MultiIndex< Dims > &End) | |
| template<Dims_t HigherDims> | |
| void | iterate (const MultiIndex< Dims > &Start, const MultiIndex< Dims > &End, const MultiIndex< HigherDims > &CurrentIndex) |
| Iterate over multidimensional index range. | |
| void | iterate (const MultiIndex< Dims > &Start, const MultiIndex< Dims > &End) |
| Iterate over multidimensional index range. | |
Public Member Functions inherited from Fiber::MultiOp< Dims, MultidimensionalOperator, SkipDims > | |
| void | iterate (const MultiIndex< Dims > &Start, const MultiIndex< Dims > &End) |
| template<class T > | |
| MultiOp (const T &t) | |
Additional Inherited Members | |
Protected Member Functions inherited from Fiber::MultiOp< Dims, MultidimensionalOperator, SkipDims > | |
| template<Dims_t HigherDims> | |
| void | iterate (const MultiIndex< Dims > &Start, const MultiIndex< Dims > &End, const MultiIndex< HigherDims > &CurrentIndex) |
Template class for multidimensional operations.
This template class allows to execute an operator on each index within a multidimensional domain, possibly starting at non-zero indices and optionally skipping iteration over one dimension, thus just iterating over an n-1 dimensional subset.
The operator class used as template argument needs to provide an apply() member function that will receive a multidimensional index, plus it needs to provide a default constructor and possibly an constructor taking one argument of arbitrary type. An example operator definition is as follows:
Now the multidimensional operator can be instantiated over this class as in the following code snippet:
Expected output will be as follows: