Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Fiber::FiberIO::HDF5::ContiguousFragmentLoader Struct Reference
Inheritance diagram for Fiber::FiberIO::HDF5::ContiguousFragmentLoader:
Fiber::FiberIO::HDF5::FragmentLoader Fiber::FiberIO::HDF5::PrecisionTransformation

Public Member Functions

 ContiguousFragmentLoader (GridLoader &theGridLoader, const RefPtr< Skeleton > &theContainingSkeleton, const RefPtr< Representation > &theRepresentation, const RefPtr< Field > &CurrentField, const string &FieldNameInFile, const RefPtr< H5Group > &theFieldGroup, const RefPtr< LoaderProgress > &lp, const WeakPtr< StorageTransformations::IOPerformance > &LoadPerformance, const RefPtr< FiberTypeBase > &TheFiberType, const string &the_path_info, const WeakPtr< Fiber::Skeleton > &theRepresentationTarget, F5Path *field, int NumberOfFields, int CurrentFieldNumber)
bool loadAllFragments (F5Path *field)
herr_t apply (F5Path *field, const char *fragmentname) override
Public Member Functions inherited from Fiber::FiberIO::HDF5::FragmentLoader
 FragmentLoader (GridLoader &theGridLoader, const RefPtr< Skeleton > &theContainingSkeleton, const RefPtr< Representation > &theRepresentation, const RefPtr< Field > &CurrentField, const string &FieldNameInFile, const RefPtr< H5Group > &theFieldGroup, const RefPtr< LoaderProgress > &lp, const WeakPtr< StorageTransformations::IOPerformance > &LoadPerformance, const RefPtr< FiberTypeBase > &TheFiberType, const string &the_path_info)
bool getFragmentNames (FragmentNames_t &, F5Path *field)
herr_t iterate (F5Path *field)
herr_t loadContiguousFragment (F5Path *field, const char *fragmentname, const WeakPtr< Fiber::Skeleton > &theRepresentationTarget)
herr_t loadUniformFragment (F5Path *field, const char *fragmentname)
bool loadViaFragmentCache (const RefPtr< H5Group > &)
Public Member Functions inherited from Fiber::FiberIO::HDF5::PrecisionTransformation
void setFragmentFiberType (const RefPtr< FiberTypeBase > &TheFiberType)
bool doTransformPrecision () const
 PrecisionTransformation (const RefPtr< FiberTypeBase > &)
RefPtr< CreativeArrayBasenewCreator (const RefPtr< LoaderProgress > &TheLoaderProgressor, const F5Fragment &theFragment, const DynamicSize &SI, const RefPtr< FiberIO::HDF5::FileNameInterface > &FragmentFileInfo, const WeakPtr< StorageTransformations::IOPerformance > &theLoadPerformance, const string &fragmentname, const string &FieldSource) const
void shiftAttributes (Attributes &A)
 Modify attributes such as the range if the precision is changed during I/O.

Public Attributes

MemCore::WeakPtr< Fiber::SkeletonmyRepresentationTarget
int NumberOfFields = 0
int CurrentFieldNumber = 0
Public Attributes inherited from Fiber::FiberIO::HDF5::FragmentLoader
GridLoadermyGridLoader
RefPtr< SkeletonmySkeleton
RefPtr< FieldMyField
RefPtr< H5GroupmyFieldGroup
RefPtr< LoaderProgressLP
WeakPtr< StorageTransformations::IOPerformanceLoadPerformance
string path_info
int GroupEntries = 0
hid_t type_class_id = -1
RefPtr< H5GroupAccessGroupAccess
RefPtr< H5DatasetAccessDatasetAccess
RefPtr< H5FileAccessmyVFD
std::unordered_set< std::stringIgnoreAttributesOnLoad
Public Attributes inherited from Fiber::FiberIO::HDF5::PrecisionTransformation
RefPtr< FiberTypeBaseFieldFiberType
 The type how it shall appear in the fiber bundle field.
RefPtr< FiberTypeBaseFragmentFiberType
RefPtr< FiberTypeBaseNativeFiberType
 The type how it is in the file, if its different.

Additional Inherited Members

Public Types inherited from Fiber::FiberIO::HDF5::FragmentLoader
using FragmentNames_t = std::vector<string>
Static Public Member Functions inherited from Fiber::FiberIO::HDF5::PrecisionTransformation
static bool readPossiblyConvertedData (RefPtr< MemBase > &NewData, CreativeArrayBase &theCreator)
 Function is similar to CreativeArrayBase::create() but more efficient than raw HDF5 in case data need to be converted from float to double precision upon reading.
static bool possiblyShiftData (RefPtr< MemBase > &NewData, CreativeArrayBase &theCreator)
static std::pair< bool, hid_t > getFileType (const StorageTransformations::FilterSettings &FS, hid_t Mem_type_hid, const Fiber::Field &theField, F5Path *myPath)
 Determine whether that specific field thing shall be written in single precision.
static void adjustFileWriteInformation (const StorageTransformations::FilterSettings &FS, CreativeArrayBase &FieldFragmentAttributes, Attributes &OverrideStorageAttributes, AttributeSet_t &DontSaveAttributeSet, RefPtr< ChunkBase > &Mb, bool WriteDoubleTypeInSinglePrecision, bool Write_Shifted_Single_Precision_Range)
 Modify the information that will be written to the file.
static void adjustAttributeWriteInformation (const CreativeArrayBase &FragmentAttributes, Attributes &OverrideStorageAttributes, bool Write_Shifted_Single_Precision_Range)
static RefPtr< Chunk< Eagle::point3f > > reduce_to_single_precision (const FixedArray< double, 3 > &Shift, const Chunk< Eagle::point3 > &Input)
static RefPtr< Chunk< Eagle::point3 > > expand_to_double_precision (const FixedArray< double, 3 > &Shift, const Chunk< Eagle::point3f > &Input)
Static Public Attributes inherited from Fiber::FiberIO::HDF5::PrecisionTransformation
static constexpr const char NumericalShiftAttributeName [] = FIBER_FRAGMENT_NUMERICALSHIFT_ATTRIBUTE

Member Function Documentation

◆ apply()

herr_t Fiber::FiberIO::HDF5::ContiguousFragmentLoader::apply ( F5Path * field,
const char * fragmentname )
overridevirtual

◆ loadAllFragments()

bool Fiber::FiberIO::HDF5::ContiguousFragmentLoader::loadAllFragments ( F5Path * field)

Indicate that the data managed here are already saved, and their "last saved" time is identical to the construction time of this Creator.

Create a self-representation just to store the fragment ID collection in the Skeleton. The field is empty and has no data, so nothing to save here. This is a workaround that should not be required unless new fields are created without having data loaded, which otherwise goes via the GridLoader's SkeletonFragmentIDCollections registry. Thus, this could should not be needed and the version below should do.

Indicate that the data managed here are already saved, and their "last saved" time is identical to the construction time of this Creator.

Indicate that the data managed here are already saved, and their "last saved" time is identical to the construction time of this Creator.

Indicate that the data managed here are already saved, and their "last saved" time is identical to the construction time of this Creator.

References Fiber::FiberIO::HDF5::PrecisionTransformation::FieldFiberType, H5DataType::is_committed(), Fiber::FiberIO::HDF5::FragmentLoader::loadViaFragmentCache(), Fiber::FiberIO::HDF5::PrecisionTransformation::NativeFiberType, Fiber::H5ID::retrieve(), MemCore::Timer::secs(), Fiber::FiberIO::HDF5::PrecisionTransformation::setFragmentFiberType(), Fiber::FiberIO::HDF5::PrecisionTransformation::shiftAttributes(), std::vector< typename _Tp, typename _Alloc >::size(), and MemCore::to_string().