Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Fiber::RefinedFragmentSkeleton Class Reference

A relative representation from the fragments of one one Skeleton to the fragments of another Skeleton. More...

#include <RefinedFragmentSkeleton.hpp>

Inheritance diagram for Fiber::RefinedFragmentSkeleton:
Fiber::RelativeRepresentation Fiber::TypedGrid Eagle::StrongPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase >

Public Types

using FragmentMapping_t = std::vector<RefPtr<FragmentID>>
 The type used to store mapping from one fragment to another one.
using FragmentMappingArray_t = TypedArray<FragmentMapping_t>
 An array of fragment mappings.
using SkeletonFragment = std::tuple< const RefPtr<Skeleton>&, const RefPtr<FragmentID>&>
using KidIterator = std::function<bool(const SkeletonFragment&Parent, const SkeletonFragment&Kid)>
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

RefPtr< FieldgetParentChildFragmentField () const
const DynamicSizegetFragmentRefinementLayout () const
int getFragmentRefinementDimension () const
const RefPtr< Skeleton > & getParentSkeleton () const
const RefPtr< Skeleton > & getChildSkeleton () const
const FragmentMapping_tgetFragmentMappingArray (const RefPtr< FragmentID > &ParentFragmentID) const
 Get the array containing the fragment mapping, which is the field's only data.
bool setFragmentMappingArray (const RefPtr< FragmentID > &ParentFragmentID, const FragmentMapping_t &ChildFragments, int RefinementFragmentDims)
 Set a number of child fragment ID's for a given parent fragment ID.
bool assign (const RefPtr< Grid > &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid, int FragmentRefinementLayoutDimension)
 RefinedFragmentSkeleton (const RefPtr< Grid > &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid, int FragmentRefinementLayoutDimension)
 RefinedFragmentSkeleton (const Grid &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid, int FragmentRefinementLayoutDimension)
size_t getNumberOfChildren (const RefPtr< FragmentID > &ParentFragmentID) const
int iterateChildren (const RefPtr< FragmentID > &ParentFragmentID, const std::function< bool(const RefPtr< FragmentID > &KidID)> &F) const
int iterateChildren (const RefPtr< FragmentID > &ParentFragmentID, const std::function< bool(const RefPtr< FragmentID > &KidID, const RefPtr< Skeleton > &Parent, const RefPtr< Skeleton > &Child)> &F) const
int iterateChildren (const RefPtr< FragmentID > &ParentFragmentID, const KidIterator &F) const
Public Member Functions inherited from Fiber::RelativeRepresentation
RefPtr< FieldgetParentChildMapping () const
bool assign (const RefPtr< Grid > &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid)
 Get refinement information between two Skeletons on the same Grid.
bool assign (const RefPtr< Grid > &theParentGrid, const SkeletonID &ParentSid, const RefPtr< Grid > &theChildGrid, const SkeletonID &ChildSid)
 Get refinement information between different Grids.
 RelativeRepresentation (const RefPtr< Grid > &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid)
 RelativeRepresentation (const Grid &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid)
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

Static Public Member Functions

static RefPtr< TypedArray< FragmentMapping_t > > createFragmentMapping (const DynamicSize &theFragmentRefinementLayout)
static RefinedFragmentSkeleton create (Grid &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid, const DynamicSize &theFragmentRefinementLayout)
static RefinedFragmentSkeleton createRefinement (Grid &theGrid, const SkeletonID &S, const DynamicSize &theFragmentRefinementLayout, int refinement_increment=1)
Static Public Member Functions inherited from Fiber::RelativeRepresentation
static RelativeRepresentation create (Grid &theGrid, const SkeletonID &ParentSid, const SkeletonID &ChildSid)
static RelativeRepresentation createRefinement (Grid &theGrid, const SkeletonID &S, int refinement_increment=1)
Static Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
static const DynPtrgetNullPtr () noexcept

Public Attributes

RelativeRepresentation FragmentRefinement
Public Attributes inherited from Fiber::RelativeRepresentation
RefPtr< SkeletonParentSkeleton
RefPtr< SkeletonChildSkeleton
RefPtr< RepresentationParentChildRelation

Additional Inherited Members

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

Detailed Description

A relative representation from the fragments of one one Skeleton to the fragments of another Skeleton.

The fragments of one Skeleton are related to the fragments of another one.

Examples
XF_LineSetHierarchical.cpp, and XF_LineSetHierarchicalRegularized.cpp.

Member Function Documentation

◆ setFragmentMappingArray()

bool Fiber::RefinedFragmentSkeleton::setFragmentMappingArray ( const RefPtr< FragmentID > & ParentFragmentID,
const FragmentMapping_t & ChildFragments,
int RefinementFragmentDims )

Set a number of child fragment ID's for a given parent fragment ID.

This function will copy the given vector of fragment IDs and is only recommendable for a small number of fragment IDs. It does an explicit consistency check of the fragment IDs and their ownership according to the respective Skeletons.

Examples
XF_LineSetHierarchical.cpp, and XF_LineSetHierarchicalRegularized.cpp.