#include <geometry.h>
Inheritance diagram for Geometry:


Public Member Functions | |
| Geometry (const STD_string &label="unnamedGeometry") | |
| Geometry (const Geometry &ia) | |
| Geometry & | operator= (const Geometry &ia) |
| Geometry & | set_Mode (geometryMode mode) |
| geometryMode | get_Mode () const |
| Geometry & | set_FOV (channelNo dir, double fov) |
| double | get_FOV (channelNo dir) const |
| Geometry & | set_offset (channelNo dir, double offset) |
| double | get_offset (channelNo dir) const |
| Geometry & | set_nSlices (unsigned int nslices) |
| unsigned int | get_nSlices () const |
| Geometry & | set_sliceThickness (double thick) |
| Geometry & | set_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 |
| Geometry & | set_orientation (sliceOrientation orientation) |
| sliceOrientation | get_orientation () const |
| void | get_orientation (double &heightAng, double &azimutAng, double &inplaneAng) const |
| Geometry & | set_orientation (double heightAng, double azimutAng, double inplaneAng) |
| Geometry & | set_orientation_and_offset (const dvector &readvec, const dvector &phasevec, const dvector &slicevec, const dvector ¢ervec) |
| dvector | get_center () const |
| RotMatrix | get_gradrotmatrix (bool transpose=false) const |
| dvector | transform (const dvector &rpsvec, bool inverse=false) const |
| Geometry & | transpose_inplane (bool reverse_read=false, bool reverse_phase=false) |
| Geometry & | reset () |
| Geometry & | update () |
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.
| Geometry::Geometry | ( | const STD_string & | label = "unnamedGeometry" |
) |
Constructs a Geometry with the given label
| Geometry::Geometry | ( | const Geometry & | ia | ) |
Copy constructor
| 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.
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
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.
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.
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
1.5.1