Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Graphics/vtkThreshold.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkThreshold.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00055 #ifndef __vtkThreshold_h
    00056 #define __vtkThreshold_h
    00057
    00058 #include "vtkDataSetToUnstructuredGridFilter.h"
    00059
    00060 #define VTK_ATTRIBUTE_MODE_DEFAULT 0
    00061 #define VTK_ATTRIBUTE_MODE_USE_POINT_DATA 1
    00062 #define VTK_ATTRIBUTE_MODE_USE_CELL_DATA 2
    00063
    00064 class VTK_GRAPHICS_EXPORT vtkThreshold : public vtkDataSetToUnstructuredGridFilter
    00065 {
    00066 public:
    00067   static vtkThreshold *New();
    00068   vtkTypeRevisionMacro(vtkThreshold,vtkDataSetToUnstructuredGridFilter);
    00069   void PrintSelf(ostream& os, vtkIndent indent);
    00070
    00073   void ThresholdByLower(float lower);
    00074
    00077   void ThresholdByUpper(float upper);
    00078
    00081   void ThresholdBetween(float lower, float upper);
    00082
    00084
    00085   vtkGetMacro(UpperThreshold,float);
    00086   vtkGetMacro(LowerThreshold,float);
    00088
    00090
    00096   vtkSetMacro(AttributeMode,int);
    00097   vtkGetMacro(AttributeMode,int);
    00098   void SetAttributeModeToDefault()
    00099     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_DEFAULT);};
    00100   void SetAttributeModeToUsePointData()
    00101     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_POINT_DATA);};
    00102   void SetAttributeModeToUseCellData()
    00103     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_CELL_DATA);};
    00104   const char *GetAttributeModeAsString();
    00106
    00108
    00112   vtkSetMacro(AllScalars,int);
    00113   vtkGetMacro(AllScalars,int);
    00114   vtkBooleanMacro(AllScalars,int);
    00116
    00117 protected:
    00118   vtkThreshold();
    00119   ~vtkThreshold();
    00120
    00121 //BTX
    00122   // This is temporary solution. The vtkCutMaterial must be able
    00123   // to call SelectInputScalars().
    00124   friend class vtkCutMaterial;
    00125
    00127
    00130   vtkGetStringMacro(InputScalarsSelection);
    00131   virtual void SelectInputScalars(const char *fieldName)
    00132     {this->SetInputScalarsSelection(fieldName);}
    00134 //ETX
    00135
    00136   // Usual data generation method
    00137   void Execute();
    00138
    00139   int   AllScalars;
    00140   float LowerThreshold;
    00141   float UpperThreshold;
    00142   int   AttributeMode;
    00143
    00144   //BTX
    00145   int (vtkThreshold::*ThresholdFunction)(float s);
    00146   //ETX
    00147
    00148   int Lower(float s) {return ( s <= this->LowerThreshold ? 1 : 0 );};
    00149   int Upper(float s) {return ( s >= this->UpperThreshold ? 1 : 0 );};
    00150   int Between(float s) {return ( s >= this->LowerThreshold ?
    00151                                ( s <= this->UpperThreshold ? 1 : 0 ) : 0 );};
    00152
    00153   char *InputScalarsSelection;
    00154   vtkSetStringMacro(InputScalarsSelection);
    00155
    00156 private:
    00157   vtkThreshold(const vtkThreshold&);  // Not implemented.
    00158   void operator=(const vtkThreshold&);  // Not implemented.
    00159 };
    00160
    00161 #endif