FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Fiber::FragmentedUniformGrid3D Struct Reference
Inheritance diagram for Fiber::FragmentedUniformGrid3D:
Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 > Fiber::RegularlyFragmentedGrid< VertexDims > Fiber::GridWithCartesianVertices Fiber::RegularlyFragmentedGridBase Fiber::TypedGrid Fiber::TypedGrid MemCore::StrongPtr< class Object, class ObjectBase > MemCore::StrongPtr< class Object, class ObjectBase > MemCore::WeakPtr< class Object, class ObjectBase > MemCore::WeakPtr< class Object, class ObjectBase > MemCore::DynPtr< class Object, class ObjectBase > MemCore::DynPtr< class Object, class ObjectBase >

Public Types

typedef UniformCartesianArray CoordsArray_t
 
- Public Types inherited from Fiber::RegularlyFragmentedGridWithCartesianVertices< 3 >
typedef MemArrayBase< VertexDimsCoordsArray_t
 
- Public Types inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
typedef MemArray< VertexDims, RefPtr< FragmentID > > FragmentArray_t
 
- Public Types inherited from MemCore::StrongPtr< class Object, class ObjectBase >
typedef WeakPtr< Object, ObjectBase >::ObjectBase_t ObjectBase_t
 
- Public Types inherited from MemCore::WeakPtr< class Object, class 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< class Object, class 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_tgetCoords (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_tgetCoords (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< VertexDimsNumberOfFragments () const
 Get the number of fragments here as multi-dimensional index.
 
bool isValid () const
 
 RegularlyFragmentedGridWithCartesianVertices (const RefPtr< Grid > &theGrid)
 
bool assign (const RefPtr< Grid > &theGrid)
 
- Public Member Functions inherited from Fiber::RegularlyFragmentedGrid< VertexDims >
MultiIndex< VertexDimsNumberOfFragments () 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 MemCore::StrongPtr< class Object, class 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< class Object, class ObjectBase >
pointer_t getPtrValue () const
 
pointer_t operator-> () const
 
refvalue_toperator* () const
 
size_t operator~ () const
 
 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)
 
WeakPtrassignWeak (const WeakPtr &other)
 
WeakPtroperator= (const WeakPtr &other)
 
- Public Member Functions inherited from MemCore::DynPtr< class Object, class 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< class Object, class 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_tFragmentArray
 
- 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< class Object, class ObjectBase >
 WeakPtr (Object *that, const SelfInitialize &)
 
- Protected Member Functions inherited from MemCore::DynPtr< class Object, class 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

Verbose(0) << "<0,0,0 ----> " << U[{0,0,0}] << " <1,1,1> " << U[{1,1,1}] << " <2,2,2> " << U[{2,2,2}] << " Size " << U.Size() << " U delta = " << U.Delta();

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

Referenced by create(), create(), and create().