18 #ifndef itkBSplineScatteredDataPointSetToImageFilter_h
19 #define itkBSplineScatteredDataPointSetToImageFilter_h
27 #include "vnl/vnl_matrix.h"
131 template <
typename TInputPo
intSet,
typename TOutputImage>
151 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
195 SetSplineOrder(
unsigned int);
206 itkGetConstReferenceMacro(SplineOrder,
ArrayType);
212 itkSetMacro(NumberOfControlPoints,
ArrayType);
213 itkGetConstReferenceMacro(NumberOfControlPoints,
ArrayType);
220 itkGetConstReferenceMacro(CurrentNumberOfControlPoints,
ArrayType);
227 SetNumberOfLevels(
unsigned int);
240 itkGetConstReferenceMacro(NumberOfLevels,
ArrayType);
248 itkSetMacro(BSplineEpsilon,
RealType);
249 itkGetConstMacro(BSplineEpsilon,
RealType);
269 itkGetConstReferenceMacro(CloseDimension,
ArrayType);
280 itkSetMacro(GenerateOutputImage,
bool);
281 itkGetConstReferenceMacro(GenerateOutputImage,
bool);
282 itkBooleanMacro(GenerateOutputImage);
297 PrintSelf(std::ostream & os,
Indent indent)
const override;
305 itkExceptionMacro(
"This class requires threadId so it must use classic multi-threading model");
309 BeforeThreadedGenerateData()
override;
312 AfterThreadedGenerateData()
override;
315 SplitRequestedRegion(
unsigned int,
unsigned int,
RegionType &)
override;
318 GenerateData()
override;
324 RefineControlPointLattice();
329 GenerateOutputImage();
346 CollapsePhiLattice(PointDataImageType *, PointDataImageType *,
const RealType,
const unsigned int);
351 SetPhiLatticeParametricDomainParameters();
356 NumberToIndex(
const unsigned int,
const SizeType);
358 bool m_DoMultilevel{
false };
359 bool m_GenerateOutputImage{
true };
360 bool m_UsePointWeights{
false };
361 unsigned int m_MaximumNumberOfLevels{ 1 };
362 unsigned int m_CurrentLevel{ 0 };
374 vnl_matrix<RealType> m_RefinedLatticeCoefficients[ImageDimension]{};
385 std::vector<RealImagePointer> m_OmegaLatticePerThread{};
386 std::vector<PointDataImagePointer> m_DeltaLatticePerThread{};
388 RealType m_BSplineEpsilon{ static_cast<RealType>(1
e-3) };
389 bool m_IsFittingComplete{
false };
390 bool m_DoUpdateResidualValues{
false };
394 #ifndef ITK_MANUAL_INSTANTIATION
395 # include "itkBSplineScatteredDataPointSetToImageFilter.hxx"