Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkParametricSpline.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkParametricSpline.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 =========================================================================*/
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   // Points definition
00137   vtkPoints *Points;
00138 
00139   // The interpolating splines for each of the x-y-z coordinates
00140   vtkSpline *XSpline;
00141   vtkSpline *YSpline;
00142   vtkSpline *ZSpline;
00143 
00144   // Supplemental variables
00145   int    Closed;
00146   int    LeftConstraint;
00147   int    RightConstraint;
00148   double LeftValue;
00149   double RightValue;
00150   int    ParameterizeByLength;
00151 
00152   // Initializing the spline
00153   unsigned long InitializeTime;
00154   int Initialize();
00155   
00156   // Internal variable for managing parametric coordinates
00157   double Length;
00158   double ClosedLength;
00159   
00160 private:
00161   vtkParametricSpline(const vtkParametricSpline&);  // Not implemented.
00162   void operator=(const vtkParametricSpline&);  // Not implemented.
00163 };
00164 
00165 #endif

Generated on Mon Jan 21 23:07:20 2008 for VTK by  doxygen 1.4.3-20050530