VTK  9.2.6
vtkImageBSplineInternals.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageBSplineInternals.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
36 #ifndef vtkImageBSplineInternals_h
37 #define vtkImageBSplineInternals_h
38 
39 #include "vtkAbstractImageInterpolator.h" // For vtkImageBorderMode
40 #include "vtkImagingCoreModule.h" // For export macro
41 #include "vtkSystemIncludes.h"
42 
43 class VTKIMAGINGCORE_EXPORT vtkImageBSplineInternals
44 {
45 public:
51  static int GetPoleValues(double poles[4], long& numPoles, long degree);
52 
56  static void ConvertToInterpolationCoefficients(double data[], long size,
57  vtkImageBorderMode border, double poles[4], long numPoles, double tol) VTK_SIZEHINT(data, size);
58 
60 
64  static int GetInterpolationWeights(double weights[10], double w, long degree);
65  static int GetInterpolationWeights(float weights[10], double w, long degree);
67 
69 
73  static int InterpolatedValue(const double* coeffs, double* value, long width, long height,
74  long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border);
75  static int InterpolatedValue(const float* coeffs, float* value, long width, long height,
76  long slices, long depth, double x, double y, double z, long degree, vtkImageBorderMode border);
77 
78 protected:
79  vtkImageBSplineInternals() = default;
80  ~vtkImageBSplineInternals() = default;
81 
82  static double InitialCausalCoefficient(
83  double data[], long size, vtkImageBorderMode border, double pole, double tol);
84 
85  static double InitialAntiCausalCoefficient(
86  double data[], long size, vtkImageBorderMode border, double pole, double tol);
87 
88 private:
90  void operator=(const vtkImageBSplineInternals&) = delete;
91 };
92 
93 #endif
94 // 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)