RNifti Fast R and C++ Access to NIfTI Images

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RNifti::NiftiImage::Xform Class Reference

Inner class representing an xform matrix, which indicates the orientation and other spatial properties of an image. More...

`#include <NiftiImage.h>`

## Public Member Functions
| Xform ()
| Default constructor.
| Xform (const Matrix &source)
| Initialise from a 4x4 SquareMatrix.
| Xform (const Matrix::NativeType &source)
| Initialise from a constant NIfTI `mat44` or `dmat44`.
| Xform (Matrix::NativeType &source)
| Initialise from a NIfTI `mat44` or `dmat44`.
| Xform (Matrix::NativeType &source, Matrix::NativeType &inverse, Element *qparams=NULL)
| Initialise from forward and backward matrices, and optionally quaternion parameters.
| Xform (SEXP source)
| Initialise from an R numeric matrix object.
| operator const Matrix::NativeType () const
| Allows an `Xform` to be treated as a constant NIfTI matrix implicitly, making it directly compatible with API functions.
| operator Matrix::NativeType ()
| Allows an `Xform` to be treated as a NIfTI matrix implicitly, making it directly compatible with API functions.
Xform & | operator= (const Xform &source)
| Copy assignment operator, taking an `Xform` and replacing linked data.
Xform & | operator= (const Matrix &source)
| Copy assignment operator, taking a `SquareMatrix` and replacing linked data.
Xform & | operator= (SEXP source)
| Copy assignment operator, taking a `SEXP` and replacing linked data.
const Matrix & | matrix () const
| Access the xform matrix as an immutable `SquareMatrix` object.
Submatrix | submatrix () const
| Obtain the upper left 3x3 submatrix from the xform matrix.
Submatrix | rotation () const
| Obtain the 3x3 rotation matrix from the xform matrix, with scale and skew components removed.
Element | handedness () const
| Returns the `qfac` value, which should be 1 where the xform matrix represents a right-handed coordinate system (like `RAS`, the NIfTI default) and -1 for a left-handed system (like `LAS`, the ANALYZE default).
Vector4 | quaternion () const
| Obtain the quaternion representation of the xform's rotation component.
Vector3 | offset () const
| Obtain the translation component of the xform matrix.
Vector3 | spacing () const
| Obtain the pixel spacing of the image in each spatial dimension.
std::string | orientation () const
| Obtain the approximate orientation of the image's coordinate frame, as a three-character string consisting of some permutation of the letters `L` or `R` (for left or right), `P` or `A` (for posterior or anterior) and `I` or `S` (for inferior or superior).

## Protected Member Functions
void | replace (const Matrix &source)
| Replace the current matrix with a new one.

## Protected Attributes
Element * | forward
Element * | inverse
Element * | qparams
| Pointers to linked C-style arrays.
Matrix | mat
| The full xform matrix underpinning this object.

## Detailed Description

Inner class representing an xform matrix, which indicates the orientation and other spatial properties of an image.

Specifically, an xform is an affine transformation in 3D space, representing the conversion from the image's coordinate system to canonical "real-world" space. The header file `nifti1.h` contains authoritative documentation.

## Constructor & Destructor Documentation

## ◆ Xform() [1/2]

RNifti::NiftiImage::Xform::Xform | ( | Matrix::NativeType & | source | ) |
| inline

Initialise from a NIfTI `mat44` or `dmat44`.

The data in the linked matrix will be replaced if this object is updated.

## ◆ Xform() [2/2]

RNifti::NiftiImage::Xform::Xform | ( | Matrix::NativeType & | source,
|  | Matrix::NativeType & | inverse,
|  | Element * | qparams = NULL )
| inline

Initialise from forward and backward matrices, and optionally quaternion parameters.

These will all be linked to the new object and replaced if it is updated.

## Member Function Documentation

## ◆ handedness()

Element RNifti::NiftiImage::Xform::handedness | ( |  | ) | const

Returns the `qfac` value, which should be 1 where the xform matrix represents a right-handed coordinate system (like `RAS`, the NIfTI default) and -1 for a left-handed system (like `LAS`, the ANALYZE default).

Also see the orientation method

## ◆ orientation()

std::string RNifti::NiftiImage::Xform::orientation | ( |  | ) | const

Obtain the approximate orientation of the image's coordinate frame, as a three-character string consisting of some permutation of the letters `L` or `R` (for left or right), `P` or `A` (for posterior or anterior) and `I` or `S` (for inferior or superior).

These give the canonical axes most closely aligned with each of the three dimensions as stored

## ◆ replace()

void RNifti::NiftiImage::Xform::replace | ( | const Matrix & | source | ) |
| protected

Replace the current matrix with a new one.

This function propagates the changes to the linked arrays, if they are not `NULL`.

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

- inst/include/RNifti/NiftiImage.h