VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkKochanekSpline.h,v $ 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 =========================================================================*/ 00047 #ifndef __vtkKochanekSpline_h 00048 #define __vtkKochanekSpline_h 00049 00050 #include "vtkSpline.h" 00051 00052 class VTK_FILTERING_EXPORT vtkKochanekSpline : public vtkSpline 00053 { 00054 public: 00055 vtkTypeRevisionMacro(vtkKochanekSpline,vtkSpline); 00056 void PrintSelf(ostream& os, vtkIndent indent); 00057 00060 static vtkKochanekSpline *New(); 00061 00063 void Compute (); 00064 00066 double Evaluate (double t); 00067 00069 00070 vtkSetMacro(DefaultBias,double); 00071 vtkGetMacro(DefaultBias,double); 00073 00075 00076 vtkSetMacro(DefaultTension,double); 00077 vtkGetMacro(DefaultTension,double); 00079 00081 00082 vtkSetMacro(DefaultContinuity,double); 00083 vtkGetMacro(DefaultContinuity,double); 00085 00087 virtual void DeepCopy(vtkSpline *s); 00088 00089 protected: 00090 vtkKochanekSpline(); 00091 ~vtkKochanekSpline() {} 00092 00093 void Fit1D (int n, double *x, double *y, double tension, double bias, 00094 double continuity, double coefficients[][4], int leftConstraint, 00095 double leftValue, int rightConstraint, double rightValue); 00096 00097 double DefaultBias; 00098 double DefaultTension; 00099 double DefaultContinuity; 00100 00101 private: 00102 vtkKochanekSpline(const vtkKochanekSpline&); // Not implemented. 00103 void operator=(const vtkKochanekSpline&); // Not implemented. 00104 }; 00105 00106 #endif 00107