ITK
4.4.0
Insight Segmentation and Registration Toolkit
|
#include <itkSimplexMeshVolumeCalculator.h>
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.)
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.
Classes | |
class | SimplexCellVisitor |
Public Member Functions | |
void | Compute (void) |
virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
virtual double | GetArea () 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 |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary (void) |
const MetaDataDictionary & | GetMetaDataDictionary (void) const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () 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 Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Protected Member Functions | |
void | PrintSelf (std::ostream &os, Indent indent) const |
SimplexMeshVolumeCalculator () | |
virtual | ~SimplexMeshVolumeCalculator () |
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 |
Additional Inherited Members | |
Protected Types inherited from itk::LightObject | |
typedef int | InternalReferenceCountType |
Protected Attributes inherited from itk::LightObject | |
InternalReferenceCountType | m_ReferenceCount |
SimpleFastMutexLock | m_ReferenceCountLock |
typedef CellMultiVisitorType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::CellMultiVisitorPointer |
Definition at line 165 of file itkSimplexMeshVolumeCalculator.h.
typedef SimplexCellType::MultiVisitor itk::SimplexMeshVolumeCalculator< TInputMesh >::CellMultiVisitorType |
Definition at line 164 of file itkSimplexMeshVolumeCalculator.h.
typedef SmartPointer< const Self > itk::SimplexMeshVolumeCalculator< TInputMesh >::ConstPointer |
Definition at line 61 of file itkSimplexMeshVolumeCalculator.h.
typedef CovariantVector< typename VectorType::ValueType, 3 > itk::SimplexMeshVolumeCalculator< TInputMesh >::CovariantVectorType |
Definition at line 93 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::MeshTraits::CellTraits itk::SimplexMeshVolumeCalculator< TInputMesh >::InputCellTraitsType |
Definition at line 75 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::ConstPointer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputMeshConstPointer |
Definition at line 71 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputMeshPointer |
Definition at line 70 of file itkSimplexMeshVolumeCalculator.h.
typedef TInputMesh itk::SimplexMeshVolumeCalculator< TInputMesh >::InputMeshType |
Definition at line 67 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::NeighborListType itk::SimplexMeshVolumeCalculator< TInputMesh >::InputNeighbors |
Definition at line 81 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::NeighborListType::iterator itk::SimplexMeshVolumeCalculator< TInputMesh >::InputNeighborsIterator |
Definition at line 82 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::PixelType itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPixelType |
Definition at line 74 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::PointsContainer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointsContainer |
Definition at line 77 of file itkSimplexMeshVolumeCalculator.h.
typedef InputPointsContainer::ConstIterator itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointsContainerIterator |
Definition at line 79 of file itkSimplexMeshVolumeCalculator.h.
typedef InputPointsContainer::ConstPointer itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointsContainerPointer |
Definition at line 78 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::PointType itk::SimplexMeshVolumeCalculator< TInputMesh >::InputPointType |
Definition at line 73 of file itkSimplexMeshVolumeCalculator.h.
typedef SmartPointer< Self > itk::SimplexMeshVolumeCalculator< TInputMesh >::Pointer |
Smart pointer typedef support
Definition at line 60 of file itkSimplexMeshVolumeCalculator.h.
typedef PointMapType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::PointMapPointer |
Definition at line 89 of file itkSimplexMeshVolumeCalculator.h.
typedef itk::MapContainer< IdentifierType, InputPointType > itk::SimplexMeshVolumeCalculator< TInputMesh >::PointMapType |
Definition at line 88 of file itkSimplexMeshVolumeCalculator.h.
typedef SimplexMeshVolumeCalculator itk::SimplexMeshVolumeCalculator< TInputMesh >::Self |
Standard "Self" typedef.
Definition at line 54 of file itkSimplexMeshVolumeCalculator.h.
typedef InputMeshType::CellType itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexCellType |
Definition at line 84 of file itkSimplexMeshVolumeCalculator.h.
typedef itk::PolygonCell< SimplexCellType > itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexPolygonType |
Definition at line 85 of file itkSimplexMeshVolumeCalculator.h.
typedef SimplexVisitorInterfaceType::Pointer itk::SimplexMeshVolumeCalculator< TInputMesh >::SimplexVisitorInterfacePointer |
Definition at line 163 of file itkSimplexMeshVolumeCalculator.h.
Definition at line 161 of file itkSimplexMeshVolumeCalculator.h.
typedef Object itk::SimplexMeshVolumeCalculator< TInputMesh >::Superclass |
Standard "Superclass" typedef.
Definition at line 57 of file itkSimplexMeshVolumeCalculator.h.
typedef InputPointType::VectorType itk::SimplexMeshVolumeCalculator< TInputMesh >::VectorType |
Definition at line 91 of file itkSimplexMeshVolumeCalculator.h.
|
protected |
|
protectedvirtual |
|
private |
|
private |
intermediate volume computation
void itk::SimplexMeshVolumeCalculator< TInputMesh >::Compute | ( | void | ) |
Compute the volume of the entire simplex mesh.
|
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.
|
private |
creates dual triangles for all simplex cells
|
private |
|
private |
part of algorithm
|
virtual |
Return the computed area.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::Object.
|
virtual |
Return the computed volume.
|
private |
|
static |
Method of creation through the object factory.
|
private |
|
protectedvirtual |
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::Object.
|
virtual |
Set the input mesh.
|
private |
Definition at line 210 of file itkSimplexMeshVolumeCalculator.h.
|
private |
attribute stores the result of the simplex cell visitor
Definition at line 202 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 211 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 212 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 213 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 219 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 220 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 221 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 223 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 204 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 206 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 207 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 208 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 209 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 215 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 214 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 216 of file itkSimplexMeshVolumeCalculator.h.
|
private |
Definition at line 217 of file itkSimplexMeshVolumeCalculator.h.