vtkBandedPolyDataContourFilter.h
Go to the documentation of this file.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