VTK
dox/Imaging/Core/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 "vtkImagingCoreModule.h" // For export macro
00039 #include "vtkSystemIncludes.h"
00040 
00041 class VTKIMAGINGCORE_EXPORT vtkImageBSplineInternals
00042 {
00043 public:
00047   static int GetPoleValues(double poles[4], long &numPoles, long degree);
00048 
00050 
00051   static void ConvertToInterpolationCoefficients(
00052     double data[], long size, long border, double poles[4], long numPoles,
00053     double tol);
00055 
00057 
00059   static int GetInterpolationWeights(
00060     double weights[10], double w, long degree);
00061   static int GetInterpolationWeights(
00062     float weights[10], double w, long degree);
00064 
00066 
00068   static int InterpolatedValue(
00069     const double *coeffs, double *value,
00070     long width, long height, long slices, long depth,
00071     double x, double y, double z, long degree, long border);
00072   static int InterpolatedValue(
00073     const float *coeffs, float *value,
00074     long width, long height, long slices, long depth,
00075     double x, double y, double z, long degree, long border);
00077 
00078 protected:
00079   vtkImageBSplineInternals() {};
00080   ~vtkImageBSplineInternals() {};
00081 
00082   static double InitialCausalCoefficient(
00083     double data[], long size, long border, double pole, double tol);
00084 
00085   static double InitialAntiCausalCoefficient(
00086     double data[], long size, long border, double pole, double tol);
00087 
00088 private:
00089   vtkImageBSplineInternals(const vtkImageBSplineInternals&);  // Not implemented.
00090   void operator=(const vtkImageBSplineInternals&);  // Not implemented.
00091 };
00092 
00093 #endif
00094 // VTK-HeaderTest-Exclude: vtkImageBSplineInternals.h