18#ifndef itkSimplexMeshAdaptTopologyFilter_h
19#define itkSimplexMeshAdaptTopologyFilter_h
28#include "vxl_version.h"
29#include "vnl/vnl_cross.h"
44template <
typename TInputMesh,
typename TOutputMesh>
114 areaMap = DoubleValueMapType::New();
130 typename InputPolygonType::PointIdIterator it = poly->
PointIdsBegin();
132 double meanCurvature = 0;
134 double val =
mesh->GetMeanCurvature(*it++);
138 val =
mesh->GetMeanCurvature(*it++);
150 val =
mesh->GetMeanCurvature(*it);
156 meanCurvature /=
static_cast<double>(cnt);
160 areaMap->InsertElement(cellId, area);
188 mesh->GetPoint(p1, &v1);
189 mesh->GetPoint(p2, &v2);
191 return itk::Math::abs(vnl_cross_3d((v2 - v1).GetVnlVector(), (
v3 - v1).GetVnlVector()).two_norm() / 2.0);
194 typename DoubleValueMapType::Pointer
200 typename DoubleValueMapType::Pointer
251 itkSetMacro(Threshold,
double);
252 itkGetConstMacro(Threshold,
double);
254 itkSetMacro(SelectionMethod,
int);
255 itkGetConstMacro(SelectionMethod,
int);
257 itkGetConstMacro(ModifiedCount,
int);
333#ifndef ITK_MANUAL_INSTANTIATION
334# include "itkSimplexMeshAdaptTopologyFilter.hxx"
A template class used to implement a visitor object.
SmartPointer< Self > Pointer
A templated class holding a n-Dimensional covariant vector.
Control indentation during Print() invocation.
A wrapper of the STL "map" container.
static constexpr T max(const T &)
Represents a polygon in a Mesh.
PointIdIterator PointIdsEnd() override
PointIdIterator PointIdsBegin() override
void Visit(CellIdentifier cellId, InputPolygonType *poly)
visits all polygon cells and computes the area, NOTE: works for convex polygons only!...
DoubleValueMapType::Pointer curvatureMap
double GetTotalMeanCurvature()
DoubleValueMapType::Pointer GetCurvatureMap()
DoubleValueMapType::Pointer GetAreaMap()
double GetMinimumCurvature()
double ComputeArea(PointIdentifier p1, PointIdentifier p2, PointIdentifier p3)
DoubleValueMapType::Pointer areaMap
double GetMaximumCurvature()
double GetMinimumCellSize()
double GetMaximumCellSize()
double GetTotalMeshArea()
itk::PolygonCell< OutputCellType > OutputPolygonType
void ComputeCellParameters()
typename InputMeshType::Pointer InputMeshPointer
typename InputCellType::PointIdIterator InputCellPointIdIterator
typename InputCellType::MultiVisitor CellMultiVisitorType
itk::PolygonCell< InputCellType > InputPolygonType
CovariantVector< typename InputVectorType::ValueType, 3 > CovariantVectorType
typename InputMeshType::PointType InputPointType
typename OutputMeshType::Pointer OutputMeshPointer
void ModifyNeighborCells(CellIdentifier id1, CellIdentifier id2, PointIdentifier insertPointId)
MeshToMeshFilter< TInputMesh, TOutputMesh > Superclass
typename InputCellType::CellAutoPointer InputCellAutoPointer
void CopyInputMeshToOutputMeshGeometryData()
typename InputMeshType::VectorType InputVectorType
OutputMeshPointer m_Output
member for accessing the filter result during creation
typename InputMeshType::CellIdentifier CellIdentifier
typename InputMeshType::MeshTraits::CellTraits InputCellTraitsType
void PrintSelf(std::ostream &os, Indent indent) const override
void GenerateData() override
typename DoubleValueMapType::Iterator DoubleContainerIterator
typename InputMeshType::PointIdentifier PointIdentifier
SmartPointer< const Self > ConstPointer
typename CellMultiVisitorType::Pointer CellMultiVisitorPointer
typename SimplexVisitorInterfaceType::Pointer SimplexVisitorInterfacePointer
typename InputMeshType::CellAutoPointer CellAutoPointer
~SimplexMeshAdaptTopologyFilter() override=default
typename InputMeshType::PixelType InputPixelType
TOutputMesh OutputMeshType
SimplexMeshAdaptTopologyFilter Self
typename InputMeshType::CellType InputCellType
typename itk::MapContainer< CellIdentifier, double > DoubleValueMapType
typename OutputMeshType::CellType OutputCellType
InputCellAutoPointer m_NewSimplexCellPointer
SmartPointer< Self > Pointer
CellIdentifier m_IdOffset
SimplexMeshAdaptTopologyFilter()
itk::CellInterfaceVisitorImplementation< InputPixelType, InputCellTraitsType, InputPolygonType, SimplexCellVisitor > SimplexVisitorInterfaceType
typename InputPolygonType::PointIdIterator InputPolygonPointIdIterator
InputPointType ComputeCellCenter(InputCellAutoPointer &simplexCell)
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....