VTK
vtkCutter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCutter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
50 #ifndef vtkCutter_h
51 #define vtkCutter_h
52 
53 #include "vtkFiltersCoreModule.h" // For export macro
54 #include "vtkPolyDataAlgorithm.h"
55 
56 #include "vtkContourValues.h" // Needed for inline methods
57 
58 #define VTK_SORT_BY_VALUE 0
59 #define VTK_SORT_BY_CELL 1
60 
67 
69 {
70 public:
72  void PrintSelf(ostream& os, vtkIndent indent);
73 
76  static vtkCutter *New();
77 
79 
81  void SetValue(int i, double value)
82  {this->ContourValues->SetValue(i,value);}
84 
86 
87  double GetValue(int i)
88  {return this->ContourValues->GetValue(i);}
90 
92 
94  double *GetValues()
95  {return this->ContourValues->GetValues();}
97 
99 
102  void GetValues(double *contourValues)
103  {this->ContourValues->GetValues(contourValues);}
105 
107 
110  void SetNumberOfContours(int number)
111  {this->ContourValues->SetNumberOfContours(number);}
113 
115 
117  {return this->ContourValues->GetNumberOfContours();}
119 
121 
123  void GenerateValues(int numContours, double range[2])
124  {this->ContourValues->GenerateValues(numContours, range);}
126 
128 
130  void GenerateValues(int numContours, double rangeStart, double rangeEnd)
131  {this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);}
133 
136  unsigned long GetMTime();
137 
139 
140  virtual void SetCutFunction(vtkImplicitFunction*);
141  vtkGetObjectMacro(CutFunction,vtkImplicitFunction);
143 
145 
148  vtkSetMacro(GenerateCutScalars,int);
149  vtkGetMacro(GenerateCutScalars,int);
150  vtkBooleanMacro(GenerateCutScalars,int);
152 
154 
158  vtkSetMacro(GenerateTriangles,int);
159  vtkGetMacro(GenerateTriangles,int);
160  vtkBooleanMacro(GenerateTriangles,int);
162 
164 
166  void SetLocator(vtkIncrementalPointLocator *locator);
167  vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
169 
171 
181  vtkSetClampMacro(SortBy,int,VTK_SORT_BY_VALUE,VTK_SORT_BY_CELL);
182  vtkGetMacro(SortBy,int);
184  {this->SetSortBy(VTK_SORT_BY_VALUE);}
186  {this->SetSortBy(VTK_SORT_BY_CELL);}
187  const char *GetSortByAsString();
189 
192  void CreateDefaultLocator();
193 
198  static void GetCellTypeDimensions(unsigned char* cellTypeDimensions);
199 
201 
204  vtkSetClampMacro(OutputPointsPrecision, int, SINGLE_PRECISION, DEFAULT_PRECISION);
205  vtkGetMacro(OutputPointsPrecision, int);
207 
208 protected:
209  vtkCutter(vtkImplicitFunction *cf=NULL);
210  ~vtkCutter();
211 
215  void UnstructuredGridCutter(vtkDataSet *input, vtkPolyData *output);
216  void DataSetCutter(vtkDataSet *input, vtkPolyData *output);
217  void StructuredPointsCutter(vtkDataSet *, vtkPolyData *,
220  void StructuredGridCutter(vtkDataSet *, vtkPolyData *);
221  void RectilinearGridCutter(vtkDataSet *, vtkPolyData *);
224 
229 
231  int SortBy;
235 private:
236  vtkCutter(const vtkCutter&); // Not implemented.
237  void operator=(const vtkCutter&); // Not implemented.
238 };
239 
241 
242 inline const char *vtkCutter::GetSortByAsString(void)
243 {
244  if ( this->SortBy == VTK_SORT_BY_VALUE )
245  {
246  return "SortByValue";
247  }
248  else
249  {
250  return "SortByCell";
251  }
252 }
254 
255 #endif
abstract interface for implicit functions
Cut vtkDataSet with user-specified implicit function.
Definition: vtkCutter.h:68
helper object to manage setting and generating contour values
int GenerateCutScalars
Definition: vtkCutter.h:233
virtual int FillInputPortInformation(int port, vtkInformation *info)
double GetValue(int i)
Definition: vtkCutter.h:87
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:61
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
generate isosurface from structured grids
#define VTKFILTERSCORE_EXPORT
vtkRectilinearSynchronizedTemplates * RectilinearSynchronizedTemplates
Definition: vtkCutter.h:228
Abstract class in support of both point location and point insertion.
vtkIncrementalPointLocator * Locator
Definition: vtkCutter.h:230
int SortBy
Definition: vtkCutter.h:231
vtkGridSynchronizedTemplates3D * GridSynchronizedTemplates
Definition: vtkCutter.h:227
void GenerateValues(int numContours, double range[2])
Definition: vtkCutter.h:123
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:83
vtkImplicitFunction * CutFunction
Definition: vtkCutter.h:222
generate cut surface from structured points
generate isosurface from structured points
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Superclass for algorithms that produce only polydata as output.
virtual unsigned long GetMTime()
vtkSynchronizedTemplatesCutter3D * SynchronizedTemplatesCutter3D
Definition: vtkCutter.h:226
a simple class to control print indentation
Definition: vtkIndent.h:38
void SetSortByToSortByCell()
Definition: vtkCutter.h:185
#define VTK_SORT_BY_VALUE
Definition: vtkCutter.h:58
void SetNumberOfContours(int number)
Definition: vtkCutter.h:110
int GetNumberOfContours()
Definition: vtkCutter.h:116
generate isosurface from rectilinear grid
vtkContourValues * ContourValues
Definition: vtkCutter.h:232
void SetSortByToSortByValue()
Definition: vtkCutter.h:183
void SetValue(int i, double value)
Definition: vtkCutter.h:81
#define VTK_SORT_BY_CELL
Definition: vtkCutter.h:59
const char * GetSortByAsString()
Definition: vtkCutter.h:242
void GenerateValues(int numContours, double rangeStart, double rangeEnd)
Definition: vtkCutter.h:130
int GenerateTriangles
Definition: vtkCutter.h:223
Store zero or more vtkInformation instances.
void GetValues(double *contourValues)
Definition: vtkCutter.h:102
int OutputPointsPrecision
Definition: vtkCutter.h:234
vtkSynchronizedTemplates3D * SynchronizedTemplates3D
Definition: vtkCutter.h:225
double * GetValues()
Definition: vtkCutter.h:94