VTK  9.3.20240419
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:
70 
71  static double InitialCausalCoefficient(
72  double data[], long size, vtkImageBorderMode border, double pole, double tol);
73 
75  double data[], long size, vtkImageBorderMode border, double pole, double tol);
76 
77 private:
79  void operator=(const vtkImageBSplineInternals&) = delete;
80 };
81 
82 VTK_ABI_NAMESPACE_END
83 #endif
84 // VTK-HeaderTest-Exclude: vtkImageBSplineInternals.h
static double InitialCausalCoefficient(double data[], long size, vtkImageBorderMode border, double pole, double tol)
Internal method.
static int InterpolatedValue(const double *coeffs, double *value, long width, long height, long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border)
Internal method.
~vtkImageBSplineInternals()=default
Internal method.
static void ConvertToInterpolationCoefficients(double data[], long size, vtkImageBorderMode border, double poles[4], long numPoles, double tol)
Internal method.
static int GetInterpolationWeights(double weights[10], double w, long degree)
Internal method.
vtkImageBSplineInternals()=default
Internal method.
static int GetInterpolationWeights(float weights[10], double w, long degree)
Internal method.
static double InitialAntiCausalCoefficient(double data[], long size, vtkImageBorderMode border, double pole, double tol)
Internal method.
static int InterpolatedValue(const float *coeffs, float *value, long width, long height, long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border)
Internal method.
static int GetPoleValues(double poles[4], long &numPoles, long degree)
Internal method.
@ value
Definition: vtkX3D.h:220
@ height
Definition: vtkX3D.h:254
@ size
Definition: vtkX3D.h:253
@ data
Definition: vtkX3D.h:315
boost::graph_traits< vtkGraph * >::degree_size_type degree(boost::graph_traits< vtkGraph * >::vertex_descriptor u, vtkGraph *g)
#define VTK_SIZEHINT(...)