Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Wizt::Fish< Fiber::Grid > Struct Reference

A fish scale for dealing with dependencies on grid objects. More...

#include <FishGrid.hpp>

Inheritance diagram for Wizt::Fish< Fiber::Grid >:
Wizt::Fish< double > Wizt::Fish< VObject > Wizt::VSkale Wizt::VConnectable Wizt::VSlotContainer Wizt::VManagedObjectBase Wizt::VConnectionValidatorList Wizt::ValueCacheable MemCore::ReferenceBase< VManagedObjectBase > Wizt::GridOperatorObject< VObject > RandomPointDistribution Wizt::CorbenicField Wizt::FieldObject Wizt::GridOperatorObject< BaseClass > Wizt::OldLineSetOperator Wizt::SkeletonOperatorBase Wizt::VSkeletonRenderObject Wizt::VertexFieldCollection

Public Member Functions

 Fish (const string &s="grid", int prior=2)
 Constructor, optionally pass a parameter of this grid's name (ie.
virtual ~Fish ()
 Destructor.
void registerGridAsOutput ()
 Make grid visible as output.
Fiber::Bundle::GridInfo_t findMostRecentGrid (GridSelector &GS, const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const
 This is a convenience function to find the most recent grid for the current time ( Fish<Slice>() or virtual function getTime() ).
Fiber::Bundle::GridInfo_t findMostRecentGrid (const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const
 Find the most recent grid for the current time ( Fish<Slice>() or virtual function getTime() ).
virtual GridSelector getGridSelector (const RefPtr< ValuePool > &VP) const
 Provide the current Grid selector, which usually would be taken from the intrinsic TypedSlot, such as equivalent to:
Fiber::Info< Fiber::SkeletongetRefinementLevel (int Level, const RefPtr< ValuePool > &VP, int IndexDepth=0, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const override
 Get an refinement level for the given spacetime based on the GridSelector as returned by getGridSelector().
bool IterateLevelsOnMostRecentGrid (LevelIterator &LI, const RefPtr< ValuePool > &Context, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const
 Iterate over all the selected levels of a Grid via an instance of the LevelIterator.
RefPtr< Fiber::FieldgetField (const Fiber::FieldSelector &FS, const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr()))
 Retrieve a field for the given FieldSelector on the currently selected Grid.
Public Member Functions inherited from Wizt::Fish< double >
 Fish ()
 Default constructor.
 ~Fish ()
 Destructor.
virtual double getTime (const RefPtr< ValuePool > &VP, const RefPtr< Fiber::Bundle > &SpaceTime) const =0
 Most virtual time retrieval function.
virtual int getMaxRefinementLevel (const RefPtr< ValuePool > &VP) const
 Get the maximum refinement level that we seek to handle here.
virtual int getMinRefinementLevel (const RefPtr< ValuePool > &VP) const
bool IterateLevels (LevelIterator &LI, const Fiber::Info< Fiber::Grid > &G, const RefPtr< ValuePool > &Context) const
 Iterate over the diverse refinement levels of a Grid, which may exist at times different from the given coarsest grid.
Public Member Functions inherited from Wizt::VConnectable
virtual void adjustConnections (const RefPtr< VSlot > &ChangedSlot, const RefPtr< VParameter > &par)
VSlotContainer::AttachErrorCode attach (const ParameterID &whichone, VSlotContainer &sourceObject, const ParameterID &sourceName)
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={})
AttachErrorCode attachUniqueObject (const RefPtr< VParameter > &param, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true)
AttachErrorCode attachUniqueObject (const RefPtr< VSlot > &slot, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true)
RefPtr< VSlotConnect (const RefPtr< VParameter > &SourceParam)
RefPtr< VSlotConnectInterface (const RefPtr< VSlotContainer > &Provider, const RefPtr< InterfaceBase > &IB)
virtual bool CreatedFilteredConnection (const RefPtr< VParameter > &SourceParam)
Public Member Functions inherited from Wizt::VSlotContainer
Ageableage (const RefPtr< ValuePool > &VP)
const Ageableage (const RefPtr< ValuePool > &VP) const
const AgeableConnectionAge () const
bool ConnectionsHaveChanged (const RefPtr< ValuePool > &VP) const
bool HasYoungerInput (const RefPtr< ValuePool > &Context, int RecursionLevel=0) const
Ageable YoungestInput (const RefPtr< ValuePool > &Context) const
Ageable YoungestOutput (const RefPtr< ValuePool > &Context) const
Ageable YoungestUncachedInput (const RefPtr< ValuePool > &Context) const
bool CheckIfThereExistNewerOutputs (const VRequest &request, bool AdjustObjectAge) const
RefPtr< VSlotaddParameter (const ParameterID &name, int EL, const RefPtr< VParameter > &param, bool overwriteExistingSlot)
virtual bool allowParameterReplacement (const RefPtr< VParameter > &NewParam, const RefPtr< VParameter > &OldParam, const string &localName, int ExpertLevel)
virtual int connectSlots (const VSlotContainerPtr &vobj)
bool removeParameter (const ParameterID &s)
RefPtr< VParametergetParameter (const ParameterID &s) const
RefPtr< VSlotgetSlot (const ParameterID &s, int &EL) const
bool setSlotValueFromText (const ParameterID &s, const string &ValueText, const RefPtr< ValuePool > &VP, const string &theMember={})
RefPtr< VSlotfindSlot (const RefPtr< VParameter > &param) const
string getSlotName (const RefPtr< VParameter > &param) const
bool AddAction (const ParameterID &s, const RefPtr< ValueActionBase > &VAB)
bool AddAction (const RefPtr< VSlot > &ActionSlot, bool(DerivedObject::*Action)(const RefPtr< VValueBase > &value))
RefPtr< VParametermkUniqueParameterInput (const ParameterID &s, const string &ContainerName)
int getExpertLevel (const ParameterID &s) const
int setExpertLevel (const ParameterID &s, int EL)
int getExpertLevel (const RefPtr< VParameter > &) const
int getExpertLevel (const RefPtr< VSlot > &S) const
int setExpertLevel (const RefPtr< VSlot > &S, int EL)
int setExpertLevel (const RefPtr< VParameter > &s, int EL)
bool hasChanged (const ParameterID &s, const RefPtr< ValuePool > &Context) const
bool hasChanged (const RefPtr< VSlot > &, const RefPtr< ValuePool > &Context) const
bool hasChanged (const RefPtr< ValuePool > &Context, int n,...) const
bool hasChanged (RefPtr< ValuePool > Context,...) const
virtual bool ignoreInput (const RefPtr< VSlot > &theSlot) const
bool getParameterValue (Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP) const
bool getParameterValue (Type &Variable, const ParameterID &s, const VContext &C) const
bool getParameterValue (Type &Variable, const ParameterID &s, const VRequest &R) const
bool setParameterValue (const Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP, bool autoCreateLocalValue) const
bool setParameterValue (const Type &Variable, const ParameterID &s, VContext &C, bool autoCreateLocalValue) const
bool setParameterValue (const Type &Variable, const ParameterID &s, VRequest &R, bool autoCreateLocalValue=false) const
RefPtr< VSlotaddParam (const ParameterID &name, const Type &init, const RefPtr< VCreationPreferences > &VP=NullPtr(), int expertLevel=0, bool overwriteExistingSlot=true)
bool setParameterProperty (const ParameterID &param, const string &Properties, const RefPtr< VValueBase > &Value=NullPtr())
RefPtr< VSlotaddFloatParam (double init, const ParameterID &param, double min, double max, const RefPtr< VCreationPreferences > &IP=NullPtr(), int expertLevel=0)
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={})
int iterateParameters (int expertLevel, VSlotIterator &VIIt) const
int iterateInputSlots (int expertLevel, VSlotIterator &VIIt) const
int iterateInputs (VSlotIterator &VIIt, int expertLevel=0)
int iterate_inputs (const std::function< bool(VSlot &what, int ExpertLevel)>) const
RefPtr< VSlotgetUniqueInputSlot (const type_info &what)
int getNumberOfParameters (int expertLevel) const
virtual bool implements (const type_info &what) const
virtual RefPtr< VParametergetImplementation (const type_info &what, const string &name={}, const string &member={}) const
RefPtr< VSlotgetImplementationSlot (const type_info &what, const string &Name={}, const string &Member={}) const
VAcceptInfoList_t getAcceptInfoList (const std::type_info &request_type) const
bool provides (const RefPtr< VSlot > &OutputSlot) const
RefPtr< VSlotfindOutputSlot (const RefPtr< VParameter > &Who) const
bool isYounger (const RefPtr< VParameter > &OutputParam, const RefPtr< ValuePool > &VP) const
bool isNewlyConnected (const RefPtr< VParameter > &Who, const RefPtr< ValuePool > &VP) const
bool hasNewlyConnectedOutputs (const RefPtr< ValuePool > &VP) const
void findNewlyConnectedOutputs (const RefPtr< ValuePool > &VP, VSlotSet &WhichOnes) const
RefPtr< VSlotgetOutput (const string &Name) const
RefPtr< MemCore::StringListgetOutputs (const type_info &what=typeid(void)) const
virtual int iterateOutputs (VOutputIterator &VOut, const type_info &just_these=typeid(void)) const
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName={})
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName, const type_info &MemberType, const string &UseMember)
bool registerOutput (const RefPtr< VParameter > &P, const type_info &MemberType, const string &UseMember)
int getNumberOfInputs () const
int getNumberOfOutputs () const
bool hasChangedSlots (const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context) const
auto include_self (const std::tuple< SlotList... > &t) const -> decltype(std::tuple_cat(std::make_tuple(this), t))
Public Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
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 Attributes

TypedSlot< Fiber::GridMyGrid
Public Attributes inherited from Wizt::VSlotContainer
 AllLevels
 DestParameterNotFound
 InvalidDestParameter

Additional Inherited Members

Public Types inherited from Wizt::VSlotContainer
enum  AttachErrorCode
typedef void AcceptableInputTypes
typedef VSlotSet CreationSlots_t
typedef VSlot::Empty< I > Empty
Public Types inherited from MemCore::ReferenceBase< VManagedObjectBase >
typedef Object reference_domain_t
typedef WeakPtr< Object, Object > SelfPtr_t
Static Public Member Functions inherited from Wizt::VConnectable
static bool attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VParameter > &ProvidedParam, const string &Member={})
static bool attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VSlot > &SourceSlot, const string &Member={})
static bool detachSlot (const RefPtr< VSlot > &SourceSlot)
Static Public Member Functions inherited from Wizt::VSlotContainer
static const char * AttachErrorCodeMessage (AttachErrorCode)
static bool attachParameter (const RefPtr< VParameter > &theProvidedParam, const WeakPtr< VSlot > &theDestSlot, const string &theMember={})
Static Public Member Functions inherited from Wizt::ValueCacheable
static ValueCacheconsider (MemCore::Intercube &IC, const WeakPtr< VSlot > &VS, const RefPtr< ValuePool > &Context)
static ValueCachegetValueCache (MemCore::Intercube &IC)
static bool hasChangedSlots (const WeakPtrToVSlotContainer &theSlotOwner, const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context)
Protected Member Functions inherited from Wizt::VSlotContainer
virtual void setup (const CreationSlots_t &CreationSlots)
Protected Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
virtual void extremeUnction ()
ReferenceBaseoperator= (const ReferenceBase &R)
void suicide ()

Detailed Description

A fish scale for dealing with dependencies on grid objects.

VISH input objects and routines to retrieve a Grid object from a fiber bundle data set.

Constructor & Destructor Documentation

◆ Fish()

Wizt::Fish< Fiber::Grid >::Fish ( const string & s = "grid",
int prior = 2 )

Constructor, optionally pass a parameter of this grid's name (ie.

the name of the slot that will refer to a grid object).

References Fish().

Referenced by Wizt::FieldObject::FieldObject(), Fish(), ~Fish(), getField(), getRefinementLevel(), Wizt::VertexFieldCollection::getRefinementLevel(), and IterateLevelsOnMostRecentGrid().

Member Function Documentation

◆ findMostRecentGrid()

Fiber::Bundle::GridInfo_t Wizt::Fish< Fiber::Grid >::findMostRecentGrid ( GridSelector & GS,
const RefPtr< ValuePool > & VP,
const Fiber::BundlePtr & SpaceTime = Fiber::BundlePtr(NullPtr()) ) const

This is a convenience function to find the most recent grid for the current time ( Fish<Slice>() or virtual function getTime() ).

This is only valid when using the GridSelector of the Fish's Grid. If you add a secondary Grid via a TypedSlot<Grid> you must not use this function for the second Grid. Use the findMostRecentGrid() function of the GridSelector instead. Here is an example when accessing one Fish Grid and a secondary Grid in an update() function of a VObject derived from a Fish<Grid>:

GridSelector GS1, GS2;
MyGrid << R >> GS1; // get the GridSelector of the inherited Fish Grid
InGrid2 << R >> GS2; // get the GridSelector of the second Grid added with a TypedSlot<Grid>InGrid2
// get fish grid
// get second grid
double sectime = getTime(R, secBP);
Fiber::Bundle::GridInfo_t Grid2 = GS2.findMostRecentGrid( secBP, sectime );
Convenience class that implements a pointer to a Bundle object but adds some useful member funtions t...
Definition Bundle.hpp:779
Info< Grid > GridInfo_t
The information as returned by a query for Grids.
Definition Bundle.hpp:475
Context information to select a grid from within a bundle.
Definition GridSelector.hpp:26
Info< Grid > findMostRecentGrid(const Fiber::BundlePtr &theSpacetime, double time) const
Return the time, slice and grid that is most recent to the given time for the selected grid.
Definition GridSelector.hpp:153
BundlePtr theSourceBundle
The bundle that was used to retrieve the grid name, meaning: the selected grid name is ensured to exi...
Definition GridSelector.hpp:33
Fiber::Bundle::GridInfo_t findMostRecentGrid(GridSelector &GS, const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const
This is a convenience function to find the most recent grid for the current time ( Fish<Slice>() or v...
virtual double getTime(const RefPtr< ValuePool > &VP, const RefPtr< Fiber::Bundle > &SpaceTime) const =0
Most virtual time retrieval function.
Definition Fish.cpp:67
Parameters
GSReturn information about the current grid selection.
VPThe context relative to which this selection is to be made
SpaceTimeAn optional alternative spacetime from which this grid is retrieved. It will be queried under the same name and under the same time as here.

Referenced by findMostRecentGrid(), getField(), IterateLevelsOnMostRecentGrid(), Wizt::FragmentPainter::renderFragments(), Fiber::NamedField< FieldName >::update(), and Wizt::FieldObject::update().

◆ getField()

RefPtr< Field > Wizt::Fish< Fiber::Grid >::getField ( const Fiber::FieldSelector & FS,
const RefPtr< ValuePool > & VP,
const Fiber::BundlePtr & SpaceTime = Fiber::BundlePtr(NullPtr() ) )

Retrieve a field for the given FieldSelector on the currently selected Grid.

This field may possibly not exist yet on this Grid and must be computed first via EvalGrid(). This may be computationally intensive.

References Fish(), findMostRecentGrid(), and Fiber::GridField::getField().

◆ getGridSelector()

virtual GridSelector Wizt::Fish< Fiber::Grid >::getGridSelector ( const RefPtr< ValuePool > & VP) const
virtual

Provide the current Grid selector, which usually would be taken from the intrinsic TypedSlot, such as equivalent to:

MyGrid << VP >> GS;
return GS;

However, for special cases a child class may this function and take the GridSelector from another source.

Reimplemented in Wizt::VertexFieldCollection.

Referenced by Wizt::SkeletonOperatorBase::getTime(), and Fiber::NamedField< FieldName >::update().

◆ getRefinementLevel()

Fiber::Info< Fiber::Skeleton > Wizt::Fish< Fiber::Grid >::getRefinementLevel ( int Level,
const RefPtr< ValuePool > & VP,
int IndexDepth = 0,
const Fiber::BundlePtr & SpaceTime = Fiber::BundlePtr(NullPtr()) ) const
overridevirtual

Get an refinement level for the given spacetime based on the GridSelector as returned by getGridSelector().

Implements Wizt::Fish< double >.

Reimplemented in Wizt::VertexFieldCollection.

References Fish(), and Wizt::Fish< double >::IterateLevels().

◆ IterateLevelsOnMostRecentGrid()

bool Wizt::Fish< Fiber::Grid >::IterateLevelsOnMostRecentGrid ( LevelIterator & LI,
const RefPtr< ValuePool > & Context,
const Fiber::BundlePtr & SpaceTime = Fiber::BundlePtrNullPtr() ) ) const
inline

Iterate over all the selected levels of a Grid via an instance of the LevelIterator.

Use code like this in a subclass derived from Fish<Field> :

struct DataExtractor : LevelIterator
{
bool apply(const Fiber::Info<Fiber::Skeleton>&RefinementSkeleton,
int Level,
const RefPtr<Fiber::Grid>&GridWithCoarsetRefinementLevel,
const RefPtr<ValuePool>&Context) override
{
return true;
}
}
DE;
_Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply(_Tp __func(_Tp)) const
StrongPtr< Object, ObjectBase > RefPtr
Definition Lytica.hpp:7
Generic template namespace class for results of find() functions throughout the Bundle.
Definition Info.hpp:17
An iterator object to traverse over refinements level of a Grid, where these refinement levels may re...
Definition Fish.hpp:126
bool IterateLevels(LevelIterator &LI, const Fiber::Info< Fiber::Grid > &G, const RefPtr< ValuePool > &Context) const
Iterate over the diverse refinement levels of a Grid, which may exist at times different from the giv...
Definition Fish.cpp:86

References Fish(), and findMostRecentGrid().