|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Transformation objects that provide chart transformations, particularily for coordinates, but also other vectorial, tensorial or geometric types. More...
#include <Transformation.hpp>
Public Member Functions | |
| virtual RefPtr< Field > | transform (const Field &F, const RefPtr< Field > &Positions) const |
| Transformation of an entire Field, where the Positions of the source coordinate system is provided unless transforming coordinates. | |
| virtual RefPtr< CreativeArrayBase > | transform (CreativeArrayBase &F, const RefPtr< CreativeArrayBase > &Positions) const |
| Transformation of a Field fragment, allowing to provide a customized Creator. | |
| virtual RefPtr< MemBase > | transform (const RefPtr< MemBase > &SourceData, const RefPtr< CreativeArrayBase > &SourcePositionsFragment) const =0 |
| Implementation of the actual coordinate transition, the function must yield the transformed field in the destination coordinate system. | |
Public Member Functions inherited from MemCore::ReferenceBase< Transformation > | |
| 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 |
Additional Inherited Members | |
Public Types inherited from MemCore::ReferenceBase< Transformation > | |
| typedef Object | reference_domain_t |
| typedef WeakPtr< Object, Object > | SelfPtr_t |
Protected Member Functions inherited from MemCore::ReferenceBase< Transformation > | |
| virtual void | extremeUnction () |
| ReferenceBase & | operator= (const ReferenceBase &R) |
| void | suicide () |
Transformation objects that provide chart transformations, particularily for coordinates, but also other vectorial, tensorial or geometric types.
The actual transformation routine needs to be implemented in a derived object implementing the transform() function, where it needs to check the respective type.
Transformation objects are based on the textual name of Chart objects and can be installed globally - valid for all kinds of Chart objects based on the same name - or locally within a specific Grid object. If they are specific to a Grid object, identification is by name as well, but the Transformation objects may carry Grid-specific transformation parameters.
Example for providing a global transformation object:
Similarly, Transformation objects can be added to the Atlas::LocalTransformations within an Atlas instance, such as available on a Grid via Grid::MyAtlas().
Eventually, application code may request a Field in a coordinate system from a Grid object, which - if not existent yet - will be computed via invokation of the Transformation object, possibly transitiong a chain of transformations recursively until success.
|
virtual |
Transformation of an entire Field, where the Positions of the source coordinate system is provided unless transforming coordinates.
Usually the child class will not need to override this function, but the function operating on the MemBase objects.
References transform().
|
pure virtual |
Implementation of the actual coordinate transition, the function must yield the transformed field in the destination coordinate system.
The function must check the type of the SourceData and provide actual type-dependent transformation. Note that the field name is not available in order to avoid implementations that involve usage of the field name - all transformations must be based on types only to ensure consistency of transformations.
|
virtual |
Transformation of a Field fragment, allowing to provide a customized Creator.
By default, this function will provide a FunctionalCreator. The Positions of the source coordinate system is provided unless transforming coordinates. Usually the child class will not need to override this function, but the function operating on the MemBase objects.
References MemCore::CreatorBase< class Domain >::create(), MemCore::ReferenceBase< class Object >::self(), and transform().