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);
70 const ElementType & iElement,
71 const MeasureType & iValue)
const = 0;
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;
140 typedef typename Superclass::MeshType
MeshType;
147 const ElementType & itkNotUsed(iElement),
148 const MeasureType & itkNotUsed(iValue) )
const 167 template<
typename TMesh,
169 typename TMeasure = double,
170 typename TPriorityQueueWrapper =
172 std::pair< bool, TMeasure > > >
175 TMeasure, TPriorityQueueWrapper >
190 typedef typename Superclass::MeshType
MeshType;
198 const ElementType & itkNotUsed(iElement),
199 const MeasureType & itkNotUsed(iValue) ) const ITK_OVERRIDE
218 template<
typename TMesh,
220 typename TMeasure = double,
221 typename TPriorityQueueWrapper =
223 std::pair< bool, TMeasure > > >
226 TMeasure, TPriorityQueueWrapper >
241 typedef typename Superclass::MeshType
MeshType;
249 const ElementType & itkNotUsed(iElement),
250 const MeasureType & iValue)
const ITK_OVERRIDE
269 template<
typename TMesh,
271 typename TMeasure = double,
272 typename TPriorityQueueWrapper =
274 std::pair< bool, TMeasure > > >
277 TMeasure, TPriorityQueueWrapper >
292 typedef typename Superclass::MeshType
MeshType;
300 const ElementType & ,
301 const MeasureType & iValue)
const SmartPointer< Self > Pointer
SmartPointer< Self > Pointer
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
SmartPointer< const Self > ConstPointer
void SetNumberOfElements(const SizeValueType &numberOfElements)
Superclass::PriorityType PriorityType
MeshType::CellsContainerConstIterator CellsContainerConstIterator
void operator=(const Self &)
virtual bool is_satisfied(MeshType *iMesh, const ElementType &iElement, const MeasureType &iValue) const =0
~NumberOfPointsCriterion()
Superclass::MeasureType MeasureType
Superclass::PriorityType PriorityType
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
SizeValueType m_NumberOfElements
Superclass::MeasureType MeasureType
Superclass::ElementType ElementType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
QuadEdgeMeshDecimationCriterion()
Superclass::MeshType MeshType
QuadEdgeMeshDecimationCriterion< TMesh, TElement, TMeasure, TPriorityQueueWrapper > Superclass
unsigned long SizeValueType
Superclass::MeasureType MeasureType
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
~NumberOfFacesCriterion()
SmartPointer< Self > Pointer
MinMeasureBoundCriterion()
void SetMeasureBound(const MeasureType &bound)
virtual void PrintSelf(std::ostream &os, Indent indent) const override
MaxMeasureBoundCriterion()
SmartPointer< const Self > ConstPointer
bool is_satisfied(MeshType *iMesh, const ElementType &, const MeasureType &) const override
Superclass::MeshType MeshType
SmartPointer< const Self > ConstPointer
SizeValueType IdentifierType
MeshType::CellsContainerConstIterator CellsContainerConstIterator
bool is_satisfied(MeshType *, const ElementType &, const MeasureType &iValue) const override
~QuadEdgeMeshDecimationCriterion()
Superclass::MeasureType MeasureType
MeasureType m_MeasureBound
~MaxMeasureBoundCriterion()
SmartPointer< Self > Pointer
bool is_satisfied(MeshType *iMesh, const ElementType &, const MeasureType &) const
Superclass::ElementType ElementType
Superclass::ElementType ElementType
NumberOfPointsCriterion Self
SmartPointer< const Self > ConstPointer
SmartPointer< const Self > ConstPointer
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
NumberOfFacesCriterion Self
SmartPointer< Self > Pointer
virtual void PrintSelf(std::ostream &os, Indent indent) const override
TPriorityQueueWrapper PriorityQueueWrapperType
Superclass::PriorityType PriorityType
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.
Superclass::PriorityQueueWrapperType PriorityQueueWrapperType
Base class for most ITK classes.
MinMeasureBoundCriterion Self
PriorityQueueWrapperType::ElementPriorityType PriorityType
Superclass::ElementType ElementType
MaxMeasureBoundCriterion Self