ITK
5.2.0
Insight Toolkit
|
#include <itkLaplacianDeformationQuadEdgeMeshFilter.h>
Classes | |
struct | HashOutputQEPrimal |
struct | Triple |
Public Types | |
using | CoefficientsComputationType = MatrixCoefficients< OutputMeshType > |
using | ConstPointer = SmartPointer< const Self > |
using | InputMeshType = TInputMesh |
using | InputPointType = typename Superclass::InputPointType |
using | MatrixType = typename SolverTraits::MatrixType |
using | OutputCoordRepType = typename Superclass::OutputCoordRepType |
using | OutputMeshType = TOutputMesh |
using | OutputPointIdentifier = typename Superclass::OutputPointIdentifier |
using | OutputPointType = typename Superclass::OutputPointType |
using | OutputQEIterator = typename Superclass::OutputQEIterator |
using | OutputQEPrimal = typename Superclass::OutputQEPrimal |
using | OutputVectorType = typename Superclass::OutputVectorType |
using | Pointer = SmartPointer< Self > |
using | Self = LaplacianDeformationQuadEdgeMeshFilter |
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 | InputCoordRepType = typename InputMeshType::CoordRepType |
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 | OutputCoordRepType = typename OutputMeshType::CoordRepType |
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 |
(abstract) base class for laplacian surface mesh deformation.
Laplacian mesh deformation offers the ability to deform 3D surface mesh while preserving local details.
Laplacian-based approaches represent the surface by the so-called differential coordinates or Laplacian coordinates . These coordinates are obtained by applying the Laplacian operator to the mesh vertices:
where is the mean curvature at the vertex .
The deformation can be formulated by minimizing the difference from the input surface coordinates . With a continuous formulation, this would lead to the minimization of the following energy:
The Euler-Lagrange equation derived:
When considering the input surface as the parameter domain, the Laplace operator turns out into the Laplace-Beltrami operator :
which can be separated into 3 coordinate components.
Then users can add positional constraints on some vertices:
If output positions must exactly match set constraints, see LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints. Else see LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints
To make the deformation as generic as possible, user can provide/choose:
TInputMesh | Input Mesh Type |
TOutputMesh | Output Mesh Type |
TSolverTraits | Linear Sparse Solver Traits see VNLIterativeSparseSolverTraits and VNLSparseLUSolverTraits |
For details, see https://www.insight-journal.org/browse/publication/890
Definition at line 116 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::AreaEnum = LaplacianDeformationQuadEdgeMeshFilterEnums::Area |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 188 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 231 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 230 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 228 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 227 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::CoefficientsComputationType = MatrixCoefficients<OutputMeshType> |
Definition at line 152 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ConstPointer = SmartPointer<const Self> |
Definition at line 126 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 216 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 215 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputMeshType = TInputMesh |
Input types.
Definition at line 131 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::InputPointType = typename Superclass::InputPointType |
Definition at line 132 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::MatrixType = typename SolverTraits::MatrixType |
Definition at line 149 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputCoordRepType = typename Superclass::OutputCoordRepType |
Definition at line 138 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 211 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 213 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 212 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputMeshType = TOutputMesh |
Output types.
Definition at line 137 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointIdentifier = typename Superclass::OutputPointIdentifier |
Definition at line 140 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputPointType = typename Superclass::OutputPointType |
Definition at line 139 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputQEIterator = typename Superclass::OutputQEIterator |
Definition at line 143 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputQEPrimal = typename Superclass::OutputQEPrimal |
Definition at line 141 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::OutputVectorType = typename Superclass::OutputVectorType |
Definition at line 142 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Pointer = SmartPointer<Self> |
Definition at line 125 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 235 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 234 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 233 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Self = LaplacianDeformationQuadEdgeMeshFilter |
Basic types.
Definition at line 123 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SolverTraits = TSolverTraits |
Definition at line 147 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::Superclass = QuadEdgeMeshToQuadEdgeMeshFilter<TInputMesh, TOutputMesh> |
Definition at line 124 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::TriangleType = TriangleHelper<OutputPointType> |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 163 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ValueType = typename SolverTraits::ValueType |
Definition at line 148 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
using itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::VectorType = typename SolverTraits::VectorType |
Definition at line 150 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Default constructor
|
overrideprotecteddefault |
Set the coefficient method to compute the Laplacian matrix of the input mesh
void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::ClearConstraints | ( | ) |
Clear all constraints added by the means of SetConstrainedNode or SetDisplacement.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
|
protectedvirtual |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Reimplemented in itk::LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints< TInputMesh, TOutputMesh, TSolverTraits >, and itk::LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints< TInputMesh, TOutputMesh, TSolverTraits >.
|
protected |
Fill matrix iM and vectors Bx, m_By and m_Bz depending on if one vertex is on the border or not.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
|
virtual |
Set the coefficient method to compute the Laplacian matrix of the input mesh
bool itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::GetDisplacement | ( | OutputPointIdentifier | vId, |
OutputVectorType & | oV | ||
) | const |
Get the displacement vector oV for the vertex vId. Returns true if the vertex vId is a constraint, else false.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >.
Reimplemented in itk::LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints< TInputMesh, TOutputMesh, TSolverTraits >, and itk::LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints< TInputMesh, TOutputMesh, TSolverTraits >.
|
virtual |
Set the coefficient method to compute the Laplacian matrix of the input mesh
|
overrideprotectedvirtual |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Reimplemented from itk::MeshSource< TOutputMesh >.
Reimplemented in itk::LaplacianDeformationQuadEdgeMeshFilterWithSoftConstraints< TInputMesh, TOutputMesh, TSolverTraits >, and itk::LaplacianDeformationQuadEdgeMeshFilterWithHardConstraints< TInputMesh, TOutputMesh, TSolverTraits >.
|
virtual |
Set/Get the area normalization type
|
inline |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 156 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetConstrainedNode | ( | OutputPointIdentifier | vId, |
const OutputPointType & | iP | ||
) |
Constrain vertex vId to the given location iP
void itk::LaplacianDeformationQuadEdgeMeshFilter< TInputMesh, TOutputMesh, TSolverTraits >::SetDisplacement | ( | OutputPointIdentifier | vId, |
const OutputVectorType & | iV | ||
) |
Set the displacement vector iV for the vertex vId
|
virtual |
Set/Get the Laplacian order
|
protected |
Solve linears systems : and and .
[in] | iM | |
[in] | iBx | |
[in] | iBy | |
[in] | iBz | |
[out] | oX | |
[out] | oY | |
[out] | oZ |
|
staticconstexpr |
Definition at line 134 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 245 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 239 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 242 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 238 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 237 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 240 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
protected |
Set the coefficient method to compute the Laplacian matrix of the input mesh
Definition at line 244 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.
|
staticconstexpr |
Definition at line 145 of file itkLaplacianDeformationQuadEdgeMeshFilter.h.