Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::SymmetricSecondRankTensor< TComponent, NDimension > Class Template Reference
[Image Representation ObjectsObjects Related to Tensor ImagesGeometry Representation Objects]

Represent a symmetric tensor of second rank. More...

#include <itkSymmetricSecondRankTensor.h>

Inheritance diagram for itk::SymmetricSecondRankTensor< TComponent, NDimension >:

Inheritance graph
[legend]
Collaboration diagram for itk::SymmetricSecondRankTensor< TComponent, NDimension >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef SymmetricSecondRankTensor Self
typedef FixedArray< TComponent,
NDimension *(NDimension+1)/2 
Superclass )
typedef FixedArray< TComponent,
itkGetStaticConstMacro(InternalDimension) 
BaseArray )
typedef FixedArray< TComponent,
NDimension > 
EigenValuesArrayType
typedef Matrix< TComponent,
NDimension, NDimension > 
MatrixType
typedef Matrix< TComponent,
NDimension, NDimension > 
EigenVectorsMatrixType
typedef TComponent ComponentType
typedef Superclass::ValueType ValueType
typedef NumericTraits< ValueType
>::RealType 
AccumulateValueType
typedef NumericTraits< ValueType
>::RealType 
RealValueType
typedef SymmetricEigenAnalysis<
MatrixType, EigenValuesArrayType,
EigenVectorsMatrixType
SymmetricEigenAnalysisType
typedef ComponentType ComponentArrayType [itkGetStaticConstMacro(InternalDimension)]

Public Member Functions

 SymmetricSecondRankTensor ()
 SymmetricSecondRankTensor (const ComponentType &r)
ComponentType GetNthComponent (int c) const
void SetNthComponent (int c, const ComponentType &v)
void SetIdentity ()
AccumulateValueType GetTrace () const
void ComputeEigenValues (EigenValuesArrayType &eigenValues) const
void ComputeEigenAnalysis (EigenValuesArrayType &eigenValues, EigenVectorsMatrixType &eigenVectors) const
 itkStaticConstMacro (Dimension, unsigned int, NDimension)
 itkStaticConstMacro (InternalDimension, unsigned int, NDimension *(NDimension+1)/2)
 SymmetricSecondRankTensor (const Self &r)
 SymmetricSecondRankTensor (const ComponentArrayType r)
Selfoperator= (const Self &r)
Selfoperator= (const ComponentType &r)
Selfoperator= (const ComponentArrayType r)
Self operator+ (const Self &vec) const
Self operator- (const Self &vec) const
const Selfoperator+= (const Self &vec)
const Selfoperator-= (const Self &vec)
Self operator * (const RealValueType &scalar) const
Self operator/ (const RealValueType &scalar) const
const Selfoperator *= (const RealValueType &scalar)
const Selfoperator/= (const RealValueType &scalar)
ValueTypeoperator() (unsigned int row, unsigned int col)
const ValueTypeoperator() (unsigned int row, unsigned int col) const

Static Public Member Functions

unsigned int GetNumberOfComponents ()

Detailed Description

template<typename TComponent, unsigned int NDimension = 3>
class itk::SymmetricSecondRankTensor< TComponent, NDimension >

Represent a symmetric tensor of second rank.

This class implements a ND symmetric tensor of second rank.

Since SymmetricSecondRankTensor is a subclass of FixedArray, you can access its components as:

typedef itk::SymmetricSecondRankTensor< float > TensorPixelType; TensorPixelType tensor;

tensor[0] = 1.233; tensor[1] = 1.456;

for convenience the indexed access is also available as

tensor(0,0) = 1.233; tensor(2,0) = 1.233;

The Tensor in principle represents a NxN matrix, but given that it is always symmetric the representation can be compacted into a N*(N+1)/2 elements array that derives from the itk::FixedArray<T>

Author:
Jeffrey Duda from School of Engineering at University of Pennsylvania

Torsten Rohlfing from SRI International Neuroscience Program.

This class was mostly based on files that Jeffrey Duda, Torsten Rohlfing and Martin Styner contributed to the ITK users list during a discussion on support for DiffusionTensorImages. The funding for creating this class was largely provided by NAMIC (National Alliance for Medical Image Computing) (http://www.na-mic.org). A discussion on the design of this class can be found in the WIKI pages of NAMIC:

http://www.na-mic.org/Wiki/index.php/NAMIC_Wiki:DTI:ITK-DiffusionTensorPixelType

See also:
DiffusionTensor3D

Definition at line 74 of file itkSymmetricSecondRankTensor.h.


Member Typedef Documentation

template<typename TComponent, unsigned int NDimension = 3>
typedef NumericTraits<ValueType>::RealType itk::SymmetricSecondRankTensor< TComponent, NDimension >::AccumulateValueType
 

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 101 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef FixedArray<TComponent, itkGetStaticConstMacro(InternalDimension) itk::SymmetricSecondRankTensor< TComponent, NDimension >::BaseArray)
 

Convenience typedefs.

Definition at line 89 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef ComponentType itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComponentArrayType[ itkGetStaticConstMacro(InternalDimension) ]
 

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 112 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef TComponent itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComponentType
 

Define the component type.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 99 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef FixedArray<TComponent, NDimension> itk::SymmetricSecondRankTensor< TComponent, NDimension >::EigenValuesArrayType
 

Array of eigen-values.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 92 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef Matrix<TComponent, NDimension, NDimension> itk::SymmetricSecondRankTensor< TComponent, NDimension >::EigenVectorsMatrixType
 

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 96 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef Matrix<TComponent, NDimension, NDimension> itk::SymmetricSecondRankTensor< TComponent, NDimension >::MatrixType
 

Matrix of eigen-vectors.

Definition at line 95 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef NumericTraits<ValueType>::RealType itk::SymmetricSecondRankTensor< TComponent, NDimension >::RealValueType
 

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 102 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef SymmetricSecondRankTensor itk::SymmetricSecondRankTensor< TComponent, NDimension >::Self
 

Standard class typedefs.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 79 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef FixedArray<TComponent,NDimension*(NDimension+1)/2 itk::SymmetricSecondRankTensor< TComponent, NDimension >::Superclass)
 

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 80 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef SymmetricEigenAnalysis< MatrixType, EigenValuesArrayType, EigenVectorsMatrixType > itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricEigenAnalysisType
 

Definition at line 105 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
typedef Superclass::ValueType itk::SymmetricSecondRankTensor< TComponent, NDimension >::ValueType
 

The element type stored at each location in the FixedArray.

Reimplemented from itk::FixedArray< TComponent, NDimension *(NDimension+1)/2 >.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

Definition at line 100 of file itkSymmetricSecondRankTensor.h.


Constructor & Destructor Documentation

template<typename TComponent, unsigned int NDimension = 3>
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor  )  [inline]
 

Default constructor has nothing to do.

Definition at line 108 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor const ComponentType r  )  [inline]
 

Definition at line 110 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor const Self r  )  [inline]
 

Pass-through constructor for the Array base class.

Definition at line 115 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
itk::SymmetricSecondRankTensor< TComponent, NDimension >::SymmetricSecondRankTensor const ComponentArrayType  r  )  [inline]
 

Pass-through constructor for the Array base class.

Definition at line 116 of file itkSymmetricSecondRankTensor.h.


Member Function Documentation

template<typename TComponent, unsigned int NDimension = 3>
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComputeEigenAnalysis EigenValuesArrayType eigenValues,
EigenVectorsMatrixType eigenVectors
const
 

Return an array containing EigenValues, and a matrix containing Eigen vectors.

template<typename TComponent, unsigned int NDimension = 3>
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::ComputeEigenValues EigenValuesArrayType eigenValues  )  const
 

Return an array containing EigenValues.

template<typename TComponent, unsigned int NDimension = 3>
ComponentType itk::SymmetricSecondRankTensor< TComponent, NDimension >::GetNthComponent int  c  )  const [inline]
 

Return the value for the Nth component.

Definition at line 146 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
unsigned int itk::SymmetricSecondRankTensor< TComponent, NDimension >::GetNumberOfComponents  )  [inline, static]
 

Return the number of components.

Definition at line 140 of file itkSymmetricSecondRankTensor.h.

template<typename TComponent, unsigned int NDimension = 3>
AccumulateValueType itk::SymmetricSecondRankTensor< TComponent, NDimension >::GetTrace  )  const
 

Get Trace value

Reimplemented in itk::DiffusionTensor3D< TComponent >.

template<typename TComponent, unsigned int NDimension = 3>
itk::SymmetricSecondRankTensor< TComponent, NDimension >::itkStaticConstMacro InternalDimension  ,
unsigned  int,
NDimension *(NDimension+1)/  2
 

Dimension of the vector space.

template<typename TComponent, unsigned int NDimension = 3>
itk::SymmetricSecondRankTensor< TComponent, NDimension >::itkStaticConstMacro Dimension  ,
unsigned  int,
NDimension 
 

Dimension of the vector space.

template<typename TComponent, unsigned int NDimension = 3>
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator * const RealValueType scalar  )  const
 

Arithmetic operations between tensors and scalars

template<typename TComponent, unsigned int NDimension = 3>
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator *= const RealValueType scalar  ) 
 

Arithmetic operations between tensors and scalars

template<typename TComponent, unsigned int NDimension = 3>
const ValueType& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator() unsigned int  row,
unsigned int  col
const
 

Matrix notation, in const and non-const forms.

template<typename TComponent, unsigned int NDimension = 3>
ValueType& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator() unsigned int  row,
unsigned int  col
 

Matrix notation, in const and non-const forms.

template<typename TComponent, unsigned int NDimension = 3>
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator+ const Self vec  )  const
 

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

template<typename TComponent, unsigned int NDimension = 3>
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator+= const Self vec  ) 
 

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

template<typename TComponent, unsigned int NDimension = 3>
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator- const Self vec  )  const
 

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

template<typename TComponent, unsigned int NDimension = 3>
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator-= const Self vec  ) 
 

Aritmetic operations between pixels. Return a new SymmetricSecondRankTensor.

template<typename TComponent, unsigned int NDimension = 3>
Self itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator/ const RealValueType scalar  )  const
 

Arithmetic operations between tensors and scalars

template<typename TComponent, unsigned int NDimension = 3>
const Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator/= const RealValueType scalar  ) 
 

Arithmetic operations between tensors and scalars

template<typename TComponent, unsigned int NDimension = 3>
Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator= const ComponentArrayType  r  ) 
 

Pass-through assignment operator for the Array base class.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

template<typename TComponent, unsigned int NDimension = 3>
Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator= const ComponentType r  ) 
 

Pass-through assignment operator for the Array base class.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

template<typename TComponent, unsigned int NDimension = 3>
Self& itk::SymmetricSecondRankTensor< TComponent, NDimension >::operator= const Self r  ) 
 

Pass-through assignment operator for the Array base class.

Reimplemented in itk::DiffusionTensor3D< TComponent >.

template<typename TComponent, unsigned int NDimension = 3>
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::SetIdentity  ) 
 

Set the tensor to an identity tensor. This has 1 in its diagonal elements zero elsewhere

template<typename TComponent, unsigned int NDimension = 3>
void itk::SymmetricSecondRankTensor< TComponent, NDimension >::SetNthComponent int  c,
const ComponentType v
[inline]
 

Set the Nth component to v.

Definition at line 150 of file itkSymmetricSecondRankTensor.h.


The documentation for this class was generated from the following file:
Generated at Thu May 25 02:28:09 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000