00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040 #ifndef __vtkParametricSpline_h
00041 #define __vtkParametricSpline_h
00042
00043 class vtkSpline;
00044 class vtkPoints;
00045
00046 #include "vtkParametricFunction.h"
00047
00048 class VTK_FILTERING_EXPORT vtkParametricSpline : public vtkParametricFunction
00049 {
00050 public:
00051 vtkTypeRevisionMacro(vtkParametricSpline,vtkParametricFunction);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00058 static vtkParametricSpline *New();
00059
00061 virtual int GetDimension() {return 1;}
00062
00065 virtual void Evaluate(double u[3], double Pt[3], double Du[9]);
00066
00069 virtual double EvaluateScalar(double u[3], double Pt[3], double Du[9]);
00070
00072
00075 void SetXSpline(vtkSpline*);
00076 void SetYSpline(vtkSpline*);
00077 void SetZSpline(vtkSpline*);
00078 vtkGetObjectMacro(XSpline,vtkSpline);
00079 vtkGetObjectMacro(YSpline,vtkSpline);
00080 vtkGetObjectMacro(ZSpline,vtkSpline);
00082
00084
00087 void SetPoints(vtkPoints*);
00088 vtkGetObjectMacro(Points,vtkPoints);
00090
00092
00095 vtkSetMacro(Closed,int);
00096 vtkGetMacro(Closed,int);
00097 vtkBooleanMacro(Closed,int);
00099
00101
00103 vtkSetMacro(ParameterizeByLength,int);
00104 vtkGetMacro(ParameterizeByLength,int);
00105 vtkBooleanMacro(ParameterizeByLength,int);
00107
00109
00117 vtkSetClampMacro(LeftConstraint,int,0,3);
00118 vtkGetMacro(LeftConstraint,int);
00119 vtkSetClampMacro(RightConstraint,int,0,3);
00120 vtkGetMacro(RightConstraint,int);
00122
00124
00126 vtkSetMacro(LeftValue,double);
00127 vtkGetMacro(LeftValue,double);
00128 vtkSetMacro(RightValue,double);
00129 vtkGetMacro(RightValue,double);
00131
00132 protected:
00133 vtkParametricSpline();
00134 ~vtkParametricSpline();
00135
00136
00137 vtkPoints *Points;
00138
00139
00140 vtkSpline *XSpline;
00141 vtkSpline *YSpline;
00142 vtkSpline *ZSpline;
00143
00144
00145 int Closed;
00146 int LeftConstraint;
00147 int RightConstraint;
00148 double LeftValue;
00149 double RightValue;
00150 int ParameterizeByLength;
00151
00152
00153 unsigned long InitializeTime;
00154 int Initialize();
00155
00156
00157 double Length;
00158 double ClosedLength;
00159
00160 private:
00161 vtkParametricSpline(const vtkParametricSpline&);
00162 void operator=(const vtkParametricSpline&);
00163 };
00164
00165 #endif