aimsalgo 6.0.0
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
 
typedef carto::VolumeRef< double > Matrix
 

Public Member Functions

 InterpolatedVolume ()
 Constructors / Destructors / CopyDefault constructor: allocates no data.
 
template<typename T>
 InterpolatedVolume (const carto::Volume< T > &vol, unsigned order=3)
 Constructor from Volume.
 
template<typename T>
 InterpolatedVolume (const carto::VolumeRef< T > &vol, unsigned order=3)
 Constructor from VolumeRef.
 
 InterpolatedVolume (const InterpolatedVolume &other)
 Copy constructor (underlying data is fully copied and not shared between the volumes)
 
virtual ~InterpolatedVolume ()
 Destructor.
 
InterpolatedVolumeoperator= (const InterpolatedVolume &other)
 Assignment by copy (underlying data is fully copied and not shared between the volumes)
 
double at (double x, double y=0., double z=0., long t=0) const
 Access interpolated values.
 
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.
 
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.
 
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.
 
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.
 
template<typename T>
void setCoeff (const carto::VolumeRef< T > &vol, int order=-1)
 
unsigned order () const
 ParametersInterpolation order.
 
bool empty () const
 Is the volume empty (true if only default constructed)
 
void setRecursiveMode ()
 Recursive/Fast/Tabular mode (default is Fast)
 
void setFastMode ()
 Recursive/Fast/Tabular mode (default is Fast)
 
void setTabularMode ()
 Recursive/Fast/Tabular mode (default is Fast)
 
carto::VolumeRef< double > & coefficients ()
 Access to coefficients.
 
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.

References order().

Referenced by InterpolatedVolume(), and operator=().

◆ 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 _order, _spline, order(), and 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 _order, _spline, order(), and setVolume().

◆ InterpolatedVolume() [4/4]

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

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

References InterpolatedVolume().

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

References order().

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

References InterpolatedVolume().

◆ order()

unsigned aims::InterpolatedVolume::order ( ) const

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

Referenced by setCoeff().

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

Referenced by InterpolatedVolume(), InterpolatedVolume(), and setVolume().

◆ 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 InterpolatedVolume(), InterpolatedVolume(), setCoeff(), and setVolume().

◆ _spline

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

Definition at line 162 of file interpolatedvolume.h.

Referenced by InterpolatedVolume(), and InterpolatedVolume().


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