MeVisLab Toolbox Reference
ml::XYLibReaderPlugin Class Reference

Representation for the DM file as data structure. More...

#include <mlXYLibReaderPlugin.h>

Inheritance diagram for ml::XYLibReaderPlugin:
ml::FileReaderPluginsBase

Public Member Functions

 XYLibReaderPlugin ()
 Constructor. More...
 
 ~XYLibReaderPlugin () override
 Destructor. If still open the the file will also be closed. More...
 
bool isSupported (const std::string &fileName) const override
 Applies a fast check whether the file is probably supported or not, for
example via the suffix. More...
 
double getPluginPriority () const override
 XYLibReaderPlugin might detect a loadable file which actually is of another format. More...
 
MLErrorCode loadFile (const std::string &fileName) override
 Opens and loads a file such that getPagedImageProperties() and fillSubImage() can be used to retrieve information from the file. More...
 
size_t getNumberOfImagesInFile () override
 Returns the number of images which are accessible in the loaded file; normally one, but some formats can contain more than on image per file. More...
 
const PagedImagegetPagedImageProperties () override
 Returns the image properties of the currently loaded image. More...
 
MLErrorCode fillSubImage (SubImage &dstSubImage) override
 Copy overlapping regions in dstSubImage with image data from the loaded file; note that the calculation of the overlapping region depends on whether a PagedImage was set with setReferenceForFillingInReferenceCoordinates or not. More...
 
std::string getTagDump (const size_t maxNumBinaryEntries=8, const size_t maxNumStringEntries=20) override
 This function returns a tag dump of the loaded file or "" if not possible. More...
 
void close () override
 Closes the file and cleans up data structures. More...
 
bool supportsFillingInReferenceCoordinates () const override
 Returns true if the loader instance support SubImage filling in reference coordinates, otherwise false. More...
 
virtual const XYLibHeadergetHeader () const
 For convenience allow access to _header. More...
 
- Public Member Functions inherited from ml::FileReaderPluginsBase
 FileReaderPluginsBase ()
 Constructor. More...
 
virtual ~FileReaderPluginsBase ()
 Destructor cleaning up allocated structures and closing a possibly open file. More...
 
virtual std::string getCodedImageIndexString (unsigned int imgIdx)
 If getNumberOfImagesInFile() is <=1 then the plugin string id getTypeId()->getName() is returned, otherwise the string getTypeId()->getName() plus "*#" and the imgIdx. More...
 
virtual unsigned int extractImageIndexValue (const std::string &codedLoaderPluginString)
 From a string of the format "LoaderPluginName+#IDX" extract "IDX" as unsigned int, check whether it is smaller than the number of images in getNumberOfImagesInFile() and if yes then return it. More...
 
virtual void setSelectedImageIndex (size_t idx=0)
 Selects which image from inside the loaded file shall be used. More...
 
virtual size_t getSelectedImageIndex () const
 Returns the currently selected image from inside the loaded file. More...
 
virtual void setReferenceForFillingInReferenceCoordinates (const PagedImage *refImg=nullptr)
 If a valid PagedImage pointer is passed then each fillSubImage operation will take into account the difference between the world origin of the given reference PagedImage and ensure that the copySubImage operation fills dstSubImg in world coordinates of refImg; if nullptr is passed then subimage data will be copied from the file assuming that it is located at voxel coordinates (0,0,0,0,0,0) Loaders which do not support world coordinates will silently ignore the given reference image. More...
 
virtual const PagedImagegetReferenceForFillingInReferenceCoordinates () const
 Returns the recently set "enabled" state set with setSubImageFillingInReferenceCoordinates(). More...
 

Static Public Member Functions

static std::string getStringIdentifier ()
 Returns the string identifier for this plugin. More...
 
- Static Public Member Functions inherited from ml::FileReaderPluginsBase
static FileReaderPluginsBasecreateLoaderInstance (const std::string &fileName)
 Factory functionality: Instantiate a loader for the file name fileName and return a new instance of it or return nullptr if no loader can be created. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ml::FileReaderPluginsBase
ImageVector _determineWorldDifferenceAsVoxelShift (const PagedImage &destination) const
 Determines a translation vector for SubImages boxes which represents the world difference between the given two PagedImage. More...
 

Detailed Description

Representation for the DM file as data structure.

Definition at line 33 of file mlXYLibReaderPlugin.h.

Constructor & Destructor Documentation

◆ XYLibReaderPlugin()

ml::XYLibReaderPlugin::XYLibReaderPlugin ( )

Constructor.

◆ ~XYLibReaderPlugin()

ml::XYLibReaderPlugin::~XYLibReaderPlugin ( )
override

Destructor. If still open the the file will also be closed.

Member Function Documentation

◆ close()

void ml::XYLibReaderPlugin::close ( )
overridevirtual

Closes the file and cleans up data structures.

Property requests and fillSubImage calls will not operate successfully any more after this call.

Implements ml::FileReaderPluginsBase.

◆ fillSubImage()

MLErrorCode ml::XYLibReaderPlugin::fillSubImage ( SubImage dstSubImage)
overridevirtual

Copy overlapping regions in dstSubImage with image data from the loaded file; note that the calculation of the overlapping region depends on whether a PagedImage was set with setReferenceForFillingInReferenceCoordinates or not.

Loaders which do not support filling in reference coordinates (which return false on supportsFillingInReferenceCoordinates()) will silently ignore the reference image.

Parameters
dstSubImageThe subimage to be filled with data from the loaded file where the image regions overlap. Non overlapping regions are left unchanged.
Returns
ML_RESULT_OK on success or an error or a descriptive code explaining the error. On error free operation and empty overlapping region also ML_RESULT_OK is returned.

Implements ml::FileReaderPluginsBase.

◆ getHeader()

virtual const XYLibHeader& ml::XYLibReaderPlugin::getHeader ( ) const
virtual

For convenience allow access to _header.

◆ getNumberOfImagesInFile()

size_t ml::XYLibReaderPlugin::getNumberOfImagesInFile ( )
overridevirtual

Returns the number of images which are accessible in the loaded file; normally one, but some formats can contain more than on image per file.

Implements ml::FileReaderPluginsBase.

◆ getPagedImageProperties()

const PagedImage& ml::XYLibReaderPlugin::getPagedImageProperties ( )
overridevirtual

Returns the image properties of the currently loaded image.

Validity can be determined with isValid() on returned object.

Implements ml::FileReaderPluginsBase.

◆ getPluginPriority()

double ml::XYLibReaderPlugin::getPluginPriority ( ) const
overridevirtual

XYLibReaderPlugin might detect a loadable file which actually is of another format.

Known collisions are, for example, that .raw files of DMFileReaderPlugin are recognized as readable. Therefore use this plugin only if no other loader is found and return the smallest possible priority value. [0,1] is the allowed range, i.e. use 0.

Reimplemented from ml::FileReaderPluginsBase.

◆ getStringIdentifier()

static std::string ml::XYLibReaderPlugin::getStringIdentifier ( )
static

Returns the string identifier for this plugin.

◆ getTagDump()

std::string ml::XYLibReaderPlugin::getTagDump ( const size_t  maxNumBinaryEntries = 8,
const size_t  maxNumStringEntries = 20 
)
overridevirtual

This function returns a tag dump of the loaded file or "" if not possible.

Parameters maxNumBinaryEntries and maxNumStringEntries are ignored by this loader.

Reimplemented from ml::FileReaderPluginsBase.

◆ isSupported()

bool ml::XYLibReaderPlugin::isSupported ( const std::string &  fileName) const
overridevirtual

Applies a fast check whether the file is probably supported or not, for
example via the suffix.

If false is returned then file is definitely not loadable; if true then opening with loadFile() is worth a try.

Implements ml::FileReaderPluginsBase.

◆ loadFile()

MLErrorCode ml::XYLibReaderPlugin::loadFile ( const std::string &  fileName)
overridevirtual

Opens and loads a file such that getPagedImageProperties() and fillSubImage() can be used to retrieve information from the file.

Corresponding close is performed with close() or the destructor.

Parameters
fileNameThe absolute path to the file to be loaded.
Returns
ML_RESULT_OK on successfully opened file or a descriptive code explaining the error.

Implements ml::FileReaderPluginsBase.

◆ supportsFillingInReferenceCoordinates()

bool ml::XYLibReaderPlugin::supportsFillingInReferenceCoordinates ( ) const
overridevirtual

Returns true if the loader instance support SubImage filling in reference coordinates, otherwise false.

Reimplemented from ml::FileReaderPluginsBase.


The documentation for this class was generated from the following file: