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);
90 itkPrintSelfBooleanMacro(TopologicalChange);
91 itkPrintSelfBooleanMacro(SizeCriterion);
109 template <
typename TMesh,
111 typename TMeasure = double,
112 typename TPriorityQueueWrapper =
113 MinPriorityQueueElementWrapper<typename TMesh::QEType *, std::pair<bool, TMeasure>>>
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>>>