|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Convenience class - a Direct Product array which uses linear expressions for each index dimension. More...
#include <DirectProductArray.hpp>
Public Types | |
| enum | { COMPONENTS = T::SIZE } |
| typedef DirectProductMemArray< T, LinearCoordinateAxisArray, MDIMS > | Base_t |
| typedef Base_t::CoordinateAxisArray_t | CoordinateAxisArray_t |
| typedef T::value_type | component_type |
| The components of the structured type T. | |
Public Types inherited from Fiber::DirectProductMemArray< T, Category, MDIMS > | |
| enum | { COMPONENTS = DirectProductMemArrayBase_t::COMPONENTS , Dims = DirectProductMemArrayBase_t::Dims } |
| typedef MemArray< MDIMS, T > | MemArray_t |
| typedef T | value_type |
| The type of values that are delivered here. | |
| typedef T::value_type | component_type |
| The type of the elements of each component. | |
| typedef DirectProductMemArrayBase< typename T::FixedArray_t, Category, MDIMS > | DirectProductMemArrayBase_t |
Public Types inherited from Fiber::DirectProductMemArrayBase< T, Category, MDIMS > | |
| 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 Types inherited from Fiber::TypedArray< T > | |
| typedef T | value_type |
Public Member Functions | |
| const void * | OriginPtr () const override |
| Get pointer to origin of linearly procedural array, if it is linear. | |
| const void * | DeltaPtr () const override |
| Get pointer to delta of linearly procedural array, if it is linear. | |
| const T & | Origin () const |
| const DeltaT & | Delta () const |
| LinearDirectProductMemArray (const index_t dims[MDIMS], const T &base, const DeltaT &delta, const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| Constructor, initializes the Components members. | |
| LinearDirectProductMemArray (const MultiIndex< MDIMS > &dims, const T &base, const DeltaT &delta, const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| Constructor via multidimensional array with base and delta information on the field/array data values. | |
| LinearDirectProductMemArray (const LinearDirectProductMemArray &Src, const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| bool | getFlooredMultiIndex (const T &pos, MultiIndex< MDIMS > &index) const |
| Get an index of the linear array (MultiIndex) from a given global float coordinate. | |
| bool | getNearestMultiIndex (const T &pos, MultiIndex< MDIMS > &index) const |
| Get an index of the linear array (MultiIndex) from a given global float coordinate. | |
Public Member Functions inherited from Fiber::DirectProductMemArray< T, Category, MDIMS > | |
| template<class TBase > | |
| DirectProductMemArray (const DirectProductMemArrayCreateBaseArray &, const DirectProductMemArray< TBase, Category > &D, const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| The base value which is used as default for each component when the ComponentMap does not specify a mapping from the manifold index to a Component array. | |
| DirectProductMemArray (const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| DirectProductMemArray (const DirectProductMemArray &DPM, const MemBase::Creator_t &C=MemCore::NullPtr()) | |
| T | operator[] (const MultiIndex< Dims > &I) const |
| T | getElement (const index_t i) const |
| std::string | getElementAsString (size_t index) const override |
| RefPtr< MemBase > | copy (const MemBase::Creator_t &C=nullptr) const override |
| Create a copy of the current array, duplicating all data and allocating new memory for it. | |
| RefPtr< MemBase > | makeMemArray (const MemBase::Creator_t &C) const override |
| Create an actual memory-occupying array from the procedural data here. | |
| RefPtr< MemBase > | newMemArraynD (const MultiIndex< Dims > &, const MemBase::Creator_t &C) const override |
| RefPtr< MemBase > | createSubMemArray (const MultiIndex< Dims > &, const MultiIndex< Dims > &, const MemBase::Creator_t &C) const override |
| const type_info & | getType () const override |
| Return the element type of the certain array. | |
| CreativeIterator< T > * | creativeIterator () override |
| Procedural arrays return 0 here. | |
| const CreativeIterator< T > * | creativeIterator () const override |
| Procedural arrays return 0 here. | |
| RefPtr< MemCore::TypedChunk< T > > | myChunk () const override |
| Procedural arrays return a NullPtr here. | |
| T | first () const override |
| Get the data value at the firstIndex() | |
| T | last () const override |
| Get the data value at the lastIndex() | |
| MultiIndex< Dims > | Size () const override |
| Return the multidimensional number of points covered by this array. | |
Public Member Functions inherited from Fiber::DirectProductMemArrayBase< T, Category, MDIMS > | |
| 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 |
| MemCore::WeakPtr< FiberTypeBase > | getFiberType () const |
| MemCore::memsize_t | element_memsize () const |
| bool | copyFrom (const RefPtr< MemBase > &Mb) |
| Copy all data values from the given MemBase. | |
| 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. | |
| 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 Member Functions inherited from Fiber::TypedArray< T > | |
| TypedArray (const MemBase::Creator_t &C) | |
| TypedArray (const TypedArray< T > &)=delete | |
| void | operator= (const TypedArray< T > &)=delete |
| RefPtr< MemCore::ChunkBase > | getChunk () const override |
| Implement the virtual getChunk() function. | |
| const type_info & | getType () const override |
| Return the element type of the certain array. | |
| template<class UnaryOperator > | |
| RefPtr< MemBase > | applyOperator (const UnaryOperator &theOperator, const MemBase::Creator_t &theCreator) const |
| Apply an unary operator on the data contained here, and provide a new memory array of the same size and dimensionality. | |
| template<class result_t > | |
| RefPtr< MemBase > | applyFunction (const std::function< result_t(const T &)> &theOperator) const |
| Apply a functor, possibly yielding a different type. | |
| RefPtr< MemBase > | applyFunction (const std::function< T(const T &)> &theOperator) const |
| Apply a functor yielding the same type. | |
| template<class result_t > | |
| RefPtr< MemBase > | applyFunction (const std::function< result_t(const T &, index_t I)> &theOperator) const |
| Apply a functor, possibly yielding a different type. | |
| RefPtr< MemBase > | applyFunction (const std::function< T(const T &, index_t I)> &theOperator) const |
| Apply a functor yielding the same type. | |
| template<class result_t , class SecondType > | |
| RefPtr< MemBase > | applyFunction (const TypedArray< SecondType > &R, const std::function< result_t(const T &, const SecondType &ST, index_t I)> &theOperator) const |
| Apply a binary functor, possibly yielding a different type. | |
| template<class BinaryOperator > | |
| RefPtr< MemBase > | applyOperator (const BinaryOperator &theOperator, const RefPtr< MemBase > &rightValue, const MemBase::Creator_t &theCreator) const |
| Apply a binary operator on the data contained here, and provide a new memory array of the same size and dimensionality. | |
| auto | getComponent (int Component) -> decltype(getComponentArrayIterator(*this, Component)) |
| auto | operator() (int Component) -> decltype(getComponentArrayIterator(*this, Component)) |
| ranged_for_iterator< T > | begin () |
| ranged_for_iterator< T > | end () |
| const_ranged_for_iterator< T > | begin () const |
| const_ranged_for_iterator< T > | end () const |
| 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. | |
Public Attributes | |
| const T | baseValue |
| const DeltaT | deltaValue |
Public Attributes inherited from Fiber::DirectProductMemArrayBase< T, Category, MDIMS > | |
| 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 Member Functions inherited from Fiber::TypedArray< T > | |
| static MemCore::WeakPtr< FiberTypeBase > | getFiberType () |
| static RefPtr< MemBase > | create (const RefPtr< MemBase > &SourceLayout, const type_info &layout=typeid(void)) |
| 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 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 () |
Convenience class - a Direct Product array which uses linear expressions for each index dimension.
It can be set up via convenient constructors as demonstrated in the following code segment, defining a 3D array starting at (1,1,1) with a spacing of (.1,.2,3) on 30x20x10 points:
|
inline |
Constructor, initializes the Components members.
@params dims The dimensionality of the array @params base The origin of the data values @params delta The spacing of the data values
|
inlineoverridevirtual |
Get pointer to delta of linearly procedural array, if it is linear.
Reimplemented from Fiber::DirectProductMemArray< T, Category, MDIMS >.
|
inline |
Get an index of the linear array (MultiIndex) from a given global float coordinate.
Floor is used for clamping such that the lower(left) index is generated per component.
References floor().
|
inline |
Get an index of the linear array (MultiIndex) from a given global float coordinate.
Floor is used for clamping such that the lower(left) index is generated per component.
References round().
|
inlineoverridevirtual |
Get pointer to origin of linearly procedural array, if it is linear.
Reimplemented from Fiber::DirectProductMemArray< T, Category, MDIMS >.