ITK  4.2.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 Types inherited from itk::Object
- Public Types inherited from itk::LightObject

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)
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
unsigned long AddObserver (const EventObject &event, Command *) const
virtual void DebugOff () const
virtual void DebugOn () const
CommandGetCommand (unsigned long tag)
bool GetDebug () const
MetaDataDictionaryGetMetaDataDictionary (void)
const MetaDataDictionaryGetMetaDataDictionary (void) const
virtual unsigned long GetMTime () const
virtual const TimeStampGetTimeStamp () const
bool HasObserver (const EventObject &event) const
void InvokeEvent (const EventObject &)
void InvokeEvent (const EventObject &) const
virtual void Modified () const
virtual void Register () const
void RemoveAllObservers ()
void RemoveObserver (unsigned long tag)
void SetDebug (bool debugFlag) const
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
virtual void SetReferenceCount (int)
virtual void UnRegister () const
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
virtual int GetReferenceCount () const
 itkCloneMacro (Self)
void Print (std::ostream &os, Indent indent=0) const

Static Public Member Functions

static Pointer New ()
- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
static void GlobalWarningDisplayOff ()
static void GlobalWarningDisplayOn ()
static void SetGlobalWarningDisplay (bool flag)
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

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

Additional Inherited Members


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 ( )
protectedvirtual

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
protectedvirtual

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: