#include <map_interp.h>
Static Public Member Functions | |
template<class M > | |
static bool | can_interp (const M &map, const Coord_map &pos) |
Test if we can interpolate in map M at coord. | |
template<class T , class M > | |
static void | interp (const M &map, const Coord_map &pos, T &val) |
Interpolate map M using type T at coord. | |
template<class T , class M > | |
static void | interp_grad (const M &map, const Coord_map &pos, T &val, Grad_map< T > &grad) |
template<class T , class M > | |
static void | interp_curv (const M &map, const Coord_map &pos, T &val, Grad_map< T > &grad, Curv_map< T > &curv) |
static int | order () |
Order of interpolant. |
These can be used through the built-in methods in Xmap/NXmap, or passed to methods to allow a choice of interpolation methods, or directly by providing the map as an argument. For example:
NXmap<float> nxmap; Coord_map c; float x1, x2; ... Interp_cubic::interp( nxmap, c, x1 ); x2 = nxmap.interp<Interp_cubic>( c );
bool clipper::Interp_cubic::can_interp | ( | const M & | map, | |
const Coord_map & | pos | |||
) | [inline, static] |
Test if we can interpolate in map M at coord.
The map is queried to see if interpolation is possible at the given coord. For a crystallographic map, this is always true. For a non-crystallographic map, this depends if the point and enough neighbours are in the grid.
map | The map on which to perform the calculation. | |
pos | The map coord at which the density is to be calcuated. |
void clipper::Interp_cubic::interp | ( | const M & | map, | |
const Coord_map & | pos, | |||
T & | val | |||
) | [inline, static] |
Interpolate map M using type T at coord.
The value of the map at the supplied map coordinate is calculated by third order (cubic) interpolation based on the surrounding 64 points.
pos | The fractional coord at which the density is to be calcuated. |
void clipper::Interp_cubic::interp_grad | ( | const M & | map, | |
const Coord_map & | pos, | |||
T & | val, | |||
Grad_map< T > & | grad | |||
) | [inline, static] |
The value of the map at the supplied map coordinate and its gradient are calculated by third order (cubic) interpolation based on the surrounding 64 points.
pos | The fractional coord at which the density is to be calcuated. | |
val | The value of the density at that point. | |
grad | The interpolated value as a gradient vector with respect to the fractional coordinates (see Cell::coord_orth). |
void clipper::Interp_cubic::interp_curv | ( | const M & | map, | |
const Coord_map & | pos, | |||
T & | val, | |||
Grad_map< T > & | grad, | |||
Curv_map< T > & | curv | |||
) | [inline, static] |
The value of the map at the supplied map coordinate and its gradient are calculated by third order (cubic) interpolation based on the surrounding 64 points.
pos | The fractional coord at which the density is to be calcuated. | |
val | The value of the density at that point. | |
grad | The interpolated value as a gradient vector with respect to the fractional coordinates (see Cell::coord_orth). |