Geometry Class Reference
[MR Parameters (odinpara library)]

Geometry Settings. More...

#include <geometry.h>

Inheritance diagram for Geometry:

Inheritance 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 (direction dir, double fov)
double get_FOV (direction dir) const
Geometryset_offset (direction dir, double offset)
double get_offset (direction 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, bool &revSlice) const
Geometryset_orientation (double heightAng, double azimutAng, double inplaneAng, bool revSlice=false)
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 179 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 206 of file geometry.h.

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

Sets the Field Of View in the specified direction

double Geometry::get_FOV ( direction  dir  )  const

Returns the Field Of View in the specified direction

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

Sets the spatial offset in the specified direction

double Geometry::get_offset ( direction  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 237 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 252 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 277 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

  • slice: The slice for the point
  • boundary1: The boundary in the read direction
  • boundary2: The boundary in the phase direction
  • boundary3: The boundary in the slice direction, the size is 1 in slicepack mode
  • direction: The x,y,z index

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,
bool &  revSlice 
) const

Returns the orientation of the slice, i.e. the three orientation angles 'heightAng', 'azimutAng' and 'inplaneAng'. 'revSlice' returns whether the slice direction (handness) is reversed.

Geometry& Geometry::set_orientation ( double  heightAng,
double  azimutAng,
double  inplaneAng,
bool  revSlice = false 
)

Specifies the orientation of the slice pack by giving the three orientation angles 'heightAng', 'azimutAng' and 'inplaneAng'. Optionally, the slice direction can be reversed by setting 'revSlice' to true.

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 Wed Sep 30 15:33:05 2009 by  doxygen 1.5.6