VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
213 
214  virtual int ProcessRequest(vtkInformation*,
218 
222  void UnstructuredGridCutter(vtkDataSet *input, vtkPolyData *output);
223  void DataSetCutter(vtkDataSet *input, vtkPolyData *output);
224  void StructuredPointsCutter(vtkDataSet *, vtkPolyData *,
227  void StructuredGridCutter(vtkDataSet *, vtkPolyData *);
228  void RectilinearGridCutter(vtkDataSet *, vtkPolyData *);
231 
236 
238  int SortBy;
242 private:
243  vtkCutter(const vtkCutter&); // Not implemented.
244  void operator=(const vtkCutter&); // Not implemented.
245 };
246 
248 
249 inline const char *vtkCutter::GetSortByAsString(void)
250 {
251  if ( this->SortBy == VTK_SORT_BY_VALUE )
252  {
253  return "SortByValue";
254  }
255  else
256  {
257  return "SortByCell";
258  }
259 }
261 
262 #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:240
virtual int FillInputPortInformation(int port, vtkInformation *info)
double GetValue(int i)
Definition: vtkCutter.h:87
Store vtkAlgorithm input/output information.
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
abstract class to specify dataset behavior
Definition: vtkDataSet.h:60
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
generate isosurface from structured grids
#define VTKFILTERSCORE_EXPORT
vtkRectilinearSynchronizedTemplates * RectilinearSynchronizedTemplates
Definition: vtkCutter.h:235
Abstract class in support of both point location and point insertion.
vtkIncrementalPointLocator * Locator
Definition: vtkCutter.h:237
int SortBy
Definition: vtkCutter.h:238
vtkGridSynchronizedTemplates3D * GridSynchronizedTemplates
Definition: vtkCutter.h:234
void GenerateValues(int numContours, double range[2])
Definition: vtkCutter.h:123
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:83
vtkImplicitFunction * CutFunction
Definition: vtkCutter.h:229
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 *)
virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Superclass for algorithms that produce only polydata as output.
virtual unsigned long GetMTime()
vtkSynchronizedTemplatesCutter3D * SynchronizedTemplatesCutter3D
Definition: vtkCutter.h:233
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:239
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:249
void GenerateValues(int numContours, double rangeStart, double rangeEnd)
Definition: vtkCutter.h:130
int GenerateTriangles
Definition: vtkCutter.h:230
Store zero or more vtkInformation instances.
void GetValues(double *contourValues)
Definition: vtkCutter.h:102
int OutputPointsPrecision
Definition: vtkCutter.h:241
vtkSynchronizedTemplates3D * SynchronizedTemplates3D
Definition: vtkCutter.h:232
GLenum GLint * range
Definition: vtkgl.h:14180
double * GetValues()
Definition: vtkCutter.h:94