33 #ifndef AIMS_INTERPOLATION_INTERPOLATEDVOLUME_H 34 #define AIMS_INTERPOLATION_INTERPOLATEDVOLUME_H 89 double at(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
90 Vector
derivative(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
91 Matrix
nderivative(
unsigned n,
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
93 double operator() (
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
94 Vector
der(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
95 Matrix
der2(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
96 Matrix
der3(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
101 double atMm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
102 Vector
derivativeMm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
103 Matrix
nderivativeMm(
unsigned n,
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
105 Vector
derMm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
106 Matrix
der2Mm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
107 Matrix
der3Mm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
126 template <
typename T>
128 template <
typename T>
130 template <
typename T>
136 template <
typename T>
138 template <
typename T>
140 template <
typename T>
147 unsigned order()
const;
175 #endif // AIMS_INTERPOLATION_INTERPOLATEDVOLUME_H carto::rc_ptr< BSpline > _spline
Spline interpolation of volumes with simple accessors to interpolated values.
void setVolume(const carto::Volume< T > &vol, int order=-1)
Change interpolated volume.
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.
double getSizeZMm() const
void setCoeff(const carto::Volume< T > &vol, int order=-1)
Change coefficient volume.
carto::VolumeRef< double > Matrix
double at(double x, double y=0., double z=0., long t=0) const
Access interpolated values.
carto::VolumeRef< double > & coefficients()
Access to coefficients.
void setRecursiveMode()
Recursive/Fast/Tabular mode (default is Fast)
Matrix der2(double x, double y=0., double z=0., long t=0) const
bool empty() const
Is the volume empty (true if only default constructed)
InterpolatedVolume()
Constructors / Destructors / CopyDefault constructor: allocates no data.
Vector der(double x, double y=0., double z=0., long t=0) const
carto::PropertySet & header()
Header / Dimension.
Matrix nderivative(unsigned n, double x, double y=0., double z=0., long t=0) const
double getSizeXMm() const
Vector derivativeMm(double x, double y=0., double z=0., long t=0) const
double getSizeYMm() const
Matrix der2Mm(double x, double y=0., double z=0., long t=0) const
carto::VolumeRef< double > _coeff
void setFastMode()
Recursive/Fast/Tabular mode (default is Fast)
Vector derMm(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
Matrix nderivativeMm(unsigned n, double x, double y=0., double z=0., long t=0) const
void setTabularMode()
Recursive/Fast/Tabular mode (default is Fast)
Vector derivative(double x, double y=0., double z=0., long t=0) const
InterpolatedVolume & operator=(const InterpolatedVolume &other)
Assignment by copy (underlying data is fully copied and not shared between the volumes) ...
unsigned order() const
ParametersInterpolation order.
Matrix der3Mm(double x, double y=0., double z=0., long t=0) const
virtual ~InterpolatedVolume()
Destructor.