|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Class for creating structured types as direct product of one-dimensional arrays. More...
#include <DirectProductArray.hpp>
Public Types | |
| enum | { COMPONENTS = T::SIZE , Dims = MDIMS } |
| typedef T::value_type | component_type |
| The components of the structured type T. | |
| typedef CoordinateAxisArray< component_type, Category > | CoordinateAxisArray_t |
| typedef FixedArray< double, MDIMS > | FloatIndex_t |
| A multidimensional floating-point index. | |
Public Types inherited from Fiber::MemArrayBase< MDIMS > | |
| enum | Dims_t |
| typedef MultiIndex< N > | MIndex_t |
Public Types inherited from Fiber::MemBase | |
| typedef WeakPtrCreativeArrayBase_t | Creator_t |
Public Types inherited from MemCore::Cacheable | |
| typedef unsigned long | cachecounter_t |
Public Types inherited from MemCore::ReferenceBase< Cacheable > | |
| typedef Object | reference_domain_t |
| typedef WeakPtr< Object, Object > | SelfPtr_t |
Public Member Functions | |
| DirectProductMemArrayBase (const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| The constructor sets the component map such that the dimensions of the manifold are mapped to the first components of the structure. | |
| DirectProductMemArrayBase (const RefPtr< CoordinateAxisArray_t > C[COMPONENTS], const Eagle::Vector< int, Dims > &CMap, const MemBase::Creator_t &theCreator=MemCore::NullPtr()) | |
| DirectProductMemArrayBase (const DirectProductMemArrayBase &Src, const MemBase::Creator_t &theCreator=MemCore::NullPtr()) | |
| void | DeferredConstructor () override |
| Virtual deferred reference pointer construction pointer Don't overload if you don't know exactly what this function is supposed to do. See class DynPtr for more info. | |
| MemCore::memsize_t | memsize () const override |
| bool | copyFrom (const RefPtr< MemCore::ChunkBase > &theChunk) override |
| RefPtr< MemArray< MDIMS, T > > | createMemArray (const RefPtr< MemCore::ChunkBase > &Data, const MemBase::Creator_t &C) const |
| Create a memory array of the same dimensions as the current array, but with data as provided by the Storage. | |
| RefPtr< MemBase > | createEquallySizedMemArray (const RefPtr< MemCore::ChunkBase > &Storage, const MemBase::Creator_t &C) const override |
| Create a memory array of the same dimensions as the current array, but with data as provided by the Storage. | |
| RefPtr< MemBase > | getComponentArray (int member, const MemBase::Creator_t &C) override |
| void | retrieve (T &retval, const MultiIndex< Dims > &I) const |
| Evaluate an index, deliver the coordinate value. | |
| FloatIndex_t | getIndex (const T &PointCoordinates) const |
| Given the coordinates of a point, yield the index where it resides in the array. | |
| MultiIndex< Dims > | Size () const override |
| Return the multidimensional number of points covered by this array. | |
| MultiIndex< Dims > | firstIndex () const |
| Return a multidimensional index for the 1st data element, which is just all components to be zero. | |
| MultiIndex< Dims > | lastIndex () const |
| Return a multidimensional index for the last data element, which is just the largest index in each dimension, the number of elements minus one. | |
| RefPtr< MemBase > | getSlice (index_t i, const MemBase::Creator_t &C) const override |
| For a multidimensional array retrieve the nth slice. | |
| void * | getPtr () override |
| Implementation of the virtual MemArray function. | |
| HyperslabParameters & | getHyperslabParameters () override |
Public Member Functions inherited from Fiber::MemArrayBase< MDIMS > | |
| MemArrayBase (const FiberTypeIndex &theFiberTypeIndex, const WeakPtr< CreativeArrayBase > &theCreator) | |
| MemArrayBase (const MemArrayBase< N > &)=delete | |
| void | operator= (const MemArrayBase< N > &)=delete |
| Fiber::Dims_t | rank () const override |
| Return the number of array dimensions. | |
| virtual RefPtr< MemBase > | newMemArraynD (const MultiIndex< N > &NewSize, const MemBase::Creator_t &C) const=0 |
| Create a new array of the same type as the current one, but using the specified dimensions. | |
| virtual RefPtr< MemBase > | createSubMemArray (const MultiIndex< N > &Offset, const MultiIndex< N > &CopySize, const MemBase::Creator_t &C) const=0 |
| Create a new MemArray from a subset of the current array's data. | |
| RefPtr< MemBase > | createSubArray (const DynamicSize &Offset, const DynamicSize &CopySize, const MemBase::Creator_t &C) const override |
| Implement creation of new memory sub array using the DynamicSize class. | |
| DynamicSize | getSize () const override |
| Return the size of this dataset. | |
| RefPtr< ArrayInterpolator > | getInterpolator () const |
Public Member Functions inherited from Fiber::MemBase | |
| MemBase (const FiberTypeIndex &theFiberTypeIndex, const Creator_t &theCreator) | |
| Empty default constructor. | |
| ~MemBase () | |
| Destructor. | |
| MemBase (const MemBase &)=delete | |
| MemCore::WeakPtr< MemBase > | membase () const |
| virtual index_t | nElements () const |
| return the number of elements in this array | |
| auto | NumberOfElements () const |
| auto | getNumberOfElements () const |
| virtual const type_info & | getType () const =0 |
| Return the element type of the certain array. | |
| virtual std::string | getElementAsString (size_t index) const =0 |
| MemCore::WeakPtr< FiberTypeBase > | getFiberType () const |
| MemCore::memsize_t | element_memsize () const |
| virtual RefPtr< MemBase > | makeMemArray (const MemBase::Creator_t &C) const =0 |
| Provide a MemArray, even though the actual data is a procedural array. | |
| bool | copyFrom (const RefPtr< MemBase > &Mb) |
| Copy all data values from the given MemBase. | |
| virtual RefPtr< MemBase > | copy (const MemBase::Creator_t &C=nullptr) const =0 |
| Create a copy of the current array, duplicating all data and allocating new memory for it. | |
| RefPtr< MemBase > | create (const RefPtr< FiberTypeBase > &FT, const type_info &layout=typeid(void)) const |
| Create a new mem array of the same dimensions but different type. | |
| template<class T > | |
| RefPtr< MemBase > | create (const type_info &layout=typeid(void)) const |
| Create a new mem array of the same dimensions but different type. | |
| RefPtr< MemBase > | create (const DynamicSize &DS, const type_info &layout=typeid(void)) const |
| Create a new mem array of the same type but different dimensions. | |
| RefPtr< MemBase > | create (const type_info &layout=typeid(void)) const |
| Create a new mem array of the same type and dimensions, but default values. | |
| virtual RefPtr< MemCore::ChunkBase > | getChunk () const =0 |
| Get chunk to underlying data, if this is a contiguous array. | |
| virtual const void * | OriginPtr () const =0 |
| Get pointer to origin of linearly procedural array, if it is linear. | |
| virtual const void * | DeltaPtr () const =0 |
| Get pointer to delta of linearly procedural array, if it is linear. | |
| MemCore::memsize_t | memsize () const override |
| How much memory is occupied here at all in case it's stored in a chunk? | |
Public Member Functions inherited from MemCore::Cacheable | |
| Cacheable (const WeakPtr< Creature > &C) | |
| bool | isCached () const |
| bool | isUncached () const |
| bool | markAsUsed () |
| WeakPtr< CacheBase > | myCache () const |
| const WeakPtr< Creature > & | myCreator () const |
| int | NumberOfListEntries () const |
| void | PreDestructor () |
| void | push_back (CacheQueue &Q) |
| void | push_front (CacheQueue &Q) |
| void | setCreator (const WeakPtr< Creature > &C) |
Public Member Functions inherited from MemCore::ReferenceBase< Cacheable > | |
| auto | getObjectCountID () const noexcept |
| bool | isIdentical (const WeakPtr< Object, Object > &PossibleSelf) const noexcept |
| void | mkAutoDestructive () |
| refcount_t | refcount () const noexcept |
| ReferenceBase (Object *that) noexcept | |
| const auto & | self () const |
| refcount_t | wrefcount () const noexcept |
Public Member Functions inherited from MemCore::Intercube | |
| void | addInterface (const RefPtr< InterfaceBase > &I) const |
| void | addInterfaceData (const Data &D) |
| void | addInterfaceData (const Data &D) |
| void | clearInterfaces () |
| bool | const_iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) const |
| virtual RefPtr< InterfaceBase > | createInterface (const type_info &) const |
| RefPtr< InterfaceBase > | findInterface (const type_info &t) const |
| RefPtr< InterfaceBase > | getInterface (const type_info &t) |
| std::string | getInterfaceNames (const char delim=';') const |
| bool | gotNewInterfaceData (const Data &D) |
| bool | gotNewInterfaceData (mutex &M, const Data &D) |
| bool | gotNewInterfaceData (mutex &M, const Data &D) |
| bool | gotNewInterfaceData (mutex &M, const Data &D, const Selector &S) |
| bool | gotNewInterfaceData (mutex &M, const Data &D, const Selector *S) |
| bool | hasChangedInterfaceData (const Data &D) const |
| bool | hasChangedInterfaceData (const Data &D) const |
| bool | hasChangedInterfaceData (const Data &D, const Selector &) const |
| bool | hasChangedInterfaceData (const Data &D, const Selector *) const |
| bool | hasInterface (const type_info &t) const |
| bool | iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) |
| void | printInterfaces () const |
| void | registerInterface (const type_info &t) |
| void | removeInterface () |
| void | removeInterfaceBase (const type_info &InterfaceBaseID) |
Public Attributes | |
| RefPtr< CoordinateAxisArray_t > | Components [COMPONENTS] |
| The respective components of the array. | |
| Eagle::Vector< int, Dims > | ComponentMap |
| Mapping from manifold dimension to component array. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Fiber::MemBase | |
| static RefPtr< MemBase > | create (const RefPtr< FiberTypeBase > &FT, const DynamicSize &DS, const type_info &layout=typeid(void)) |
| Given a description of a certain data type for each element on array, allocate a multidimensional array of the given type. | |
| static bool | registerCreator (const RefPtr< Allocator > &A, const RefPtr< FiberTypeBase > &FT) |
Static Public Attributes inherited from Fiber::MemBase | |
| static int | RegisteredTypes = 0 |
Protected Member Functions inherited from MemCore::Cacheable | |
| void | adjustCacheableSize (memsize_t memDiff) |
Protected Member Functions inherited from MemCore::ReferenceBase< Cacheable > | |
| virtual void | extremeUnction () |
| ReferenceBase & | operator= (const ReferenceBase &R) |
| void | suicide () |
Class for creating structured types as direct product of one-dimensional arrays.
An n-dimensional data type is defined over an n-dimensional manifold by assigning the value of the ith coordinate index to the ith component of the data type. Thus, given a set of 


Examples for the one-dimensional component arrays can be data arrays explicitely specifying values, or a procedural array like the PolynomialArray<> that computes the data value from a set of coefficients. All component arrays must be childs of the virtual 1D array class VArray1D<>.
| T | The type that is created from the respective arrays at each index. It must provide an SIZE enum constant integer and a member typedef "value_type", such that T is equivalent to value_type[SIZE]. Only homogeneous types are allowed. The type T must also provide an element access operator [] that is accessible with an int and is convertible to the value_type. |
|
inline |
The constructor sets the component map such that the dimensions of the manifold are mapped to the first components of the structure.
All other components are set according to the value of this->origin, which is component-wise initialized with zero.
References Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::ComponentMap, Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::COMPONENTS, and Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Dims.
|
inlineoverridevirtual |
Implements Fiber::MemBase.
|
inlineoverridevirtual |
Create a memory array of the same dimensions as the current array, but with data as provided by the Storage.
Will return NullPtr if the sizes don't match. Calls createMemArray() .
Implements Fiber::MemBase.
References Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::createMemArray().
|
inline |
Create a memory array of the same dimensions as the current array, but with data as provided by the Storage.
Will return NullPtr if the sizes don't match.
References size(), and Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Size().
Referenced by Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::createEquallySizedMemArray().
|
inlineoverridevirtual |
Virtual deferred reference pointer construction pointer Don't overload if you don't know exactly what this function is supposed to do. See class DynPtr for more info.
Implements Fiber::MemBase.
|
inlineoverridevirtual |
Implements Fiber::MemBase.
|
inlineoverridevirtual |
Implements Fiber::MemBase.
|
inline |
Given the coordinates of a point, yield the index where it resides in the array.
The result is a floating point index providing information where within one cell the point resides, ie. when the ComponentMap is not identical mapping. Note that the result is normalized between 0.0. and 1.0 when inside the domain.
References Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::ComponentMap, Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::COMPONENTS, Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Components, and Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Dims.
|
inlineoverridevirtual |
Implementation of the virtual MemArray function.
Implements Fiber::MemBase.
|
inlineoverridevirtual |
For a multidimensional array retrieve the nth slice.
The result will be of one dimension less. A Creator object must be given for Cache management.
Implements Fiber::MemArrayBase< MDIMS >.
|
inlineoverridevirtual |
Implements MemCore::Cacheable.
|
inlineoverridevirtual |
Return the multidimensional number of points covered by this array.
Implements Fiber::MemArrayBase< MDIMS >.
References Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::ComponentMap, Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::COMPONENTS, Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Components, and Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Dims.
Referenced by Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::createMemArray(), and Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::lastIndex().
| Eagle::Vector<int, Dims> Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::ComponentMap |
Mapping from manifold dimension to component array.
Unused entries are marked by negative values; those components will be set to zero.
Referenced by Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::DirectProductMemArrayBase(), Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::getIndex(), Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::retrieve(), and Fiber::DirectProductMemArrayBase< T, Category, MDIMS >::Size().