VTK
dox/Filtering/vtkImageBSplineInternals.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkImageBSplineInternals.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00035 #ifndef __vtkImageBSplineInternals_h
00036 #define __vtkImageBSplineInternals_h
00037 
00038 #include "vtkSystemIncludes.h"
00039 
00040 class VTK_FILTERING_EXPORT vtkImageBSplineInternals
00041 {
00042 public:
00046   static int GetPoleValues(double poles[4], long &numPoles, long degree);
00047 
00049 
00050   static void ConvertToInterpolationCoefficients(
00051     double data[], long size, long border, double poles[4], long numPoles,
00052     double tol);
00054 
00056 
00058   static int GetInterpolationWeights(
00059     double weights[10], double w, long degree);
00060   static int GetInterpolationWeights(
00061     float weights[10], double w, long degree);
00063 
00065 
00067   static int InterpolatedValue(
00068     const double *coeffs, double *value,
00069     long width, long height, long slices, long depth,
00070     double x, double y, double z, long degree, long border);
00071   static int InterpolatedValue(
00072     const float *coeffs, float *value,
00073     long width, long height, long slices, long depth,
00074     double x, double y, double z, long degree, long border);
00076 
00077 protected:
00078   vtkImageBSplineInternals() {};
00079   ~vtkImageBSplineInternals() {};
00080 
00081   static double InitialCausalCoefficient(
00082     double data[], long size, long border, double pole, double tol);
00083 
00084   static double InitialAntiCausalCoefficient(
00085     double data[], long size, long border, double pole, double tol);
00086 
00087 private:
00088   vtkImageBSplineInternals(const vtkImageBSplineInternals&);  // Not implemented.
00089   void operator=(const vtkImageBSplineInternals&);  // Not implemented.
00090 };
00091 
00092 #endif