VTK  9.7.1
vtkImageBSplineInternals.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
24 #ifndef vtkImageBSplineInternals_h
25 #define vtkImageBSplineInternals_h
26 
27 #include "vtkAbstractImageInterpolator.h" // For vtkImageBorderMode
28 #include "vtkImagingCoreModule.h" // For export macro
29 #include "vtkSystemIncludes.h"
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class VTKIMAGINGCORE_EXPORT vtkImageBSplineInternals
33 {
34 public:
40  static int GetPoleValues(double poles[4], long& numPoles, long degree);
41 
45  static void ConvertToInterpolationCoefficients(double data[], long size,
46  vtkImageBorderMode border, double poles[4], long numPoles, double tol) VTK_SIZEHINT(data, size);
47 
49 
53  static int GetInterpolationWeights(double weights[10], double w, long degree);
54  static int GetInterpolationWeights(float weights[10], double w, long degree);
56 
58 
62  static int InterpolatedValue(const double* coeffs, double* value, long width, long height,
63  long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border);
64  static int InterpolatedValue(const float* coeffs, float* value, long width, long height,
65  long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border);
66 
67 protected:
68  static double InitialCausalCoefficient(
69  double data[], long size, vtkImageBorderMode border, double pole, double tol);
70 
71  static double InitialAntiCausalCoefficient(
72  double data[], long size, vtkImageBorderMode border, double pole, double tol);
73 };
74 
75 VTK_ABI_NAMESPACE_END
76 #endif
77 // VTK-HeaderTest-Exclude: vtkImageBSplineInternals.h
#define VTK_SIZEHINT(...)
boost::graph_traits< vtkGraph * >::degree_size_type degree(boost::graph_traits< vtkGraph * >::vertex_descriptor u, vtkGraph *g)