19 #ifndef itkFastMarchingQuadEdgeMeshFilterBase_h
20 #define itkFastMarchingQuadEdgeMeshFilterBase_h
44 template <
typename TInput,
typename TOutput>
54 using typename Superclass::Traits;
64 using typename Superclass::InputPixelType;
70 using typename Superclass::OutputPixelType;
98 using typename Superclass::LabelType;
111 GetTotalNumberOfNodes()
const override;
114 SetOutputValue(OutputMeshType * oMesh,
const NodeType & iNode,
const OutputPixelType & iValue)
override;
116 const OutputPixelType
117 GetOutputValue(OutputMeshType * oMesh,
const NodeType & iNode)
const override;
120 GetLabelValueForGivenNode(
const NodeType & iNode)
const override;
123 SetLabelValueForGivenNode(
const NodeType & iNode,
const LabelType & iLabel)
override;
126 UpdateNeighbors(OutputMeshType * oMesh,
const NodeType & iNode)
override;
129 UpdateValue(OutputMeshType * oMesh,
const NodeType & iNode)
override;
131 const OutputVectorRealType
132 Solve(OutputMeshType * oMesh,
133 const NodeType & iId,
134 const OutputPointType & iCurrentPoint,
135 const OutputVectorRealType & iF,
136 const NodeType & iId1,
137 const OutputPointType & iP1,
139 const OutputVectorRealType iVal1,
140 const NodeType & iId2,
141 const OutputPointType & iP2,
143 const OutputVectorRealType & iVal2)
const;
146 const OutputVectorRealType
147 ComputeUpdate(
const OutputVectorRealType & iVal1,
148 const OutputVectorRealType & iVal2,
149 const OutputVectorRealType & iNorm1,
150 const OutputVectorRealType & iSqNorm1,
151 const OutputVectorRealType & iNorm2,
152 const OutputVectorRealType & iSqNorm2,
153 const OutputVectorRealType & iDot,
154 const OutputVectorRealType & iF)
const;
157 UnfoldTriangle(OutputMeshType * oMesh,
158 const OutputPointIdentifierType & iId,
159 const OutputPointType & iP,
160 const OutputPointIdentifierType & iId1,
161 const OutputPointType & iP1,
162 const OutputPointIdentifierType & iId2,
163 const OutputPointType & iP2,
164 OutputVectorRealType & oNorm,
165 OutputVectorRealType & oSqNorm,
166 OutputVectorRealType & oDot1,
167 OutputVectorRealType & oDot2,
168 OutputPointIdentifierType & oId)
const;
171 CheckTopology(OutputMeshType * oMesh,
const NodeType & iNode)
override;
174 InitializeOutput(OutputMeshType * oMesh)
override;
181 #ifndef ITK_MANUAL_INSTANTIATION
182 # include "itkFastMarchingQuadEdgeMeshFilterBase.hxx"
185 #endif // itkFastMarchingQuadEdgeMeshFilterBase_h