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