#include <itkSmoothingQuadEdgeMeshFilter.h>
QuadEdgeMesh Smoothing Filter.
This filter adjusts point coordinates using Laplacian smoothing. The effect is to "relax" the mesh, making the cells better shaped and the vertices more evenly distributed.
For one iteration the location of one vertex is computed as follows:
\[\boldsymbol{ v' }_i = v_i + m_{RelaxationFactor} \cdot \frac{ \sum_j w_{ij} ( \boldsymbol{ v_j } - \boldsymbol{ v_i } ) }{ \sum_j w_{ij} } \]
where \( w_{ij} \) is computed by the means of the set functor CoefficientsComputation
This process is then repeated for m_NumberOfIterations (the more iterations, the smoother the output mesh will be).
At each iteration, one can run DelaunayConformingQuadEdgeMeshFilter resulting a more regular (in terms of connectivity) and smoother mesh. Depending on the mesh size and configuration it could be an expensive process to run it at each iterations, especially if the number of iterations is large. Note that one can still run N iterations without DelaunayConformingQuadEdgeMeshFilter, then run this filter and apply this process M times.
Definition at line 59 of file itkSmoothingQuadEdgeMeshFilter.h.
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | PointDimension = OutputMeshType::PointDimension |
Protected Attributes | |
CoefficientsComputation * | m_CoefficientsMethod {} |
bool | m_DelaunayConforming {} |
InputOutputDelaunayConformingPointer | m_InputDelaunayFilter {} |
unsigned int | m_NumberOfIterations {} |
OutputDelaunayConformingPointer | m_OutputDelaunayFilter {} |
OutputCoordType | m_RelaxationFactor {} |
![]() | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
Additional Inherited Members | |
![]() | |
template<typename TSourceObject> | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::CoefficientsComputation = MatrixCoefficients<OutputMeshType> |
Definition at line 95 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::ConstPointer = SmartPointer<const Self> |
Definition at line 66 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::InputMeshPointer = typename InputMeshType::Pointer |
Definition at line 76 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::InputMeshType = TInputMesh |
Definition at line 75 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 125 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 124 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputCellsContainerIterator = typename OutputMeshType::CellsContainerIterator |
Definition at line 91 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputCellsContainerPointer = typename OutputMeshType::CellsContainerPointer |
Definition at line 90 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputCoordType = typename OutputPointType::CoordinateType |
Definition at line 86 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 130 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 129 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputEdgeCellType = typename OutputMeshType::EdgeCellType |
Definition at line 80 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputMeshPointer = typename OutputMeshType::Pointer |
Definition at line 79 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputMeshType = TOutputMesh |
Definition at line 78 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
Definition at line 83 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointsContainer = typename OutputMeshType::PointsContainer |
Definition at line 87 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
Definition at line 89 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer |
Definition at line 88 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointType = typename OutputMeshType::PointType |
Definition at line 84 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPolygonCellType = typename OutputMeshType::PolygonCellType |
Definition at line 81 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputQEType = typename OutputMeshType::QEType |
Definition at line 82 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputVectorType = typename OutputPointType::VectorType |
Definition at line 85 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::Pointer = SmartPointer<Self> |
Definition at line 65 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::Self = SmoothingQuadEdgeMeshFilter |
Definition at line 64 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::Superclass = QuadEdgeMeshToQuadEdgeMeshFilter<TInputMesh, TOutputMesh> |
Definition at line 67 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Referenced by GetNameOfClass().
|
overrideprotected |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TInputMesh >.
|
virtual |
Set/Get if DelaunayConformingQuadEdgeMeshFilter is used at the end of each iterations
|
virtual |
Set/Get if DelaunayConformingQuadEdgeMeshFilter is used at the end of each iterations
|
overrideprotectedvirtual |
This method causes the filter to generate its output.
Reimplemented from itk::ProcessObject.
|
virtual |
Set/Get if DelaunayConformingQuadEdgeMeshFilter is used at the end of each iterations
|
overridevirtual |
Reimplemented from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TInputMesh >.
References SmoothingQuadEdgeMeshFilter().
|
virtual |
Set/Get the number of iterations
|
virtual |
Set/Get relaxation factor applied for each iteration
|
static |
New macro for creation of through a Smart Pointer
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::MeshSource< TInputMesh >.
void itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::SetCoefficientsMethod | ( | CoefficientsComputation * | iMethod | ) |
|
virtual |
Set/Get if DelaunayConformingQuadEdgeMeshFilter is used at the end of each iterations
|
virtual |
Set/Get the number of iterations
|
virtual |
Set/Get relaxation factor applied for each iteration
|
protected |
Definition at line 122 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 134 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 127 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 136 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 132 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 138 of file itkSmoothingQuadEdgeMeshFilter.h.
|
staticconstexpr |
Definition at line 93 of file itkSmoothingQuadEdgeMeshFilter.h.