18#ifndef itkSimplexMeshVolumeCalculator_h
19#define itkSimplexMeshVolumeCalculator_h
51template <
typename TInputMesh>
122 using PointIdIterator =
typename SimplexPolygonType::PointIdIterator;
130 m_Mesh->GetPoint(*it, &p);
131 center += p.GetVectorFromOrigin();
160 CellInterfaceVisitorImplementation<InputPixelType, InputCellTraitsType, SimplexPolygonType, SimplexCellVisitor>;
174 itkGetConstMacro(Volume,
double);
177 itkGetConstMacro(
Area,
double);
230#ifndef ITK_MANUAL_INSTANTIATION
231# include "itkSimplexMeshVolumeCalculator.hxx"
A templated class holding a n-Dimensional covariant vector.
Control indentation during Print() invocation.
A wrapper of the STL "map" container.
SmartPointer< Self > Pointer
Represents a polygon in a Mesh.
unsigned int GetNumberOfPoints() const override
PointIdIterator PointIdsEnd() override
PointIdIterator PointIdsBegin() override
void SetMesh(InputMeshPointer mesh)
PointMapPointer GetCenterMap()
virtual ~SimplexCellVisitor()=default
void Visit(IdentifierType cellId, SimplexPolygonType *poly)
visits all polygon cells and compute the cell centers
PointMapPointer m_CenterMap
typename CellMultiVisitorType::Pointer CellMultiVisitorPointer
SmartPointer< Self > Pointer
CovariantVector< typename VectorType::ValueType, 3 > CovariantVectorType
typename InputMeshType::PointType InputPointType
typename InputMeshType::ConstPointer InputMeshConstPointer
itk::MapContainer< IdentifierType, InputPointType > PointMapType
typename SimplexCellType::MultiVisitor CellMultiVisitorType
itk::PolygonCell< SimplexCellType > SimplexPolygonType
SizeValueType m_NumberOfTriangles
PointMapPointer m_Centers
typename SimplexVisitorInterfaceType::Pointer SimplexVisitorInterfacePointer
typename InputMeshType::NeighborListType::iterator InputNeighborsIterator
InputMeshPointer m_SimplexMesh
typename InputMeshType::Pointer InputMeshPointer
typename PointMapType::Pointer PointMapPointer
IdentifierType FindCellId(IdentifierType id1, IdentifierType id2, IdentifierType id3)
typename InputPointsContainer::ConstIterator InputPointsContainerIterator
typename InputPointType::VectorType VectorType
typename InputPointsContainer::ConstPointer InputPointsContainerPointer
itk:: CellInterfaceVisitorImplementation< InputPixelType, InputCellTraitsType, SimplexPolygonType, SimplexCellVisitor > SimplexVisitorInterfaceType
SimplexMeshVolumeCalculator()=default
SimplexMeshVolumeCalculator Self
~SimplexMeshVolumeCalculator() override=default
typename InputMeshType::MeshTraits::CellTraits InputCellTraitsType
typename InputMeshType::PixelType InputPixelType
void CalculateTriangleVolume(InputPointType p1, InputPointType p2, InputPointType p3)
typename InputMeshType::NeighborListType InputNeighbors
typename InputMeshType::PointsContainer InputPointsContainer
void PrintSelf(std::ostream &os, Indent indent) const override
SmartPointer< const Self > ConstPointer
typename InputMeshType::CellType SimplexCellType
The class represents a 2-simplex mesh.
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType
unsigned long SizeValueType