00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00087 #ifndef __vtkRuledSurfaceFilter_h
00088 #define __vtkRuledSurfaceFilter_h
00089
00090 #include "vtkPolyDataToPolyDataFilter.h"
00091
00092 #define VTK_RULED_MODE_RESAMPLE 0
00093 #define VTK_RULED_MODE_POINT_WALK 1
00094
00095 class VTK_GRAPHICS_EXPORT vtkRuledSurfaceFilter : public vtkPolyDataToPolyDataFilter
00096 {
00097 public:
00098 vtkTypeMacro(vtkRuledSurfaceFilter,vtkPolyDataToPolyDataFilter);
00099 void PrintSelf(ostream& os, vtkIndent indent);
00100
00103 static vtkRuledSurfaceFilter *New();
00104
00106
00107 vtkSetClampMacro(DistanceFactor,float,1.0,VTK_LARGE_FLOAT);
00108 vtkGetMacro(DistanceFactor,float);
00110
00112
00115 vtkSetClampMacro(OnRatio,int,1,VTK_LARGE_INTEGER);
00116 vtkGetMacro(OnRatio,int);
00118
00120
00123 vtkSetClampMacro(Offset,int,0,VTK_LARGE_INTEGER);
00124 vtkGetMacro(Offset,int);
00126
00128
00133 vtkSetMacro(CloseSurface,int);
00134 vtkGetMacro(CloseSurface,int);
00135 vtkBooleanMacro(CloseSurface,int);
00137
00139
00143 vtkSetClampMacro(RuledMode,int,
00144 VTK_RULED_MODE_RESAMPLE,VTK_RULED_MODE_POINT_WALK);
00145 vtkGetMacro(RuledMode,int);
00146 void SetRuledModeToResample()
00147 {this->SetRuledMode(VTK_RULED_MODE_RESAMPLE);}
00148 void SetRuledModeToPointWalk()
00149 {this->SetRuledMode(VTK_RULED_MODE_POINT_WALK);}
00150 const char *GetRuledModeAsString();
00152
00154
00159 vtkSetVector2Macro(Resolution, int);
00160 vtkGetVectorMacro(Resolution, int, 2);
00162
00164
00166 vtkSetMacro(PassLines,int);
00167 vtkGetMacro(PassLines,int);
00168 vtkBooleanMacro(PassLines,int);
00170
00171 protected:
00172 vtkRuledSurfaceFilter();
00173 ~vtkRuledSurfaceFilter();
00174
00175
00176 void Execute();
00177
00178 float DistanceFactor;
00179 int OnRatio;
00180 int Offset;
00181 int CloseSurface;
00182 int RuledMode;
00183 int Resolution[2];
00184 int PassLines;
00185
00186 private:
00187 vtkIdList *Ids;
00188 float Weights[4];
00189
00190 void Resample(vtkPolyData *output, vtkPoints *inPts, vtkPoints *newPts,
00191 int npts, vtkIdType *pts, int npts2, vtkIdType *pts2);
00192 void PointWalk(vtkPolyData *output, vtkPoints *inPts,
00193 int npts, vtkIdType *pts, int npts2, vtkIdType *pts2);
00194
00195 private:
00196 vtkRuledSurfaceFilter(const vtkRuledSurfaceFilter&);
00197 void operator=(const vtkRuledSurfaceFilter&);
00198 };
00199
00200 #endif
00201
00202