ITK
6.0.0
Insight Toolkit
|
#include <itkParameterizationQuadEdgeMeshFilter.h>
Compute a planar parameterization of the input mesh.
This filter computes a mapping in between a planar parametric domain and one input mesh.
This filter is made for fixed boundary parameterization where the parametric domain shape is given by the means of the border transform. Then, the position of internal vertices (not on the boundary) is directly connected to m_CoefficientsComputation.
This filter internally creates and solves a sparse linear system: storage and computation can be set by the means of TSolverTraits. Since for 3D meshes, this filter solves for similar sparse linear systems for the three dimensions, it is highly recommended to use one direct solver which would first decompose sparse matrix (e.g. VNLSparseLUSolverTraits).
This implementation was taken from the Insight Journal paper: https://doi.org/10.54294/8ga88z
Definition at line 56 of file itkParameterizationQuadEdgeMeshFilter.h.
Public Types | |
using | CoefficientsComputation = MatrixCoefficients< InputMeshType > |
using | ConstPointer = SmartPointer< const Self > |
using | InputCellsContainerConstIterator = typename InputMeshType::CellsContainerConstIterator |
using | InputCoordinateType = typename InputMeshType::CoordinateType |
using | InputEdgeCellType = typename InputMeshType::EdgeCellType |
using | InputEdgeListType = typename InputMeshType::EdgeListType |
using | InputMapPointIdentifier = std::map< InputPointIdentifier, InputPointIdentifier > |
using | InputMapPointIdentifierIterator = typename InputMapPointIdentifier::iterator |
using | InputMeshConstPointer = typename InputMeshType::ConstPointer |
using | InputMeshPointer = typename InputMeshType::Pointer |
using | InputMeshType = TInputMesh |
using | InputPixelType = typename InputMeshType::PixelType |
using | InputPointIdentifier = typename InputMeshType::PointIdentifier |
using | InputPointIdList = typename InputMeshType::PointIdList |
using | InputPointsContainer = typename InputMeshType::PointsContainer |
using | InputPointsContainerConstIterator = typename InputMeshType::PointsContainerConstIterator |
using | InputPointType = typename InputMeshType::PointType |
using | InputPointVectorType = typename InputPointType::VectorType |
using | InputPolygonCellType = typename InputMeshType::PolygonCellType |
using | InputQEIterator = typename InputQEType::IteratorGeom |
using | InputQEType = typename InputMeshType::QEType |
using | InputTraits = typename InputMeshType::Traits |
using | InputVectorType = typename InputMeshType::VectorType |
using | MatrixType = typename SolverTraits::MatrixType |
using | MeshBorderTransform = BorderQuadEdgeMeshFilter< InputMeshType, InputMeshType > |
using | MeshBorderTransformPointer = typename MeshBorderTransform::Pointer |
using | OutputCoordinateType = typename OutputMeshType::CoordinateType |
using | OutputMeshConstPointer = typename OutputMeshType::ConstPointer |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
using | OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
using | OutputPointType = typename OutputMeshType::PointType |
using | OutputQEIterator = typename OutputQEType::IteratorGeom |
using | OutputQEType = typename OutputMeshType::QEType |
using | OutputVectorType = typename OutputMeshType::VectorType |
using | Pointer = SmartPointer< Self > |
using | Self = ParameterizationQuadEdgeMeshFilter |
using | SolverTraits = TSolverTraits |
using | Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > |
using | ValueType = typename SolverTraits::ValueType |
using | VectorType = typename SolverTraits::VectorType |
Public Types inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputCellDataContainer = typename InputMeshType::CellDataContainer |
using | InputCellsContainerConstIterator = typename InputMeshType::CellsContainerConstIterator |
using | InputCellsContainerConstPointer = typename InputMeshType::CellsContainerConstPointer |
using | InputCellTraits = typename InputMeshType::CellTraits |
using | InputCoordinateType = typename InputMeshType::CoordinateType |
using | InputEdgeCellType = typename InputMeshType::EdgeCellType |
using | InputMeshConstPointer = typename InputMeshType::ConstPointer |
using | InputMeshPointer = typename InputMeshType::Pointer |
using | InputMeshType = TInputMesh |
using | InputPointDataContainer = typename InputMeshType::PointDataContainer |
using | InputPointDataContainerConstPointer = typename InputPointDataContainer::ConstPointer |
using | InputPointIdentifier = typename InputMeshType::PointIdentifier |
using | InputPointIdList = typename InputMeshType::PointIdList |
using | InputPointsContainerConstIterator = typename InputMeshType::PointsContainerConstIterator |
using | InputPointsContainerConstPointer = typename InputMeshType::PointsContainerConstPointer |
using | InputPointsIdInternalIterator = typename InputCellTraits::PointIdInternalIterator |
using | InputPointType = typename InputMeshType::PointType |
using | InputPolygonCellType = typename InputMeshType::PolygonCellType |
using | InputQEIterator = typename InputQEPrimal::IteratorGeom |
using | InputQEPrimal = typename InputMeshType::QEPrimal |
using | InputVectorType = typename InputMeshType::VectorType |
using | OutputCellDataContainer = typename OutputMeshType::CellDataContainer |
using | OutputCoordinateType = typename OutputMeshType::CoordinateType |
using | OutputMeshConstPointer = typename OutputMeshType::ConstPointer |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | OutputPointDataContainer = typename OutputMeshType::PointDataContainer |
using | OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
using | OutputPointsContainerConstPointer = typename OutputMeshType::PointsContainerConstPointer |
using | OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
using | OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer |
using | OutputPointType = typename OutputMeshType::PointType |
using | OutputQEIterator = typename OutputQEPrimal::IteratorGeom |
using | OutputQEPrimal = typename OutputMeshType::QEPrimal |
using | OutputVectorType = typename OutputMeshType::VectorType |
using | Pointer = SmartPointer< Self > |
using | Self = QuadEdgeMeshToQuadEdgeMeshFilter |
using | Superclass = MeshToMeshFilter< TInputMesh, TOutputMesh > |
Public Types inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputMeshPointer = typename InputMeshType::Pointer |
using | InputMeshType = TInputMesh |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | Pointer = SmartPointer< Self > |
using | Self = MeshToMeshFilter |
using | Superclass = MeshSource< TOutputMesh > |
Public Types inherited from itk::MeshSource< TOutputMesh > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | Pointer = SmartPointer< Self > |
using | Self = MeshSource |
using | Superclass = ProcessObject |
using | DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
Public Types inherited from itk::ProcessObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
using | MultiThreaderType = MultiThreaderBase |
using | NameArray = std::vector< DataObjectIdentifierType > |
using | Pointer = SmartPointer< Self > |
using | Self = ProcessObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::MeshSource< TOutputMesh > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | InputVDimension = InputMeshType::PointDimension |
static constexpr unsigned int | OutputVDimension = OutputMeshType::PointDimension |
Protected Attributes | |
std::vector< OutputPointType > | m_Border {} |
MeshBorderTransformPointer | m_BorderTransform {} |
InputMapPointIdentifier | m_BoundaryPtMap {} |
CoefficientsComputation * | m_CoefficientsMethod {} |
InputMapPointIdentifier | m_InternalPtMap {} |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
Additional Inherited Members | |
Static Protected Member Functions inherited from itk::ProcessObject | |
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::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::CoefficientsComputation = MatrixCoefficients<InputMeshType> |
Definition at line 127 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ConstPointer = SmartPointer<const Self> |
Definition at line 66 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputCellsContainerConstIterator = typename InputMeshType::CellsContainerConstIterator |
Definition at line 91 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputCoordinateType = typename InputMeshType::CoordinateType |
Definition at line 72 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputEdgeCellType = typename InputMeshType::EdgeCellType |
Definition at line 92 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputEdgeListType = typename InputMeshType::EdgeListType |
Definition at line 82 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMapPointIdentifier = std::map<InputPointIdentifier, InputPointIdentifier> |
Definition at line 98 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMapPointIdentifierIterator = typename InputMapPointIdentifier::iterator |
Definition at line 99 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMeshConstPointer = typename InputMeshType::ConstPointer |
Definition at line 71 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMeshPointer = typename InputMeshType::Pointer |
Definition at line 70 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMeshType = TInputMesh |
Input types.
Definition at line 69 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPixelType = typename InputMeshType::PixelType |
Definition at line 83 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointIdentifier = typename InputMeshType::PointIdentifier |
Definition at line 79 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointIdList = typename InputMeshType::PointIdList |
Definition at line 94 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointsContainer = typename InputMeshType::PointsContainer |
Definition at line 88 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointsContainerConstIterator = typename InputMeshType::PointsContainerConstIterator |
Definition at line 89 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointType = typename InputMeshType::PointType |
Definition at line 77 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointVectorType = typename InputPointType::VectorType |
Definition at line 78 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPolygonCellType = typename InputMeshType::PolygonCellType |
Definition at line 93 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputQEIterator = typename InputQEType::IteratorGeom |
Definition at line 96 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputQEType = typename InputMeshType::QEType |
Definition at line 80 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputTraits = typename InputMeshType::Traits |
Definition at line 84 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputVectorType = typename InputMeshType::VectorType |
Definition at line 81 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::MatrixType = typename SolverTraits::MatrixType |
Definition at line 121 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::MeshBorderTransform = BorderQuadEdgeMeshFilter<InputMeshType, InputMeshType> |
Definition at line 124 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::MeshBorderTransformPointer = typename MeshBorderTransform::Pointer |
Definition at line 125 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputCoordinateType = typename OutputMeshType::CoordinateType |
Definition at line 105 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMeshConstPointer = typename OutputMeshType::ConstPointer |
Definition at line 104 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMeshPointer = typename OutputMeshType::Pointer |
Definition at line 103 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMeshType = TOutputMesh |
Output types.
Definition at line 102 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
Definition at line 111 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
Definition at line 115 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointType = typename OutputMeshType::PointType |
Definition at line 110 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputQEIterator = typename OutputQEType::IteratorGeom |
Definition at line 114 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputQEType = typename OutputMeshType::QEType |
Definition at line 112 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputVectorType = typename OutputMeshType::VectorType |
Definition at line 113 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Pointer = SmartPointer<Self> |
Definition at line 65 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Self = ParameterizationQuadEdgeMeshFilter |
Basic types.
Definition at line 63 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SolverTraits = TSolverTraits |
Definition at line 119 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Superclass = QuadEdgeMeshToQuadEdgeMeshFilter<TInputMesh, TOutputMesh> |
Definition at line 64 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ValueType = typename SolverTraits::ValueType |
Definition at line 120 of file itkParameterizationQuadEdgeMeshFilter.h.
using itk::ParameterizationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::VectorType = typename SolverTraits::VectorType |
Definition at line 122 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
|
overrideprotecteddefault |
|
protected |
From the list of all vertices from the input mesh InputList and the list of boundary vertices BoundaryList, Store in m_InternalPtList the list of interior vertices (i.e. vertices in InputList and not in BoundaryList )
|
protected |
|
protected |
Fill matrix iM and vectors Bx and m_By depending on if one vertex is on the border or not.
[in] | iM | |
[in,out] | ioBx | |
[in,out] | ioBy |
|
overrideprotectedvirtual |
This method causes the filter to generate its output.
Reimplemented from itk::ProcessObject.
|
virtual |
|
overridevirtual |
Reimplemented from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >.
|
static |
|
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< TOutputMesh >.
|
virtual |
|
inline |
Definition at line 131 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
Solve linear systems : \( iM \cdot oX = iBx \) and \( iM \cdot oY = iBy \).
[in] | iM | |
[in] | iBx | |
[in] | iBy | |
[out] | oX | |
[out] | oY |
|
staticconstexpr |
Definition at line 86 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
Definition at line 160 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
Definition at line 150 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
Definition at line 154 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
Definition at line 148 of file itkParameterizationQuadEdgeMeshFilter.h.
|
protected |
Definition at line 158 of file itkParameterizationQuadEdgeMeshFilter.h.
|
staticconstexpr |
Definition at line 117 of file itkParameterizationQuadEdgeMeshFilter.h.