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 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 =========================================================================*/ 00049 #ifndef __vtkCutter_h 00050 #define __vtkCutter_h 00051 00052 #include "vtkDataSetToPolyDataFilter.h" 00053 00054 #include "vtkContourValues.h" // Needed for inline methods 00055 00056 #define VTK_SORT_BY_VALUE 0 00057 #define VTK_SORT_BY_CELL 1 00058 00059 class vtkImplicitFunction; 00060 class vtkPointLocator; 00061 00062 class VTK_GRAPHICS_EXPORT vtkCutter : public vtkDataSetToPolyDataFilter 00063 { 00064 public: 00065 vtkTypeRevisionMacro(vtkCutter,vtkDataSetToPolyDataFilter); 00066 void PrintSelf(ostream& os, vtkIndent indent); 00067 00070 static vtkCutter *New(); 00071 00073 00075 void SetValue(int i, float value) 00076 {this->ContourValues->SetValue(i,value);} 00078 00080 00081 float GetValue(int i) 00082 {return this->ContourValues->GetValue(i);} 00084 00086 00088 float *GetValues() 00089 {return this->ContourValues->GetValues();} 00091 00093 00096 void GetValues(float *contourValues) 00097 {this->ContourValues->GetValues(contourValues);} 00099 00101 00104 void SetNumberOfContours(int number) 00105 {this->ContourValues->SetNumberOfContours(number);} 00107 00109 00110 int GetNumberOfContours() 00111 {return this->ContourValues->GetNumberOfContours();} 00113 00115 00117 void GenerateValues(int numContours, float range[2]) 00118 {this->ContourValues->GenerateValues(numContours, range);} 00120 00122 00124 void GenerateValues(int numContours, float rangeStart, float rangeEnd) 00125 {this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);} 00127 00130 unsigned long GetMTime(); 00131 00133 00134 virtual void SetCutFunction(vtkImplicitFunction*); 00135 vtkGetObjectMacro(CutFunction,vtkImplicitFunction); 00137 00139 00142 vtkSetMacro(GenerateCutScalars,int); 00143 vtkGetMacro(GenerateCutScalars,int); 00144 vtkBooleanMacro(GenerateCutScalars,int); 00146 00148 00150 void SetLocator(vtkPointLocator *locator); 00151 vtkGetObjectMacro(Locator,vtkPointLocator); 00153 00155 00163 vtkSetClampMacro(SortBy,int,VTK_SORT_BY_VALUE,VTK_SORT_BY_CELL); 00164 vtkGetMacro(SortBy,int); 00165 void SetSortByToSortByValue() 00166 {this->SetSortBy(VTK_SORT_BY_VALUE);} 00167 void SetSortByToSortByCell() 00168 {this->SetSortBy(VTK_SORT_BY_CELL);} 00169 const char *GetSortByAsString(); 00171 00174 void CreateDefaultLocator(); 00175 00176 protected: 00177 vtkCutter(vtkImplicitFunction *cf=NULL); 00178 ~vtkCutter(); 00179 00180 void Execute(); 00181 vtkImplicitFunction *CutFunction; 00182 00183 vtkPointLocator *Locator; 00184 int SortBy; 00185 vtkContourValues *ContourValues; 00186 int GenerateCutScalars; 00187 private: 00188 vtkCutter(const vtkCutter&); // Not implemented. 00189 void operator=(const vtkCutter&); // Not implemented. 00190 }; 00191 00193 inline const char *vtkCutter::GetSortByAsString(void) 00194 { 00195 if ( this->SortBy == VTK_SORT_BY_VALUE ) 00196 { 00197 return "SortByValue"; 00198 } 00199 else 00200 { 00201 return "SortByCell"; 00202 } 00203 } 00204 00205 00206 #endif 00207 00208