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 "vtkPolyDataToPolyDataFilter.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 vtkPolyDataToPolyDataFilter
00072 {
00073
public:
00074 vtkTypeRevisionMacro(vtkRuledSurfaceFilter,
vtkPolyDataToPolyDataFilter);
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
void Execute();
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,
vtkPoints *inPts,
vtkPoints *newPts,
00168
int npts,
vtkIdType *pts,
int npts2,
vtkIdType *pts2);
00169
void PointWalk(
vtkPolyData *output,
vtkPoints *inPts,
00170
int npts,
vtkIdType *pts,
int npts2,
vtkIdType *pts2);
00171
00172
private:
00173 vtkRuledSurfaceFilter(
const vtkRuledSurfaceFilter&);
00174
void operator=(
const vtkRuledSurfaceFilter&);
00175 };
00176
00177
#endif
00178
00179