00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00033 #ifndef __vtkCardinalSpline_h
00034 #define __vtkCardinalSpline_h
00035 
00036 #include "vtkSpline.h"
00037 
00038 class VTK_FILTERING_EXPORT vtkCardinalSpline : public vtkSpline
00039 {
00040 public:
00041   static vtkCardinalSpline *New();
00042 
00043   vtkTypeMacro(vtkCardinalSpline,vtkSpline);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047   void Compute ();
00048 
00050   virtual double Evaluate (double t);
00051 
00053   virtual void DeepCopy(vtkSpline *s);
00054 
00055 protected:
00056   vtkCardinalSpline();
00057   ~vtkCardinalSpline() {}
00058 
00059   void Fit1D (int n, double *x, double *y, double *w, double coefficients[][4],
00060               int leftConstraint, double leftValue, int rightConstraint, 
00061               double rightValue);
00062 
00063   void FitClosed1D (int n, double *x, double *y, double *w, 
00064                     double coefficients[][4]);
00065 
00066 private:
00067   vtkCardinalSpline(const vtkCardinalSpline&);  
00068   void operator=(const vtkCardinalSpline&);  
00069 };
00070 
00071 #endif
00072