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

dox/Graphics/vtkCutter.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCutter.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00045 #ifndef __vtkCutter_h 00046 #define __vtkCutter_h 00047 00048 #include "vtkDataSetToPolyDataFilter.h" 00049 00050 #include "vtkContourValues.h" // Needed for inline methods 00051 00052 #define VTK_SORT_BY_VALUE 0 00053 #define VTK_SORT_BY_CELL 1 00054 00055 class vtkImplicitFunction; 00056 class vtkPointLocator; 00057 00058 class VTK_GRAPHICS_EXPORT vtkCutter : public vtkDataSetToPolyDataFilter 00059 { 00060 public: 00061 vtkTypeRevisionMacro(vtkCutter,vtkDataSetToPolyDataFilter); 00062 void PrintSelf(ostream& os, vtkIndent indent); 00063 00066 static vtkCutter *New(); 00067 00069 00071 void SetValue(int i, double value) 00072 {this->ContourValues->SetValue(i,value);} 00074 00076 00077 double GetValue(int i) 00078 {return this->ContourValues->GetValue(i);} 00080 00082 00084 double *GetValues() 00085 {return this->ContourValues->GetValues();} 00087 00089 00092 void GetValues(double *contourValues) 00093 {this->ContourValues->GetValues(contourValues);} 00095 00097 00100 void SetNumberOfContours(int number) 00101 {this->ContourValues->SetNumberOfContours(number);} 00103 00105 00106 int GetNumberOfContours() 00107 {return this->ContourValues->GetNumberOfContours();} 00109 00111 00113 void GenerateValues(int numContours, double range[2]) 00114 {this->ContourValues->GenerateValues(numContours, range);} 00116 00118 00120 void GenerateValues(int numContours, double rangeStart, double rangeEnd) 00121 {this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);} 00123 00126 unsigned long GetMTime(); 00127 00129 00130 virtual void SetCutFunction(vtkImplicitFunction*); 00131 vtkGetObjectMacro(CutFunction,vtkImplicitFunction); 00133 00135 00138 vtkSetMacro(GenerateCutScalars,int); 00139 vtkGetMacro(GenerateCutScalars,int); 00140 vtkBooleanMacro(GenerateCutScalars,int); 00142 00144 00146 void SetLocator(vtkPointLocator *locator); 00147 vtkGetObjectMacro(Locator,vtkPointLocator); 00149 00151 00159 vtkSetClampMacro(SortBy,int,VTK_SORT_BY_VALUE,VTK_SORT_BY_CELL); 00160 vtkGetMacro(SortBy,int); 00161 void SetSortByToSortByValue() 00162 {this->SetSortBy(VTK_SORT_BY_VALUE);} 00163 void SetSortByToSortByCell() 00164 {this->SetSortBy(VTK_SORT_BY_CELL);} 00165 const char *GetSortByAsString(); 00167 00170 void CreateDefaultLocator(); 00171 00172 protected: 00173 vtkCutter(vtkImplicitFunction *cf=NULL); 00174 ~vtkCutter(); 00175 00176 void Execute(); 00177 void UnstructuredGridCutter(); 00178 void DataSetCutter(); 00179 vtkImplicitFunction *CutFunction; 00180 00181 vtkPointLocator *Locator; 00182 int SortBy; 00183 vtkContourValues *ContourValues; 00184 int GenerateCutScalars; 00185 private: 00186 vtkCutter(const vtkCutter&); // Not implemented. 00187 void operator=(const vtkCutter&); // Not implemented. 00188 }; 00189 00191 inline const char *vtkCutter::GetSortByAsString(void) 00192 { 00193 if ( this->SortBy == VTK_SORT_BY_VALUE ) 00194 { 00195 return "SortByValue"; 00196 } 00197 else 00198 { 00199 return "SortByCell"; 00200 } 00201 } 00202 00203 00204 #endif 00205 00206