00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00059 #ifndef __vtkRuledSurfaceFilter_h
00060 #define __vtkRuledSurfaceFilter_h
00061
00062 #include "vtkPolyDataAlgorithm.h"
00063
00064 class vtkIdList;
00065 class vtkPoints;
00066 class vtkPolyData;
00067
00068 #define VTK_RULED_MODE_RESAMPLE 0
00069 #define VTK_RULED_MODE_POINT_WALK 1
00070
00071 class VTK_GRAPHICS_EXPORT vtkRuledSurfaceFilter : public vtkPolyDataAlgorithm
00072 {
00073 public:
00074 vtkTypeRevisionMacro(vtkRuledSurfaceFilter,vtkPolyDataAlgorithm);
00075 void PrintSelf(ostream& os, vtkIndent indent);
00076
00079 static vtkRuledSurfaceFilter *New();
00080
00082
00083 vtkSetClampMacro(DistanceFactor,double,1.0,VTK_DOUBLE_MAX);
00084 vtkGetMacro(DistanceFactor,double);
00086
00088
00091 vtkSetClampMacro(OnRatio,int,1,VTK_LARGE_INTEGER);
00092 vtkGetMacro(OnRatio,int);
00094
00096
00099 vtkSetClampMacro(Offset,int,0,VTK_LARGE_INTEGER);
00100 vtkGetMacro(Offset,int);
00102
00104
00109 vtkSetMacro(CloseSurface,int);
00110 vtkGetMacro(CloseSurface,int);
00111 vtkBooleanMacro(CloseSurface,int);
00113
00115
00120 vtkSetClampMacro(RuledMode,int,
00121 VTK_RULED_MODE_RESAMPLE,VTK_RULED_MODE_POINT_WALK);
00122 vtkGetMacro(RuledMode,int);
00123 void SetRuledModeToResample()
00124 {this->SetRuledMode(VTK_RULED_MODE_RESAMPLE);}
00125 void SetRuledModeToPointWalk()
00126 {this->SetRuledMode(VTK_RULED_MODE_POINT_WALK);}
00127 const char *GetRuledModeAsString();
00129
00131
00136 vtkSetVector2Macro(Resolution, int);
00137 vtkGetVectorMacro(Resolution, int, 2);
00139
00141
00143 vtkSetMacro(PassLines,int);
00144 vtkGetMacro(PassLines,int);
00145 vtkBooleanMacro(PassLines,int);
00147
00148 protected:
00149 vtkRuledSurfaceFilter();
00150 ~vtkRuledSurfaceFilter();
00151
00152
00153 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00154
00155 double DistanceFactor;
00156 int OnRatio;
00157 int Offset;
00158 int CloseSurface;
00159 int RuledMode;
00160 int Resolution[2];
00161 int PassLines;
00162
00163 private:
00164 vtkIdList *Ids;
00165 double Weights[4];
00166
00167 void Resample(vtkPolyData *output, vtkPolyData *input,
00168 vtkPoints *inPts, vtkPoints *newPts,
00169 int npts, vtkIdType *pts, int npts2, vtkIdType *pts2);
00170 void PointWalk(vtkPolyData *output, vtkPoints *inPts,
00171 int npts, vtkIdType *pts, int npts2, vtkIdType *pts2);
00172
00173 private:
00174 vtkRuledSurfaceFilter(const vtkRuledSurfaceFilter&);
00175 void operator=(const vtkRuledSurfaceFilter&);
00176 };
00177
00178 #endif