ITK  6.0.0
Insight Toolkit
itkSmoothingQuadEdgeMeshFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkSmoothingQuadEdgeMeshFilter_h
19#define itkSmoothingQuadEdgeMeshFilter_h
20
23
24namespace itk
25{
57template <typename TInputMesh, typename TOutputMesh = TInputMesh>
58class ITK_TEMPLATE_EXPORT SmoothingQuadEdgeMeshFilter : public QuadEdgeMeshToQuadEdgeMeshFilter<TInputMesh, TOutputMesh>
59{
60public:
61 ITK_DISALLOW_COPY_AND_MOVE(SmoothingQuadEdgeMeshFilter);
62
67
69 itkOverrideGetNameOfClassMacro(SmoothingQuadEdgeMeshFilter);
70
72 itkNewMacro(Self);
73
74 using InputMeshType = TInputMesh;
76
77 using OutputMeshType = TOutputMesh;
79 using OutputEdgeCellType = typename OutputMeshType::EdgeCellType;
80 using OutputPolygonCellType = typename OutputMeshType::PolygonCellType;
81 using OutputQEType = typename OutputMeshType::QEType;
82 using OutputPointIdentifier = typename OutputMeshType::PointIdentifier;
85 using OutputCoordType = typename OutputPointType::CoordRepType;
86 using OutputPointsContainer = typename OutputMeshType::PointsContainer;
87 using OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer;
88 using OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator;
89 using OutputCellsContainerPointer = typename OutputMeshType::CellsContainerPointer;
90 using OutputCellsContainerIterator = typename OutputMeshType::CellsContainerIterator;
91
92 static constexpr unsigned int PointDimension = OutputMeshType::PointDimension;
93
95
96 void
98
100 itkSetMacro(NumberOfIterations, unsigned int);
101 itkGetConstMacro(NumberOfIterations, unsigned int);
105 itkBooleanMacro(DelaunayConforming);
106 itkSetMacro(DelaunayConforming, bool);
107 itkGetConstMacro(DelaunayConforming, bool);
111 itkSetMacro(RelaxationFactor, OutputCoordType);
112 itkGetConstMacro(RelaxationFactor, OutputCoordType);
115protected:
118 void
119 PrintSelf(std::ostream & os, Indent indent) const override;
120
121 CoefficientsComputation * m_CoefficientsMethod{};
122
125
127
130
131 OutputDelaunayConformingPointer m_OutputDelaunayFilter{};
132
133 bool m_DelaunayConforming{};
134
135 unsigned int m_NumberOfIterations{};
136
137 OutputCoordType m_RelaxationFactor{};
138
139 void
140 GenerateData() override;
141};
142} // namespace itk
143
144#include "itkSmoothingQuadEdgeMeshFilter.hxx"
145#endif
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Superclass for all the matrix coefficients computation classes.
void SetCoefficientsMethod(CoefficientsComputation *iMethod)
typename OutputMeshType::PointsContainer OutputPointsContainer
typename OutputMeshType::CellsContainerIterator OutputCellsContainerIterator
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
typename OutputMeshType::Pointer OutputMeshPointer
typename OutputMeshType::QEType OutputQEType
typename OutputMeshType::EdgeCellType OutputEdgeCellType
typename OutputDelaunayConformingType::Pointer OutputDelaunayConformingPointer
typename InputOutputDelaunayConformingType::Pointer InputOutputDelaunayConformingPointer
typename OutputMeshType::PolygonCellType OutputPolygonCellType
typename InputMeshType::Pointer InputMeshPointer
typename OutputMeshType::CellsContainerPointer OutputCellsContainerPointer
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename OutputPointType::CoordRepType OutputCoordType
typename OutputMeshType::PointType OutputPointType
void PrintSelf(std::ostream &os, Indent indent) const override
typename OutputPointType::VectorType OutputVectorType
typename OutputMeshType::PointIdentifier OutputPointIdentifier
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....