Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Graphics/vtkSplineFilter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00054 #ifndef __vtkSplineFilter_h
00055 #define __vtkSplineFilter_h
00056
00057 #include "vtkPolyDataToPolyDataFilter.h"
00058
00059 #define VTK_SUBDIVIDE_SPECIFIED 0
00060 #define VTK_SUBDIVIDE_LENGTH 1
00061
00062 #define VTK_TCOORDS_OFF 0
00063 #define VTK_TCOORDS_FROM_NORMALIZED_LENGTH 1
00064 #define VTK_TCOORDS_FROM_LENGTH 2
00065 #define VTK_TCOORDS_FROM_SCALARS 3
00066
00067 class vtkCellArray;
00068 class vtkCellData;
00069 class vtkFloatArray;
00070 class vtkPointData;
00071 class vtkPoints;
00072 class vtkSpline;
00073
00074 class VTK_GRAPHICS_EXPORT vtkSplineFilter : public vtkPolyDataToPolyDataFilter
00075 {
00076 public:
00077 vtkTypeRevisionMacro(vtkSplineFilter,vtkPolyDataToPolyDataFilter);
00078 void PrintSelf(ostream& os, vtkIndent indent);
00079
00082 static vtkSplineFilter *New();
00083
00085
00087 vtkSetClampMacro(MaximumNumberOfSubdivisions,int,1,VTK_LARGE_INTEGER);
00088 vtkGetMacro(MaximumNumberOfSubdivisions,int);
00090
00092
00093 vtkSetClampMacro(Subdivide,int,VTK_SUBDIVIDE_SPECIFIED,VTK_SUBDIVIDE_LENGTH);
00094 vtkGetMacro(Subdivide,int);
00095 void SetSubdivideToSpecified()
00096 {this->SetSubdivide(VTK_SUBDIVIDE_SPECIFIED);}
00097 void SetSubdivideToLength()
00098 {this->SetSubdivide(VTK_SUBDIVIDE_LENGTH);}
00099 const char *GetSubdivideAsString();
00101
00103
00106 vtkSetClampMacro(NumberOfSubdivisions,int,1,VTK_LARGE_INTEGER);
00107 vtkGetMacro(NumberOfSubdivisions,int);
00109
00111
00114 vtkSetClampMacro(Length,float,0.0000001,VTK_LARGE_FLOAT);
00115 vtkGetMacro(Length,float);
00117
00119
00120 virtual void SetSpline(vtkSpline*);
00121 vtkGetObjectMacro(Spline,vtkSpline);
00123
00125
00130 vtkSetClampMacro(GenerateTCoords,int,VTK_TCOORDS_OFF,
00131 VTK_TCOORDS_FROM_SCALARS);
00132 vtkGetMacro(GenerateTCoords,int);
00133 void SetGenerateTCoordsToOff()
00134 {this->SetGenerateTCoords(VTK_TCOORDS_OFF);}
00135 void SetGenerateTCoordsToNormalizedLength()
00136 {this->SetGenerateTCoords(VTK_TCOORDS_FROM_NORMALIZED_LENGTH);}
00137 void SetGenerateTCoordsToUseLength()
00138 {this->SetGenerateTCoords(VTK_TCOORDS_FROM_LENGTH);}
00139 void SetGenerateTCoordsToUseScalars()
00140 {this->SetGenerateTCoords(VTK_TCOORDS_FROM_SCALARS);}
00141 const char *GetGenerateTCoordsAsString();
00143
00145
00149 vtkSetClampMacro(TextureLength,float,0.000001,VTK_LARGE_INTEGER);
00150 vtkGetMacro(TextureLength,float);
00152
00153 protected:
00154 vtkSplineFilter();
00155 ~vtkSplineFilter();
00156
00157
00158 void Execute();
00159
00160 int MaximumNumberOfSubdivisions;
00161 int Subdivide;
00162 int NumberOfSubdivisions;
00163 float Length;
00164 vtkSpline *Spline;
00165 vtkSpline *XSpline;
00166 vtkSpline *YSpline;
00167 vtkSpline *ZSpline;
00168 int GenerateTCoords;
00169 float TextureLength;
00170
00171
00172 int GeneratePoints(vtkIdType offset, vtkIdType npts, vtkIdType *pts,
00173 vtkPoints *inPts, vtkPoints *newPts, vtkPointData *pd,
00174 vtkPointData *outPD, int genTCoords,
00175 vtkFloatArray *newTCoords);
00176
00177 void GenerateLine(vtkIdType offset, vtkIdType numGenPts, vtkIdType inCellId,
00178 vtkCellData *cd, vtkCellData *outCD, vtkCellArray *newLines);
00179
00180
00181 vtkFloatArray *TCoordMap;
00182
00183 private:
00184 vtkSplineFilter(const vtkSplineFilter&);
00185 void operator=(const vtkSplineFilter&);
00186 };
00187
00188 #endif