|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Implementation of an Iterator to a sequence of elements, which might be contiguous or a projection of a component from an array of vectors. More...
#include <Iterator.hpp>
Public Types | |
| typedef IteratorBase< T > | Base_t |
| typedef T | value_t |
| typedef Eagle::MetaInfo< value_t > | FI |
| typedef FI::element_t | component_t |
| typedef ElementryArrayTrait< T >::basetype_t | array_t |
| typedef T & | reference_t |
| The reference type. | |
Public Types inherited from Fiber::ElementIterator< T > | |
| typedef Eagle::MetaInfo< T > | info_t |
| typedef info_t::element_t | element_info_t |
Public Member Functions | |
| Iterator (index_t howmany, T *Ptr) | |
| Construct view pointer from contiguous storage. | |
| Iterator (const HyperslabParameters &P, T *Ptr) | |
| Construct iterator with alternative data, but otherwise compatible properties. | |
| Iterator (const Iterator &P) | |
| Copy Constructor. | |
| Iterator (const Iterator &P, int) | |
| Copy Constructor with irrelevant member selection2. | |
| template<int Components> | |
| Iterator (index_t howmany, FixedArray< T, Components > *Ptr, int component) | |
| Construct view pointer to a single component within a contiguous storage of array objects. | |
| template<int Components> | |
| Iterator (const Iterator< FixedArray< T, Components > > &It, int component) | |
| template<int Components> | |
| Iterator (index_t Length, Eagle::VVector< Components, T > *Ptr, int component) | |
| Construct view pointer to a single component within a contigous storage of array objects. | |
| Iterator (index_t ishift, const Iterator &P, const Add &) | |
| Addition Constructor. | |
| Iterator< array_t > | getArrayIterator () const |
| Get an iterator that operates on associated FixedArray<> subjects. | |
| Iterator< component_t > | getComponent (int n) const |
| Get an iterator that operates on the nth component. | |
| T & | operator[] (index_t i) const |
| Access an element of the array, writeable. | |
| const T & | getValue (index_t i) const |
| Get the value, readonly. | |
| void | set (const T &Value) |
| Set all elements to the same value. | |
| const_ranged_for_iterator< T > | begin () const |
| const_ranged_for_iterator< T > | end () const |
| ranged_for_iterator< T > | begin () |
| ranged_for_iterator< T > | end () |
| template<class S > | |
| T & | operator[] (const ranged_for_iterator< S > &I) |
| template<class S > | |
| const T & | operator[] (const ranged_for_iterator< S > &I) const |
| template<class S > | |
| T & | operator[] (const const_ranged_for_iterator< S > &I) |
| template<class S > | |
| const T & | operator[] (const const_ranged_for_iterator< S > &I) const |
Public Member Functions inherited from Fiber::IteratorBase< T > | |
| IteratorBase (index_t Length, T *d, index_t Stride, index_t Offset) | |
| IteratorBase (const IteratorBase &IB) | |
| IteratorBase (const HyperslabParameters &IB, T *d) | |
| Construct compatible iterator with different data. | |
| IteratorBase (index_t ishift, const IteratorBase &P, const Add &) | |
Public Member Functions inherited from Fiber::ElementIterator< T > | |
| ElementIterator (index_t Length, T *Data, index_t Stride, index_t Offset) | |
| Construct an element iterator. | |
| ElementIterator (const ElementIterator &It) | |
| Copy Constructor. | |
| ElementIterator (const HyperslabParameters &It, T *newData) | |
| Constructor compatible iterator with new data. | |
| ElementIterator (index_t i, const ElementIterator &It, const Add &) | |
| Addition Constructor. | |
| void | SetNewData (T *newData, index_t newLength) throw () |
| Change the stored data chunk to a new location and length. | |
| T * | ptr (int c=0) const |
| Return pointer to data, which is good for C interface, but otherwise, avoid that. | |
| T & | getElement (index_t i, int c) const |
| Element access (no range check!). | |
| operator bool () const | |
| Implicit conversion to boolean: Check whether this is a valid pointer. | |
Public Member Functions inherited from Fiber::HyperslabParameters | |
| HyperslabParameters (index_t Length, index_t Stride, index_t Offset) throw () | |
| Simple constructorm sets shift and cropped members to zero. | |
| HyperslabParameters (const HyperslabParameters &H) throw () | |
| Copy constructor. | |
| HyperslabParameters (index_t i, const HyperslabParameters &H) throw () | |
| Pointer addition constructor (sets the shift member). | |
| index_t | getLength () const throw () |
| Return the number of elements which can be accessed through this ElementIterator. | |
| index_t | getOffset () const throw () |
| index_t | getStride () const throw () |
| index_t | getShift () const throw () |
| index_t | getCropped () const throw () |
| bool | isSeparatedCompound () const throw () |
| Tell if the iterator refers to a data set which is built from arrays of structure members, i.e. | |
| index_t | multiplicity () const throw () |
| Return number of elements which form an entity. | |
| index_t | maxcount () const throw () |
| Return the number of steps which can be traversed through this ElementIterator. | |
| index_t | count () const throw () |
| Return the number of steps which can be traversed through this ElementIterator. | |
| void | setCount (index_t size) throw () |
| Set the maximally allowed count, i.e. | |
| index_t | getIndex (index_t i, int c) const throw () |
| Given a major and a minor index, compute the overall index in the dataset according to. | |
| HyperslabParameters & | getHyperslabParameters () throw () |
| const HyperslabParameters & | getHyperslabParameters () const throw () |
Friends | |
| Iterator | operator+ (const Iterator &P, uint32_t i) |
| Iterator | operator+ (uint32_t i, const Iterator &P) |
| Iterator | operator+ (const Iterator &P, uint64_t i) |
| Iterator | operator+ (uint64_t i, const Iterator &P) |
| Iterator | operator+ (const Iterator &P, int32_t i) |
| Iterator | operator+ (int32_t i, const Iterator &P) |
| Iterator | operator+ (const Iterator &P, int64_t i) |
| Iterator | operator+ (int64_t i, const Iterator &P) |
Additional Inherited Members | |
Protected Member Functions inherited from Fiber::ElementIterator< T > | |
| void | incPtr (index_t what) |
Protected Attributes inherited from Fiber::ElementIterator< T > | |
| index_t | length |
| The length (number of elements) of the data array. | |
| index_t | stride |
| index_t | offset |
| index_t | shift |
| index_t | cropped |
Protected Attributes inherited from Fiber::HyperslabParameters | |
| index_t | length |
| The length (number of elements) of the data array. | |
| index_t | stride |
| index_t | offset |
| index_t | shift |
| index_t | cropped |
Implementation of an Iterator to a sequence of elements, which might be contiguous or a projection of a component from an array of vectors.
An Iterator is basically a pointer, nothing more, i.e. it does not do any memory management like reference counting. The validity of the data that is given be the constructor must be ensured during the lifetime of an Iterator by external means.
|
inline |
XXXXYYYYZZZZ
XYZXYZXYZ
References Fiber::HyperslabParameters::getLength(), Fiber::HyperslabParameters::isSeparatedCompound(), and Fiber::ElementIterator< T >::length.
|
inline |
Construct view pointer to a single component within a contigous storage of array objects.
A VVector needs explicit treatment here because it agglomerates many elements into one, but we need to explicitely address each of them. Thus, we only use the element pointer here.
|
inline |
Get the value, readonly.
| i | The index |
References Fiber::ElementIterator< T >::getElement().
Referenced by Wizt::FieldInputCreator< FieldVObject, TypeList, GridInspector, NumberOfInputFields, OutputType >::accept(), Wizt::GridActor< GridInspector, CreativeObject >::accept(), Wizt::FieldObject::HasFields(), and Wizt::GridObject::HasGrids().
|
inline |
Set all elements to the same value.
| Value | The value. |
References Fiber::HyperslabParameters::count(), and Fiber::ElementIterator< T >::getElement().
Referenced by VecAl::SphericalSymmetric::cometric(), Wizt::IncapableCellTensorFunctor::computeCellTensor(), Kerr44::KerrMetric::eval(), and VecAl::SphericalSymmetric::metric().