18#ifndef itkDecimationQuadEdgeMeshFilter_h
19#define itkDecimationQuadEdgeMeshFilter_h
31template <
typename TInput,
typename TOutput,
typename TCriterion>
62 this->m_Iteration = 0;
63 this->m_OutputMesh =
nullptr;
74 this->CopyInputMeshToOutputMesh();
79 this->m_OutputMesh = this->GetOutput();
84 if (ProcessWithTopologicalGuarantee())
90 }
while (!IsCriterionSatisfied());
92 this->GetOutput()->SqueezePointsIds();
93 this->GetOutput()->DeleteUnusedCellData();
117 this->Superclass::PrintSelf(os, indent);
118 os << indent <<
"Criterion: " << m_Criterion << std::endl;
virtual bool ProcessWithTopologicalGuarantee()=0
typename CriterionType::Pointer CriterionPointer
typename CriterionType::PriorityQueueWrapperType PriorityQueueItemType
void PrintSelf(std::ostream &os, Indent indent) const override
virtual bool IsCriterionSatisfied()=0
DecimationQuadEdgeMeshFilter()
virtual bool ProcessWithoutAnyTopologicalGuarantee()=0
~DecimationQuadEdgeMeshFilter() override=default
typename InputMeshType::Pointer InputMeshPointer
virtual void Initialize()
typename CriterionType::PriorityType PriorityType
typename CriterionType::MeasureType MeasureType
virtual void FillPriorityQueue()=0
void GenerateData() override
typename OutputMeshType::Pointer OutputMeshPointer
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Duplicates the content of a Mesh.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType