iRoCS Toolbox  1.1.0
Public Member Functions | Protected Attributes
atb::Array< DataT, Dim > Class Template Reference

The Array class is an extension to the blitz++ Array class providing additional parameters element size in microns and a transformation. More...

#include "libArrayToolbox/Array.hh"

Inheritance diagram for atb::Array< DataT, Dim >:
Collaboration diagram for atb::Array< DataT, Dim >:

Public Member Functions

 Array (std::string const &fileName, std::string const &dataset, iRoCS::ProgressReporter *progress=NULL)
 Constructor from BlitzH5File. More...
 
template<typename T_expr >
 Array (blitz::_bz_ArrayExpr< T_expr > expr, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one))
 Constructor from Array expression. More...
 
 Array (blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Default Constructor. More...
 
 Array (BlitzIndexT extent0, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking one extent parameter. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking two extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking three extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking four extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking five extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking six extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking seven extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking eight extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking nine extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8, BlitzIndexT extent9, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking ten extent parameters. More...
 
 Array (BlitzIndexT extent0, BlitzIndexT extent1, BlitzIndexT extent2, BlitzIndexT extent3, BlitzIndexT extent4, BlitzIndexT extent5, BlitzIndexT extent6, BlitzIndexT extent7, BlitzIndexT extent8, BlitzIndexT extent9, BlitzIndexT extent10, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Constructor taking eleven extent parameters. More...
 
 Array (DataT *restrict data, blitz::TinyVector< BlitzIndexT, Dim > const &shape, blitz::TinyVector< BlitzIndexT, Dim > const &stride, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Pre-existing data constructor with strides without ownership passing. More...
 
 Array (DataT *restrict data, blitz::TinyVector< BlitzIndexT, Dim > const &shape, blitz::preexistingMemoryPolicy deletionPolicy, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Pre-existing data constructor with ownership passing (if requested). More...
 
 Array (DataT *restrict data, blitz::TinyVector< BlitzIndexT, Dim > const &shape, blitz::TinyVector< BlitzIndexT, Dim > const &stride, blitz::preexistingMemoryPolicy deletionPolicy, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Pre-existing data constructor with strides and ownership passing (if requested). More...
 
 Array (blitz::TinyVector< BlitzIndexT, Dim > const &extents, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array Constructor of specified size and storage format. More...
 
 Array (blitz::TinyVector< BlitzIndexT, Dim > const &lbounds, blitz::TinyVector< BlitzIndexT, Dim > const &extents, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array Constructor of specified size and storage format with index offset. More...
 
 Array (blitz::Range const &r0, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for one dimension. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for two dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for three dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for four dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for five dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for six dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for seven dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for eight dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for nine dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8, blitz::Range const &r9, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for ten dimensions. More...
 
 Array (blitz::Range const &r0, blitz::Range const &r1, blitz::Range const &r2, blitz::Range const &r3, blitz::Range const &r4, blitz::Range const &r5, blitz::Range const &r6, blitz::Range const &r7, blitz::Range const &r8, blitz::Range const &r9, blitz::Range const &r10, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one), blitz::GeneralArrayStorage< Dim > storage=blitz::GeneralArrayStorage< Dim >())
 Empty Array constructor with specified addressing space for eleven dimensions. More...
 
 Array (Array< DataT, Dim > const &array)
 Reference Constructor. More...
 
template<int Dim2, typename R0 , typename R1 , typename R2 , typename R3 , typename R4 , typename R5 , typename R6 , typename R7 , typename R8 , typename R9 , typename R10 >
 Array (Array< DataT, Dim2 > &array, R0 r0, R1 r1, R2 r2, R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10)
 Mixed type Constructor. More...
 
 Array (blitz::Array< DataT, Dim > const &array, blitz::TinyVector< double, Dim > const &elementSizeUm=1.0, blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation=(traits< blitz::TinyMatrix< double, Dim+1, Dim+1 > >::one))
 blitz++ Array Copy Constructor. More...
 
 ~Array ()
 Destructor. More...
 
blitz::TinyVector< double, Dim > const & elementSizeUm () const
 Get the element size of this Array. More...
 
Array< DataT, Dim > & filterDeriche (double sigmaUm, int dim)
 Filter this Array with a recursive filter approximating a Gaussian (Deriche filter) along the selected dimension. More...
 
Interpolator< DataT, Dim > const & interpolator () const
 Get a read-only reference to the ArrayInterpolator applied to this Array. More...
 
void load (std::string const &fileName, std::string const &dataset, iRoCS::ProgressReporter *progress=NULL)
 Set the Array data and meta-data according to a specification stored in an HDF5 file. More...
 
void load (BlitzH5File const &inFile, std::string const &dataset, iRoCS::ProgressReporter *progress=NULL)
 Set the Array data and meta-data according to a specification stored in an HDF5 file. More...
 
blitz::TinyVector< double, Dim > lowerBoundUm () const
 Get the lower bound of the Array bounding box after application of the transformation in micrometers. More...
 
Array< DataT, Dim > & operator= (Array< DataT, Dim > const &array)
 (Copy) Assignment operator. More...
 
Array< DataT, Dim > & operator= (blitz::Array< DataT, Dim > const &array)
 Assignment operator from blitz++ Array. More...
 
template<typename T_expr >
Array< DataT, Dim > & operator= (blitz::ETBase< T_expr > const &expr)
 Assignment operator from blitz++ Array expression. More...
 
blitz::ListInitializationSwitch< typename blitz::Array< DataT, Dim >, DataT * > operator= (DataT x)
 List assignment operator. More...
 
Array< DataT, Dim > & rescale (blitz::TinyVector< double, Dim > const &targetElementSizeUm, iRoCS::ProgressReporter *pr=NULL)
 Rescale the Array so that the new Array element size is the given target element size. More...
 
void save (std::string const &fileName, std::string const &dataset, int compression=0, iRoCS::ProgressReporter *progress=NULL) const
 Save the Array data and meta-data to an HDF5 file. More...
 
void save (BlitzH5File &outFile, std::string const &dataset, int compression=0, iRoCS::ProgressReporter *progress=NULL) const
 Save the Array data and meta-data to an HDF5 file. More...
 
void setElementSizeUm (blitz::TinyVector< double, Dim > const &elementSizeUm)
 Set the element size of this Array. More...
 
void setInterpolator (Interpolator< DataT, Dim > const &interpolator)
 Set the Interpolator applied to this Array. More...
 
void setTransformation (blitz::TinyMatrix< double, Dim+1, Dim+1 > const &transformation)
 Set the homogeneous transformation matrix of this Array. More...
 
blitz::TinyMatrix< double, Dim+1, Dim+1 > const & transformation () const
 Get the homogeneous transformation matrix of this Array. More...
 
blitz::TinyVector< double, Dim > upperBoundUm () const
 Get the upper bound of the Array bounding box after application of the transformation in micrometers. More...
 
DataT valueAt (blitz::TinyVector< double, Dim > const &positionUm) const
 Get the Array value at the model (sub-pixel) position given. More...
 

Protected Attributes

blitz::TinyVector< double, Dim > _elementSizeUm
 The voxel extents in micrometers per voxel. More...
 
blitz::TinyMatrix< double, Dim+1, Dim+1 > _transformation
 The transformation matrix to apply when accessing the Array using valueAt() and setValueAt() More...
 
Interpolator< DataT, Dim > * p_interpolator
 The ArrayInterpolator to use when accessing sub-pixel Array positions using valueAt() and setValueAt() More...
 

Detailed Description

template<typename DataT, int Dim>
class atb::Array< DataT, Dim >

The Array class is an extension to the blitz++ Array class providing additional parameters element size in microns and a transformation.

This class adds relevant metadata to the general purpose blitz++ Arrays to handle microscopic datasets in a unified way. Along with the raw data with the known manipulation options of blitz++ Arrays, it additionally specifies the voxel extents in micormeters and you can specify a transformation to apply before querying the Array. Application of the transformation may yield sub-pixel positions. You can specify the interpolation behaviour by specifying an Interpolator and passing it via the setInterpolator() function. By default a linear interpolator with zero boundary treatment is used.

Template Parameters
DataTThe datatype of the Array elements to store. These can be basic or complex numeric types but also TinyVectors or TinyMatrices. Bool or user-defined types are not allowed and compilation will fail when trying to build Arrays using a type with undefined arithmetic operations.
DimThe rank of the Array

Definition at line 85 of file Array.hh.

Constructor & Destructor Documentation

◆ Array() [1/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( std::string const &  fileName,
std::string const &  dataset,
iRoCS::ProgressReporter progress = NULL 
)
explicit

Constructor from BlitzH5File.

Parameters
fileNameThe hdf5 file name
datasetThe hdf5 dataset name

◆ Array() [2/33]

template<typename DataT, int Dim>
template<typename T_expr >
atb::Array< DataT, Dim >::Array ( blitz::_bz_ArrayExpr< T_expr >  expr,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one) 
)
inlineexplicit

Constructor from Array expression.

Parameters
exprThe Array expression to create an Array from
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()

Definition at line 113 of file Array.hh.

◆ Array() [3/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Default Constructor.

This constructor calls the blitz::Array default constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 138 of file Array.hh.

◆ Array() [4/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inlineexplicit

Constructor taking one extent parameter.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zero's dimension (If the Array has more than one dimension this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 167 of file Array.hh.

◆ Array() [5/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking two extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension (If the Array has more than two dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 198 of file Array.hh.

◆ Array() [6/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking three extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension (If the Array has more than three dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 230 of file Array.hh.

◆ Array() [7/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking four extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension (If the Array has more than four dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 263 of file Array.hh.

◆ Array() [8/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking five extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension (If the Array has more than five dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 299 of file Array.hh.

◆ Array() [9/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
BlitzIndexT  extent5,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking six extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension
extent5The Array extent for the fifth dimension (If the Array has more than six dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 336 of file Array.hh.

◆ Array() [10/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
BlitzIndexT  extent5,
BlitzIndexT  extent6,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking seven extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension
extent5The Array extent for the fifth dimension
extent6The Array extent for the sixth dimension (If the Array has more than seven dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 374 of file Array.hh.

◆ Array() [11/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
BlitzIndexT  extent5,
BlitzIndexT  extent6,
BlitzIndexT  extent7,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking eight extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension
extent5The Array extent for the fifth dimension
extent6The Array extent for the sixth dimension
extent7The Array extent for the seventh dimension (If the Array has more than eight dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 415 of file Array.hh.

◆ Array() [12/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
BlitzIndexT  extent5,
BlitzIndexT  extent6,
BlitzIndexT  extent7,
BlitzIndexT  extent8,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking nine extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension
extent5The Array extent for the fifth dimension
extent6The Array extent for the sixth dimension
extent7The Array extent for the seventh dimension
extent8The Array extent for the eighth dimension (If the Array has more than nine dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 457 of file Array.hh.

◆ Array() [13/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
BlitzIndexT  extent5,
BlitzIndexT  extent6,
BlitzIndexT  extent7,
BlitzIndexT  extent8,
BlitzIndexT  extent9,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking ten extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension
extent5The Array extent for the fifth dimension
extent6The Array extent for the sixth dimension
extent7The Array extent for the seventh dimension
extent8The Array extent for the eighth dimension
extent9The Array extent for the nineth dimension (If the Array has more than ten dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 500 of file Array.hh.

◆ Array() [14/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( BlitzIndexT  extent0,
BlitzIndexT  extent1,
BlitzIndexT  extent2,
BlitzIndexT  extent3,
BlitzIndexT  extent4,
BlitzIndexT  extent5,
BlitzIndexT  extent6,
BlitzIndexT  extent7,
BlitzIndexT  extent8,
BlitzIndexT  extent9,
BlitzIndexT  extent10,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Constructor taking eleven extent parameters.

This constructor calls the corresponding blitz::Array constructor, sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extent0The Array extent for the zeroth dimension
extent1The Array extent for the first dimension
extent2The Array extent for the second dimension
extent3The Array extent for the third dimension
extent4The Array extent for the fourth dimension
extent5The Array extent for the fifth dimension
extent6The Array extent for the sixth dimension
extent7The Array extent for the seventh dimension
extent8The Array extent for the eighth dimension
extent9The Array extent for the nineth dimension
extent10The Array extent for the tenth dimension (If the Array has more than eleven dimensions this will be used for all remaining dimensions as well)
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 545 of file Array.hh.

◆ Array() [15/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( DataT *restrict  data,
blitz::TinyVector< BlitzIndexT, Dim > const &  shape,
blitz::TinyVector< BlitzIndexT, Dim > const &  stride,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Pre-existing data constructor with strides without ownership passing.

This constructor creates an Array from an existing data block with the given set of strides. Data ownership is not passed to the Array.

The constructor sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
dataThe pointer to the first data element of the pre-allocated memory block
shapeThe shape of the resulting Array
strideThe strides for the different dimensions
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 583 of file Array.hh.

◆ Array() [16/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( DataT *restrict  data,
blitz::TinyVector< BlitzIndexT, Dim > const &  shape,
blitz::preexistingMemoryPolicy  deletionPolicy,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Pre-existing data constructor with ownership passing (if requested).

This constructor creates an Array from an existing data block.

The constructor sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
dataThe pointer to the first data element of the pre-allocated memory block
shapeThe shape of the resulting Array
deletionPolicyThe deletion policy to apply.
  • blitz::neverDeleteData Ownership is not passed
  • blitz::duplicateData Create the Array from a copy of the data provided
  • blitz::deleteDataWhenDone Pass ownership to this blitz++ Array. The memory block has to be allocated with new to make this work.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 621 of file Array.hh.

◆ Array() [17/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( DataT *restrict  data,
blitz::TinyVector< BlitzIndexT, Dim > const &  shape,
blitz::TinyVector< BlitzIndexT, Dim > const &  stride,
blitz::preexistingMemoryPolicy  deletionPolicy,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Pre-existing data constructor with strides and ownership passing (if requested).

This constructor creates an Array from an existing data block.

The constructor sets the given element size and transformation matrix. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
dataThe pointer to the first data element of the pre-allocated memory block
shapeThe shape of the resulting Array
strideThe strides for the different dimensions
deletionPolicyThe deletion policy to apply.
  • blitz::neverDeleteData Ownership is not passed
  • blitz::duplicateData Create the Array from a copy of the data provided
  • blitz::deleteDataWhenDone Pass ownership to this blitz++ Array. The memory block has to be allocated with new to make this work.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply when accessing Array entries with valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 661 of file Array.hh.

◆ Array() [18/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::TinyVector< BlitzIndexT, Dim > const &  extents,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array Constructor of specified size and storage format.

This constructor creates an Array of specified dimensions and sets the element size and transformation to the given values. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
extentsThe Array extents
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 691 of file Array.hh.

◆ Array() [19/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::TinyVector< BlitzIndexT, Dim > const &  lbounds,
blitz::TinyVector< BlitzIndexT, Dim > const &  extents,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array Constructor of specified size and storage format with index offset.

This constructor creates an Array of specified dimensions and sets the element size and transformation to the given values. The interpolator will be set to linear with ZeroBoundaryTreatment.

Parameters
lboundsThe Array lower index bounds
extentsThe Array extents
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 721 of file Array.hh.

◆ Array() [20/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for one dimension.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension. If the Array has more than one dimension this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 753 of file Array.hh.

◆ Array() [21/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for two dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension. If the Array has more than two dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 785 of file Array.hh.

◆ Array() [22/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for three dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension. If the Array has more than three dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 819 of file Array.hh.

◆ Array() [23/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for four dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension. If the Array has more than four dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 854 of file Array.hh.

◆ Array() [24/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for five dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension. If the Array has more than five dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 891 of file Array.hh.

◆ Array() [25/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::Range const &  r5,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for six dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension.
r5The range of the fifth dimension. If the Array has more than six dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 929 of file Array.hh.

◆ Array() [26/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::Range const &  r5,
blitz::Range const &  r6,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for seven dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension.
r5The range of the fifth dimension.
r6The range of the sixth dimension. If the Array has more than seven dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 968 of file Array.hh.

◆ Array() [27/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::Range const &  r5,
blitz::Range const &  r6,
blitz::Range const &  r7,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for eight dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension.
r5The range of the fifth dimension.
r6The range of the sixth dimension.
r7The range of the seventh dimension. If the Array has more than eight dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 1009 of file Array.hh.

◆ Array() [28/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::Range const &  r5,
blitz::Range const &  r6,
blitz::Range const &  r7,
blitz::Range const &  r8,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for nine dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension.
r5The range of the fifth dimension.
r6The range of the sixth dimension.
r7The range of the seventh dimension.
r8The range of the eighth dimension. If the Array has more than nine dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 1051 of file Array.hh.

◆ Array() [29/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::Range const &  r5,
blitz::Range const &  r6,
blitz::Range const &  r7,
blitz::Range const &  r8,
blitz::Range const &  r9,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for ten dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension.
r5The range of the fifth dimension.
r6The range of the sixth dimension.
r7The range of the seventh dimension.
r8The range of the eighth dimension.
r9The range of the nineth dimension. If the Array has more than ten dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 1095 of file Array.hh.

◆ Array() [30/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Range const &  r0,
blitz::Range const &  r1,
blitz::Range const &  r2,
blitz::Range const &  r3,
blitz::Range const &  r4,
blitz::Range const &  r5,
blitz::Range const &  r6,
blitz::Range const &  r7,
blitz::Range const &  r8,
blitz::Range const &  r9,
blitz::Range const &  r10,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one),
blitz::GeneralArrayStorage< Dim >  storage = blitz::GeneralArrayStorage<Dim>() 
)
inline

Empty Array constructor with specified addressing space for eleven dimensions.

The Range argument indicates that the Array indices should start at the lower bound of the Range and end at the upper bound. e.g. Array<float,1>(blitz::Range(5, 15)) will create a new 1-D Array of length 11, starting at index 5.

Parameters
r0The range of the zeroth dimension.
r1The range of the first dimension.
r2The range of the second dimension.
r3The range of the third dimension.
r4The range of the fourth dimension.
r5The range of the fifth dimension.
r6The range of the sixth dimension.
r7The range of the seventh dimension.
r8The range of the eighth dimension.
r9The range of the nineth dimension.
r10The range of the tenth dimension. If the Array has more than eleven dimensions this range is used for the remaining dimensions as well.
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()
storageThe GeneralArrayStorage to use for the underlying blitz++ Array

Definition at line 1141 of file Array.hh.

◆ Array() [31/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( Array< DataT, Dim > const &  array)
inline

Reference Constructor.

This constructor creates a reference to another Array. This resembles the copy-Constructor of the blitz++ Arrays. It will not copy the array data. This is necessary to allow automatic type promotion and several Array assignment tricks known from blitz++. The meta-data will be copied to the new Array.

Parameters
arrayThe Array to create a reference to

Definition at line 1170 of file Array.hh.

◆ Array() [32/33]

template<typename DataT, int Dim>
template<int Dim2, typename R0 , typename R1 , typename R2 , typename R3 , typename R4 , typename R5 , typename R6 , typename R7 , typename R8 , typename R9 , typename R10 >
atb::Array< DataT, Dim >::Array ( Array< DataT, Dim2 > &  array,
R0  r0,
R1  r1,
R2  r2,
R3  r3,
R4  r4,
R5  r5,
R6  r6,
R7  r7,
R8  r8,
R9  r9,
R10  r10 
)
inline

Mixed type Constructor.

This constructor is internally used by the () operators, don't use it directly to actually create an Array.

Parameters
arrayThe Array to pick a sub-Array from
r0The zeroth Range or index
r1The first Range or index
r2The second Range or index
r3The third Range or index
r4The fourth Range or index
r5The fifth Range or index
r6The sixth Range or index
r7The seventh Range or index
r8The eighth Range or index
r9The nineth Range or index
r10The tenth Range or index

Definition at line 1203 of file Array.hh.

◆ Array() [33/33]

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::Array ( blitz::Array< DataT, Dim > const &  array,
blitz::TinyVector< double, Dim > const &  elementSizeUm = 1.0,
blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation = (traits< blitz::TinyMatrix<double,Dim+1,Dim+1> >::one) 
)
inline

blitz++ Array Copy Constructor.

This constructor creates an Array from the given blitz::Array. The data will be copied to the new Array and metadata set as given.

Parameters
arrayThe Array to copy
elementSizeUmThe voxel extents in micrometers
transformationThe transformation to apply to the query position before accessing the Array using valueAt() and setValueAt()

Definition at line 1225 of file Array.hh.

◆ ~Array()

template<typename DataT, int Dim>
atb::Array< DataT, Dim >::~Array ( )

Destructor.

Referenced by atb::Array< unsigned char, 3 >::Array().

Member Function Documentation

◆ operator=() [1/4]

template<typename DataT, int Dim>
Array<DataT,Dim>& atb::Array< DataT, Dim >::operator= ( Array< DataT, Dim > const &  array)

(Copy) Assignment operator.

This operator copies the values from the given Array into this Array, but leaves the meta-data of both Array untouched.

Parameters
arrayThe Array to copy

Referenced by atb::Array< unsigned char, 3 >::Array().

◆ operator=() [2/4]

template<typename DataT, int Dim>
Array<DataT,Dim>& atb::Array< DataT, Dim >::operator= ( blitz::Array< DataT, Dim > const &  array)

Assignment operator from blitz++ Array.

This operator copies the values from the given blitz++ Array into this Array.

Parameters
arrayThe Array to copy

◆ operator=() [3/4]

template<typename DataT, int Dim>
template<typename T_expr >
Array<DataT,Dim>& atb::Array< DataT, Dim >::operator= ( blitz::ETBase< T_expr > const &  expr)

Assignment operator from blitz++ Array expression.

This operator copies the values from the evaluation of the given Array expression into this Array.

Parameters
exprThe Array expression to evaluate

◆ operator=() [4/4]

template<typename DataT, int Dim>
blitz::ListInitializationSwitch<typename blitz::Array<DataT,Dim>, DataT*> atb::Array< DataT, Dim >::operator= ( DataT  x)
inline

List assignment operator.

This operator allows to initialize an Array like "A = 1, 2, 3".

Parameters
xThe first value in the list
Returns
The list initialization switch that parsed the rest of the input

Definition at line 1295 of file Array.hh.

◆ elementSizeUm()

template<typename DataT, int Dim>
blitz::TinyVector<double,Dim> const& atb::Array< DataT, Dim >::elementSizeUm ( ) const
inline

Get the element size of this Array.

Returns
The voxel extents of this Array in micrometers

Definition at line 1308 of file Array.hh.

Referenced by atb::Array< unsigned char, 3 >::setElementSizeUm().

◆ setElementSizeUm()

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::setElementSizeUm ( blitz::TinyVector< double, Dim > const &  elementSizeUm)
inline

Set the element size of this Array.

Parameters
elementSizeUmThe new voxel extents of this Array in micrometers

Definition at line 1320 of file Array.hh.

◆ transformation()

template<typename DataT, int Dim>
blitz::TinyMatrix<double,Dim+1,Dim+1> const& atb::Array< DataT, Dim >::transformation ( ) const
inline

Get the homogeneous transformation matrix of this Array.

Returns
The transformation matrix of this Array

Definition at line 1332 of file Array.hh.

Referenced by atb::Array< unsigned char, 3 >::setTransformation().

◆ setTransformation()

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::setTransformation ( blitz::TinyMatrix< double, Dim+1, Dim+1 > const &  transformation)
inline

Set the homogeneous transformation matrix of this Array.

Parameters
transformationThe transformation matrix of this Array

Definition at line 1344 of file Array.hh.

◆ interpolator()

template<typename DataT, int Dim>
Interpolator<DataT,Dim> const& atb::Array< DataT, Dim >::interpolator ( ) const
inline

Get a read-only reference to the ArrayInterpolator applied to this Array.

Returns
The Interpolator of this Array

Definition at line 1358 of file Array.hh.

◆ setInterpolator()

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::setInterpolator ( Interpolator< DataT, Dim > const &  interpolator)
inline

Set the Interpolator applied to this Array.

Parameters
interpolatorThe new Interpolator for this Array

Definition at line 1370 of file Array.hh.

◆ filterDeriche()

template<typename DataT, int Dim>
Array<DataT,Dim>& atb::Array< DataT, Dim >::filterDeriche ( double  sigmaUm,
int  dim 
)

Filter this Array with a recursive filter approximating a Gaussian (Deriche filter) along the selected dimension.

Let $\alpha := \frac{5}{2\sqrt{\pi}\sigma}$ and $I$ be a line of this Array to be filtered, then the recursive filter is defined by $\tilde I_i = f_i + g_i$ where

\[ f_i := \frac{\left( 1 - e^{\alpha} \right)^2}{1 + 2\alpha e^{-\alpha} - e^{-2\alpha}} \left( I_i + e^{-\alpha} \left( \alpha - 1 \right) I_{i-1} \right) + 2e^{-\alpha} f_{i-1} - e^{-2\alpha} f_{i-2} \]

and

\[ g_i := \frac{\left( 1 - e^{\alpha} \right)^2}{1 + 2\alpha e^{-\alpha} - e^{-2\alpha}} \left( e^{-\alpha} \left( \alpha + 1 \right) I_{i+1} - e^{-2\alpha} I_{i+2} \right) + 2e^{-\alpha} g_{i+1} - e^{-2\alpha} g_{i+2} \]

Parameters
sigmaUmThe standard deviation of the Gaussian that is approximated by the recursive filter in micrometers
dimThe dimension along the filtering is performed
Returns
A reference to this Array after filtering

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

◆ rescale()

template<typename DataT, int Dim>
Array<DataT,Dim>& atb::Array< DataT, Dim >::rescale ( blitz::TinyVector< double, Dim > const &  targetElementSizeUm,
iRoCS::ProgressReporter pr = NULL 
)

Rescale the Array so that the new Array element size is the given target element size.

If down-scaling in any dimension is requested (increase in element size), the according dimension will first be convolved with a Gaussian to avoid aliasing. The Interpolator associated with this Array will be applied.

Parameters
targetElementSizeUmThe target voxel extents in micrometers
Returns
A reference to this Array after rescaling

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

◆ load() [1/2]

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::load ( std::string const &  fileName,
std::string const &  dataset,
iRoCS::ProgressReporter progress = NULL 
)

Set the Array data and meta-data according to a specification stored in an HDF5 file.

This function loads the specified HDF5 dataset and associated meta-data. If meta-data are missing, they will be set to default values, i. e. unit element size and identity transformation. The meta-data are expected to be found in dataset attributes 'element_size_um' (double vector of length Dim) and 'transformation' (double vector of length (Dim + 1) * (Dim + 1)).

Parameters
fileNameThe hdf5 file to read the Array data from
datasetThe hdf5 dataset to read the Array data from
Exceptions
BlitzH5ErrorIf the dataset cannot be read this exception is thrown.

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

◆ load() [2/2]

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::load ( BlitzH5File const &  inFile,
std::string const &  dataset,
iRoCS::ProgressReporter progress = NULL 
)

Set the Array data and meta-data according to a specification stored in an HDF5 file.

This function loads the specified HDF5 dataset and associated meta-data. If meta-data are missing, they will be set to default values, i. e. unit element size and identity transformation. The meta-data are expected to be found in dataset attributes 'element_size_um' (double vector of length Dim) and 'transformation' (double vector of length (Dim + 1) * (Dim + 1)).

Parameters
inFileThe hdf5 file to read the Array data from
datasetThe hdf5 dataset to read the Array data from
Exceptions
BlitzH5ErrorIf the dataset cannot be read this exception is thrown.

◆ save() [1/2]

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::save ( std::string const &  fileName,
std::string const &  dataset,
int  compression = 0,
iRoCS::ProgressReporter progress = NULL 
) const

Save the Array data and meta-data to an HDF5 file.

This function saves this Array to the specified HDF5 dataset. The meta-data are stored in dataset attributes 'element_size_um' (double vector of length Dim) and 'transformation' (double vector of length (Dim + 1) * (Dim + 1)).

Parameters
fileNameThe hdf5 file to write the Array data to
datasetThe hdf5 dataset to write the Array data to
compressionThe compression level to apply (0-9). 0 is no compression. Usually a good trade-off is a compression level of 3
Exceptions
BlitzH5ErrorIf the dataset cannot be written this exception is thrown.

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

◆ save() [2/2]

template<typename DataT, int Dim>
void atb::Array< DataT, Dim >::save ( BlitzH5File outFile,
std::string const &  dataset,
int  compression = 0,
iRoCS::ProgressReporter progress = NULL 
) const

Save the Array data and meta-data to an HDF5 file.

This function saves this Array to the specified HDF5 dataset. The meta-data are stored in dataset attributes 'element_size_um' (double vector of length Dim) and 'transformation' (double vector of length (Dim + 1) * (Dim + 1)).

Parameters
outFileThe hdf5 file to write the Array data to
datasetThe hdf5 dataset to write the Array data to
compressionThe compression level to apply (0-9). 0 is no compression. Usually a good trade-off is a compression level of 3
Exceptions
BlitzH5ErrorIf the dataset cannot be written this exception is thrown.

◆ lowerBoundUm()

template<typename DataT, int Dim>
blitz::TinyVector<double,Dim> atb::Array< DataT, Dim >::lowerBoundUm ( ) const

Get the lower bound of the Array bounding box after application of the transformation in micrometers.

Returns
The lower bound of the Array bounding box

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

◆ upperBoundUm()

template<typename DataT, int Dim>
blitz::TinyVector<double,Dim> atb::Array< DataT, Dim >::upperBoundUm ( ) const

Get the upper bound of the Array bounding box after application of the transformation in micrometers.

Returns
The upper bound of the Array bounding box

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

◆ valueAt()

template<typename DataT, int Dim>
DataT atb::Array< DataT, Dim >::valueAt ( blitz::TinyVector< double, Dim > const &  positionUm) const

Get the Array value at the model (sub-pixel) position given.

To obtain the Array value first the transform is applied to the given micrometer position, the resulting position is divided by the element size to obtain the (sub-pixel) Array index to access. Then the ArrayInterpolator (with associated BoundaryTreatment) is applied to obtain the interpolated Array value.

\[ \textrm{valueAt}(\vec{x}) = A\left(\left( \mathbf{1}_{\mathrm{Dim}}, \vec{0} \right) \mathbf{T} \left(\vec{x}, 1\right)^T / \mathrm{elementSizeUm} \right) \]

Parameters
positionUmThe micrometer position to query
Returns
The interpolated value at the given position

Referenced by atb::Array< unsigned char, 3 >::setInterpolator().

Field Documentation

◆ _elementSizeUm

template<typename DataT, int Dim>
blitz::TinyVector<double,Dim> atb::Array< DataT, Dim >::_elementSizeUm
protected

The voxel extents in micrometers per voxel.

Definition at line 1561 of file Array.hh.

Referenced by atb::Array< unsigned char, 3 >::elementSizeUm(), and atb::Array< unsigned char, 3 >::setElementSizeUm().

◆ _transformation

template<typename DataT, int Dim>
blitz::TinyMatrix<double,Dim+1,Dim+1> atb::Array< DataT, Dim >::_transformation
protected

The transformation matrix to apply when accessing the Array using valueAt() and setValueAt()

Definition at line 1569 of file Array.hh.

Referenced by atb::Array< unsigned char, 3 >::setTransformation(), and atb::Array< unsigned char, 3 >::transformation().

◆ p_interpolator

template<typename DataT, int Dim>
Interpolator<DataT,Dim>* atb::Array< DataT, Dim >::p_interpolator
protected

The ArrayInterpolator to use when accessing sub-pixel Array positions using valueAt() and setValueAt()

Definition at line 1577 of file Array.hh.

Referenced by atb::Array< unsigned char, 3 >::interpolator(), and atb::Array< unsigned char, 3 >::setInterpolator().


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