00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00099 #ifndef __vtkMarchingContourFilter_h
00100 #define __vtkMarchingContourFilter_h
00101
00102 #include "vtkDataSetToPolyDataFilter.h"
00103 #include "vtkContourValues.h"
00104
00105 class vtkScalarTree;
00106
00107 class VTK_PATENTED_EXPORT vtkMarchingContourFilter : public vtkDataSetToPolyDataFilter
00108 {
00109 public:
00110 vtkTypeMacro(vtkMarchingContourFilter,vtkDataSetToPolyDataFilter);
00111 void PrintSelf(ostream& os, vtkIndent indent);
00112
00115 static vtkMarchingContourFilter *New();
00116
00118
00119 void SetValue(int i, float value);
00120 float GetValue(int i);
00121 float *GetValues();
00122 void GetValues(float *contourValues);
00123 void SetNumberOfContours(int number);
00124 int GetNumberOfContours();
00125 void GenerateValues(int numContours, float range[2]);
00126 void GenerateValues(int numContours, float rangeStart, float rangeEnd);
00128
00130 unsigned long GetMTime();
00131
00133
00137 vtkSetMacro(ComputeNormals,int);
00138 vtkGetMacro(ComputeNormals,int);
00139 vtkBooleanMacro(ComputeNormals,int);
00141
00143
00149 vtkSetMacro(ComputeGradients,int);
00150 vtkGetMacro(ComputeGradients,int);
00151 vtkBooleanMacro(ComputeGradients,int);
00153
00155
00156 vtkSetMacro(ComputeScalars,int);
00157 vtkGetMacro(ComputeScalars,int);
00158 vtkBooleanMacro(ComputeScalars,int);
00160
00162
00163 vtkSetMacro(UseScalarTree,int);
00164 vtkGetMacro(UseScalarTree,int);
00165 vtkBooleanMacro(UseScalarTree,int);
00167
00169
00171 void SetLocator(vtkPointLocator *locator);
00172 vtkGetObjectMacro(Locator,vtkPointLocator);
00174
00177 void CreateDefaultLocator();
00178
00179 protected:
00180 vtkMarchingContourFilter();
00181 ~vtkMarchingContourFilter();
00182
00183 void Execute();
00184
00185 vtkContourValues *ContourValues;
00186 int ComputeNormals;
00187 int ComputeGradients;
00188 int ComputeScalars;
00189 vtkPointLocator *Locator;
00190 int UseScalarTree;
00191 vtkScalarTree *ScalarTree;
00192
00193
00194 void StructuredPointsContour(int dim);
00195
00196 void ImageContour(int dim);
00197
00198 void DataSetContour();
00199 private:
00200 vtkMarchingContourFilter(const vtkMarchingContourFilter&);
00201 void operator=(const vtkMarchingContourFilter&);
00202 };
00203
00206 inline void vtkMarchingContourFilter::SetValue(int i, float value)
00207 {
00208 this->ContourValues->SetValue(i,value);
00209 }
00210
00212 inline float vtkMarchingContourFilter::GetValue(int i)
00213 {
00214 return this->ContourValues->GetValue(i);
00215 }
00216
00219 inline float *vtkMarchingContourFilter::GetValues()
00220 {
00221 return this->ContourValues->GetValues();
00222 }
00223
00227 inline void vtkMarchingContourFilter::GetValues(float *contourValues)
00228 {
00229 this->ContourValues->GetValues(contourValues);
00230 }
00231
00235 inline void vtkMarchingContourFilter::SetNumberOfContours(int number)
00236 {
00237 this->ContourValues->SetNumberOfContours(number);
00238 }
00239
00241 inline int vtkMarchingContourFilter::GetNumberOfContours()
00242 {
00243 return this->ContourValues->GetNumberOfContours();
00244 }
00245
00247
00249 inline void vtkMarchingContourFilter::GenerateValues(int numContours,
00250 float range[2])
00252 {
00253 this->ContourValues->GenerateValues(numContours, range);
00254 }
00255
00257
00259 inline void vtkMarchingContourFilter::GenerateValues(int numContours,
00260 float rangeStart,
00261 float rangeEnd)
00263 {
00264 this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
00265 }
00266
00267 #endif