Clipper
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Friends
clipper::NXmap_base Class Reference

NXmap_base: base for non-crystallographic map class. More...

#include <nxmap.h>

Inheritance diagram for clipper::NXmap_base:
clipper::NXmap< T > clipper::CNXmap< T >

List of all members.

Classes

class  Map_reference_base
 Map reference base class. More...
class  Map_reference_coord
 Map reference with coordinate-like behaviour. More...
class  Map_reference_index
 Map reference with index-like behaviour. More...

Public Member Functions

bool is_null () const
 test if object has been initialised
const Gridgrid () const
 return the grid dimensions for this map
const RTopoperator_orth_grid () const
 return the orthogonal-to-grid coordinate operator
const RTopoperator_grid_orth () const
 return the grid-to-orthogonal coordinate operator
Coord_orth coord_orth (const Coord_map &cm) const
 convert map coordinate to orthogonal
Coord_map coord_map (const Coord_orth &co) const
 convert orthogonal coordinate to map
bool in_map (const Coord_grid &pos) const
 is the given coord available in the map?
template<class I >
bool in_map (const Coord_map &cm) const
 is the given coord available in the map using the given interpolant?
int multiplicity (const Coord_grid &) const
 get multiplicity of a map grid point (always 1 for NXmap)
Map_reference_index first () const
 return a basic Map_reference_index for this map
Map_reference_coord first_coord () const
 return a coord Map_reference_index for this map

Protected Member Functions

 NXmap_base ()
 Null constructor, for later initialisation.
void init (const Grid &grid, const RTop<> &rt)
 initialiser: takes grid and orthogonal->grid coordinate operator
void init (const Cell &cell, const Grid_sampling &grid, const Grid_range &grid_extent)
 initialiser: takes grid, cell, and fraction limits

Protected Attributes

Grid grid_
 grid for the map
RTop rt_orth_grid
 orth->grid operator
RTop rt_grid_orth
 grid->orth operator
int du
int dv
int dw
 steps for shifts along u,v,w

Friends

class NXmap_base::Map_reference_base
class NXmap_base::Map_reference_index
class NXmap_base::Map_reference_coord

Detailed Description

NXmap_base: base for non-crystallographic map class.

The non-crystallographic map class stores a map of arbitrary data type. Unlike an Xmap it is finite in extent and has no symmetry. An RT operator provides mapping onto an arbitrary orthogonal coordinate frame. Iterators provide efficient access to data.

This base contains everything except the data, which is templated in the derived type clipper::NXmap<T>.


Constructor & Destructor Documentation

clipper::NXmap_base::NXmap_base ( ) [protected]

Null constructor, for later initialisation.

For later initialisation: see init()

References clipper::Message::message(), and rt_orth_grid.


Member Function Documentation

bool clipper::NXmap_base::is_null ( ) const

test if object has been initialised

Returns:
true if the object has not been initalised.

References clipper::RTop< T >::is_null(), and rt_orth_grid.

Referenced by clipper::CNXmap_operator< T >::init().

Coord_orth clipper::NXmap_base::coord_orth ( const Coord_map cm) const [inline]

convert map coordinate to orthogonal

Parameters:
cmThe grid coordinate to be converted.
Returns:
The equivalent orthogonal coordinate.

Reimplemented in clipper::NXmap< T >.

References rt_grid_orth.

Referenced by clipper::NXmap_base::Map_reference_coord::coord_orth(), and clipper::NXmap_base::Map_reference_index::coord_orth().

Coord_map clipper::NXmap_base::coord_map ( const Coord_orth co) const [inline]

convert orthogonal coordinate to map

Parameters:
coThe orthogonal coordinate to be converted.
Returns:
The equivalent grid coordinate.

Reimplemented in clipper::NXmap< T >.

References rt_orth_grid.

Referenced by clipper::NXmap_base::Map_reference_coord::coord_orth(), and clipper::NXmap_base::Map_reference_index::coord_orth().

template<class I >
bool clipper::NXmap_base::in_map ( const Coord_map cm) const

is the given coord available in the map using the given interpolant?

Note that the higher the order of the interpolant, the more of the boundary of the map becomes inaccessible.

Parameters:
cmThe coord_map to test.
Returns:
true if interpolation can be performed at that coordinate.
void clipper::NXmap_base::init ( const Grid grid,
const RTop<> &  rt 
) [protected]

initialiser: takes grid and orthogonal->grid coordinate operator

Initialise an NXmap to some rhomboid chosen from within a crystal coordinate space, specified by the grid and a transformation from orthogonal to grid coordinates.

Parameters:
gridThe grid dimensions of the desired map.
rtThe rotation translation op from orthogonal to grid coordinates.

Reimplemented in clipper::NXmap< T >.

References dw, grid(), grid_, clipper::Grid::index(), clipper::RTop< T >::inverse(), rt_grid_orth, and rt_orth_grid.

Referenced by clipper::NXmap< T >::init(), and init().

void clipper::NXmap_base::init ( const Cell cell,
const Grid_sampling grid,
const Grid_range grid_extent 
) [protected]

initialiser: takes grid, cell, and fraction limits

Initialise an NXmap to some rhomboid chosen from within a crystal grid coordinate space, specified by a cell, sampling and box within that grid. This is useful for creating an NXmap which exactly matches some subregion of a crystallographic map.

Parameters:
cellUnit cell defining the crystal space.
gridThe grid sampling of the given unit cell.
grid_extentThe map extent within that cell.

Reimplemented in clipper::NXmap< T >.

References init(), clipper::Cell::matrix_frac(), clipper::Grid_sampling::matrix_frac_grid(), and clipper::Grid_range::min().


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