VTK  9.2.6
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=========================================================================*/
64#ifndef vtkCutter_h
65#define vtkCutter_h
66
67#include "vtkFiltersCoreModule.h" // For export macro
69
70#include "vtkContourValues.h" // Needed for inline methods
71
72#define VTK_SORT_BY_VALUE 0
73#define VTK_SORT_BY_CELL 1
74
81
82class VTKFILTERSCORE_EXPORT vtkCutter : public vtkPolyDataAlgorithm
83{
84public:
86 void PrintSelf(ostream& os, vtkIndent indent) override;
87
92 static vtkCutter* New();
93
98 void SetValue(int i, double value) { this->ContourValues->SetValue(i, value); }
99
103 double GetValue(int i) { return this->ContourValues->GetValue(i); }
104
109 double* GetValues() { return this->ContourValues->GetValues(); }
110
116 void GetValues(double* contourValues) { this->ContourValues->GetValues(contourValues); }
117
123 void SetNumberOfContours(int number) { this->ContourValues->SetNumberOfContours(number); }
124
128 vtkIdType GetNumberOfContours() { return this->ContourValues->GetNumberOfContours(); }
129
134 void GenerateValues(int numContours, double range[2])
135 {
136 this->ContourValues->GenerateValues(numContours, range);
137 }
138
143 void GenerateValues(int numContours, double rangeStart, double rangeEnd)
144 {
145 this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
146 }
147
153
155
159 vtkGetObjectMacro(CutFunction, vtkImplicitFunction);
161
163
168 vtkSetMacro(GenerateCutScalars, vtkTypeBool);
169 vtkGetMacro(GenerateCutScalars, vtkTypeBool);
170 vtkBooleanMacro(GenerateCutScalars, vtkTypeBool);
172
174
181 vtkSetMacro(GenerateTriangles, vtkTypeBool);
182 vtkGetMacro(GenerateTriangles, vtkTypeBool);
183 vtkBooleanMacro(GenerateTriangles, vtkTypeBool);
185
187
192 vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
194
196
211 vtkSetClampMacro(SortBy, int, VTK_SORT_BY_VALUE, VTK_SORT_BY_CELL);
212 vtkGetMacro(SortBy, int);
213 void SetSortByToSortByValue() { this->SetSortBy(VTK_SORT_BY_VALUE); }
214 void SetSortByToSortByCell() { this->SetSortBy(VTK_SORT_BY_CELL); }
215 const char* GetSortByAsString();
217
223
229 static void GetCellTypeDimensions(unsigned char* cellTypeDimensions);
230
232
237 vtkSetClampMacro(OutputPointsPrecision, int, SINGLE_PRECISION, DEFAULT_PRECISION);
238 vtkGetMacro(OutputPointsPrecision, int);
240
241protected:
243 ~vtkCutter() override;
244
247 int FillInputPortInformation(int port, vtkInformation* info) override;
249 void DataSetCutter(vtkDataSet* input, vtkPolyData* output);
256
261
267
268private:
269 vtkCutter(const vtkCutter&) = delete;
270 void operator=(const vtkCutter&) = delete;
271};
272
277{
278 if (this->SortBy == VTK_SORT_BY_VALUE)
279 {
280 return "SortByValue";
281 }
282 else
283 {
284 return "SortByCell";
285 }
286}
287
288#endif
helper object to manage setting and generating contour values
Cut vtkDataSet with user-specified implicit function.
Definition vtkCutter.h:83
void StructuredGridCutter(vtkDataSet *, vtkPolyData *)
const char * GetSortByAsString()
Return the sorting procedure as a descriptive character string.
Definition vtkCutter.h:276
vtkContourValues * ContourValues
Definition vtkCutter.h:264
void DataSetCutter(vtkDataSet *input, vtkPolyData *output)
virtual void SetCutFunction(vtkImplicitFunction *)
Specify the implicit function to perform the cutting.
void SetLocator(vtkIncrementalPointLocator *locator)
Specify a spatial locator for merging points.
void GetValues(double *contourValues)
Fill a supplied list with contour values.
Definition vtkCutter.h:116
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void CreateDefaultLocator()
Create default locator.
vtkSynchronizedTemplates3D * SynchronizedTemplates3D
Definition vtkCutter.h:257
vtkIdType GetNumberOfContours()
Get the number of contours in the list of contour values.
Definition vtkCutter.h:128
vtkSynchronizedTemplatesCutter3D * SynchronizedTemplatesCutter3D
Definition vtkCutter.h:258
static vtkCutter * New()
Construct with user-specified implicit function; initial value of 0.0; and generating cut scalars tur...
void SetNumberOfContours(int number)
Set the number of contours to place into the list.
Definition vtkCutter.h:123
double * GetValues()
Get a pointer to an array of contour values.
Definition vtkCutter.h:109
vtkMTimeType GetMTime() override
Override GetMTime because we delegate to vtkContourValues and refer to vtkImplicitFunction.
vtkCutter(vtkImplicitFunction *cf=nullptr)
void GenerateValues(int numContours, double range[2])
Generate numContours equally spaced contour values between specified range.
Definition vtkCutter.h:134
vtkGridSynchronizedTemplates3D * GridSynchronizedTemplates
Definition vtkCutter.h:259
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkIncrementalPointLocator * Locator
Definition vtkCutter.h:262
vtkImplicitFunction * CutFunction
Definition vtkCutter.h:254
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetSortByToSortByCell()
Set the sorting order for the generated polydata.
Definition vtkCutter.h:214
vtkTypeBool GenerateCutScalars
Definition vtkCutter.h:265
void StructuredPointsCutter(vtkDataSet *, vtkPolyData *, vtkInformation *, vtkInformationVector **, vtkInformationVector *)
~vtkCutter() override
void SetValue(int i, double value)
Set a particular contour value at contour number i.
Definition vtkCutter.h:98
vtkTypeBool GenerateTriangles
Definition vtkCutter.h:255
void UnstructuredGridCutter(vtkDataSet *input, vtkPolyData *output)
int OutputPointsPrecision
Definition vtkCutter.h:266
void SetSortByToSortByValue()
Set the sorting order for the generated polydata.
Definition vtkCutter.h:213
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void GenerateValues(int numContours, double rangeStart, double rangeEnd)
Generate numContours equally spaced contour values between specified range.
Definition vtkCutter.h:143
void RectilinearGridCutter(vtkDataSet *, vtkPolyData *)
static void GetCellTypeDimensions(unsigned char *cellTypeDimensions)
Normally I would put this in a different class, but since This is a temporary fix until we convert th...
double GetValue(int i)
Get the ith contour value.
Definition vtkCutter.h:103
vtkRectilinearSynchronizedTemplates * RectilinearSynchronizedTemplates
Definition vtkCutter.h:260
abstract class to specify dataset behavior
Definition vtkDataSet.h:72
generate isosurface from structured grids
abstract interface for implicit functions
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
Definition vtkIndent.h:49
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
generate isosurface from rectilinear grid
generate isosurface from structured points
generate cut surface from structured points
int vtkTypeBool
Definition vtkABI.h:69
#define VTK_SORT_BY_VALUE
Definition vtkCutter.h:72
#define VTK_SORT_BY_CELL
Definition vtkCutter.h:73
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287