00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00046
#ifndef __vtkBandedPolyDataContourFilter_h
00047
#define __vtkBandedPolyDataContourFilter_h
00048
00049
#include "vtkPolyDataToPolyDataFilter.h"
00050
00051
#include "vtkContourValues.h"
00052
00053
class vtkPoints;
00054
class vtkCellArray;
00055
class vtkPointData;
00056
class vtkDataArray;
00057
class vtkFloatArray;
00058
00059 #define VTK_SCALAR_MODE_INDEX 0
00060 #define VTK_SCALAR_MODE_VALUE 1
00061
00062 class VTK_GRAPHICS_EXPORT vtkBandedPolyDataContourFilter :
public vtkPolyDataToPolyDataFilter
00063 {
00064
public:
00065 vtkTypeRevisionMacro(vtkBandedPolyDataContourFilter,
vtkPolyDataToPolyDataFilter);
00066
void PrintSelf(ostream& os,
vtkIndent indent);
00067
00069
static vtkBandedPolyDataContourFilter *
New();
00070
00072
00076
void SetValue(
int i,
double value);
00077
double GetValue(
int i);
00078
double *GetValues();
00079
void GetValues(
double *contourValues);
00080
void SetNumberOfContours(
int number);
00081
int GetNumberOfContours();
00082
void GenerateValues(
int numContours,
double range[2]);
00083
void GenerateValues(
int numContours,
double rangeStart,
double rangeEnd);
00085
00087
00091 vtkSetMacro(Clipping,
int);
00092 vtkGetMacro(Clipping,
int);
00093 vtkBooleanMacro(Clipping,
int);
00095
00097
00101 vtkSetClampMacro(ScalarMode,
int,VTK_SCALAR_MODE_INDEX,VTK_SCALAR_MODE_VALUE);
00102 vtkGetMacro(ScalarMode,
int);
00103 void SetScalarModeToIndex()
00104 {this->SetScalarMode(
VTK_SCALAR_MODE_INDEX);}
00105 void SetScalarModeToValue()
00106 {this->SetScalarMode(
VTK_SCALAR_MODE_VALUE);}
00108
00110
00114 vtkSetMacro(GenerateContourEdges,
int);
00115 vtkGetMacro(GenerateContourEdges,
int);
00116 vtkBooleanMacro(GenerateContourEdges,
int);
00118
00121
vtkPolyData *GetContourEdgesOutput();
00122
00124
00127 vtkGetStringMacro(InputScalarsSelection);
00128 void SelectInputScalars(
const char *fieldName)
00129 {this->SetInputScalarsSelection(fieldName);}
00131
00134
unsigned long GetMTime();
00135
00136
protected:
00137 vtkBandedPolyDataContourFilter();
00138 ~vtkBandedPolyDataContourFilter();
00139
00140
void Execute();
00141
00142
int ComputeScalarIndex(
double);
00143
int IsContourValue(
double val);
00144
int ClipEdge(
int v1,
int v2,
vtkPoints *pts,
vtkDataArray *scalars,
00145
vtkPointData *inPD,
vtkPointData *outPD);
00146
int InsertCell(
vtkCellArray *cells,
int npts,
vtkIdType *pts,
00147
int cellId,
double s,
vtkFloatArray *newS);
00148
00149
00150 vtkContourValues *ContourValues;
00151
00152 int Clipping;
00153 int ScalarMode;
00154
00155
00156 double *ClipValues;
00157 int NumberOfClipValues;
00158 int ClipIndex[2];
00159 double ClipTolerance;
00160
00161
00162 int GenerateContourEdges;
00163
00164 char *InputScalarsSelection;
00165 vtkSetStringMacro(InputScalarsSelection);
00166
00167
private:
00168 vtkBandedPolyDataContourFilter(
const vtkBandedPolyDataContourFilter&);
00169
void operator=(
const vtkBandedPolyDataContourFilter&);
00170 };
00171
00173
00175 inline void vtkBandedPolyDataContourFilter::SetValue(
int i,
double value)
00176 {this->
ContourValues->
SetValue(i,value);}
00178
00180
00181 inline double vtkBandedPolyDataContourFilter::GetValue(
int i)
00182 {
return this->
ContourValues->
GetValue(i);}
00184
00186
00188 inline double *
vtkBandedPolyDataContourFilter::GetValues()
00189 {
return this->
ContourValues->
GetValues();}
00191
00193
00196 inline void vtkBandedPolyDataContourFilter::GetValues(
double *contourValues)
00197 {this->
ContourValues->
GetValues(contourValues);}
00199
00201
00204 inline void vtkBandedPolyDataContourFilter::SetNumberOfContours(
int number)
00205 {this->
ContourValues->
SetNumberOfContours(number);}
00207
00209
00210 inline int vtkBandedPolyDataContourFilter::GetNumberOfContours()
00211 {
return this->
ContourValues->
GetNumberOfContours();}
00213
00215
00217 inline void vtkBandedPolyDataContourFilter::GenerateValues(
int numContours,
00218
double range[2])
00219 {this->
ContourValues->
GenerateValues(numContours, range);}
00221
00223
00225 inline void vtkBandedPolyDataContourFilter::GenerateValues(
int numContours,
00226
double rangeStart,
00227
double rangeEnd)
00228 {this->
ContourValues->
GenerateValues(numContours, rangeStart, rangeEnd);}
00230
00231
00232
#endif
00233
00234