SLIMMER
Public Member Functions | Static Public Attributes
SimpleInterp< TOUT > Class Template Reference

Class for Interpolation of Values on a regular 2D or 3D grid. More...

#include <SimpleInterp.h>

List of all members.

Public Member Functions

template<typename TT , typename TIN >
TOUT NN3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
 3D Nearest Neighbour Interpolation Function
template<typename TT , typename TIN >
TOUT Linear3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
 3D Linear Interpolation Function
template<typename TT , typename TIN >
TOUT Linear3Dpad (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
 3D Linear Interpolation Function
template<typename TT , typename TIN >
void Linear3D (const TT &im1, const SimpleBaseTVec< float > &X, TOUT &val, SimpleTVec< TOUT, 3 > &der, const TIN &PadVal, const int &frame=0) const
 3D Linear Interpolation Function with gradient
template<typename TT , typename TIN >
TOUT Cubic3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0) const
 3D Cubic Interpolation Function
template<typename TT , typename TIN >
TOUT Cubic3Dpad (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0) const
 3D Cubic Interpolation Function checking for padding values
template<typename TT , typename TIN >
TOUT CBS3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
 3D Cubic BSpline Interpolation Function
template<typename TT , typename TIN >
TOUT Interp3D_Type (int InterpType, const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
 Wrapper for 3D Interpolation Type Selection.
template<typename TT , typename TIN >
void Interp3D_Type (int InterpType, const TT &im1, const SimpleBaseTVec< float > &X, TOUT &val, SimpleTVec< TOUT, 3 > &der, const TIN &PadVal, const int &frame=0) const
 Wrapper for 3D Interpolation Type Selection.
template<typename TT , typename TIN >
TOUT NN2D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0, const int slice=0) const
 2D Nearest Neighbour Interpolation Function
template<typename TT , typename TIN >
TOUT Linear2D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0, const int &slice=0) const
 2D Linear Interpolation Function
template<typename TT , typename TIN >
TOUT Cubic2D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int frame=0, const int slice=0) const
 2D Cubic Interpolation Function
template<typename TT , typename TIN >
TOUT Interp2D_Type (int InterpType, const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
template<typename TT , typename TIN >
SimpleTVec< TOUT, 3 > CubicGrad3D (const TT &im1, const SimpleBaseTVec< float > &X, const float &step, const TIN &PadVal, const int frame=0) const
 3D Cubic Interpolation Gradient Function
template<typename TT , typename TIN >
SimpleTVec< TOUT, 3 > CBSGrad3D (const TT &im1, const SimpleBaseTVec< float > &X, const TIN &PadVal, const int &frame=0) const
 Cubic B-Spline Interpolation Gradient.
template<>
const char _versionID []

Static Public Attributes

static const char _versionID []

Detailed Description

template<typename TOUT>
class SimpleInterp< TOUT >

Class for Interpolation of Values on a regular 2D or 3D grid.

Functions Written to Operate on abstract data Type TT having nVox() function to define dimensions and [] to access elements
class template type TOUT defines output type for interpolation calculation

Definitions for Specifiying Interpolation Type to be used:
NN3D() and NN2D(): Nearest Neighbour 3D and 2D interpolation
Linear3D() and Linear2D(): Linear 3D and 2D interpolation
Cubic3D() and Cubic2D(): Cubic 3D and 2D interpolation
Linear3Dpad() and Cubic3Dpad() are pad-preserving versions (have slower voxel tests)
CBS3D() and CBS2D(): Cubic BSpline 3D and 2D interpolation
Interp3D_Type() and Interp2D_Type(): Wrappers calling a defineable interpolation type

Member function calling notes:
Location Vector X has variable length LEN but only first 2 or 3 used
This is to allow calling with result of a homogeneous coordinate transform which is padded to length 4.
note: No checking for calling with length less than required!!!

parameter 'frame' for 3D and 2D specifies which frame of a 4D dataset to interpolate
parameter 'slice' for 2D specifies which slice of a 3D/4D dataset to interpolate

PadVal type: this determines type of INPUT data type, i.e. need to cast 0 to short(0) or 0.0 to float(0.0) when calling

Id:
SimpleInterp.h,v 1.15 2011/12/15 01:16:16 bicg Exp
 All Classes Functions Variables Typedefs