18 #ifndef itkQuadEdgeMeshDecimationCriteria_h
19 #define itkQuadEdgeMeshDecimationCriteria_h
31 template <
typename TMesh,
33 typename TMeasure = double,
34 typename TPriorityQueueWrapper =
35 MinPriorityQueueElementWrapper<typename TMesh::QEType *, std::pair<bool, TMeasure>>>
53 using PriorityType =
typename PriorityQueueWrapperType::ElementPriorityType;
69 itkBooleanMacro(TopologicalChange);
70 itkGetConstMacro(TopologicalChange,
bool);
71 itkSetMacro(TopologicalChange,
bool);
91 os << indent <<
"SizeCriterion: " << (
m_SizeCriterion ?
"On" :
"Off") << std::endl;
109 template <
typename TMesh,
111 typename TMeasure = double,
112 typename TPriorityQueueWrapper =
131 using typename Superclass::MeshType;
132 using typename Superclass::ElementType;
133 using typename Superclass::MeasureType;
134 using typename Superclass::PriorityQueueWrapperType;
135 using typename Superclass::PriorityType;
140 return (iMesh->GetNumberOfPoints() <= this->m_NumberOfElements);
153 template <
typename TMesh,
155 typename TMeasure = double,
156 typename TPriorityQueueWrapper =
157 MinPriorityQueueElementWrapper<typename TMesh::QEType *, std::pair<bool, TMeasure>>>
175 using typename Superclass::MeshType;
177 using typename Superclass::ElementType;
178 using typename Superclass::MeasureType;
179 using typename Superclass::PriorityQueueWrapperType;
180 using typename Superclass::PriorityType;
185 const MeasureType & itkNotUsed(iValue))
const override
187 return (iMesh->GetNumberOfFaces() <= this->m_NumberOfElements);
200 template <
typename TMesh,
202 typename TMeasure = double,
203 typename TPriorityQueueWrapper =
204 MinPriorityQueueElementWrapper<typename TMesh::QEType *, std::pair<bool, TMeasure>>>
249 template <
typename TMesh,
251 typename TMeasure = double,
252 typename TPriorityQueueWrapper =
253 MaxPriorityQueueElementWrapper<typename TMesh::QEType *, std::pair<bool, TMeasure>>>