ITK  4.1.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
itk::SimplexMeshVolumeCalculator< TInputMesh > Class Template Reference

#include <itkSimplexMeshVolumeCalculator.h>

+ Inheritance diagram for itk::SimplexMeshVolumeCalculator< TInputMesh >:
+ Collaboration diagram for itk::SimplexMeshVolumeCalculator< TInputMesh >:

List of all members.

Classes

class  SimplexCellVisitor

Public Types

typedef
CellMultiVisitorType::Pointer 
CellMultiVisitorPointer
typedef
SimplexCellType::MultiVisitor 
CellMultiVisitorType
typedef SmartPointer< const SelfConstPointer
typedef CovariantVector
< typename
VectorType::ValueType, 3 > 
CovariantVectorType
typedef
InputMeshType::MeshTraits::CellTraits 
InputCellTraitsType
typedef InputMeshType::ConstPointer InputMeshConstPointer
typedef InputMeshType::Pointer InputMeshPointer
typedef TInputMesh InputMeshType
typedef
InputMeshType::NeighborListType 
InputNeighbors
typedef
InputMeshType::NeighborListType::iterator 
InputNeighborsIterator
typedef InputMeshType::PixelType InputPixelType
typedef
InputMeshType::PointsContainer 
InputPointsContainer
typedef
InputPointsContainer::ConstIterator 
InputPointsContainerIterator
typedef
InputPointsContainer::ConstPointer 
InputPointsContainerPointer
typedef InputMeshType::PointType InputPointType
typedef SmartPointer< SelfPointer
typedef PointMapType::Pointer PointMapPointer
typedef itk::MapContainer
< IdentifierType,
InputPointType
PointMapType
typedef SimplexMeshVolumeCalculator Self
typedef InputMeshType::CellType SimplexCellType
typedef itk::PolygonCell
< SimplexCellType
SimplexPolygonType
typedef
SimplexVisitorInterfaceType::Pointer 
SimplexVisitorInterfacePointer
typedef
itk::CellInterfaceVisitorImplementation
< InputPixelType,
InputCellTraitsType,
SimplexPolygonType,
SimplexCellVisitor
SimplexVisitorInterfaceType
typedef Object Superclass
typedef InputPointType::VectorType VectorType

Public Member Functions

void Compute (void)
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual double GetVolume () const
virtual void SetSimplexMesh (InputMeshType *_arg)

Static Public Member Functions

static Pointer New ()

Private Member Functions

void CalculateTriangleVolume (InputPointType p1, InputPointType p2, InputPointType p3)
void CreateTriangles ()
void Finalize ()
IdentifierType FindCellId (IdentifierType id1, IdentifierType id2, IdentifierType id3)
void Initialize ()
void operator= (const Self &)
 SimplexMeshVolumeCalculator (const Self &)

Private Attributes

double m_Area
PointMapPointer m_Centers
double m_Kx
double m_Ky
double m_Kz
IndexValueType m_Muncx
IndexValueType m_Muncy
IndexValueType m_Muncz
SizeValueType m_NumberOfTriangles
InputMeshPointer m_SimplexMesh
double m_Volume
double m_VolumeX
double m_VolumeY
double m_VolumeZ
double m_Wxy
double m_Wxyz
double m_Wxz
double m_Wyz
virtual double GetArea () const
 SimplexMeshVolumeCalculator ()
virtual ~SimplexMeshVolumeCalculator ()
void PrintSelf (std::ostream &os, Indent indent) const

Detailed Description

template<class TInputMesh>
class itk::SimplexMeshVolumeCalculator< TInputMesh >

Adapted from itkSimplexMeshToTriangleFilter to calculate the volume of a simplex mesh using the barycenters and normals. call Compute() to calculate the volume and GetVolume() to get the value. For an example see itkDeformableSimplexMesh3DFilter.cxx (Thomas Boettger. Division Medical and Biological Informatics, German Cancer Research Center, Heidelberg.)

Author:
Leila Baghdadi MICe, Hospital for Sick Children, Toronto, Canada.

The original implementation has been replaced with an algorithm based on the discrete form of the divergence theorem. The general assumption here is that the model is of closed surface. For more details see the following reference (Alyassin A.M. et al, "Evaluation of new algorithms for the interactive measurement of surface area and volume", Med Phys 21(6) 1994.).

Definition at line 50 of file itkSimplexMeshVolumeCalculator.h.


Member Typedef Documentation

template<class TInputMesh >
typedef CellMultiVisitorType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::CellMultiVisitorPointer

Definition at line 165 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef SimplexCellType::MultiVisitor itk::SimplexMeshVolumeCalculator< TInputMesh >::CellMultiVisitorType

Definition at line 164 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef SmartPointer< const Self > itk::SimplexMeshVolumeCalculator< TInputMesh >::ConstPointer

Reimplemented from itk::Object.

Definition at line 61 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef CovariantVector< typename VectorType::ValueType, 3 > itk::SimplexMeshVolumeCalculator< TInputMesh >::CovariantVectorType

Definition at line 93 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::MeshTraits::CellTraits itk::SimplexMeshVolumeCalculator< TInputMesh >::InputCellTraitsType

Definition at line 75 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::ConstPointer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputMeshConstPointer

Definition at line 71 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputMeshPointer

Definition at line 70 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef TInputMesh itk::SimplexMeshVolumeCalculator< TInputMesh >::InputMeshType

Definition at line 67 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::NeighborListType itk::SimplexMeshVolumeCalculator< TInputMesh >::InputNeighbors

Definition at line 81 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::NeighborListType::iterator itk::SimplexMeshVolumeCalculator< TInputMesh >::InputNeighborsIterator

Definition at line 82 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::PixelType itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPixelType

Definition at line 74 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::PointsContainer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointsContainer

Definition at line 77 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputPointsContainer::ConstIterator itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointsContainerIterator

Definition at line 79 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputPointsContainer::ConstPointer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointsContainerPointer

Definition at line 78 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::PointType itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointType

Definition at line 73 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef SmartPointer< Self > itk::SimplexMeshVolumeCalculator< TInputMesh >::Pointer

Smart pointer typedef support

Reimplemented from itk::Object.

Definition at line 60 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef PointMapType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::PointMapPointer

Definition at line 89 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef itk::MapContainer< IdentifierType, InputPointType > itk::SimplexMeshVolumeCalculator< TInputMesh >::PointMapType

Definition at line 88 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef SimplexMeshVolumeCalculator itk::SimplexMeshVolumeCalculator< TInputMesh >::Self

Standard "Self" typedef.

Reimplemented from itk::Object.

Definition at line 54 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputMeshType::CellType itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexCellType

Definition at line 84 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef itk::PolygonCell< SimplexCellType > itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexPolygonType

Definition at line 85 of file itkSimplexMeshVolumeCalculator.h.

Definition at line 163 of file itkSimplexMeshVolumeCalculator.h.

Definition at line 161 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef Object itk::SimplexMeshVolumeCalculator< TInputMesh >::Superclass

Standard "Superclass" typedef.

Reimplemented from itk::Object.

Definition at line 57 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
typedef InputPointType::VectorType itk::SimplexMeshVolumeCalculator< TInputMesh >::VectorType

Definition at line 91 of file itkSimplexMeshVolumeCalculator.h.


Constructor & Destructor Documentation

template<class TInputMesh >
itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexMeshVolumeCalculator ( ) [protected]

Return the computed area.

template<class TInputMesh >
virtual itk::SimplexMeshVolumeCalculator< TInputMesh >::~SimplexMeshVolumeCalculator ( ) [protected, virtual]

Return the computed area.

template<class TInputMesh >
itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexMeshVolumeCalculator ( const Self ) [private]

Member Function Documentation

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::CalculateTriangleVolume ( InputPointType  p1,
InputPointType  p2,
InputPointType  p3 
) [private]

intermediate volume computation

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::Compute ( void  )

Compute the volume of the entire simplex mesh.

template<class TInputMesh >
virtual::itk::LightObject::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::CreateTriangles ( ) [private]

creates dual triangles for all simplex cells

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::Finalize ( ) [private]
template<class TInputMesh >
IdentifierType itk::SimplexMeshVolumeCalculator< TInputMesh >::FindCellId ( IdentifierType  id1,
IdentifierType  id2,
IdentifierType  id3 
) [private]

part of algorithm

template<class TInputMesh >
virtual double itk::SimplexMeshVolumeCalculator< TInputMesh >::GetArea ( ) const [virtual]

Return the computed area.

template<class TInputMesh >
virtual const char* itk::SimplexMeshVolumeCalculator< TInputMesh >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::Object.

template<class TInputMesh >
virtual double itk::SimplexMeshVolumeCalculator< TInputMesh >::GetVolume ( ) const [virtual]

Return the computed volume.

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::Initialize ( ) [private]
template<class TInputMesh >
static Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::New ( ) [static]

Method of creation through the object factory.

Reimplemented from itk::Object.

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::Object.

template<class TInputMesh >
void itk::SimplexMeshVolumeCalculator< TInputMesh >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Return the computed area.

Reimplemented from itk::Object.

template<class TInputMesh >
virtual void itk::SimplexMeshVolumeCalculator< TInputMesh >::SetSimplexMesh ( InputMeshType _arg) [virtual]

Set the input mesh.


Member Data Documentation

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Area [private]

Definition at line 210 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
PointMapPointer itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Centers [private]

attribute stores the result of the simplex cell visitor

Definition at line 202 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Kx [private]

Definition at line 211 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Ky [private]

Definition at line 212 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Kz [private]

Definition at line 213 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
IndexValueType itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Muncx [private]

Definition at line 219 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
IndexValueType itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Muncy [private]

Definition at line 220 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
IndexValueType itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Muncz [private]

Definition at line 221 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
SizeValueType itk::SimplexMeshVolumeCalculator< TInputMesh >::m_NumberOfTriangles [private]

Definition at line 223 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
InputMeshPointer itk::SimplexMeshVolumeCalculator< TInputMesh >::m_SimplexMesh [private]

Definition at line 204 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Volume [private]

Definition at line 206 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_VolumeX [private]

Definition at line 207 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_VolumeY [private]

Definition at line 208 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_VolumeZ [private]

Definition at line 209 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Wxy [private]

Definition at line 215 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Wxyz [private]

Definition at line 214 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Wxz [private]

Definition at line 216 of file itkSimplexMeshVolumeCalculator.h.

template<class TInputMesh >
double itk::SimplexMeshVolumeCalculator< TInputMesh >::m_Wyz [private]

Definition at line 217 of file itkSimplexMeshVolumeCalculator.h.


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