18 #ifndef itkQuadEdgeMeshDecimationCriteria_h
19 #define itkQuadEdgeMeshDecimationCriteria_h
31 template<
typename TMesh,
33 typename TMeasure = double,
34 typename TPriorityQueueWrapper =
35 MinPriorityQueueElementWrapper<
typename TMesh::QEType *,
36 std::pair< bool, TMeasure > > >
52 typedef typename PriorityQueueWrapperType::ElementPriorityType
PriorityType;
66 itkGetConstMacro(TopologicalChange,
bool);
67 itkSetMacro(TopologicalChange,
bool);
86 os << indent <<
"TopologicalChange: "
89 os << indent <<
"SizeCriterion: "
92 os << indent <<
"NumberOfElements: "
95 os << indent <<
"MeasureBound: "
117 template<
typename TMesh,
119 typename TMeasure = double,
120 typename TPriorityQueueWrapper =
122 std::pair< bool, TMeasure > > >
125 TMeasure, TPriorityQueueWrapper >
132 TMesh, TElement, TMeasure, TPriorityQueueWrapper >
Superclass;
167 template<
typename TMesh,
169 typename TMeasure = double,
170 typename TPriorityQueueWrapper =
171 MinPriorityQueueElementWrapper<
typename TMesh::QEType *,
172 std::pair< bool, TMeasure > > >
175 TMeasure, TPriorityQueueWrapper >
199 const MeasureType & itkNotUsed(iValue) ) const ITK_OVERRIDE
218 template<
typename TMesh,
220 typename TMeasure = double,
221 typename TPriorityQueueWrapper =
222 MinPriorityQueueElementWrapper<
typename TMesh::QEType *,
223 std::pair< bool, TMeasure > > >
226 TMeasure, TPriorityQueueWrapper >
269 template<
typename TMesh,
271 typename TMeasure = double,
272 typename TPriorityQueueWrapper =
273 MaxPriorityQueueElementWrapper<
typename TMesh::QEType *,
274 std::pair< bool, TMeasure > > >
277 TMeasure, TPriorityQueueWrapper >
SmartPointer< Self > Pointer
SmartPointer< Self > Pointer
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
SmartPointer< const Self > ConstPointer
Light weight base class for most itk classes.
bool is_satisfied(MeshType *iMesh, const ElementType &, const MeasureType &) const override
void SetNumberOfElements(const SizeValueType &numberOfElements)
Superclass::PriorityType PriorityType
MeshType::CellsContainerConstIterator CellsContainerConstIterator
void operator=(const Self &)
bool is_satisfied(MeshType *, const ElementType &, const MeasureType &iValue) const override
~NumberOfPointsCriterion()
Superclass::MeasureType MeasureType
Superclass::PriorityType PriorityType
virtual void PrintSelf(std::ostream &os, Indent indent) const override
void operator=(const Self &)
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
SizeValueType m_NumberOfElements
Superclass::MeasureType MeasureType
~NumberOfFacesCriterion() override
~QuadEdgeMeshDecimationCriterion() override
Superclass::ElementType ElementType
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
QuadEdgeMeshDecimationCriterion()
Superclass::MeshType MeshType
void operator=(const Self &)
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
unsigned long SizeValueType
Superclass::MeasureType MeasureType
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
SmartPointer< Self > Pointer
MinMeasureBoundCriterion()
void SetMeasureBound(const MeasureType &bound)
MaxMeasureBoundCriterion()
SmartPointer< const Self > ConstPointer
Superclass::MeshType MeshType
SmartPointer< const Self > ConstPointer
SizeValueType IdentifierType
MeshType::CellsContainerConstIterator CellsContainerConstIterator
Superclass::MeasureType MeasureType
MeasureType m_MeasureBound
SmartPointer< Self > Pointer
bool is_satisfied(MeshType *iMesh, const ElementType &, const MeasureType &) const
Superclass::ElementType ElementType
Superclass::ElementType ElementType
NumberOfPointsCriterion Self
virtual bool is_satisfied(MeshType *iMesh, const ElementType &iElement, const MeasureType &iValue) const =0
SmartPointer< const Self > ConstPointer
SmartPointer< const Self > ConstPointer
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
NumberOfFacesCriterion Self
SmartPointer< Self > Pointer
TPriorityQueueWrapper PriorityQueueWrapperType
Superclass::PriorityType PriorityType
void operator=(const Self &)
Superclass::MeshType MeshType
MeshType::CellsContainerConstIterator CellsContainerConstIterator
Superclass::MeshType MeshType
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
NumberOfPointsCriterion()
bool is_satisfied(MeshType *, const ElementType &, const MeasureType &iValue) const
~MinMeasureBoundCriterion()
QuadEdgeMeshDecimationCriterion Self
Superclass::PriorityType PriorityType
Control indentation during Print() invocation.
virtual void PrintSelf(std::ostream &os, Indent indent) const override
void operator=(const Self &)
~MaxMeasureBoundCriterion() override
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
Base class for most ITK classes.
MinMeasureBoundCriterion Self
PriorityQueueWrapperType::ElementPriorityType PriorityType
Superclass::ElementType ElementType
MaxMeasureBoundCriterion Self