aimsalgo  5.1.2
Neuroimaging image processing
aims::InterpolatedVolume Class Reference

Spline interpolation of volumes with simple accessors to interpolated values. More...

#include <aims/interpolation/interpolatedvolume.h>

Collaboration diagram for aims::InterpolatedVolume:

Public Types

typedef Point3dd Vector
 typedefs More...
 
typedef carto::VolumeRef< double > Matrix
 

Public Member Functions

 InterpolatedVolume ()
 Constructors / Destructors / CopyDefault constructor: allocates no data. More...
 
template<typename T >
 InterpolatedVolume (const carto::Volume< T > &vol, unsigned order=3)
 Constructor from Volume. More...
 
template<typename T >
 InterpolatedVolume (const carto::VolumeRef< T > &vol, unsigned order=3)
 Constructor from VolumeRef. More...
 
 InterpolatedVolume (const InterpolatedVolume &other)
 Copy constructor (underlying data is fully copied and not shared between the volumes) More...
 
virtual ~InterpolatedVolume ()
 Destructor. More...
 
InterpolatedVolumeoperator= (const InterpolatedVolume &other)
 Assignment by copy (underlying data is fully copied and not shared between the volumes) More...
 
double at (double x, double y=0., double z=0., long t=0) const
 Access interpolated values. More...
 
Vector derivative (double x, double y=0., double z=0., long t=0) const
 
Matrix nderivative (unsigned n, double x, double y=0., double z=0., long t=0) const
 
double operator() (double x, double y=0., double z=0., long t=0) const
 
Vector der (double x, double y=0., double z=0., long t=0) const
 
Matrix der2 (double x, double y=0., double z=0., long t=0) const
 
Matrix der3 (double x, double y=0., double z=0., long t=0) const
 
double atMm (double x, double y=0., double z=0., long t=0) const
 Access interpolated values in mm. More...
 
Vector derivativeMm (double x, double y=0., double z=0., long t=0) const
 
Matrix nderivativeMm (unsigned n, double x, double y=0., double z=0., long t=0) const
 
Vector derMm (double x, double y=0., double z=0., long t=0) const
 
Matrix der2Mm (double x, double y=0., double z=0., long t=0) const
 
Matrix der3Mm (double x, double y=0., double z=0., long t=0) const
 
double getSizeXMm () const
 
double getSizeYMm () const
 
double getSizeZMm () const
 
carto::PropertySetheader ()
 Header / Dimension. More...
 
const carto::PropertySetheader () const
 
double getSizeX () const
 
double getSizeY () const
 
double getSizeZ () const
 
long getSizeT () const
 
template<typename T >
void setVolume (const carto::Volume< T > &vol, int order=-1)
 Change interpolated volume. More...
 
template<typename T >
void setVolume (const carto::VolumeRef< T > &vol, int order=-1)
 
template<typename T >
void setCoeff (const carto::Volume< T > &vol, int order=-1)
 Change coefficient volume. More...
 
template<typename T >
void setCoeff (const carto::VolumeRef< T > &vol, int order=-1)
 
unsigned order () const
 ParametersInterpolation order. More...
 
bool empty () const
 Is the volume empty (true if only default constructed) More...
 
void setRecursiveMode ()
 Recursive/Fast/Tabular mode (default is Fast) More...
 
void setFastMode ()
 Recursive/Fast/Tabular mode (default is Fast) More...
 
void setTabularMode ()
 Recursive/Fast/Tabular mode (default is Fast) More...
 
carto::VolumeRef< double > & coefficients ()
 Access to coefficients. More...
 
const carto::VolumeRef< double > & coefficients () const
 

Protected Attributes

unsigned _order
 
carto::rc_ptr< BSpline_spline
 
carto::VolumeRef< double > _coeff
 

Detailed Description

Spline interpolation of volumes with simple accessors to interpolated values.

Definition at line 55 of file interpolatedvolume.h.

Member Typedef Documentation

◆ Matrix

Definition at line 60 of file interpolatedvolume.h.

◆ Vector

typedefs

Definition at line 59 of file interpolatedvolume.h.

Constructor & Destructor Documentation

◆ InterpolatedVolume() [1/4]

aims::InterpolatedVolume::InterpolatedVolume ( )

Constructors / Destructors / CopyDefault constructor: allocates no data.

◆ InterpolatedVolume() [2/4]

template<typename T >
aims::InterpolatedVolume::InterpolatedVolume ( const carto::Volume< T > &  vol,
unsigned  order = 3 
)

Constructor from Volume.

Warning
This is the most expensive constructor because the volume has to be fully copied.

Definition at line 50 of file interpolatedvolume_d.h.

References setVolume().

◆ InterpolatedVolume() [3/4]

template<typename T >
aims::InterpolatedVolume::InterpolatedVolume ( const carto::VolumeRef< T > &  vol,
unsigned  order = 3 
)

Constructor from VolumeRef.

Definition at line 59 of file interpolatedvolume_d.h.

References setVolume().

◆ InterpolatedVolume() [4/4]

aims::InterpolatedVolume::InterpolatedVolume ( const InterpolatedVolume other)

Copy constructor (underlying data is fully copied and not shared between the volumes)

◆ ~InterpolatedVolume()

virtual aims::InterpolatedVolume::~InterpolatedVolume ( )
virtual

Destructor.

Member Function Documentation

◆ at()

double aims::InterpolatedVolume::at ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

Access interpolated values.

◆ atMm()

double aims::InterpolatedVolume::atMm ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

Access interpolated values in mm.

◆ coefficients() [1/2]

carto::VolumeRef<double>& aims::InterpolatedVolume::coefficients ( )

Access to coefficients.

◆ coefficients() [2/2]

const carto::VolumeRef<double>& aims::InterpolatedVolume::coefficients ( ) const

◆ der()

Vector aims::InterpolatedVolume::der ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ der2()

Matrix aims::InterpolatedVolume::der2 ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ der2Mm()

Matrix aims::InterpolatedVolume::der2Mm ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ der3()

Matrix aims::InterpolatedVolume::der3 ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ der3Mm()

Matrix aims::InterpolatedVolume::der3Mm ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ derivative()

Vector aims::InterpolatedVolume::derivative ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ derivativeMm()

Vector aims::InterpolatedVolume::derivativeMm ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ derMm()

Vector aims::InterpolatedVolume::derMm ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ empty()

bool aims::InterpolatedVolume::empty ( ) const

Is the volume empty (true if only default constructed)

◆ getSizeT()

long aims::InterpolatedVolume::getSizeT ( ) const

◆ getSizeX()

double aims::InterpolatedVolume::getSizeX ( ) const

◆ getSizeXMm()

double aims::InterpolatedVolume::getSizeXMm ( ) const

◆ getSizeY()

double aims::InterpolatedVolume::getSizeY ( ) const

◆ getSizeYMm()

double aims::InterpolatedVolume::getSizeYMm ( ) const

◆ getSizeZ()

double aims::InterpolatedVolume::getSizeZ ( ) const

◆ getSizeZMm()

double aims::InterpolatedVolume::getSizeZMm ( ) const

◆ header() [1/2]

carto::PropertySet& aims::InterpolatedVolume::header ( )

Header / Dimension.

◆ header() [2/2]

const carto::PropertySet& aims::InterpolatedVolume::header ( ) const

◆ nderivative()

Matrix aims::InterpolatedVolume::nderivative ( unsigned  n,
double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ nderivativeMm()

Matrix aims::InterpolatedVolume::nderivativeMm ( unsigned  n,
double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ operator()()

double aims::InterpolatedVolume::operator() ( double  x,
double  y = 0.,
double  z = 0.,
long  t = 0 
) const

◆ operator=()

InterpolatedVolume& aims::InterpolatedVolume::operator= ( const InterpolatedVolume other)

Assignment by copy (underlying data is fully copied and not shared between the volumes)

◆ order()

unsigned aims::InterpolatedVolume::order ( ) const

ParametersInterpolation order.

Referenced by setCoeff(), and setVolume().

◆ setCoeff() [1/2]

template<typename T >
void aims::InterpolatedVolume::setCoeff ( const carto::Volume< T > &  vol,
int  order = -1 
)

Change coefficient volume.

Definition at line 102 of file interpolatedvolume_d.h.

References order().

◆ setCoeff() [2/2]

template<typename T >
void aims::InterpolatedVolume::setCoeff ( const carto::VolumeRef< T > &  vol,
int  order = -1 
)

Definition at line 93 of file interpolatedvolume_d.h.

References _coeff, _order, and order().

◆ setFastMode()

void aims::InterpolatedVolume::setFastMode ( )

Recursive/Fast/Tabular mode (default is Fast)

◆ setRecursiveMode()

void aims::InterpolatedVolume::setRecursiveMode ( )

Recursive/Fast/Tabular mode (default is Fast)

◆ setTabularMode()

void aims::InterpolatedVolume::setTabularMode ( )

Recursive/Fast/Tabular mode (default is Fast)

◆ setVolume() [1/2]

template<typename T >
void aims::InterpolatedVolume::setVolume ( const carto::Volume< T > &  vol,
int  order = -1 
)

Change interpolated volume.

Definition at line 72 of file interpolatedvolume_d.h.

References order().

Referenced by InterpolatedVolume().

◆ setVolume() [2/2]

template<typename T >
void aims::InterpolatedVolume::setVolume ( const carto::VolumeRef< T > &  vol,
int  order = -1 
)

Definition at line 79 of file interpolatedvolume_d.h.

References _coeff, _order, aims::IIRFilterBase::execute(), and order().

Member Data Documentation

◆ _coeff

carto::VolumeRef<double> aims::InterpolatedVolume::_coeff
protected

Definition at line 163 of file interpolatedvolume.h.

Referenced by setCoeff(), and setVolume().

◆ _order

unsigned aims::InterpolatedVolume::_order
protected

Definition at line 161 of file interpolatedvolume.h.

Referenced by setCoeff(), and setVolume().

◆ _spline

carto::rc_ptr<BSpline> aims::InterpolatedVolume::_spline
protected

Definition at line 162 of file interpolatedvolume.h.


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