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

Public Member Functions

 TVirtualVolume (VirtualVolume &vVol)
 Constructor 1. More...
 
 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. More...
 
 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. More...
 
virtual ~TVirtualVolume ()
 Destructor. More...
 
VirtualVolumegetVirtualVolume ()
 Returns the pointer to the wrapped untyped virtual volume. More...
 
void getValues (const ImageVector *pos, DATATYPE *results, MLuint num)
 Get a set of voxels from the virtual volume. More...
 
DATATYPE getValue (const ImageVector &pos)
 Get a voxel value from the virtual volume. More...
 
void setValue (const ImageVector &pos, DATATYPE data)
 Write a voxel into the virtual volume. More...
 
void setCursorPosition (const ImageVector &pos)
 Set the cursor to a certain position. More...
 
const ImageVectorgetCursorPosition () const
 Return the current cursor coordinates. More...
 
void setCursorValue (DATATYPE val)
 Set value under cursor and lock page. More...
 
DATATYPE getCursorValue ()
 Return value under cursor. More...
 
bool isMapped (const ImageVector &pos) const
 Returns true if voxel is mapped into memory, otherwise it returns false. More...
 
void moveCursorByOffset (const ImageVector &off)
 Shift cursor to current position + offset. More...
 
void fill (const SubImageBox &box, DATATYPE value)
 Fill the area box in the virtual image with voxel value value. More...
 
void copyToSubImage (TSubImage< DATATYPE > &outSubImg)
 Copy area from the virtual volume into the subimage given by outSubImg. More...
 
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. More...
 
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. More...
 
DATATYPE * getWrittenPageData (MLuint32 wp) const
 Returns typed pointer to data of written page with page id wp. More...
 
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). More...
 
bool moveCursorXWrapAround ()
 Special cursor move: Increment x coordinate of cursor. More...
 

Static Public Member Functions

static MLint getIntValueWrapped (void *vv, const ImageVector &pos)
 Wrapper functions for non template application interfaces. More...
 
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. More...
 
TVirtualVolumeoperator= (const TVirtualVolume &)
 Hide the default assignment operator to avoid incorrect usage due to missing initializations. More...
 
void _init (VirtualVolume &vVol)
 Initialize the typed virtual volume. A valid virtual volume should be passed. More...
 
void _cleanUp ()
 Clean up all settings. Implements the destruction sequence. More...
 
Both with and without tests and exceptions is implemented.
DATATYPE _getVoxel1D (const ImageVector &pos)
 Get voxel method for a certain dimension. (1d) More...
 
DATATYPE _getVoxel2D (const ImageVector &pos)
 Get voxel method for a certain dimension. (2d) More...
 
DATATYPE _getVoxel3D (const ImageVector &pos)
 Get voxel method for a certain dimension. (3d) More...
 
DATATYPE _getVoxel4D (const ImageVector &pos)
 Get voxel method for a certain dimension. (4d) More...
 
DATATYPE _getVoxel5D (const ImageVector &pos)
 Get voxel method for a certain dimension. (5d) More...
 
DATATYPE _getVoxel6D (const ImageVector &pos)
 Get voxel method for a certain dimension. (6d) More...
 
DATATYPE _getVoxel1DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (1D) More...
 
DATATYPE _getVoxel2DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (2d) More...
 
DATATYPE _getVoxel3DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (3d) More...
 
DATATYPE _getVoxel4DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (4d) More...
 
DATATYPE _getVoxel5DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (5d) More...
 
DATATYPE _getVoxel6DE (const ImageVector &pos)
 Get voxel at a position for a certain dimension with testing and exception throw if necessary. (6d) More...
 
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) More...
 
void _setVoxel2D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (2d) More...
 
void _setVoxel3D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (3d) More...
 
void _setVoxel4D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (4d) More...
 
void _setVoxel5D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (5d) More...
 
void _setVoxel6D (const ImageVector &pos, DATATYPE voxVal)
 Set voxel method for a certain dimension. (6d) More...
 
void _setVoxel1DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (1d) More...
 
void _setVoxel2DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (2d) More...
 
void _setVoxel3DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (3d) More...
 
void _setVoxel4DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (4d) More...
 
void _setVoxel5DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (5d) More...
 
void _setVoxel6DE (const ImageVector &pos, DATATYPE voxVal)
 Set voxel at a position for a certain dimension with testing and exception throw if necessary. (6d) More...
 
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) More...
 
bool _isMapped2D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (2d) More...
 
bool _isMapped3D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (3d) More...
 
bool _isMapped4D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (4d) More...
 
bool _isMapped5D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d) More...
 
bool _isMapped6D (const ImageVector &pos) const
 Returns true if voxel is mapped in memory for a certain dimension, otherwise false. (6d) More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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) More...
 
void _setCursorPos2D (const ImageVector &p)
 Set cursor position for a certain dimension. (2d) More...
 
void _setCursorPos3D (const ImageVector &p)
 Set cursor position for a certain dimension. (3d) More...
 
void _setCursorPos4D (const ImageVector &p)
 Set cursor position for a certain dimension. (4d) More...
 
void _setCursorPos5D (const ImageVector &p)
 Set cursor position for a certain dimension. (5d) More...
 
void _setCursorPos6D (const ImageVector &p)
 Set cursor position for a certain dimension. (6d) More...
 
void _setCursorPos1DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (1d) More...
 
void _setCursorPos2DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (2d) More...
 
void _setCursorPos3DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (3d) More...
 
void _setCursorPos4DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (4d) More...
 
void _setCursorPos5DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (5d) More...
 
void _setCursorPos6DE (const ImageVector &p)
 Set cursor position for a certain dimension with testing and exception throw if necessary. (6d) More...
 
void _moveCursorOffset1D (const ImageVector &p)
 Move cursor by an offset to a new position. (1d) More...
 
void _moveCursorOffset2D (const ImageVector &p)
 Move cursor by an offset to a new position. (2d) More...
 
void _moveCursorOffset3D (const ImageVector &p)
 Move cursor by an offset to a new position. (3d) More...
 
void _moveCursorOffset4D (const ImageVector &p)
 Move cursor by an offset to a new position. (4d) More...
 
void _moveCursorOffset5D (const ImageVector &p)
 Move cursor by an offset to a new position. (5d) More...
 
void _moveCursorOffset6D (const ImageVector &p)
 Move cursor by an offset to a new position. (6d) More...
 
void _moveCursorOffset1DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (1d) More...
 
void _moveCursorOffset2DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (2d) More...
 
void _moveCursorOffset3DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (3d) More...
 
void _moveCursorOffset4DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (4d) More...
 
void _moveCursorOffset5DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (5d) More...
 
void _moveCursorOffset6DE (const ImageVector &p)
 Move cursor by an offset to a new position with testing and exception throw if necessary. (6d) More...
 
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.

Usage:
// Header:
VirtualVolume *_virtVolume;
// Constructor:
_virtVolume = NULL;
// 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; }
or
// 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.
void copyToSubImage(TSubImage<DATATYPE> &outSubImg);
// 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.
@ MLuint8Type
Enumerator for the unsigned 8 bit ML integer type.
Definition: mlTypeDefs.h:723
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

template<typename DATATYPE >
typedef DATATYPE ml::TVirtualVolume< DATATYPE >::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.

◆ 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().

◆ 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().

◆ ~TVirtualVolume()

template<typename DATATYPE >
virtual ml::TVirtualVolume< DATATYPE >::~TVirtualVolume ( )
inlinevirtual

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 1544 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 1586 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and ml::TVector6DBase< CompIntType >::x.

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

◆ _getVoxel1DCB()

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

Definition at line 859 of file mlTVirtualVolume.h.

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

◆ _getVoxel1DCBE()

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

◆ _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 1594 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and ml::TVector6DBase< CompIntType >::x.

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

◆ _getVoxel2D()

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

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

Definition at line 1605 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _getVoxel2DCB()

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

Definition at line 860 of file mlTVirtualVolume.h.

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

◆ _getVoxel2DCBE()

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

◆ _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 1613 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _getVoxel3D()

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

◆ _getVoxel3DCB()

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

Definition at line 861 of file mlTVirtualVolume.h.

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

◆ _getVoxel3DCBE()

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

◆ _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 1636 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _getVoxel4D()

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

◆ _getVoxel4DCB()

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

Definition at line 862 of file mlTVirtualVolume.h.

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

◆ _getVoxel4DCBE()

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

◆ _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 1667 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::c, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _getVoxel5D()

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

◆ _getVoxel5DCB()

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

Definition at line 863 of file mlTVirtualVolume.h.

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

◆ _getVoxel5DCBE()

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

◆ _getVoxel5DE()

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

◆ _getVoxel6D()

◆ _getVoxel6DCB()

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

Definition at line 864 of file mlTVirtualVolume.h.

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

◆ _getVoxel6DCBE()

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

◆ _getVoxel6DE()

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

◆ _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 1367 of file mlTVirtualVolume.h.

References ml::VirtualVolume::getDataType(), ml::VirtualVolume::getDim(), ML_BAD_DATA_TYPE, ML_BAD_DIMENSION, ML_PRINT_ERROR, ML_PRINT_FATAL_ERROR, and MLGetDataTypeFromPtr().

◆ _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 2440 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and ml::TVector6DBase< CompIntType >::x.

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

◆ _isMapped1DCB()

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

Definition at line 887 of file mlTVirtualVolume.h.

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

◆ _isMapped1DCBE()

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

◆ _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 2448 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, and ml::TVector6DBase< CompIntType >::x.

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

◆ _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 2460 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _isMapped2DCB()

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

Definition at line 888 of file mlTVirtualVolume.h.

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

◆ _isMapped2DCBE()

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

◆ _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 2468 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _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 2481 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _isMapped3DCB()

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

Definition at line 889 of file mlTVirtualVolume.h.

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

◆ _isMapped3DCBE()

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

◆ _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 2491 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _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 2508 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::c, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _isMapped4DCB()

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

Definition at line 890 of file mlTVirtualVolume.h.

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

◆ _isMapped4DCBE()

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

◆ _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 2519 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::c, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _isMapped5D()

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

◆ _isMapped5DCB()

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

Definition at line 891 of file mlTVirtualVolume.h.

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

◆ _isMapped5DCBE()

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

◆ _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 2550 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::TVector6DBase< CompIntType >::c, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::t, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _isMapped6D()

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

◆ _isMapped6DCB()

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

Definition at line 892 of file mlTVirtualVolume.h.

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

◆ _isMapped6DCBE()

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

◆ _isMapped6DE()

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

◆ _moveBC()

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

Definition at line 1057 of file mlTVirtualVolume.h.

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

◆ _moveBCCB()

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

Definition at line 1085 of file mlTVirtualVolume.h.

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

◆ _moveBCCBE()

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

Definition at line 1092 of file mlTVirtualVolume.h.

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

◆ _moveBCE()

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

Definition at line 1070 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

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

◆ _moveBT()

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

Definition at line 1058 of file mlTVirtualVolume.h.

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

◆ _moveBTCB()

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

Definition at line 1086 of file mlTVirtualVolume.h.

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

◆ _moveBTCBE()

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

Definition at line 1093 of file mlTVirtualVolume.h.

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

◆ _moveBTE()

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

Definition at line 1071 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

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

◆ _moveBU()

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

Definition at line 1059 of file mlTVirtualVolume.h.

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

◆ _moveBUCB()

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

Definition at line 1087 of file mlTVirtualVolume.h.

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

◆ _moveBUCBE()

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

Definition at line 1094 of file mlTVirtualVolume.h.

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

◆ _moveBUE()

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

Definition at line 1072 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

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

◆ _moveBX()

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

Definition at line 1054 of file mlTVirtualVolume.h.

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

◆ _moveBXCB()

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

Definition at line 1082 of file mlTVirtualVolume.h.

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

◆ _moveBXCBE()

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

Definition at line 1089 of file mlTVirtualVolume.h.

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

◆ _moveBXE()

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

Definition at line 1067 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

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

◆ _moveBY()

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

Definition at line 1055 of file mlTVirtualVolume.h.

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

◆ _moveBYCB()

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

Definition at line 1083 of file mlTVirtualVolume.h.

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

◆ _moveBYCBE()

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

Definition at line 1090 of file mlTVirtualVolume.h.

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

◆ _moveBYE()

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

Definition at line 1068 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

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

◆ _moveBZ()

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

Definition at line 1056 of file mlTVirtualVolume.h.

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

◆ _moveBZCB()

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

Definition at line 1084 of file mlTVirtualVolume.h.

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

◆ _moveBZCBE()

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

Definition at line 1091 of file mlTVirtualVolume.h.

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

◆ _moveBZE()

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

Definition at line 1069 of file mlTVirtualVolume.h.

References _VV_MOVEBE_TEST.

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

◆ _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 2218 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::x.

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

◆ _moveCursorOffset1DCB()

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

◆ _moveCursorOffset1DCBE()

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

◆ _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 2227 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and ml::TVector6DBase< CompIntType >::x.

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

◆ _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 2240 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _moveCursorOffset2DCB()

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

◆ _moveCursorOffset2DCBE()

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

◆ _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 2250 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _moveCursorOffset3D()

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

◆ _moveCursorOffset3DCB()

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

◆ _moveCursorOffset3DCBE()

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

◆ _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 2278 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _moveCursorOffset4D()

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

◆ _moveCursorOffset4DCB()

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

◆ _moveCursorOffset4DCBE()

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

◆ _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 2313 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::c, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _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 2336 of file mlTVirtualVolume.h.

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

◆ _moveCursorOffset5DCB()

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

◆ _moveCursorOffset5DCBE()

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

◆ _moveCursorOffset5DE()

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

◆ _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 2385 of file mlTVirtualVolume.h.

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

◆ _moveCursorOffset6DCB()

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

◆ _moveCursorOffset6DCBE()

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

◆ _moveCursorOffset6DE()

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

◆ _moveFC()

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

Definition at line 1018 of file mlTVirtualVolume.h.

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

◆ _moveFCCB()

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

Definition at line 1037 of file mlTVirtualVolume.h.

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

◆ _moveFCCBE()

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

Definition at line 1044 of file mlTVirtualVolume.h.

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

◆ _moveFCE()

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

Definition at line 1025 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

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

◆ _moveFT()

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

Definition at line 1019 of file mlTVirtualVolume.h.

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

◆ _moveFTCB()

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

Definition at line 1038 of file mlTVirtualVolume.h.

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

◆ _moveFTCBE()

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

Definition at line 1045 of file mlTVirtualVolume.h.

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

◆ _moveFTE()

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

Definition at line 1026 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

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

◆ _moveFU()

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

Definition at line 1020 of file mlTVirtualVolume.h.

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

◆ _moveFUCB()

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

Definition at line 1039 of file mlTVirtualVolume.h.

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

◆ _moveFUCBE()

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

Definition at line 1046 of file mlTVirtualVolume.h.

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

◆ _moveFUE()

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

Definition at line 1027 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

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

◆ _moveFX()

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

Definition at line 1015 of file mlTVirtualVolume.h.

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

◆ _moveFXCB()

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

Definition at line 1034 of file mlTVirtualVolume.h.

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

◆ _moveFXCBE()

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

Definition at line 1041 of file mlTVirtualVolume.h.

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

◆ _moveFXE()

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

Definition at line 1022 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

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

◆ _moveFY()

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

Definition at line 1016 of file mlTVirtualVolume.h.

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

◆ _moveFYCB()

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

Definition at line 1035 of file mlTVirtualVolume.h.

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

◆ _moveFYCBE()

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

Definition at line 1042 of file mlTVirtualVolume.h.

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

◆ _moveFYE()

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

Definition at line 1023 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

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

◆ _moveFZ()

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

Definition at line 1017 of file mlTVirtualVolume.h.

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

◆ _moveFZCB()

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

Definition at line 1036 of file mlTVirtualVolume.h.

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

◆ _moveFZCBE()

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

Definition at line 1043 of file mlTVirtualVolume.h.

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

◆ _moveFZE()

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

Definition at line 1024 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE.

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

◆ _setCursorPos1D()

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

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

Definition at line 1992 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::x.

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

◆ _setCursorPos1DCB()

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

◆ _setCursorPos1DCBE()

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

◆ _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 2001 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, and ml::TVector6DBase< CompIntType >::x.

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

◆ _setCursorPos2D()

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

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

Definition at line 2014 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _setCursorPos2DCB()

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

◆ _setCursorPos2DCBE()

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

◆ _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 2025 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _setCursorPos3D()

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

◆ _setCursorPos3DCB()

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

◆ _setCursorPos3DCBE()

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

◆ _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 2054 of file mlTVirtualVolume.h.

References ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _setCursorPos4D()

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

◆ _setCursorPos4DCB()

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

◆ _setCursorPos4DCBE()

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

◆ _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 2089 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::c, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _setCursorPos5D()

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

◆ _setCursorPos5DCB()

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

◆ _setCursorPos5DCBE()

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

◆ _setCursorPos5DE()

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

◆ _setCursorPos6D()

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

◆ _setCursorPos6DCB()

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

◆ _setCursorPos6DCBE()

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

◆ _setCursorPos6DE()

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

◆ _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 1780 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, and ml::TVector6DBase< CompIntType >::x.

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

◆ _setVoxel1DCB()

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

Definition at line 873 of file mlTVirtualVolume.h.

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

◆ _setVoxel1DCBE()

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

◆ _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 1789 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, and ml::TVector6DBase< CompIntType >::x.

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

◆ _setVoxel2D()

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

◆ _setVoxel2DCB()

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

Definition at line 874 of file mlTVirtualVolume.h.

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

◆ _setVoxel2DCBE()

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

◆ _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 1811 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, and ml::TVector6DBase< CompIntType >::y.

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

◆ _setVoxel3D()

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

◆ _setVoxel3DCB()

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

Definition at line 875 of file mlTVirtualVolume.h.

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

◆ _setVoxel3DCBE()

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

◆ _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 1836 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, ml::PageBuffer::_locked, ML_OUT_OF_RANGE, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

◆ _setVoxel4D()

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

◆ _setVoxel4DCB()

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

Definition at line 876 of file mlTVirtualVolume.h.

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

◆ _setVoxel4DCBE()

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

◆ _setVoxel4DE()

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

◆ _setVoxel5D()

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

◆ _setVoxel5DCB()

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

Definition at line 877 of file mlTVirtualVolume.h.

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

◆ _setVoxel5DCBE()

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

◆ _setVoxel5DE()

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

◆ _setVoxel6D()

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

◆ _setVoxel6DCB()

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

Definition at line 878 of file mlTVirtualVolume.h.

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

◆ _setVoxel6DCBE()

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

◆ _setVoxel6DE()

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

◆ 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 1326 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::c, ml::SubImage::getBoxFromImageExtent(), ml::TSubImage< DATATYPE >::getSubImageValue(), ml::WEMSetOp::intersect(), ml::TVector6DBase< CompIntType >::t, ml::TVector6DBase< CompIntType >::u, ml::TSubImageBox< intT >::v1, ml::TSubImageBox< intT >::v2, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

◆ 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::TVector6DBase< CompIntType >::c, ml::SubImage::getBox(), ml::BitImage::getCursorPosition(), ml::BitImage::getCursorValue(), ml::BitImage::getExtent(), ml::TSubImage< DATATYPE >::getImagePointer(), ml::TSubImageBox< intT >::intersect(), ml::WEMSetOp::intersect(), ml::BitImage::moveCursorX(), ml::BitImage::setCursorPosition(), ml::TVector6DBase< CompIntType >::t, ml::TVector6DBase< CompIntType >::u, ml::TSubImageBox< intT >::v1, ml::TSubImageBox< intT >::v2, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

◆ 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 1317 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 1288 of file mlTVirtualVolume.h.

References ml::TVector6DBase< CompIntType >::c, ml::WEMSetOp::intersect(), ml::TVector6DBase< CompIntType >::t, ml::TVector6DBase< CompIntType >::u, ml::TSubImageBox< intT >::v1, ml::TSubImageBox< intT >::v2, ml::TVector6DBase< CompIntType >::x, ml::TVector6DBase< CompIntType >::y, and ml::TVector6DBase< CompIntType >::z.

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

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

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

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

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

◆ getCursorValue()

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

Return value under cursor.

Definition at line 1228 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt.

◆ getDoubleCursorValueWrapped()

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

Definition at line 491 of file mlTVirtualVolume.h.

◆ getDoubleValueWrapped()

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

Definition at line 487 of file mlTVirtualVolume.h.

◆ getInt64CursorValueWrapped()

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

Definition at line 490 of file mlTVirtualVolume.h.

◆ getInt64ValueWrapped()

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

Definition at line 486 of file mlTVirtualVolume.h.

◆ getIntCursorValueWrapped()

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

Definition at line 489 of file mlTVirtualVolume.h.

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

◆ getLDoubleCursorValueWrapped()

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

Definition at line 492 of file mlTVirtualVolume.h.

◆ getLDoubleValueWrapped()

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

Definition at line 488 of file mlTVirtualVolume.h.

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

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

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

◆ moveCursorByOffsetWrapped()

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

Definition at line 520 of file mlTVirtualVolume.h.

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

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

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

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

◆ moveCursorXWrapped()

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

Definition at line 508 of file mlTVirtualVolume.h.

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

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

◆ operator=()

template<typename DATATYPE >
TVirtualVolume& ml::TVirtualVolume< DATATYPE >::operator= ( const TVirtualVolume< DATATYPE > &  )
inlineprotected

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 1236 of file mlTVirtualVolume.h.

◆ resetCursorWrapped()

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

Definition at line 521 of file mlTVirtualVolume.h.

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

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

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

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

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

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

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

◆ setCursorValue()

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

Set value under cursor and lock page.

Definition at line 1219 of file mlTVirtualVolume.h.

References ml::PageBuffer::_getPageFkt, and ml::PageBuffer::_locked.

◆ setDoubleCursorValueWrapped()

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

Definition at line 502 of file mlTVirtualVolume.h.

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

◆ setInt64CursorValueWrapped()

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

Definition at line 501 of file mlTVirtualVolume.h.

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

◆ setIntCursorValueWrapped()

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

Definition at line 500 of file mlTVirtualVolume.h.

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

◆ setLDoubleCursorValueWrapped()

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

Definition at line 503 of file mlTVirtualVolume.h.

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

◆ 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: