00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00050
#ifndef __vtkBandedPolyDataContourFilter_h
00051
#define __vtkBandedPolyDataContourFilter_h
00052
00053
#include "vtkPolyDataToPolyDataFilter.h"
00054
00055
#include "vtkContourValues.h"
00056
00057
class vtkPoints;
00058
class vtkCellArray;
00059
class vtkPointData;
00060
class vtkDataArray;
00061
class vtkFloatArray;
00062
00063 #define VTK_SCALAR_MODE_INDEX 0
00064 #define VTK_SCALAR_MODE_VALUE 1
00065
00066 class VTK_GRAPHICS_EXPORT vtkBandedPolyDataContourFilter :
public vtkPolyDataToPolyDataFilter
00067 {
00068
public:
00069 vtkTypeRevisionMacro(vtkBandedPolyDataContourFilter,
vtkPolyDataToPolyDataFilter);
00070
void PrintSelf(ostream& os,
vtkIndent indent);
00071
00073
static vtkBandedPolyDataContourFilter *
New();
00074
00076
00080
void SetValue(
int i,
float value);
00081
float GetValue(
int i);
00082
float *GetValues();
00083
void GetValues(
float *contourValues);
00084
void SetNumberOfContours(
int number);
00085
int GetNumberOfContours();
00086
void GenerateValues(
int numContours,
float range[2]);
00087
void GenerateValues(
int numContours,
float rangeStart,
float rangeEnd);
00089
00091
00095 vtkSetMacro(Clipping,
int);
00096 vtkGetMacro(Clipping,
int);
00097 vtkBooleanMacro(Clipping,
int);
00099
00101
00105 vtkSetClampMacro(ScalarMode,
int,VTK_SCALAR_MODE_INDEX,VTK_SCALAR_MODE_VALUE);
00106 vtkGetMacro(ScalarMode,
int);
00107 void SetScalarModeToIndex()
00108 {this->SetScalarMode(
VTK_SCALAR_MODE_INDEX);}
00109 void SetScalarModeToValue()
00110 {this->SetScalarMode(
VTK_SCALAR_MODE_VALUE);}
00112
00114
00118 vtkSetMacro(GenerateContourEdges,
int);
00119 vtkGetMacro(GenerateContourEdges,
int);
00120 vtkBooleanMacro(GenerateContourEdges,
int);
00122
00125
vtkPolyData *GetContourEdgesOutput();
00126
00129
unsigned long GetMTime();
00130
00131
protected:
00132 vtkBandedPolyDataContourFilter();
00133 ~vtkBandedPolyDataContourFilter();
00134
00135
void Execute();
00136
00137
int ComputeScalarIndex(
float);
00138
int IsContourValue(
float val);
00139
int ClipEdge(
int v1,
int v2,
vtkPoints *pts,
vtkDataArray *scalars,
00140
vtkPointData *inPD,
vtkPointData *outPD);
00141
int InsertCell(
vtkCellArray *cells,
int npts,
vtkIdType *pts,
00142
int cellId,
float s,
vtkFloatArray *newS);
00143
00144
00145 vtkContourValues *ContourValues;
00146
00147 int Clipping;
00148 int ScalarMode;
00149
00150
00151 float *ClipValues;
00152 int NumberOfClipValues;
00153 int ClipIndex[2];
00154 float ClipTolerance;
00155
00156
00157 int GenerateContourEdges;
00158
00159 char *InputScalarsSelection;
00160 vtkSetStringMacro(InputScalarsSelection);
00161
00162
private:
00163 vtkBandedPolyDataContourFilter(
const vtkBandedPolyDataContourFilter&);
00164
void operator=(
const vtkBandedPolyDataContourFilter&);
00165 };
00166
00168
00170 inline void vtkBandedPolyDataContourFilter::SetValue(
int i,
float value)
00171 {this->
ContourValues->
SetValue(i,value);}
00173
00175
00176 inline float vtkBandedPolyDataContourFilter::GetValue(
int i)
00177 {
return this->
ContourValues->
GetValue(i);}
00179
00181
00183 inline float *
vtkBandedPolyDataContourFilter::GetValues()
00184 {
return this->
ContourValues->
GetValues();}
00186
00188
00191 inline void vtkBandedPolyDataContourFilter::GetValues(
float *contourValues)
00192 {this->
ContourValues->
GetValues(contourValues);}
00194
00196
00199 inline void vtkBandedPolyDataContourFilter::SetNumberOfContours(
int number)
00200 {this->
ContourValues->
SetNumberOfContours(number);}
00202
00204
00205 inline int vtkBandedPolyDataContourFilter::GetNumberOfContours()
00206 {
return this->
ContourValues->
GetNumberOfContours();}
00208
00210
00212 inline void vtkBandedPolyDataContourFilter::GenerateValues(
int numContours,
00213
float range[2])
00214 {this->
ContourValues->
GenerateValues(numContours, range);}
00216
00218
00220 inline void vtkBandedPolyDataContourFilter::GenerateValues(
int numContours,
00221
float rangeStart,
00222
float rangeEnd)
00223 {this->
ContourValues->
GenerateValues(numContours, rangeStart, rangeEnd);}
00225
00226
00227
#endif
00228
00229