Geometry Class Reference
[MR Parameters (odinpara library)]

Geometry Settings. More...

#include <geometry.h>

Inheritance diagram for Geometry:

Inheritance graph
[legend]
Collaboration diagram for Geometry:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Geometry (const STD_string &label="unnamedGeometry")
 Geometry (const Geometry &ia)
Geometryoperator= (const Geometry &ia)
Geometryset_Mode (geometryMode mode)
geometryMode get_Mode () const
Geometryset_FOV (channelNo dir, double fov)
double get_FOV (channelNo dir) const
Geometryset_offset (channelNo dir, double offset)
double get_offset (channelNo dir) const
Geometryset_nSlices (unsigned int nslices)
unsigned int get_nSlices () const
Geometryset_sliceThickness (double thick)
Geometryset_sliceDistance (double dist)
double get_sliceDistance () const
dvector get_readVector () const
dvector get_phaseVector () const
dvector get_sliceVector () const
dvector get_sliceOffsetVector () const
double get_sliceThickness () const
darray get_cornerPoints (const Geometry &background, unsigned int backgrslice) const
Geometryset_orientation (sliceOrientation orientation)
sliceOrientation get_orientation () const
void get_orientation (double &heightAng, double &azimutAng, double &inplaneAng) const
Geometryset_orientation (double heightAng, double azimutAng, double inplaneAng)
Geometryset_orientation_and_offset (const dvector &readvec, const dvector &phasevec, const dvector &slicevec, const dvector &centervec)
dvector get_center () const
RotMatrix get_gradrotmatrix (bool transpose=false) const
dvector transform (const dvector &rpsvec, bool inverse=false) const
Geometrytranspose_inplane (bool reverse_read=false, bool reverse_phase=false)
Geometryreset ()
Geometryupdate ()

Detailed Description

Geometry Settings.

Depending on the selected geometryMode, this class describes a pack of parallel and congruent slices, or a 3D volume, .i.e. a voxel.

The patients x,y,z coordinate system used for the gradients is as follows: If standing in front of the magnet with the feet of the patient pointing towards you, the axes are oriented

The three orientation angles 'heightAngle', 'azimutAngle', and 'inplaneAngle' (in degree) describe the orientation of the slicepack/voxel relative to the x/y/z-coordinate system of the gradients. If all these angles are zero, the read/phase/slice-system of the slicepack/voxel is the same as the x/y/z-system of the gradients. Otherwise, the system is rotated by the following angles (in the given order):

Definition at line 174 of file geometry.h.


Constructor & Destructor Documentation

Geometry::Geometry ( const STD_string &  label = "unnamedGeometry"  ) 

Constructs a Geometry with the given label

Geometry::Geometry ( const Geometry ia  ) 

Copy constructor


Member Function Documentation

Geometry& Geometry::operator= ( const Geometry ia  ) 

Assignment operator

Geometry& Geometry::set_Mode ( geometryMode  mode  ) 

Sets the geometry selection mode

geometryMode Geometry::get_Mode (  )  const [inline]

Returns the geometry selection mode

Definition at line 201 of file geometry.h.

Geometry& Geometry::set_FOV ( channelNo  dir,
double  fov 
)

Sets the Field Of View in the specified direction

double Geometry::get_FOV ( channelNo  dir  )  const

Returns the Field Of View in the specified direction

Geometry& Geometry::set_offset ( channelNo  dir,
double  offset 
)

Sets the spatial offset in the specified direction

double Geometry::get_offset ( channelNo  dir  )  const

Returns the spatial offset in the specified direction

Geometry& Geometry::set_nSlices ( unsigned int  nslices  ) 

Sets the number of slices of the current slice pack

unsigned int Geometry::get_nSlices (  )  const [inline]

Returns the number of slices of the current slice pack

Definition at line 232 of file geometry.h.

Geometry& Geometry::set_sliceThickness ( double  thick  ) 

Sets the slice thickness of the current slice pack

Geometry& Geometry::set_sliceDistance ( double  dist  ) 

Sets the slice interslice distance

double Geometry::get_sliceDistance (  )  const [inline]

Returns the slice interslice distance

Definition at line 247 of file geometry.h.

dvector Geometry::get_readVector (  )  const

Returns the normalised vector for the read direction in the laboratory system of reference

dvector Geometry::get_phaseVector (  )  const

Returns the normalised vector for the phase direction in the laboratory system of reference

dvector Geometry::get_sliceVector (  )  const

Returns the normalised vector for the slice direction in the laboratory system of reference

dvector Geometry::get_sliceOffsetVector (  )  const

Returns the vector of spatial offsets in slice direction for the different slices of the slicepack.

double Geometry::get_sliceThickness (  )  const [inline]

Returns the slice thickness for the slices

Definition at line 272 of file geometry.h.

darray Geometry::get_cornerPoints ( const Geometry background,
unsigned int  backgrslice 
) const

Returns a 5-dimensional array that contains the corner points of the slices/voxels where indexing is as follows: (unsigned int slice,sliceBoundary boundary1,sliceBoundary boundary2,sliceBoundary boundary3, axis direction) with

The points are transformed to slice 'backgrslice' the coordinate system of 'background'.

Geometry& Geometry::set_orientation ( sliceOrientation  orientation  ) 

Set the angle parameters to match the specified anatomical slice orientation

sliceOrientation Geometry::get_orientation (  )  const

Returns the major anatomical slice orientation

void Geometry::get_orientation ( double &  heightAng,
double &  azimutAng,
double &  inplaneAng 
) const

Returns the orientation of the slice pack by returning the three orientation angles by reference

Geometry& Geometry::set_orientation ( double  heightAng,
double  azimutAng,
double  inplaneAng 
)

Specifies the orientation of the slice pack by giving the three orientation angles

Geometry& Geometry::set_orientation_and_offset ( const dvector readvec,
const dvector phasevec,
const dvector slicevec,
const dvector centervec 
)

Specifies the orientation of the slicepack/voxel by giving the three vectors 'readvec', 'phasevec', and 'slicevec' which point in read, phase, and slice direction. The vector 'offset' must contain the spatial offset of the center of the slicepack/voxel.

dvector Geometry::get_center (  )  const

Returns a vector pointing to the center of the slicepack/voxel.

RotMatrix Geometry::get_gradrotmatrix ( bool  transpose = false  )  const

Returns the rotation matrix to convert the gradient strengths in the sequence coordinate system (read,phase,slice) to the laboratory system (x,y,z). If 'transpose' is set to true, the transposed matrix is returned.

dvector Geometry::transform ( const dvector rpsvec,
bool  inverse = false 
) const

Coordinate transformation from sequence coordinate system (read,phase,slice) of slice 'slice' to laboratory system (x,y,z), or vice versa if 'inverse' is set to 'true'.

Geometry& Geometry::transpose_inplane ( bool  reverse_read = false,
bool  reverse_phase = false 
)

Transpose geometry in-plane, 'reverse_read' and 'reverse_phase' can be used to reverse read/phase direction before transposing.

Geometry& Geometry::reset (  ) 

Resets the slicepacks geometry to its inintial state

Geometry& Geometry::update (  ) 

Updates internal relations of the geometry parameters


The documentation for this class was generated from the following file:
Generated on Sat Jun 14 12:31:32 2008 by  doxygen 1.5.1