Public Member Functions | Static Public Member Functions

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 ()

Static Public Member Functions

static sliceOrientation get_slice_orientation (const dvector &svec)

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

dvector Geometry::get_center (  )  const

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

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'.

double Geometry::get_FOV ( direction  dir  )  const

Returns the Field Of View in the specified direction

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.

geometryMode Geometry::get_Mode (  )  const [inline]

Returns the geometry selection mode

Definition at line 206 of file geometry.h.

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.

double Geometry::get_offset ( direction  dir  )  const

Returns the spatial offset in the specified direction

sliceOrientation Geometry::get_orientation (  )  const [inline]

Returns the principal anatomical slice orientation

Definition at line 309 of file geometry.h.

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.

dvector Geometry::get_phaseVector (  )  const

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

dvector Geometry::get_readVector (  )  const

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

static sliceOrientation Geometry::get_slice_orientation ( const dvector svec  )  [static]

Returns the principal anatomical slice orientation of slice normal 'svec'.

double Geometry::get_sliceDistance (  )  const [inline]

Returns the slice interslice distance

Definition at line 252 of file geometry.h.

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.

dvector Geometry::get_sliceVector (  )  const

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

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

Assignment operator

Geometry& Geometry::reset (  ) 

Resets the slicepacks geometry to its inintial state

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

Sets the Field Of View in the specified direction

Geometry& Geometry::set_Mode ( geometryMode  mode  ) 

Sets the geometry selection mode

Geometry& Geometry::set_nSlices ( unsigned int  nslices  ) 

Sets the number of slices of the current slice pack

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

Sets the spatial offset in the specified direction

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 ( sliceOrientation  orientation  ) 

Set the angle parameters to match the specified anatomical slice orientation

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.

Geometry& Geometry::set_sliceDistance ( double  dist  ) 

Sets the slice interslice distance

Geometry& Geometry::set_sliceThickness ( double  thick  ) 

Sets the slice thickness of the current slice pack

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::update (  ) 

Updates internal relations of the geometry parameters


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