Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Fiber::FragmentedUniformGrid3D Struct Reference
Inheritance diagram for Fiber::FragmentedUniformGrid3D:
Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 > Fiber::RegularlyFragmentedGrid< VertexDims > Fiber::GridWithCartesianVertices Fiber::RegularlyFragmentedGridBase Fiber::TypedGrid Fiber::TypedGrid Eagle::StrongPtr< Object, ObjectBase > Eagle::StrongPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase >

Public Types

typedef UniformCartesianArray CoordsArray_t
Public Types inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
typedef MemArrayBase< VertexDims > CoordsArray_t
Public Types inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
typedef MemArray< VertexDims, RefPtr< FragmentID > > FragmentArray_t
Public Types inherited from Eagle::StrongPtr< Object, ObjectBase >
typedef WeakPtr< Object, ObjectBase >::ObjectBase_t ObjectBase_t
Public Types inherited from MemCore::WeakPtr< Object, ObjectBase >
typedef Object object_t
typedef ObjectBase ObjectBase_t
typedef RefPtrTypeTrait< Object, ObjectBase >::ReferencePointerType pointer_t
typedef RefPtrTypeTrait< Object, ObjectBase >::ReferenceValueType refvalue_t
Public Types inherited from MemCore::DynPtr< Object, ObjectBase >
typedef Object object_t

Public Member Functions

 FragmentedUniformGrid3D (const RefPtr< Grid > &theGrid)
 FragmentedUniformGrid3D (const Grid &theGrid)
bool assign (const RefPtr< Grid > &theGrid)
RefPtr< CoordsArray_t > getCoords (const MultiIndex< 3 > &I) const
 Get the coordinates for the given fragment via its fragment index.
bool isValid () const
Public Member Functions inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
RefPtr< CreativeArrayBasegetCoordCreator (const MultiIndex< VertexDims > &I) const
RefPtr< MemBasegetCoordData (const MultiIndex< VertexDims > &I) const
RefPtr< CoordsArray_t > getCoords (const MultiIndex< VertexDims > &I) const
RefPtr< RegularlyFragmentedField< VertexDims > > newVertexField (const char *Fieldname)
 Create a new regularly fragmented field on the vertices under the given name, overwriting an existing field.
RefPtr< RegularlyFragmentedField< VertexDims > > getVertexField (const char *Fieldname)
 Find a new regularly fragmented field on the vertices under the given name, creating a new one if not found.
MultiIndex< VertexDims > NumberOfFragments () const
 Get the number of fragments here as multi-dimensional index.
bool isValid () const
bool assign (const RefPtr< Grid > &theGrid)
Public Member Functions inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
MultiIndex< VertexDims > NumberOfFragments () const
 Get the number of fragments here as multi-dimensional index.
RefPtr< FragmentIDgetFragmentID (const MultiIndex< VertexDims > &FragmentIndex) const
 Get the fragment ID for the given fragment index.
 RegularlyFragmentedGrid (const RefPtr< Grid > &G=nullptr)
bool assign (const RefPtr< Grid > &theGrid)
Public Member Functions inherited from Fiber::RegularlyFragmentedGridBase
bool assign (const RefPtr< Grid > &theGrid)
Public Member Functions inherited from Fiber::TypedGrid
bool assign (const RefPtr< Grid > &theGrid)
bool invalidate ()
 Invalidate the stored Grid pointer and return false.
Public Member Functions inherited from Eagle::StrongPtr< Object, ObjectBase >
StrongPtrassignStrong (const DynPtr_t &other)
StrongPtrassignStrong (const ReferenceBase< ObjectBase_t > *Obj)
StrongPtrassignStrong (const std::nullptr_t &)
auto operator() (Arguments...parameters) const -> decltype((*this->getPtrValue())(parameters...))
refvalue_toperator* () const
pointer_t operator-> () const
StrongPtroperator= (const DynPtr_t &other)
StrongPtroperator= (const ReferenceBase< ObjectBase_t > *Obj)
StrongPtroperator= (const std::initializer_list< StrongPtr > &other)
StrongPtroperator= (const std::nullptr_t &)
StrongPtroperator= (const StrongPtr &other)
auto operator[] (const IndexType &I) const -> decltype((*this->getPtrValue())[I])
 StrongPtr (const ReferenceBase< ObjectBase_t > *Obj)
 StrongPtr (const ReferenceBase< ObjectBase_t > *Obj, const NotNullPtr &)
 StrongPtr (const std::nullptr_t &)
 StrongPtr (const StrongPtr< ChildObject, ObjectBase > &Other)
 StrongPtr (const StrongPtr< Object, ObjectBase > &Other)
 StrongPtr (const WeakPtr< ChildObject, ObjectBase_t > &Other)
Public Member Functions inherited from MemCore::WeakPtr< Object, ObjectBase >
 WeakPtr (const std::nullptr_t &)
 WeakPtr (const ReferenceBase< ObjectBase > *Obj)
 WeakPtr (const ReferenceBase< ObjectBase > *Obj, const NotNullPtr &)
 WeakPtr (const WeakPtr< AnyObject, ObjectBase > &Other)
 WeakPtr (const WeakPtr &Other)
pointer_t getPtrValue () const
pointer_t operator-> () const
refvalue_toperator* () const
size_t operator~ () const
WeakPtrassignWeak (const WeakPtr &other)
WeakPtroperator= (const WeakPtr &other)
Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
const DynPtrgetDynPtr () const noexcept
const type_info & getType () const noexcept
bool isAssignable (const DynPtr< ObjectBase, ObjectBase > &Other) const noexcept
 operator void * () const noexcept
bool operator! () const noexcept
void speak (const char *s, const char *prefix="") const noexcept
void Speak (const char *s, const char *prefix="") const
Public Member Functions inherited from Fiber::GridWithCartesianVertices
 GridWithCartesianVertices (const RefPtr< Grid > &theGrid=nullptr)
bool assign (const RefPtr< Grid > &theGrid)
bool isValid () const

Static Public Member Functions

static FragmentedUniformGrid3D create (const MultiIndex< 3 > &NumberOfFragments, Grid &myGrid, const Eagle::point3 &start, const MultiIndex< 3 > &PerFragmentDims, const Eagle::point3 &end, const MultiIndex< 3 > &Overlap={1, 1, 1})
 Create a fragmented uniform grid in cartesian coordinates within the given bounding box as specified by the two points.
static FragmentedUniformGrid3D create (const MultiIndex< 3 > &NumberOfFragments, Grid &myGrid, const Eagle::point3 &start, const Eagle::point3 &end_hint, const Eagle::tvector3 &CellSize, const MultiIndex< 3 > &Overlap)
 Create a fragmented uniform grid in cartesian coordinates with an exact cell size that covers roughly the given bounding box, but may actually be of slighty larger geometric coverage.
static FragmentedUniformGrid3D create (const MultiIndex< 3 > NumberOfFragments, Grid &myGrid, Eagle::point3 start, MultiIndex< 3 > PerFragmentDims, const Eagle::tvector3 PerFragmentSize, const MultiIndex< 3 > Overlap, const Eagle::tvector3 CellShift)
 Create a fragmented uniform grid in cartesian coordinates with an adjusted cell size to fit into the fragment dims and size CAREFULLY: this function was created to fullfill 'createInternal'.
static FragmentedUniformGrid3D createInternal (const MultiIndex< 3 > &NumberOfFragments, Grid &myGrid, const Eagle::point3 &start, const Eagle::tvector3 &CellSize, const MultiIndex< 3 > &Overlap, const MultiIndex< 3 > &PerFragmentDims, const Eagle::point3 &EndAsIntegerMultipleOfCellSize)
Static Public Member Functions inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
static RegularlyFragmentedGridWithCartesianVertices create (Grid &myGrid, const MultiIndex< VertexDims > &NumberOfFragments, bool NeedPerFragmentData=false)
 Create a regularly fragmented grid with cartesian vertices.
Static Public Member Functions inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
static SkeletonID FragmentSkeletonID (int IndexDepth=0, int RefLevel=0)
static SkeletonID ID ()
static SkeletonID FragmentSkeletonID (const SkeletonID &S)
static RegularlyFragmentedGrid create (Grid &myGrid, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions, const SkeletonID &FragmentedSkeletonID)
 Create a fragment skeleton on the given Grid.
static RegularlyFragmentedGrid create (Grid &myGrid, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions, const RefPtr< Skeleton > &Vertices)
static RegularlyFragmentedGrid create (Grid &myGrid, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions)
static RegularlyFragmentedGrid createFragmentSkeleton (Grid &myGrid, const RefPtr< Skeleton > &Vertices, const RefPtr< RegularlyFragmentedField< VertexDims > > &VertexPositions, Skeleton &FragmentSkeleton)
static RegularlyFragmentedGrid createWithCartesianVertices (Grid &myGrid, const MultiIndex< VertexDims > &NumberOfFragments)
Static Public Member Functions inherited from Fiber::RegularlyFragmentedGridBase
static SkeletonID FragmentVerticesSkeletonID ()
static SkeletonID computeFragmentSkeletonID (const Field &F, const SkeletonID &SID)
static void create (Grid &myGrid)
Static Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
static const DynPtrgetNullPtr () noexcept
Static Public Member Functions inherited from Fiber::GridWithCartesianVertices
static GridWithCartesianVertices create (Grid &myGrid, int Dims, const RefPtr< Field > &Positions)

Public Attributes

RefPtr< UniformCartesianArrayFragmentCoordinates
 The coordinates, i.e. corner points, of each fragment.
RefPtr< UniformCartesianArrayFragmentBathycenters
 The bathycenters of each fragment.
Public Attributes inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
RefPtr< RepresentationFragmentVerticesInCartesianCoordinates
 Collection of fields that are defined per fragment vertex in cartesian coordinates.
RefPtr< RepresentationPerFragmentDataInCartesianCoordinates
 Collection of fields that are defined per fragment in cartesian coordinates.
RefPtr< RegularlyFragmentedField< VertexDims > > Positions
 Field for the vertex coordinates.
Public Attributes inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
RefPtr< SkeletonFragmentSkeleton
RefPtr< RepresentationFragmentsAsVertices
 Fields per fragment providing coordinate-independent information.
RefPtr< FragmentArray_t > FragmentArray
Public Attributes inherited from Fiber::RegularlyFragmentedGridBase
RefPtr< SkeletonFragmentVerticesSkeleton
 The Skeleton containing the vertices of fragments, i.e.
Public Attributes inherited from Fiber::GridWithCartesianVertices
RefPtr< SkeletonVertices
RefPtr< RepresentationCartesianVertices
 Collection of all fields given on vertices relative to cartesian coordinates.
RefPtr< FieldCartesianPositions

Additional Inherited Members

Static Public Attributes inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
static constexpr int Dims = VertexDims
Protected Member Functions inherited from MemCore::WeakPtr< Object, ObjectBase >
 WeakPtr (Object *that, const SelfInitialize &)
Protected Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
 DynPtr (const DynPtr< AnyObject, ObjectBase > &Other) noexcept
 DynPtr (const std::nullptr_t &) noexcept

Member Function Documentation

◆ create() [1/2]

FragmentedUniformGrid3D Fiber::FragmentedUniformGrid3D::create ( const MultiIndex< 3 > & NumberOfFragments,
Grid & myGrid,
const Eagle::point3 & start,
const MultiIndex< 3 > & PerFragmentDims,
const Eagle::point3 & end,
const MultiIndex< 3 > & Overlap = {1,1,1} )
static

Create a fragmented uniform grid in cartesian coordinates within the given bounding box as specified by the two points.

Todo: Overlap: change setFragmentOverlap {x,x,x}, FragmentBBoxMin and SetFragmentOffset.

Use CellDiagonal as primary parameter (remove end from create). Second Function!!!

References createInternal(), std::end(), and Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >::NumberOfFragments().

◆ create() [2/2]

FragmentedUniformGrid3D Fiber::FragmentedUniformGrid3D::create ( const MultiIndex< 3 > NumberOfFragments,
Grid & myGrid,
Eagle::point3 start,
MultiIndex< 3 > PerFragmentDims,
const Eagle::tvector3 PerFragmentSize,
const MultiIndex< 3 > Overlap,
const Eagle::tvector3 CellShift )
static

Create a fragmented uniform grid in cartesian coordinates with an adjusted cell size to fit into the fragment dims and size CAREFULLY: this function was created to fullfill 'createInternal'.

Another create function: We use fragment size and dims.

to get a correct result a Overlap - 1 was applied on the PerFragmentDims -> Why is this neccesary?

References createInternal(), and Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >::NumberOfFragments().

◆ createInternal()

FragmentedUniformGrid3D Fiber::FragmentedUniformGrid3D::createInternal ( const MultiIndex< 3 > & NumberOfFragments,
Grid & myGrid,
const Eagle::point3 & start,
const Eagle::tvector3 & CellSize,
const MultiIndex< 3 > & Overlap,
const MultiIndex< 3 > & PerFragmentDims,
const Eagle::point3 & EndAsIntegerMultipleOfCellSize )
static