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

itk::FiniteDifferenceSparseImageFunction< TSparseImageType > Class Template Reference

This is the base class for function classes that can be used with filters derived from FiniteDifferenceSparseImageFilter. More...

#include <itkFiniteDifferenceSparseImageFunction.h>

Inheritance diagram for itk::FiniteDifferenceSparseImageFunction< TSparseImageType >:

Inheritance graph
[legend]
Collaboration diagram for itk::FiniteDifferenceSparseImageFunction< TSparseImageType >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef FiniteDifferenceSparseImageFunction Self
typedef FiniteDifferenceFunction<
TSparseImageType > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::PixelType PixelType
typedef Superclass::TimeStepType TimeStepType
typedef Superclass::RadiusType RadiusType
typedef Superclass::NeighborhoodType NeighborhoodType
typedef Superclass::FloatOffsetType FloatOffsetType
typedef Superclass::ImageType SparseImageType
typedef SparseImageType::IndexType IndexType
typedef SparseImageType::NodeType NodeType
typedef NodeType::NodeDataType NodeDataType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
virtual PixelType ComputeUpdate (const NeighborhoodType &, void *, const FloatOffsetType &)
virtual NodeDataType ComputeSparseUpdate (NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) const =0
virtual void PrecomputeSparseUpdate (NeighborhoodType &) const

Protected Member Functions

 FiniteDifferenceSparseImageFunction ()
 ~FiniteDifferenceSparseImageFunction ()
void PrintSelf (std::ostream &os, Indent indent) const

Detailed Description

template<class TSparseImageType>
class itk::FiniteDifferenceSparseImageFunction< TSparseImageType >

This is the base class for function classes that can be used with filters derived from FiniteDifferenceSparseImageFilter.

This class is derived from FiniteDifferenceFunction. It is designed to
work with neighborhoods of pointers instead of actual data. Towards this purpose ComputeUpdate method is no longer used and is replaced by the ComputeSparseUpdate method. ComputeSparseUpdate assumes that the pointers are associated with structures that have the member variable m_Data. The pointers would normally originate from a SparseImage object.
The PrecomputeSparseUpdate method can be defined to do a first pass of
computations which then can be used by ComputeSparseUpdate. If PrecomputeSparseUpdate is used then the m_PrecomputeFlag should be set in the FiniteDifferenceSparseImageFilter class. The precomputation step can be used to speed up computation by avoiding repetitions. See the NormalVectorDiffusionFunction for an example.

Definition at line 45 of file itkFiniteDifferenceSparseImageFunction.h.


Member Typedef Documentation

template<class TSparseImageType>
typedef SmartPointer<const Self> itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::ConstPointer
 

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 54 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef Superclass::FloatOffsetType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::FloatOffsetType
 

A floating point offset from an image grid location. Used for interpolation among grid values in a neighborhood.

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 67 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef SparseImageType::IndexType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::IndexType
 

The index type for the sparse image.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 71 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef Superclass::NeighborhoodType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::NeighborhoodType
 

The type of data structure that is passed to this function object to evaluate at a pixel that does not lie on a data set boundary.

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 66 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef NodeType::NodeDataType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::NodeDataType
 

The type for the variables of NodeType. Scalar or vector. Definition at line 77 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef SparseImageType::NodeType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::NodeType
 

The actual type of nodes stored the sparse image.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 74 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef Superclass::PixelType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::PixelType
 

Typedefs from the superclass.

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Definition at line 63 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef SmartPointer<Self> itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::Pointer
 

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 53 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef Superclass::RadiusType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::RadiusType
 

Neighborhood radius type

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 65 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef FiniteDifferenceSparseImageFunction itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::Self
 

Standard class typedef.

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 51 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef Superclass::ImageType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::SparseImageType
 

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 68 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef FiniteDifferenceFunction<TSparseImageType> itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::Superclass
 

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 52 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
typedef Superclass::TimeStepType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::TimeStepType
 

Define the TimeStepType to always be double.

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

Definition at line 64 of file itkFiniteDifferenceSparseImageFunction.h.


Constructor & Destructor Documentation

template<class TSparseImageType>
itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::FiniteDifferenceSparseImageFunction  )  [inline, protected]
 

Definition at line 110 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::~FiniteDifferenceSparseImageFunction  )  [inline, protected]
 

Definition at line 111 of file itkFiniteDifferenceSparseImageFunction.h.


Member Function Documentation

template<class TSparseImageType>
virtual NodeDataType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::ComputeSparseUpdate NeighborhoodType neighborhood,
void *  globalData,
const FloatOffsetType offset = FloatOffsetType(0.0)
const [pure virtual]
 

The update called from the FiniteDifferenceSparseImageFilter. This function replaces the ComputeUpdate function.

Implemented in itk::NormalVectorDiffusionFunction< TSparseImageType >.

template<class TSparseImageType>
virtual PixelType itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::ComputeUpdate const NeighborhoodType ,
void *  ,
const FloatOffsetType
[inline, virtual]
 

This function is not called from the FiniteDifferenceSparseImageFilter class because we need to work with neighborhoods of pointers to data variables instead of neighborhoods of data directly. This function is replaced by the ComputeSparseUpdate function.

Implements itk::FiniteDifferenceFunction< TSparseImageType >.

Definition at line 83 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
virtual const char* itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::GetClassName  )  const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

template<class TSparseImageType>
itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
Superclass::ImageDimension 
 

The image dimension.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.

template<class TSparseImageType>
virtual void itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::PrecomputeSparseUpdate NeighborhoodType  )  const [inline, virtual]
 

This function provides support for a 2 step update computation that avoids repetitive computation. FiniteDifferenceSparseImageFilter first calls this function for all active pixels in the SparseImage class, then calls ComputeSparseUpdate for the same set of pixels. This is used in NormalVectorDiffusionFunction to calculate flux variables which are then used to compute the updates. Intermediate variables such as the flux in the above examples are stored in the nodes of the SparseImage itself. Therefore, this function will have to know about the NodeType it is dealing with. This function does nothing by default.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >.

Definition at line 107 of file itkFiniteDifferenceSparseImageFunction.h.

template<class TSparseImageType>
void itk::FiniteDifferenceSparseImageFunction< TSparseImageType >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::FiniteDifferenceFunction< TSparseImageType >.

Reimplemented in itk::NormalVectorDiffusionFunction< TSparseImageType >, itk::NormalVectorFunctionBase< TSparseImageType >, and itk::NormalVectorFunctionBase< SparseOutputImageType >.


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 03:02:01 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000