33#ifndef AIMS_INTERPOLATION_INTERPOLATEDVOLUME_H
34#define AIMS_INTERPOLATION_INTERPOLATEDVOLUME_H
37#include <cartodata/volume/volume.h>
41#include <cartodata/volume/volume.h>
43#include <cartobase/smart/rcptr.h>
86 double at(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
90 double operator() (
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
91 Vector der(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
92 Matrix der2(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
93 Matrix der3(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
98 double atMm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
102 Vector derMm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
103 Matrix der2Mm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
104 Matrix der3Mm(
double x,
double y = 0.,
double z = 0.,
long t = 0 )
const;
123 template <
typename T>
125 template <
typename T>
131 template <
typename T>
133 template <
typename T>
InterpolatedVolume & operator=(const InterpolatedVolume &other)
Assignment by copy (underlying data is fully copied and not shared between the volumes)
Matrix der2(double x, double y=0., double z=0., long t=0) const
double getSizeYMm() const
Vector derivative(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
double getSizeZMm() const
const carto::VolumeRef< double > & coefficients() const
carto::VolumeRef< double > Matrix
double at(double x, double y=0., double z=0., long t=0) const
Access interpolated values.
double getSizeXMm() const
Matrix der3(double x, double y=0., double z=0., long t=0) const
InterpolatedVolume()
Constructors / Destructors / CopyDefault constructor: allocates no data.
Matrix nderivative(unsigned n, 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
unsigned order() const
ParametersInterpolation order.
Matrix der3Mm(double x, double y=0., double z=0., long t=0) const
Vector derivativeMm(double x, double y=0., double z=0., long t=0) const
void setCoeff(const carto::Volume< T > &vol, int order=-1)
Change coefficient volume.
carto::VolumeRef< double > & coefficients()
Access to coefficients.
Vector der(double x, double y=0., double z=0., long t=0) const
void setRecursiveMode()
Recursive/Fast/Tabular mode (default is Fast)
void setTabularMode()
Recursive/Fast/Tabular mode (default is Fast)
virtual ~InterpolatedVolume()
Destructor.
carto::rc_ptr< BSpline > _spline
const carto::PropertySet & header() const
bool empty() const
Is the volume empty (true if only default constructed)
double atMm(double x, double y=0., double z=0., long t=0) const
Access interpolated values in mm.
carto::VolumeRef< double > _coeff
void setFastMode()
Recursive/Fast/Tabular mode (default is Fast)
void setVolume(const carto::Volume< T > &vol, int order=-1)
Change interpolated volume.
Matrix nderivativeMm(unsigned n, double x, double y=0., double z=0., long t=0) const
InterpolatedVolume(const InterpolatedVolume &other)
Copy constructor (underlying data is fully copied and not shared between the volumes)
Vector derMm(double x, double y=0., double z=0., long t=0) const
carto::PropertySet & header()
Header / Dimension.
AimsVector< double, 3 > Point3dd