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
00067 #ifndef __vtkThreshold_h
00068 #define __vtkThreshold_h
00069
00070 #include "vtkDataSetToUnstructuredGridFilter.h"
00071
00072 #define VTK_ATTRIBUTE_MODE_DEFAULT 0
00073 #define VTK_ATTRIBUTE_MODE_USE_POINT_DATA 1
00074 #define VTK_ATTRIBUTE_MODE_USE_CELL_DATA 2
00075
00076 class VTK_GRAPHICS_EXPORT vtkThreshold : public vtkDataSetToUnstructuredGridFilter
00077 {
00078 public:
00079 static vtkThreshold *New();
00080 vtkTypeMacro(vtkThreshold,vtkDataSetToUnstructuredGridFilter);
00081 void PrintSelf(ostream& os, vtkIndent indent);
00082
00085 void ThresholdByLower(float lower);
00086
00089 void ThresholdByUpper(float upper);
00090
00093 void ThresholdBetween(float lower, float upper);
00094
00096
00097 vtkGetMacro(UpperThreshold,float);
00098 vtkGetMacro(LowerThreshold,float);
00100
00102
00108 vtkSetMacro(AttributeMode,int);
00109 vtkGetMacro(AttributeMode,int);
00110 void SetAttributeModeToDefault()
00111 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_DEFAULT);};
00112 void SetAttributeModeToUsePointData()
00113 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_POINT_DATA);};
00114 void SetAttributeModeToUseCellData()
00115 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_CELL_DATA);};
00116 const char *GetAttributeModeAsString();
00118
00120
00124 vtkSetMacro(AllScalars,int);
00125 vtkGetMacro(AllScalars,int);
00126 vtkBooleanMacro(AllScalars,int);
00128
00130
00132 vtkSetStringMacro(ArrayName);
00133 vtkGetStringMacro(ArrayName);
00135
00136 protected:
00137 vtkThreshold();
00138 ~vtkThreshold();
00139
00140
00141 void Execute();
00142
00143 int AllScalars;
00144 float LowerThreshold;
00145 float UpperThreshold;
00146 int AttributeMode;
00147
00148
00149 int (vtkThreshold::*ThresholdFunction)(float s);
00150
00151
00152 int Lower(float s) {return ( s <= this->LowerThreshold ? 1 : 0 );};
00153 int Upper(float s) {return ( s >= this->UpperThreshold ? 1 : 0 );};
00154 int Between(float s) {return ( s >= this->LowerThreshold ?
00155 ( s <= this->UpperThreshold ? 1 : 0 ) : 0 );};
00156
00157 char *ArrayName;
00158 private:
00159 vtkThreshold(const vtkThreshold&);
00160 void operator=(const vtkThreshold&);
00161 };
00162
00163 #endif