MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLTools/include/mlTVirtualVolume.h File Reference

Defines and implements management and access classes for random access to a paged image or a pure virtual image created on access time. More...

#include "MLToolsSystem.h"
#include "mlVirtualVolume.h"
#include "mlBitImage.h"

Go to the source code of this file.

Classes

class  ml::TVirtualVolume< DATATYPE >
 The TVirtualVolume class implements random access to a paged input image or a pure virtual image without mapping more than a limited number of bytes. Pages of the input volume are mapped temporarily into memory when needed. If no input volume is specified the pages are created and filled with a fill value. When the permitted amount of memory is exceeded then older mapped pages are removed. When pages are written they are mapped until the virtual volume instance is removed or if they are explicitly cleared by the application. More...

Namespaces

namespace  ml
 

Define the namespace name like in the ML. Default is ml.


Defines

Move cursor to next lower position. The *E versions throw ML_OUT_OF_RANGE exceptions when outside the image.
#define _VV_MOVEBE_TEST(Q)   if (_cPos.Q >= 0){ _cPageIdx -= _strides.Q; } else{ _cPos.Q++; _cIdx += _pStrides.Q; throw(ML_OUT_OF_RANGE); }
 Macro to save cursor movement with exception handling if outside image.

Detailed Description

Defines and implements management and access classes for random access to a paged image or a pure virtual image created on access time.

Author:
Wolf Spindler
Date:
5/2002

This is a wrapper for the VirtualVolume class specialized to a certain data type and with data access functions. Creation is not very expensive, so it can be done e.g. in each calcOutSubImg. It implements fast getValue and setValue access methods to image data. Both call optimized functions for image extents and data type. See class documentation for further class description by an example.

Definition in file mlTVirtualVolume.h.


Define Documentation

#define _VV_MOVEBE_TEST (   Q)    if (_cPos.Q >= 0){ _cPageIdx -= _strides.Q; } else{ _cPos.Q++; _cIdx += _pStrides.Q; throw(ML_OUT_OF_RANGE); }

Macro to save cursor movement with exception handling if outside image.

If called then we're out of page. So test if also out of image. If not then update page index. If yes then correct cursor pos and throw exception.

Definition at line 1051 of file mlTVirtualVolume.h.

Referenced by ml::TVirtualVolume< DATATYPE >::_moveBCE(), ml::TVirtualVolume< DATATYPE >::_moveBTE(), ml::TVirtualVolume< DATATYPE >::_moveBUE(), ml::TVirtualVolume< DATATYPE >::_moveBXE(), ml::TVirtualVolume< DATATYPE >::_moveBYE(), and ml::TVirtualVolume< DATATYPE >::_moveBZE().