00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00063
#ifndef __vtkRuledSurfaceFilter_h
00064
#define __vtkRuledSurfaceFilter_h
00065
00066
#include "vtkPolyDataToPolyDataFilter.h"
00067
00068
class vtkIdList;
00069
class vtkPoints;
00070
class vtkPolyData;
00071
00072 #define VTK_RULED_MODE_RESAMPLE 0
00073 #define VTK_RULED_MODE_POINT_WALK 1
00074
00075 class VTK_GRAPHICS_EXPORT vtkRuledSurfaceFilter :
public vtkPolyDataToPolyDataFilter
00076 {
00077
public:
00078 vtkTypeRevisionMacro(vtkRuledSurfaceFilter,
vtkPolyDataToPolyDataFilter);
00079
void PrintSelf(ostream& os,
vtkIndent indent);
00080
00083
static vtkRuledSurfaceFilter *
New();
00084
00086
00087 vtkSetClampMacro(DistanceFactor,
float,1.0,VTK_LARGE_FLOAT);
00088 vtkGetMacro(DistanceFactor,
float);
00090
00092
00095 vtkSetClampMacro(OnRatio,
int,1,VTK_LARGE_INTEGER);
00096 vtkGetMacro(OnRatio,
int);
00098
00100
00103 vtkSetClampMacro(Offset,
int,0,VTK_LARGE_INTEGER);
00104 vtkGetMacro(Offset,
int);
00106
00108
00113 vtkSetMacro(CloseSurface,
int);
00114 vtkGetMacro(CloseSurface,
int);
00115 vtkBooleanMacro(CloseSurface,
int);
00117
00119
00123 vtkSetClampMacro(RuledMode,
int,
00124 VTK_RULED_MODE_RESAMPLE,VTK_RULED_MODE_POINT_WALK);
00125 vtkGetMacro(RuledMode,
int);
00126 void SetRuledModeToResample()
00127 {this->SetRuledMode(
VTK_RULED_MODE_RESAMPLE);}
00128 void SetRuledModeToPointWalk()
00129 {this->SetRuledMode(
VTK_RULED_MODE_POINT_WALK);}
00130
const char *GetRuledModeAsString();
00132
00134
00139 vtkSetVector2Macro(Resolution,
int);
00140 vtkGetVectorMacro(Resolution,
int, 2);
00142
00144
00146 vtkSetMacro(PassLines,
int);
00147 vtkGetMacro(PassLines,
int);
00148 vtkBooleanMacro(PassLines,
int);
00150
00151
protected:
00152 vtkRuledSurfaceFilter();
00153 ~vtkRuledSurfaceFilter();
00154
00155
00156
void Execute();
00157
00158 float DistanceFactor;
00159 int OnRatio;
00160 int Offset;
00161 int CloseSurface;
00162 int RuledMode;
00163 int Resolution[2];
00164 int PassLines;
00165
00166
private:
00167
vtkIdList *Ids;
00168
float Weights[4];
00169
00170
void Resample(
vtkPolyData *output,
vtkPoints *inPts,
vtkPoints *newPts,
00171
int npts,
vtkIdType *pts,
int npts2,
vtkIdType *pts2);
00172
void PointWalk(
vtkPolyData *output,
vtkPoints *inPts,
00173
int npts,
vtkIdType *pts,
int npts2,
vtkIdType *pts2);
00174
00175
private:
00176 vtkRuledSurfaceFilter(
const vtkRuledSurfaceFilter&);
00177
void operator=(
const vtkRuledSurfaceFilter&);
00178 };
00179
00180
#endif
00181
00182