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
00094 void SetNumberOfPoints(vtkIdType numPts);
00095 void SetPoint(vtkIdType index, double x, double y, double z);
00097
00099
00102 vtkSetMacro(Closed,int);
00103 vtkGetMacro(Closed,int);
00104 vtkBooleanMacro(Closed,int);
00106
00108
00110 vtkSetMacro(ParameterizeByLength,int);
00111 vtkGetMacro(ParameterizeByLength,int);
00112 vtkBooleanMacro(ParameterizeByLength,int);
00114
00116
00124 vtkSetClampMacro(LeftConstraint,int,0,3);
00125 vtkGetMacro(LeftConstraint,int);
00126 vtkSetClampMacro(RightConstraint,int,0,3);
00127 vtkGetMacro(RightConstraint,int);
00129
00131
00133 vtkSetMacro(LeftValue,double);
00134 vtkGetMacro(LeftValue,double);
00135 vtkSetMacro(RightValue,double);
00136 vtkGetMacro(RightValue,double);
00138
00139 protected:
00140 vtkParametricSpline();
00141 ~vtkParametricSpline();
00142
00143
00144 vtkPoints *Points;
00145
00146
00147 vtkSpline *XSpline;
00148 vtkSpline *YSpline;
00149 vtkSpline *ZSpline;
00150
00151
00152 int Closed;
00153 int LeftConstraint;
00154 int RightConstraint;
00155 double LeftValue;
00156 double RightValue;
00157 int ParameterizeByLength;
00158
00159
00160 unsigned long InitializeTime;
00161 int Initialize();
00162
00163
00164 double Length;
00165 double ClosedLength;
00166
00167 private:
00168 vtkParametricSpline(const vtkParametricSpline&);
00169 void operator=(const vtkParametricSpline&);
00170 };
00171
00172 #endif