MeVisLab Toolbox Reference
ml::TVirtualVolume< DATATYPE > Class Template Reference

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...

#include <mlTVirtualVolume.h>

Public Types

typedef DATATYPE ComponentType
 A typedef to "export" the type of voxels components.
 

Public Member Functions

 TVirtualVolume (VirtualVolume &vVol)
 Constructor 1.
 
 TVirtualVolume (PagedImage *image, MLint maxNumKB=-1, bool areExceptionsOn=false)
 Convenience constructor (2) creating an untyped virtual volume inside the typed one to avoid additional management of the untyped instance.
 
 TVirtualVolume (const ImageVector &ext, MLdouble fillVal=0, MLint maxNumKB=-1, bool areExceptionsOn=false)
 Convenience constructor (3) creating an untyped virtual volume inside the typed one to avoid additional management of the untyped instance.
 
virtual ~TVirtualVolume ()
 Destructor.
 
VirtualVolumegetVirtualVolume ()
 Returns the pointer to the wrapped untyped virtual volume.
 
void getValues (const ImageVector *pos, DATATYPE *results, MLuint num)
 Get a set of voxels from the virtual volume.
 
DATATYPE getValue (const ImageVector &pos)
 Get a voxel value from the virtual volume.
 
void setValue (const ImageVector &pos, DATATYPE data)
 Write a voxel into the virtual volume.
 
void setCursorPosition (const ImageVector &pos)
 Set the cursor to a certain position.
 
const ImageVectorgetCursorPosition () const
 Return the current cursor coordinates.
 
void setCursorValue (DATATYPE val)
 Set value under cursor and lock page.
 
DATATYPE getCursorValue ()
 Return value under cursor.
 
bool isMapped (const ImageVector &pos) const
 Returns true if voxel is mapped into memory, otherwise it returns false.
 
void moveCursorByOffset (const ImageVector &off)
 Shift cursor to current position + offset.
 
void fill (const SubImageBox &box, DATATYPE value)
 Fill the area box in the virtual image with voxel value value.
 
void copyToSubImage (TSubImage< DATATYPE > &outSubImg)
 Copy area from the virtual volume into the subimage given by outSubImg.
 
void copyFromSubImage (const TSubImage< DATATYPE > &inImg, const SubImageBox &box, const ImageVector &pos)
 Copy the area given by box from inImg to the position p of the virtual volume.
 
template<typename OUTDTYPE >
void copyMaskToSubImage (TSubImage< OUTDTYPE > &outSubImg, BitImage &maskBits, bool maskValue=true, bool writeBK=false, OUTDTYPE bkVal=ml_cast_from_scalar< OUTDTYPE >(0))
 Takes overlapping region from *this, outSubImg and maskBits and copies all voxels from *this to outSubImg if the corresponding bit in maskBits has the value maskValue.
 
DATATYPEgetWrittenPageData (MLuint32 wp) const
 Returns typed pointer to data of written page with page id wp.
 
Move cursor to next higher/lower position.
void moveCursorX ()
 
void moveCursorY ()
 
void moveCursorZ ()
 
void moveCursorC ()
 
void moveCursorT ()
 
void moveCursorU ()
 
void reverseMoveCursorX ()
 
void reverseMoveCursorY ()
 
void reverseMoveCursorZ ()
 
void reverseMoveCursorC ()
 
void reverseMoveCursorT ()
 
void reverseMoveCursorU ()
 
Linear image traversal.

Set cursor to default position (0,0,0,0,0,0).

void resetCursor ()
 Set cursor to default position (0,0,0,0,0,0).
 
bool moveCursorXWrapAround ()
 Special cursor move: Increment x coordinate of cursor.
 

Static Public Member Functions

static MLint getIntValueWrapped (void *vv, const ImageVector &pos)
 Wrapper functions for non template application interfaces.
 
static MLint64 getInt64ValueWrapped (void *vv, const ImageVector &pos)
 
static MLdouble getDoubleValueWrapped (void *vv, const ImageVector &pos)
 
static MLldouble getLDoubleValueWrapped (void *vv, const ImageVector &pos)
 
static MLint getIntCursorValueWrapped (void *vv)
 
static MLint64 getInt64CursorValueWrapped (void *vv)
 
static MLdouble getDoubleCursorValueWrapped (void *vv)
 
static MLldouble getLDoubleCursorValueWrapped (void *vv)
 
static const ImageVectorgetCursorPositionWrapped (void *vv)
 
static bool isMappedWrapped (void *vv, const ImageVector &pos)
 
static void setCursorPositionWrapped (void *vv, const ImageVector &pos)
 
static void setIntValueWrapped (void *vv, const ImageVector &pos, MLint v)
 
static void setInt64ValueWrapped (void *vv, const ImageVector &pos, MLint64 v)
 
static void setDoubleValueWrapped (void *vv, const ImageVector &pos, MLdouble v)
 
static void setLDoubleValueWrapped (void *vv, const ImageVector &pos, MLldouble v)
 
static void setIntCursorValueWrapped (void *vv, MLint v)
 
static void setInt64CursorValueWrapped (void *vv, MLint64 v)
 
static void setDoubleCursorValueWrapped (void *vv, MLdouble v)
 
static void setLDoubleCursorValueWrapped (void *vv, MLldouble v)
 
static void fillIntWrapped (void *vv, const ImageVector &v1, const ImageVector &v2, MLint v)
 
static void fillInt64Wrapped (void *vv, const ImageVector &v1, const ImageVector &v2, MLint64 v)
 
static void fillDoubleWrapped (void *vv, const ImageVector &v1, const ImageVector &v2, MLdouble v)
 
static void fillLDoubleWrapped (void *vv, const ImageVector &v1, const ImageVector &v2, MLldouble v)
 
static void moveCursorXWrapped (void *vv)
 
static void moveCursorYWrapped (void *vv)
 
static void moveCursorZWrapped (void *vv)
 
static void moveCursorCWrapped (void *vv)
 
static void moveCursorTWrapped (void *vv)
 
static void moveCursorUWrapped (void *vv)
 
static void reverseMoveCursorXWrapped (void *vv)
 
static void reverseMoveCursorYWrapped (void *vv)
 
static void reverseMoveCursorZWrapped (void *vv)
 
static void reverseMoveCursorCWrapped (void *vv)
 
static void reverseMoveCursorTWrapped (void *vv)
 
static void reverseMoveCursorUWrapped (void *vv)
 
static void moveCursorByOffsetWrapped (void *vv, const ImageVector &off)
 
static void resetCursorWrapped (void *vv)
 
static bool moveCursorXWrapAroundWrapped (void *vv)
 

Protected Member Functions

 TVirtualVolume ()
 Hide the default constructor to avoid incorrect usage due to missing initializations.
 
TVirtualVolumeoperator= (const TVirtualVolume &)
 Hide the default assignment operator to avoid incorrect usage due to missing initializations.
 
void _init (VirtualVolume &vVol)
 Initialize the typed virtual volume. A valid virtual volume should be passed.
 
void _cleanUp ()
 Clean up all settings. Implements the destruction sequence.
 
Both with and without tests and exceptions is implemented.
DATATYPE _getVoxel1D (const ImageVector &pos)
 Get voxel method for a certain dimension. (1d)
 
DATATYPE _getVoxel2D (const ImageVector &pos)
 Get voxel method for a certain dimension. (2d)
 
DATATYPE _getVoxel3D (const ImageVector &pos)
 Get voxel method for a certain dimension. (3d)
 
DATATYPE _getVoxel4D (const ImageVector &pos)
 Get voxel method for a certain dimension. (4d)
 
DATATYPE _getVoxel5D (const ImageVector &pos)
 Get voxel method for a certain dimension. (5d)
 
DATATYPE _getVoxel6D (const ImageVector &pos)
 Get voxel method for a certain dimension. (6d)
 
DATATYPE _getVoxel1DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (1D)
 
DATATYPE _getVoxel2DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (2d)
 
DATATYPE _getVoxel3DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (3d)
 
DATATYPE _getVoxel4DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (4d)
 
DATATYPE _getVoxel5DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (5d)
 
DATATYPE _getVoxel6DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (6d)
 
Implementation of 6 setValue versions, optimized to the image dimensions.

In all functions first calculate the page index by dividing the coordinate components by their page extents and by multiplying them with _strides.

Then call the page data access function by calling the function pointer in the page. That function maps the page if necessary. Then compute the index into that page by multiplying the coordinate components with _pStrides. Both with and without tests and exceptions is implemented.

void _setVoxel1D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (1d)
 
void _setVoxel2D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (2d)
 
void _setVoxel3D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (3d)
 
void _setVoxel4D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (4d)
 
void _setVoxel5D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (5d)
 
void _setVoxel6D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (6d)
 
void _setVoxel1DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (1d)
 
void _setVoxel2DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (2d)
 
void _setVoxel3DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (3d)
 
void _setVoxel4DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (4d)
 
void _setVoxel5DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (5d)
 
void _setVoxel6DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (6d)
 
Implementation of 6 isMapped versions, optimized to the image dimensions.

In all functions first calculate the page index by dividing the coordinate components by their page extents and by multiplying them with _strides.

Then it looks whether the function to access the page is set or the load page function. Both with and without tests and exceptions is implemented.

bool _isMapped1D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (1d)
 
bool _isMapped2D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (2d)
 
bool _isMapped3D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (3d)
 
bool _isMapped4D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (4d)
 
bool _isMapped5D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d)
 
bool _isMapped6D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d)
 
bool _isMapped1DE (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (1d) Throws exception if out of range.
 
bool _isMapped2DE (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (2d) Throws exception if out of range.
 
bool _isMapped3DE (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (3d) Throws exception if out of range.
 
bool _isMapped4DE (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (4d) Throws exception if out of range.
 
bool _isMapped5DE (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d) Throws exception if out of range.
 
bool _isMapped6DE (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d) Throws exception if out of range.
 
Set the cursor to a certain position in 1D-6D, without and with exceptions.

Cursor offsetting implementation.

void _setCursorPos1D (const ImageVector &p)
 Set cursor position for a certain dimension. (1d)
 
void _setCursorPos2D (const ImageVector &p)
 Set cursor position for a certain dimension. (2d)
 
void _setCursorPos3D (const ImageVector &p)
 Set cursor position for a certain dimension. (3d)
 
void _setCursorPos4D (const ImageVector &p)
 Set cursor position for a certain dimension. (4d)
 
void _setCursorPos5D (const ImageVector &p)
 Set cursor position for a certain dimension. (5d)
 
void _setCursorPos6D (const ImageVector &p)
 Set cursor position for a certain dimension. (6d)
 
void _setCursorPos1DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (1d)
 
void _setCursorPos2DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (2d)
 
void _setCursorPos3DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (3d)
 
void _setCursorPos4DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (4d)
 
void _setCursorPos5DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (5d)
 
void _setCursorPos6DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (6d)
 
void _moveCursorOffset1D (const ImageVector &p)
 Move cursor by an offset to a new position. (1d)
 
void _moveCursorOffset2D (const ImageVector &p)
 Move cursor by an offset to a new position. (2d)
 
void _moveCursorOffset3D (const ImageVector &p)
 Move cursor by an offset to a new position. (3d)
 
void _moveCursorOffset4D (const ImageVector &p)
 Move cursor by an offset to a new position. (4d)
 
void _moveCursorOffset5D (const ImageVector &p)
 Move cursor by an offset to a new position. (5d)
 
void _moveCursorOffset6D (const ImageVector &p)
 Move cursor by an offset to a new position. (6d)
 
void _moveCursorOffset1DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (1d)
 
void _moveCursorOffset2DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (2d)
 
void _moveCursorOffset3DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (3d)
 
void _moveCursorOffset4DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (4d)
 
void _moveCursorOffset5DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (5d)
 
void _moveCursorOffset6DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (6d)
 
Move cursor to next higher position. The *E versions throw ML_OUT_OF_RANGE exceptions when outside the image.

Cursor movement implementation.

void _moveFX ()
 
void _moveFY ()
 
void _moveFZ ()
 
void _moveFC ()
 
void _moveFT ()
 
void _moveFU ()
 
void _moveFXE ()
 
void _moveFYE ()
 
void _moveFZE ()
 
void _moveFCE ()
 
void _moveFTE ()
 
void _moveFUE ()
 
Move cursor to next lower position. The *E versions throw ML_OUT_OF_RANGE exceptions when outside the image.
void _moveBX ()
 
void _moveBY ()
 
void _moveBZ ()
 
void _moveBC ()
 
void _moveBT ()
 
void _moveBU ()
 
void _moveBXE ()
 
void _moveBYE ()
 
void _moveBZE ()
 
void _moveBCE ()
 
void _moveBTE ()
 
void _moveBUE ()
 

Static Protected Member Functions

Static functions to wrap/call the correct function to get/set voxel methods. Only one of these set/get methods is

called via the function pointers _getVoxelFunc and _setVoxelFunc for a certain image dimension.

All other functions are usually not used for that dimension. Both with and without tests and exceptions are implemented.

static DATATYPE _getVoxel1DCB (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel2DCB (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel3DCB (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel4DCB (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel5DCB (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel6DCB (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel1DCBE (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel2DCBE (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel3DCBE (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel4DCBE (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel5DCBE (TVirtualVolume *obj, const ImageVector &pos)
 
static DATATYPE _getVoxel6DCBE (TVirtualVolume *obj, const ImageVector &pos)
 
static void _setVoxel1DCB (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel2DCB (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel3DCB (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel4DCB (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel5DCB (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel6DCB (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel1DCBE (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel2DCBE (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel3DCBE (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel4DCBE (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel5DCBE (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static void _setVoxel6DCBE (TVirtualVolume *obj, const ImageVector &pos, DATATYPE voxVal)
 
static bool _isMapped1DCB (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped2DCB (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped3DCB (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped4DCB (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped5DCB (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped6DCB (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped1DCBE (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped2DCBE (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped3DCBE (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped4DCBE (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped5DCBE (const TVirtualVolume *obj, const ImageVector &pos)
 
static bool _isMapped6DCBE (const TVirtualVolume *obj, const ImageVector &pos)
 
1-6D static functions with and without exceptions to wrap the correct setCursorPosition function for any dimension.
static void _setCursorPos1DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos2DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos3DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos4DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos5DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos6DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos1DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos2DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos3DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos4DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos5DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _setCursorPos6DCBE (TVirtualVolume *obj, const ImageVector &p)
 
1-6D static functions with and without exceptions to wrap the correct moveCursorPos function for any dimension.
static void _moveCursorOffset1DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset2DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset3DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset4DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset5DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset6DCB (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset1DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset2DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset3DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset4DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset5DCBE (TVirtualVolume *obj, const ImageVector &p)
 
static void _moveCursorOffset6DCBE (TVirtualVolume *obj, const ImageVector &p)
 
Static version:Move cursor to next higher position. The *E versions throw ML_OUT_OF_RANGE exceptions when outside the image.
static void _moveFXCB (TVirtualVolume *obj)
 
static void _moveFYCB (TVirtualVolume *obj)
 
static void _moveFZCB (TVirtualVolume *obj)
 
static void _moveFCCB (TVirtualVolume *obj)
 
static void _moveFTCB (TVirtualVolume *obj)
 
static void _moveFUCB (TVirtualVolume *obj)
 
static void _moveFXCBE (TVirtualVolume *obj)
 
static void _moveFYCBE (TVirtualVolume *obj)
 
static void _moveFZCBE (TVirtualVolume *obj)
 
static void _moveFCCBE (TVirtualVolume *obj)
 
static void _moveFTCBE (TVirtualVolume *obj)
 
static void _moveFUCBE (TVirtualVolume *obj)
 
Static version:Move cursor to next lower position. The *E versions throw ML_OUT_OF_RANGE exceptions when outside the image.
static void _moveBXCB (TVirtualVolume *obj)
 
static void _moveBYCB (TVirtualVolume *obj)
 
static void _moveBZCB (TVirtualVolume *obj)
 
static void _moveBCCB (TVirtualVolume *obj)
 
static void _moveBTCB (TVirtualVolume *obj)
 
static void _moveBUCB (TVirtualVolume *obj)
 
static void _moveBXCBE (TVirtualVolume *obj)
 
static void _moveBYCBE (TVirtualVolume *obj)
 
static void _moveBZCBE (TVirtualVolume *obj)
 
static void _moveBCCBE (TVirtualVolume *obj)
 
static void _moveBTCBE (TVirtualVolume *obj)
 
static void _moveBUCBE (TVirtualVolume *obj)
 

Detailed Description

template<typename DATATYPE>
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.

Accesses to the virtual volume can simple be performed with setValue and getValue. The accesses by the setValue and getValue are well optimized code which might be between 9 (1D), 18 (3D) and 36 (6D) instructions per voxel if the page below position is already mapped.

A cursor manager is also available to move a cursor forward with moveF*, backwards with moveB* methods. About 5-9 instructions might be executed for these move methods.

Accesses to voxels below cursor are available with setCursorValue and getCursorValue. On good compilers and already mapped pages they might use about 5-7 instructions.

So the cursor approach will probably be faster on data volumes with more than 2 dimensions.

Notes:

  • Performance of voxel accesses is best if input pages have powers of 2 as page extents.
  • Performance of voxel accesses is better for lower dimensional images than for higher dimensional images since less calculations have to be performed for fewer dimensions.
  • Voxel accesses are not permitted any longer after the input connection or module becomes invalid.
  • The virtual volume must not be used in parallel in calcOutSubImg calls since the getValue and setValue methods potentially call getTile*() functions which would start multithreading recursively. So be sure that multithreading remains disabled in the module which uses VirtualVolume or TVirtualVolume in calcOutSubImg. Even if no paged image is used as input the write accesses are not multithreading capable due to performance reasons.
  • If an image has n dimensions (e.g. 3) then higher components in cursor positioning and voxel accesses are simply ignored due to performance reasons and so they do not cause errors if they are set even if they mean that the cursor is outside the image.

All calls of virtual volume accesses can be executed with or without testing of correctness (see areExceptionsOn parameter of constructors). If areExceptionsOn is true then all accesses to the virtual volume are tested and if necessary exceptions are thrown which can be caught by the code calling the virtual volume methods. Otherwise most functions perform no testing. Note that exception handling versions are slower than with disabled exceptions.

// Header:
// Constructor:
// calcOutSubImgProps: Create/Update the virtual volume. Throw exception on errors.
// So calculateOutputSubImage is not called with bad virtual volume later.
delete _virtVolume;
_virtVolume = nullptr;
// Create new virtual volume and make own checks afterwards for success.
_virtVolume = new VirtualVolume(this, 0, getInputImage(0)->getDatatype());
if (!_virtVolume || (_virtVolume && !_virtVolume->isValid())){ getOutputImage(outIndex)->setInvalid(); return; }
// Create new virtual volume and make own checks afterwards for success.
_virtVolume = new VirtualVolume(ImageVector(1024,1024,1,1,1,1), 0, MLuint8Type));
if (!_virtVolume || (_virtVolume && !_virtVolume->isValid())){ getOutputImage(outIndex)->setInvalid(); return; }
// calcOutSubImg: Example to access image data directly:
TVirtualVolume<DATATYPE> vVol(*_virtVolume); // Create wrapper for typed voxel access.
const ImageVector pos(7,3,0,0,0,0);
DATATYPE value=0;
vVol.setValue(pos, value); // Simple setting of an arbitrary voxel.
value = vVol.getValue(pos); // Reading of an arbitrary voxel.
vVol.fill(outSubImg->getBox(), value); // Fill region with value.
vVol.copyToSubImage(*outSubImg); // Copy valid region of virtVolume to outSubImg.
// calcOutSubImg: Example to access image data via a cursor:
TVirtualVolume<DATATYPE> vVol(*_virtVolume); // Create wrapper for typed voxel access.
const ImageVector pos(7,3,0,0,0,0);
vVol.setCursorPosition(pos); // Set cursor to any position in volume.
vVol.moveCursorX(); // Move cursor >F<orward
vVol.moveCursorC(); // in (positive) X, C and U direction.
vVol.moveCursorU();
vVol.reverseMoveCursorT(); // Move cursor >B<ackwards in (negative) T
vVol.reverseMoveCursorZ(); // and Z direction.
DATATYPE val = vVol.getCursorValue(); // Reading voxel below cursor.
vVol.setCursorValue(10); // Set voxel value below cursor to 10.
// Additionally the following helper routines are available:
// Fill region of virtual volume with a certain value.
void fill(const SubImageBox &box, DATATYPE value);
// Copy region from the virtual volume into a typed subimage.
// Copy a region from a typed subimage into the virtual volume.
void copyFromSubImage(const TSubImage<DATATYPE> &inImg, const SubImageBox &box, const ImageVector &pos);
void copyFromSubImage(const TSubImage< DATATYPE > &inImg, const SubImageBox &box, const ImageVector &pos)
Copy the area given by box from inImg to the position p of the virtual volume.
void fill(const SubImageBox &box, DATATYPE value)
Fill the area box in the virtual image with voxel value value.
void copyToSubImage(TSubImage< DATATYPE > &outSubImg)
Copy area from the virtual volume into the subimage given by outSubImg.
This class manages a virtual volume organizing efficient voxel access to the output image of an input...
@ MLuint8Type
Enumerator for the unsigned 8 bit ML integer type.
Definition mlTypeDefs.h:621
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
TSubImageBox< MLint > SubImageBox
Define the standard SubImageBox type used in the ML. Its size varies with the size of the MLint type.
TImageVector< MLint > ImageVector
Defines the standard ImageVector type which is used by the ML for indexing and coordinates.
There are also some routines to get the boxes of the currently written pages.
It is also possible to read/write the data of the written pages directly.

EXCEPTIONS:

The following exceptions are thrown if areExceptionsOn is passed as true to the constructors and errors occur:

  • ML_OUT_OF_RANGE - If cursor positioning or voxel accessing try to access invalid image regions. Note that these exceptions leave the virtual volume, the cursor position and voxel content etc. unchanged and the invalid flag of the virtual volume is NOT set. The call is just terminated and ignored. So you can continue to try other voxel accesses.
  • ML_NO_MEMORY - If any allocation fails because of insufficient memory. The virtual volume is invalidated.
  • ML_BAD_DIMENSION - If invalid image data extents occurred. This could indicate a programming error or invalid input image data. The virtual volume is invalidated.
  • ML_BAD_DATA_TYPE - If an invalid image data type occurred. This could indicate a programming error or invalid input image data. The virtual volume is invalidated.

Other exception resulting from failures of page requesting could also be thrown. They usually are returned redirected from getTile-commands.

If areExceptionsOn == false then no exceptions are thrown and many errors are handled by calling the ML_PRINT*() error macros and terminating the function/method. The virtual volume instance will be invalidated then. Invalid voxel accesses or memory failures during voxel accesses will destroy program state or cause unknown exceptions.

Note that areExceptionsOn == true degrades performance of voxel accesses.

Definition at line 210 of file mlTVirtualVolume.h.

Member Typedef Documentation

◆ ComponentType

A typedef to "export" the type of voxels components.

Definition at line 223 of file mlTVirtualVolume.h.

Constructor & Destructor Documentation

◆ TVirtualVolume() [1/4]

template<typename DATATYPE >
ml::TVirtualVolume< DATATYPE >::TVirtualVolume ( )
inlineprotected

Hide the default constructor to avoid incorrect usage due to missing initializations.

Definition at line 214 of file mlTVirtualVolume.h.

◆ TVirtualVolume() [2/4]

template<typename DATATYPE >
ml::TVirtualVolume< DATATYPE >::TVirtualVolume ( VirtualVolume & vVol)
inline

Constructor 1.

A valid VirtualVolume vVol must be passed. vVol is not destroyed by the destructor when this is deleted (see destructor comments).

Definition at line 227 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ TVirtualVolume() [3/4]

template<typename DATATYPE >
ml::TVirtualVolume< DATATYPE >::TVirtualVolume ( PagedImage * image,
MLint maxNumKB = -1,
bool areExceptionsOn = false )
inline

Convenience constructor (2) creating an untyped virtual volume inside the typed one to avoid additional management of the untyped instance.

For documentation of parameters see corresponding constructor of VirtualVolume. Note that this constructor builds a significant VirtualVolume data structure inside, which will be destroyed automatically on TVirtualVolume destruction (see destructor comments).

Definition at line 240 of file mlTVirtualVolume.h.

References MLGetDataTypeFromPtr(), and mlrange_cast().

◆ TVirtualVolume() [4/4]

template<typename DATATYPE >
ml::TVirtualVolume< DATATYPE >::TVirtualVolume ( const ImageVector & ext,
MLdouble fillVal = 0,
MLint maxNumKB = -1,
bool areExceptionsOn = false )
inline

Convenience constructor (3) creating an untyped virtual volume inside the typed one to avoid additional management of the untyped instance.

For documentation of parameters see corresponding constructor of VirtualVolume. Note that this constructor builds a significant VirtualVolume data structure inside which will be destroyed automatically on TVirtualVolume destruction (see destructor comments).

Definition at line 257 of file mlTVirtualVolume.h.

References MLGetDataTypeFromPtr(), and mlrange_cast().

◆ ~TVirtualVolume()

Destructor.

Destroys this instance. The used untyped virtualVolume instance vVol is left unchanged if it was passed as reference to the constructor 1 (the TVirtualVolume(VirtualVolume &vVol)). If it was automatically created by any of the convenience constructors 2 or 3 it also will be deleted.

Definition at line 273 of file mlTVirtualVolume.h.

Member Function Documentation

◆ _cleanUp()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_cleanUp ( )
protected

Clean up all settings. Implements the destruction sequence.

Definition at line 1320 of file mlTVirtualVolume.h.

◆ _getVoxel1D()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel1D ( const ImageVector & pos)
inlineprotected

Get voxel method for a certain dimension. (1d)

Definition at line 1362 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ _getVoxel1DCB()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel1DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 635 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel1DCBE()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel1DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 642 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel1DE()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel1DE ( const ImageVector & pos)
inlineprotected

Get voxel at a position for a certain dimension with testing and exception throw if necessary. (1D)

Definition at line 1370 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _getVoxel2D()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel2D ( const ImageVector & pos)
inlineprotected

Get voxel method for a certain dimension. (2d)

Definition at line 1381 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ _getVoxel2DCB()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel2DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 636 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel2DCBE()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel2DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 643 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel2DE()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel2DE ( const ImageVector & pos)
inlineprotected

Get voxel at a position for a certain dimension with testing and exception throw if necessary. (2d)

Definition at line 1389 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _getVoxel3D()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel3D ( const ImageVector & pos)
inlineprotected

Get voxel method for a certain dimension. (3d)

Definition at line 1402 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ _getVoxel3DCB()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel3DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 637 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel3DCBE()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel3DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 644 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel3DE()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel3DE ( const ImageVector & pos)
inlineprotected

Get voxel at a position for a certain dimension with testing and exception throw if necessary. (3d)

Definition at line 1412 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _getVoxel4D()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel4D ( const ImageVector & pos)
inlineprotected

Get voxel method for a certain dimension. (4d)

Definition at line 1429 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ _getVoxel4DCB()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel4DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 638 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel4DCBE()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel4DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 645 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel4DE()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel4DE ( const ImageVector & pos)
inlineprotected

Get voxel at a position for a certain dimension with testing and exception throw if necessary. (4d)

Definition at line 1443 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _getVoxel5D()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel5D ( const ImageVector & pos)
inlineprotected

Get voxel method for a certain dimension. (5d)

Definition at line 1463 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ _getVoxel5DCB()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel5DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 639 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel5DCBE()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel5DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 646 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel5DE()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel5DE ( const ImageVector & pos)
inlineprotected

Get voxel at a position for a certain dimension with testing and exception throw if necessary. (5d)

Definition at line 1479 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _getVoxel6D()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel6D ( const ImageVector & pos)
inlineprotected

Get voxel method for a certain dimension. (6d)

Definition at line 1503 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ _getVoxel6DCB()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel6DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 640 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel6DCBE()

template<typename DATATYPE >
static DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel6DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 647 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _getVoxel6DE()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::_getVoxel6DE ( const ImageVector & pos)
inlineprotected

Get voxel at a position for a certain dimension with testing and exception throw if necessary. (6d)

Definition at line 1521 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _init()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_init ( VirtualVolume & vVol)
protected

Initialize the typed virtual volume. A valid virtual volume should be passed.

Initialize the typed virtual volume.

A valid virtual volume must be passed. Note that this function does NOT change the _convenienceInstance pointer (which must initialized to NULL or to a valid local instance before).

Select the correct cursor movement functions for exception case.

Select the correct cursor movement functions for non exception case.

Definition at line 1143 of file mlTVirtualVolume.h.

References ML_BAD_DATA_TYPE, ML_BAD_DIMENSION, ML_PRINT_ERROR, ML_PRINT_FATAL_ERROR, MLGetDataTypeFromPtr(), and mlrange_cast().

◆ _isMapped1D()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped1D ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (1d)

Definition at line 2216 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ _isMapped1DCB()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped1DCB ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 663 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped1DCBE()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped1DCBE ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 670 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped1DE()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped1DE ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (1d) Throws exception if out of range.

Definition at line 2224 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _isMapped2D()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped2D ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (2d)

Definition at line 2236 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ _isMapped2DCB()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped2DCB ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 664 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped2DCBE()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped2DCBE ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 671 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped2DE()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped2DE ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (2d) Throws exception if out of range.

Definition at line 2244 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _isMapped3D()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped3D ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (3d)

Definition at line 2257 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ _isMapped3DCB()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped3DCB ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 665 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped3DCBE()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped3DCBE ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 672 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped3DE()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped3DE ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (3d) Throws exception if out of range.

Definition at line 2267 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _isMapped4D()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped4D ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (4d)

Definition at line 2284 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ _isMapped4DCB()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped4DCB ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 666 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped4DCBE()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped4DCBE ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 673 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped4DE()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped4DE ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (4d) Throws exception if out of range.

Definition at line 2295 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _isMapped5D()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped5D ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d)

Definition at line 2314 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ _isMapped5DCB()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped5DCB ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 667 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped5DCBE()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped5DCBE ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 674 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped5DE()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped5DE ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d) Throws exception if out of range.

Definition at line 2326 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _isMapped6D()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped6D ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d)

Definition at line 2348 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ _isMapped6DCB()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped6DCB ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 668 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped6DCBE()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::_isMapped6DCBE ( const TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos )
inlinestaticprotected

Definition at line 675 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _isMapped6DE()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::_isMapped6DE ( const ImageVector & pos) const
inlineprotected

Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d) Throws exception if out of range.

Definition at line 2361 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveBC()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBC ( )
inlineprotected

Definition at line 833 of file mlTVirtualVolume.h.

◆ _moveBCCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBCCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 861 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBCCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBCCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 868 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBCE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBCE ( )
inlineprotected

Definition at line 846 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

◆ _moveBT()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBT ( )
inlineprotected

Definition at line 834 of file mlTVirtualVolume.h.

◆ _moveBTCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBTCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 862 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBTCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBTCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 869 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBTE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBTE ( )
inlineprotected

Definition at line 847 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

◆ _moveBU()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBU ( )
inlineprotected

Definition at line 835 of file mlTVirtualVolume.h.

◆ _moveBUCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBUCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 863 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBUCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBUCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 870 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBUE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBUE ( )
inlineprotected

Definition at line 848 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

◆ _moveBX()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBX ( )
inlineprotected

Definition at line 830 of file mlTVirtualVolume.h.

◆ _moveBXCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBXCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 858 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBXCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBXCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 865 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBXE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBXE ( )
inlineprotected

Definition at line 843 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

◆ _moveBY()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBY ( )
inlineprotected

Definition at line 831 of file mlTVirtualVolume.h.

◆ _moveBYCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBYCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 859 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBYCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBYCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 866 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBYE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBYE ( )
inlineprotected

Definition at line 844 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

◆ _moveBZ()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBZ ( )
inlineprotected

Definition at line 832 of file mlTVirtualVolume.h.

◆ _moveBZCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBZCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 860 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBZCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveBZCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 867 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveBZE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveBZE ( )
inlineprotected

Definition at line 845 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

◆ _moveCursorOffset1D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset1D ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position. (1d)

Definition at line 1994 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset1DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset1DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 754 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset1DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset1DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 761 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset1DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset1DE ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position with testing and exception throw if necessary. (1d)

Definition at line 2003 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveCursorOffset2D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset2D ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position. (2d)

Definition at line 2016 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset2DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset2DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 755 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset2DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset2DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 762 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset2DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset2DE ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position with testing and exception throw if necessary. (2d)

Definition at line 2026 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveCursorOffset3D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset3D ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position. (3d)

Definition at line 2041 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset3DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset3DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 756 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset3DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset3DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 763 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset3DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset3DE ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position with testing and exception throw if necessary. (3d)

Definition at line 2054 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveCursorOffset4D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset4D ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position. (4d)

Definition at line 2074 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset4DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset4DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 757 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset4DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset4DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 764 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset4DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset4DE ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position with testing and exception throw if necessary. (4d)

Definition at line 2089 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveCursorOffset5D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset5D ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position. (5d)

Definition at line 2112 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset5DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset5DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 758 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset5DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset5DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 765 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset5DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset5DE ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position with testing and exception throw if necessary. (5d)

Definition at line 2132 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveCursorOffset6D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset6D ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position. (6d)

Definition at line 2161 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset6DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset6DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 759 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset6DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset6DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 766 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveCursorOffset6DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveCursorOffset6DE ( const ImageVector & p)
inlineprotected

Move cursor by an offset to a new position with testing and exception throw if necessary. (6d)

Definition at line 2181 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _moveFC()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFC ( )
inlineprotected

Definition at line 794 of file mlTVirtualVolume.h.

◆ _moveFCCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFCCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 813 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFCCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFCCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 820 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFCE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFCE ( )
inlineprotected

Definition at line 801 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

◆ _moveFT()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFT ( )
inlineprotected

Definition at line 795 of file mlTVirtualVolume.h.

◆ _moveFTCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFTCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 814 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFTCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFTCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 821 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFTE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFTE ( )
inlineprotected

Definition at line 802 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

◆ _moveFU()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFU ( )
inlineprotected

Definition at line 796 of file mlTVirtualVolume.h.

◆ _moveFUCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFUCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 815 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFUCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFUCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 822 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFUE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFUE ( )
inlineprotected

Definition at line 803 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

◆ _moveFX()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFX ( )
inlineprotected

Definition at line 791 of file mlTVirtualVolume.h.

◆ _moveFXCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFXCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 810 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFXCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFXCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 817 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFXE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFXE ( )
inlineprotected

Definition at line 798 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

◆ _moveFY()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFY ( )
inlineprotected

Definition at line 792 of file mlTVirtualVolume.h.

◆ _moveFYCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFYCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 811 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFYCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFYCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 818 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFYE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFYE ( )
inlineprotected

Definition at line 799 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

◆ _moveFZ()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFZ ( )
inlineprotected

Definition at line 793 of file mlTVirtualVolume.h.

◆ _moveFZCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFZCB ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 812 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFZCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_moveFZCBE ( TVirtualVolume< DATATYPE > * obj)
inlinestaticprotected

Definition at line 819 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _moveFZE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_moveFZE ( )
inlineprotected

Definition at line 800 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

◆ _setCursorPos1D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos1D ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension. (1d)

Definition at line 1768 of file mlTVirtualVolume.h.

◆ _setCursorPos1DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos1DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 709 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos1DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos1DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 716 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos1DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos1DE ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension with testing and exception throw if necessary. (1d)

Definition at line 1777 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setCursorPos2D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos2D ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension. (2d)

Definition at line 1790 of file mlTVirtualVolume.h.

◆ _setCursorPos2DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos2DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 710 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos2DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos2DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 717 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos2DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos2DE ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension with testing and exception throw if necessary. (2d)

Definition at line 1801 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setCursorPos3D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos3D ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension. (3d)

Definition at line 1817 of file mlTVirtualVolume.h.

◆ _setCursorPos3DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos3DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 711 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos3DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos3DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 718 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos3DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos3DE ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension with testing and exception throw if necessary. (3d)

Definition at line 1830 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setCursorPos4D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos4D ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension. (4d)

Definition at line 1850 of file mlTVirtualVolume.h.

◆ _setCursorPos4DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos4DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 712 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos4DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos4DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 719 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos4DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos4DE ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension with testing and exception throw if necessary. (4d)

Definition at line 1865 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setCursorPos5D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos5D ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension. (5d)

Definition at line 1888 of file mlTVirtualVolume.h.

◆ _setCursorPos5DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos5DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 713 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos5DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos5DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 720 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos5DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos5DE ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension with testing and exception throw if necessary. (5d)

Definition at line 1906 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setCursorPos6D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos6D ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension. (6d)

Definition at line 1935 of file mlTVirtualVolume.h.

◆ _setCursorPos6DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos6DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 714 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos6DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setCursorPos6DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & p )
inlinestaticprotected

Definition at line 721 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setCursorPos6DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setCursorPos6DE ( const ImageVector & p)
inlineprotected

Set cursor position for a certain dimension with testing and exception throw if necessary. (6d)

Definition at line 1955 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setVoxel1D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel1D ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel method for a certain dimension. (1d)

Definition at line 1556 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ _setVoxel1DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel1DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 649 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel1DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel1DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 656 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel1DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel1DE ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel at a position for a certain dimension with testing and exception throw if necessary. (1d)

Definition at line 1565 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setVoxel2D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel2D ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel method for a certain dimension. (2d)

Definition at line 1578 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ _setVoxel2DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel2DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 650 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel2DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel2DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 657 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel2DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel2DE ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel at a position for a certain dimension with testing and exception throw if necessary. (2d)

Definition at line 1587 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setVoxel3D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel3D ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel method for a certain dimension. (3d)

Definition at line 1601 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ _setVoxel3DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel3DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 651 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel3DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel3DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 658 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel3DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel3DE ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel at a position for a certain dimension with testing and exception throw if necessary. (3d)

Definition at line 1612 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setVoxel4D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel4D ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel method for a certain dimension. (4d)

Definition at line 1630 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ _setVoxel4DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel4DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 652 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel4DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel4DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 659 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel4DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel4DE ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel at a position for a certain dimension with testing and exception throw if necessary. (4d)

Definition at line 1645 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setVoxel5D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel5D ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel method for a certain dimension. (5d)

Definition at line 1668 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ _setVoxel5DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel5DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 653 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel5DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel5DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 660 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel5DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel5DE ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel at a position for a certain dimension with testing and exception throw if necessary. (5d)

Definition at line 1685 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and mlrange_cast().

◆ _setVoxel6D()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel6D ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel method for a certain dimension. (6d)

Definition at line 1712 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ _setVoxel6DCB()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel6DCB ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 654 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel6DCBE()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::_setVoxel6DCBE ( TVirtualVolume< DATATYPE > * obj,
const ImageVector & pos,
DATATYPE voxVal )
inlinestaticprotected

Definition at line 661 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ _setVoxel6DE()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::_setVoxel6DE ( const ImageVector & pos,
DATATYPE voxVal )
inlineprotected

Set voxel at a position for a certain dimension with testing and exception throw if necessary. (6d)

Definition at line 1731 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and mlrange_cast().

◆ copyFromSubImage()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::copyFromSubImage ( const TSubImage< DATATYPE > & inImg,
const SubImageBox & box,
const ImageVector & pos )

Copy the area given by box from inImg to the position p of the virtual volume.

Copy area from inImg into virtual volume.

The box position (0,0,0,0,0,0) is considered the first valid voxel in inImg. Before copying the region is limited to valid overlapping areas.

Definition at line 1102 of file mlTVirtualVolume.h.

References mlrange_cast(), and ml::TSubImageBox< intT >::v1.

◆ copyMaskToSubImage()

template<typename DATATYPE >
template<typename OUTDTYPE >
void ml::TVirtualVolume< DATATYPE >::copyMaskToSubImage ( TSubImage< OUTDTYPE > & outSubImg,
BitImage & maskBits,
bool maskValue = true,
bool writeBK = false,
OUTDTYPE bkVal = ml_cast_from_scalar<OUTDTYPE>(0) )
inline

Takes overlapping region from *this, outSubImg and maskBits and copies all voxels from *this to outSubImg if the corresponding bit in maskBits has the value maskValue.

If the value differs the value bkVal is only written if writeBK is true; otherwise the value in outSubImg is left unchanged. Non-overlapping regions of *this, outSubImg and maskBits are not read, checked or handled. Cursor positions of outSubImg, maskBits and *this are used but restored after usage. Values from this are simply cast from DATATYPE to OUTDTYPE before writing them into outSubimg.

Parameters
outSubImgis the target subimage to be filled with masked voxels from *this in regions overlapping *this and maskBits.
maskBitsspecifies voxels mask. If a bit mask value equals maskVal then the voxel from *this is copied to outSubImg if it's within the image extents.
maskValueis the value which must be the bit value in maskBits to force a copy of a voxel value to outSubImg; default is true.
writeBKdetermines whether voxel values in outSubImg are filled with bkVal in the case that voxel is not masked; default is false.
bkValis the value written in the case that the corresponding voxel is not masked, that writeBK is true and that voxel is within overlapping range of *this, outSubImg and maskBits; default is 0.

Definition at line 392 of file mlTVirtualVolume.h.

References ml::SubImage::getBox(), ml::TSubImage< DATATYPE >::getImagePointer(), ml::TSubImageBox< intT >::intersect(), mlrange_cast(), ml::TSubImageBox< intT >::v1, and ml::TSubImageBox< intT >::v2.

◆ copyToSubImage()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::copyToSubImage ( TSubImage< DATATYPE > & outSubImg)

Copy area from the virtual volume into the subimage given by outSubImg.

Copy area from virtual volume into outSubImg.

Note that only valid regions of the virtual volumes are read - if outSubImg reaches outside the virtual volume the corresponding areas are not read, i.e. these regions are left undefined in outSubImg.

Definition at line 1093 of file mlTVirtualVolume.h.

References ml::TVirtualVolume< DATATYPE >::copyToSubImage().

Referenced by ml::TVirtualVolume< DATATYPE >::copyToSubImage().

◆ fill()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::fill ( const SubImageBox & box,
DATATYPE value )

Fill the area box in the virtual image with voxel value value.

Fill box in virtual volume with value.

If area reaches outside the valid virtual volume area it is automatically clamped to valid voxels.

Definition at line 1064 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ fillDoubleWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::fillDoubleWrapped ( void * vv,
const ImageVector & v1,
const ImageVector & v2,
MLdouble v )
inlinestatic

Definition at line 506 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ fillInt64Wrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::fillInt64Wrapped ( void * vv,
const ImageVector & v1,
const ImageVector & v2,
MLint64 v )
inlinestatic

Definition at line 505 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ fillIntWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::fillIntWrapped ( void * vv,
const ImageVector & v1,
const ImageVector & v2,
MLint v )
inlinestatic

Definition at line 504 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ fillLDoubleWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::fillLDoubleWrapped ( void * vv,
const ImageVector & v1,
const ImageVector & v2,
MLldouble v )
inlinestatic

Definition at line 507 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getCursorPosition()

template<typename DATATYPE >
const ImageVector & ml::TVirtualVolume< DATATYPE >::getCursorPosition ( ) const
inline

Return the current cursor coordinates.

Definition at line 302 of file mlTVirtualVolume.h.

◆ getCursorPositionWrapped()

template<typename DATATYPE >
static const ImageVector & ml::TVirtualVolume< DATATYPE >::getCursorPositionWrapped ( void * vv)
inlinestatic

Definition at line 493 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getCursorValue()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::getCursorValue ( )
inline

Return value under cursor.

Definition at line 1004 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and mlrange_cast().

◆ getDoubleCursorValueWrapped()

template<typename DATATYPE >
static MLdouble ml::TVirtualVolume< DATATYPE >::getDoubleCursorValueWrapped ( void * vv)
inlinestatic

Definition at line 491 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getDoubleValueWrapped()

template<typename DATATYPE >
static MLdouble ml::TVirtualVolume< DATATYPE >::getDoubleValueWrapped ( void * vv,
const ImageVector & pos )
inlinestatic

Definition at line 487 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getInt64CursorValueWrapped()

template<typename DATATYPE >
static MLint64 ml::TVirtualVolume< DATATYPE >::getInt64CursorValueWrapped ( void * vv)
inlinestatic

Definition at line 490 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getInt64ValueWrapped()

template<typename DATATYPE >
static MLint64 ml::TVirtualVolume< DATATYPE >::getInt64ValueWrapped ( void * vv,
const ImageVector & pos )
inlinestatic

Definition at line 486 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getIntCursorValueWrapped()

template<typename DATATYPE >
static MLint ml::TVirtualVolume< DATATYPE >::getIntCursorValueWrapped ( void * vv)
inlinestatic

Definition at line 489 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getIntValueWrapped()

template<typename DATATYPE >
static MLint ml::TVirtualVolume< DATATYPE >::getIntValueWrapped ( void * vv,
const ImageVector & pos )
inlinestatic

Wrapper functions for non template application interfaces.

It always requires a valid, non NULL pointer to the correctly typed virtual volume instance, otherwise crashes will occur. Since all these functions are very time critical those pointers are not checked and the calling application must guarantee valid pointers. For documentation have a look at the wrapped function. Removing type names like "Int", "Int64", "Double" or long double and the W at the end of the function name will lead to the name of the corresponding wrapped function.

Definition at line 485 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getLDoubleCursorValueWrapped()

template<typename DATATYPE >
static MLldouble ml::TVirtualVolume< DATATYPE >::getLDoubleCursorValueWrapped ( void * vv)
inlinestatic

Definition at line 492 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getLDoubleValueWrapped()

template<typename DATATYPE >
static MLldouble ml::TVirtualVolume< DATATYPE >::getLDoubleValueWrapped ( void * vv,
const ImageVector & pos )
inlinestatic

Definition at line 488 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ getValue()

template<typename DATATYPE >
DATATYPE ml::TVirtualVolume< DATATYPE >::getValue ( const ImageVector & pos)
inline

Get a voxel value from the virtual volume.

The position pos must be within the valid image area.

Definition at line 292 of file mlTVirtualVolume.h.

◆ getValues()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::getValues ( const ImageVector * pos,
DATATYPE * results,
MLuint num )
inline

Get a set of voxels from the virtual volume.

Their positions must be within the valid image area. *pos must point to a vector of at least num vectors with image positions. *results must point to a vector of at least num DATATYPE entries which will be filled with the voxel data. This method is preferable to your own getValue loops since it probably will be optimized in the future.

Definition at line 985 of file mlTVirtualVolume.h.

◆ getVirtualVolume()

template<typename DATATYPE >
VirtualVolume & ml::TVirtualVolume< DATATYPE >::getVirtualVolume ( )
inline

Returns the pointer to the wrapped untyped virtual volume.

Definition at line 281 of file mlTVirtualVolume.h.

◆ getWrittenPageData()

template<typename DATATYPE >
DATATYPE * ml::TVirtualVolume< DATATYPE >::getWrittenPageData ( MLuint32 wp) const
inline

Returns typed pointer to data of written page with page id wp.

Parameters
wpis the page id of the written page to access and it must be within [0, getNumWrittenPages()-1].
Returns
The pointer to the data related to page with index wp or NULL if wp is out of range.
Note
If page is a page crossed by the image border then it could also contain undefined data.
The number of voxels in such a page is given by getPageExtent().compMul().

Definition at line 473 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ isMapped()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::isMapped ( const ImageVector & pos) const
inline

Returns true if voxel is mapped into memory, otherwise it returns false.

Definition at line 311 of file mlTVirtualVolume.h.

◆ isMappedWrapped()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::isMappedWrapped ( void * vv,
const ImageVector & pos )
inlinestatic

Definition at line 494 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorByOffset()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorByOffset ( const ImageVector & off)
inline

Shift cursor to current position + offset.

Definition at line 331 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorByOffsetWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorByOffsetWrapped ( void * vv,
const ImageVector & off )
inlinestatic

Definition at line 520 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorC()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorC ( )
inline

Definition at line 318 of file mlTVirtualVolume.h.

◆ moveCursorCWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorCWrapped ( void * vv)
inlinestatic

Definition at line 511 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorT()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorT ( )
inline

Definition at line 319 of file mlTVirtualVolume.h.

◆ moveCursorTWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorTWrapped ( void * vv)
inlinestatic

Definition at line 512 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorU()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorU ( )
inline

Definition at line 320 of file mlTVirtualVolume.h.

◆ moveCursorUWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorUWrapped ( void * vv)
inlinestatic

Definition at line 513 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorX()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorX ( )
inline

Definition at line 315 of file mlTVirtualVolume.h.

◆ moveCursorXWrapAround()

template<typename DATATYPE >
bool ml::TVirtualVolume< DATATYPE >::moveCursorXWrapAround ( )
inline

Special cursor move: Increment x coordinate of cursor.

When going out of image set x to zero and increase y. If y overflows then increment z etc. So an image can easily scanned as a one dimensional sequence. If the cursor is on the last voxel it won't be moved outside the image; it remains there without throwing exceptions or causing errors. It just returns false instead of true. So the sequence resetCursor(); do {} while (moveCursorXWrapAround()); permits easy image scanning.

When going out of image set x to zero and increase y. If y overflows then increment z etc. So an image can easily scanned as a one dimensional sequence. If the cursor is on the last voxel it won't be moved outside the image; it remains there without throwing exceptions or causing errors. It just returns false instead of true. So the sequence resetCursor(); do {} while (moveCursorXWrapAround()); permits easy scanning of the whole virtual volume image.

Definition at line 1028 of file mlTVirtualVolume.h.

◆ moveCursorXWrapAroundWrapped()

template<typename DATATYPE >
static bool ml::TVirtualVolume< DATATYPE >::moveCursorXWrapAroundWrapped ( void * vv)
inlinestatic

Definition at line 522 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorXWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorXWrapped ( void * vv)
inlinestatic

Definition at line 508 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorY()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorY ( )
inline

Definition at line 316 of file mlTVirtualVolume.h.

◆ moveCursorYWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorYWrapped ( void * vv)
inlinestatic

Definition at line 509 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ moveCursorZ()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::moveCursorZ ( )
inline

Definition at line 317 of file mlTVirtualVolume.h.

◆ moveCursorZWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::moveCursorZWrapped ( void * vv)
inlinestatic

Definition at line 510 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ operator=()

Hide the default assignment operator to avoid incorrect usage due to missing initializations.

Definition at line 218 of file mlTVirtualVolume.h.

◆ resetCursor()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::resetCursor ( )
inline

Set cursor to default position (0,0,0,0,0,0).

Definition at line 1012 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ resetCursorWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::resetCursorWrapped ( void * vv)
inlinestatic

Definition at line 521 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ reverseMoveCursorC()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorC ( )
inline

Definition at line 325 of file mlTVirtualVolume.h.

◆ reverseMoveCursorCWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorCWrapped ( void * vv)
inlinestatic

Definition at line 517 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ reverseMoveCursorT()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorT ( )
inline

Definition at line 326 of file mlTVirtualVolume.h.

◆ reverseMoveCursorTWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorTWrapped ( void * vv)
inlinestatic

Definition at line 518 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ reverseMoveCursorU()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorU ( )
inline

Definition at line 327 of file mlTVirtualVolume.h.

◆ reverseMoveCursorUWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorUWrapped ( void * vv)
inlinestatic

Definition at line 519 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ reverseMoveCursorX()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorX ( )
inline

Definition at line 322 of file mlTVirtualVolume.h.

◆ reverseMoveCursorXWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorXWrapped ( void * vv)
inlinestatic

Definition at line 514 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ reverseMoveCursorY()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorY ( )
inline

Definition at line 323 of file mlTVirtualVolume.h.

◆ reverseMoveCursorYWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorYWrapped ( void * vv)
inlinestatic

Definition at line 515 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ reverseMoveCursorZ()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorZ ( )
inline

Definition at line 324 of file mlTVirtualVolume.h.

◆ reverseMoveCursorZWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::reverseMoveCursorZWrapped ( void * vv)
inlinestatic

Definition at line 516 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setCursorPosition()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::setCursorPosition ( const ImageVector & pos)
inline

Set the cursor to a certain position.

Definition at line 299 of file mlTVirtualVolume.h.

◆ setCursorPositionWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setCursorPositionWrapped ( void * vv,
const ImageVector & pos )
inlinestatic

Definition at line 495 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setCursorValue()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::setCursorValue ( DATATYPE val)
inline

Set value under cursor and lock page.

Definition at line 995 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and mlrange_cast().

◆ setDoubleCursorValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setDoubleCursorValueWrapped ( void * vv,
MLdouble v )
inlinestatic

Definition at line 502 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setDoubleValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setDoubleValueWrapped ( void * vv,
const ImageVector & pos,
MLdouble v )
inlinestatic

Definition at line 498 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setInt64CursorValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setInt64CursorValueWrapped ( void * vv,
MLint64 v )
inlinestatic

Definition at line 501 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setInt64ValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setInt64ValueWrapped ( void * vv,
const ImageVector & pos,
MLint64 v )
inlinestatic

Definition at line 497 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setIntCursorValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setIntCursorValueWrapped ( void * vv,
MLint v )
inlinestatic

Definition at line 500 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setIntValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setIntValueWrapped ( void * vv,
const ImageVector & pos,
MLint v )
inlinestatic

Definition at line 496 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setLDoubleCursorValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setLDoubleCursorValueWrapped ( void * vv,
MLldouble v )
inlinestatic

Definition at line 503 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setLDoubleValueWrapped()

template<typename DATATYPE >
static void ml::TVirtualVolume< DATATYPE >::setLDoubleValueWrapped ( void * vv,
const ImageVector & pos,
MLldouble v )
inlinestatic

Definition at line 499 of file mlTVirtualVolume.h.

References mlrange_cast().

◆ setValue()

template<typename DATATYPE >
void ml::TVirtualVolume< DATATYPE >::setValue ( const ImageVector & pos,
DATATYPE data )
inline

Write a voxel into the virtual volume.

The position must be within the valid image area. Written pages are hold in memory until vVol is deleted.

Definition at line 296 of file mlTVirtualVolume.h.


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