00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00053 #ifndef __vtkContourFilter_h
00054 #define __vtkContourFilter_h
00055
00056 #include "vtkPolyDataAlgorithm.h"
00057
00058 #include "vtkContourValues.h"
00059
00060 class vtkPointLocator;
00061 class vtkScalarTree;
00062 class vtkSynchronizedTemplates2D;
00063 class vtkSynchronizedTemplates3D;
00064 class vtkGridSynchronizedTemplates3D;
00065 class vtkRectilinearSynchronizedTemplates;
00066
00067 class VTK_GRAPHICS_EXPORT vtkContourFilter : public vtkPolyDataAlgorithm
00068 {
00069 public:
00070 vtkTypeRevisionMacro(vtkContourFilter,vtkPolyDataAlgorithm);
00071 void PrintSelf(ostream& os, vtkIndent indent);
00072
00075 static vtkContourFilter *New();
00076
00078
00079 void SetValue(int i, double value);
00080 double GetValue(int i);
00081 double *GetValues();
00082 void GetValues(double *contourValues);
00083 void SetNumberOfContours(int number);
00084 int GetNumberOfContours();
00085 void GenerateValues(int numContours, double range[2]);
00086 void GenerateValues(int numContours, double rangeStart, double rangeEnd);
00088
00090 unsigned long GetMTime();
00091
00093
00097 vtkSetMacro(ComputeNormals,int);
00098 vtkGetMacro(ComputeNormals,int);
00099 vtkBooleanMacro(ComputeNormals,int);
00101
00103
00109 vtkSetMacro(ComputeGradients,int);
00110 vtkGetMacro(ComputeGradients,int);
00111 vtkBooleanMacro(ComputeGradients,int);
00113
00115
00116 vtkSetMacro(ComputeScalars,int);
00117 vtkGetMacro(ComputeScalars,int);
00118 vtkBooleanMacro(ComputeScalars,int);
00120
00122
00123 vtkSetMacro(UseScalarTree,int);
00124 vtkGetMacro(UseScalarTree,int);
00125 vtkBooleanMacro(UseScalarTree,int);
00127
00129
00130 virtual void SetScalarTree(vtkScalarTree*);
00131 vtkGetObjectMacro(ScalarTree,vtkScalarTree);
00133
00135
00137 void SetLocator(vtkPointLocator *locator);
00138 vtkGetObjectMacro(Locator,vtkPointLocator);
00140
00143 void CreateDefaultLocator();
00144
00146
00149 void SetArrayComponent( int );
00150 int GetArrayComponent();
00152
00153 protected:
00154 vtkContourFilter();
00155 ~vtkContourFilter();
00156
00157 virtual void ReportReferences(vtkGarbageCollector*);
00158
00159 virtual int RequestData(vtkInformation* request,
00160 vtkInformationVector** inputVector,
00161 vtkInformationVector* outputVector);
00162 virtual int RequestUpdateExtent(vtkInformation*,
00163 vtkInformationVector**,
00164 vtkInformationVector*);
00165 virtual int FillInputPortInformation(int port, vtkInformation *info);
00166
00167 vtkContourValues *ContourValues;
00168 int ComputeNormals;
00169 int ComputeGradients;
00170 int ComputeScalars;
00171 vtkPointLocator *Locator;
00172 int UseScalarTree;
00173 vtkScalarTree *ScalarTree;
00174
00175 vtkSynchronizedTemplates2D *SynchronizedTemplates2D;
00176 vtkSynchronizedTemplates3D *SynchronizedTemplates3D;
00177 vtkGridSynchronizedTemplates3D *GridSynchronizedTemplates;
00178 vtkRectilinearSynchronizedTemplates *RectilinearSynchronizedTemplates;
00179
00180 private:
00181 vtkContourFilter(const vtkContourFilter&);
00182 void operator=(const vtkContourFilter&);
00183 };
00184
00187 inline void vtkContourFilter::SetValue(int i, double value)
00188 {this->ContourValues->SetValue(i,value);}
00189
00191
00192 inline double vtkContourFilter::GetValue(int i)
00193 {return this->ContourValues->GetValue(i);}
00195
00197
00199 inline double *vtkContourFilter::GetValues()
00200 {return this->ContourValues->GetValues();}
00202
00206 inline void vtkContourFilter::GetValues(double *contourValues)
00207 {this->ContourValues->GetValues(contourValues);}
00208
00212 inline void vtkContourFilter::SetNumberOfContours(int number)
00213 {this->ContourValues->SetNumberOfContours(number);}
00214
00216
00217 inline int vtkContourFilter::GetNumberOfContours()
00218 {return this->ContourValues->GetNumberOfContours();}
00220
00222
00224 inline void vtkContourFilter::GenerateValues(int numContours, double range[2])
00225 {this->ContourValues->GenerateValues(numContours, range);}
00227
00229
00231 inline void vtkContourFilter::GenerateValues(int numContours, double
00232 rangeStart, double rangeEnd)
00233 {this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);}
00235
00236
00237 #endif
00238
00239