Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Fiber::DataRangeBase Struct Referenceabstract

Base class for ranges that can be attached to Creators. More...

#include <RangeBase.hpp>

Inheritance diagram for Fiber::DataRangeBase:
Wizt::Interface< DataRangeBase > MemCore::Ageable MemCore::InterfaceBase MemCore::ReferenceBase< InterfaceBase > Fiber::DataRange< Type >

Classes

struct  NoDataRange

Public Types

typedef RefPtr< DataRangeBasecompute_range_and_set_attribute_func(CreativeArrayBase &CAB, const RefPtr< MemBase > &ArrayBase)
typedef RefPtr< DataRangeBaseget_range_if_older_than_creator_data_func(CreativeArrayBase &CAB)
Public Types inherited from Wizt::Interface< DataRangeBase >
typedef Domain InterfaceDomain_t
Public Types inherited from MemCore::ReferenceBase< InterfaceBase >
typedef Object reference_domain_t
typedef WeakPtr< Object, Object > SelfPtr_t

Public Member Functions

 DataRangeBase (DataRangeBase &Db)
 Copy Constructor.
 DataRangeBase ()
 Constructor, age will be youngest.
 DataRangeBase (const MemCore::Ageable &Age)
 Construct with specific age.
virtual ~DataRangeBase ()=0
 Pure virtual destructor.
virtual void expandRange (const RefPtr< DataRangeBase > &DRB)=0
 Append a given range, if possible. Child class might do type conversions.
virtual RefPtr< DataRangeBasegetFloatRange () const =0
 Virtual function to retrieve a general floating-point version of a range which may be any kind of integer or floating point number.
virtual std::string str () const =0
virtual RefPtr< DataRangeBasegetIndexedRange (const RefPtr< MemBase > &ArrayBase, const std::vector< uint32_t > &index_array) const =0
virtual RefPtr< DataRangeBasegetIndexedRange (const RefPtr< MemBase > &ArrayBase, const std::vector< size_t > &index_array) const =0
Public Member Functions inherited from Wizt::Interface< DataRangeBase >
const type_infogetInterfaceDomain () const
Public Member Functions inherited from MemCore::InterfaceBase
virtual bool apply (Intercube &I, const RefPtr< InterfaceIterationParameter > &)
virtual bool apply_const (const Intercube &I, const RefPtr< InterfaceIterationParameter > &)
Public Member Functions inherited from MemCore::ReferenceBase< InterfaceBase >
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 Member Functions inherited from MemCore::Ageable
constexpr Ageable (age_t t) noexcept
constexpr Ageable (const Ageable &A) noexcept
 Ageable (const volatile Ageable &A) noexcept
constexpr const AgeablegetAge () const
bool isNewerThan (const Ageable &a) const noexcept
bool isOlderThan (const Ageable &a) const noexcept
bool isYoungerThan (const Ageable &a) const noexcept
bool operator!= (const Ageable &a) const noexcept
bool operator< (const Ageable &a) const noexcept
bool operator<= (const Ageable &a) const noexcept
bool operator<= (const volatile Ageable &a) const volatile noexcept
bool operator== (const Ageable &a) const noexcept
bool operator> (const Ageable &a) const noexcept
bool operator> (const volatile Ageable &a) const volatile
bool operator>= (const Ageable &a) const noexcept
bool operator>= (const volatile Ageable &a) const volatile noexcept
constexpr void resetAge () noexcept
void setInfinitelyNew () noexcept
age_t time_value () const noexcept
age_t time_value () const volatile noexcept
Ageabletouch () noexcept
age_t update (age_t age) noexcept
age_t update (const Ageable &Other) noexcept
age_t update (const volatile Ageable &Other) volatile noexcept

Static Public Member Functions

static void clear (CreativeArrayBase &CAB)
static void clear (Field &F)
static RefPtr< MemCore::ChunkBaseget_range_attribute (const Field &F)
static RefPtr< DataRangeBaseget_cached_rangebase_if_older_than_field (const Field &F)
static bool need_to_recompute (const Field &F)
static void setRangeCompleteness (Field &F, unsigned nFragments, unsigned FragmentsNotUsedForRangeComputation)
static bool isRangeComplete (Field &F)
static void computeRangeOnAvailableFragments (Field &F, compute_range_and_set_attribute_func *typed_compute_function, get_range_if_older_than_creator_data_func *range_determinator, bool RequestToLoadMore=false)
Static Public Member Functions inherited from MemCore::Ageable
static const AgeableInfinitelyNew () noexcept
static constexpr const AgeableInfinitelyOld () noexcept
static age_t now () noexcept

Additional Inherited Members

Protected Member Functions inherited from MemCore::ReferenceBase< InterfaceBase >
virtual void extremeUnction ()
ReferenceBaseoperator= (const ReferenceBase &R)
void suicide ()

Detailed Description

Base class for ranges that can be attached to Creators.

Member Function Documentation

◆ expandRange()

virtual void Fiber::DataRangeBase::expandRange ( const RefPtr< DataRangeBase > & DRB)
pure virtual

Append a given range, if possible. Child class might do type conversions.

Implemented in Fiber::DataRange< Type >.

◆ getFloatRange()

virtual RefPtr< DataRangeBase > Fiber::DataRangeBase::getFloatRange ( ) const
pure virtual

Virtual function to retrieve a general floating-point version of a range which may be any kind of integer or floating point number.

Synopsis:

if (RefPtr<DataRange<double>> R = HeightRange->getFloatRange() )
{
double diff = R[1] - R[0]; // or whatever
}
StrongPtr< Object, ObjectBase > RefPtr
Class for ranges of types, such as minimum/maximum.
Definition Range.hpp:379
RefPtr< DataRangeBase > getFloatRange() const override
Always double precison!
Definition Range.hpp:426

If the range type is not a scalar but something derived from a FixedArray, then this function will return a corresponding FixedArray<double,?> .

Implemented in Fiber::DataRange< Type >.

References DataRangeBase().