VTK  9.5.2
vtkCutter.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
138
139#ifndef vtkCutter_h
140#define vtkCutter_h
141
142#include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_4_0
143#include "vtkFiltersCoreModule.h" // For export macro
144#include "vtkPolyDataAlgorithm.h"
145
146#include "vtkContourValues.h" // Needed for inline methods
147
148#define VTK_SORT_BY_VALUE 0
149#define VTK_SORT_BY_CELL 1
150
151VTK_ABI_NAMESPACE_BEGIN
155class vtkPlaneCutter;
159
160class VTKFILTERSCORE_EXPORT vtkCutter : public vtkPolyDataAlgorithm
161{
162public:
164 void PrintSelf(ostream& os, vtkIndent indent) override;
165
170 static vtkCutter* New();
171
176 void SetValue(int i, double value) { this->ContourValues->SetValue(i, value); }
177
181 double GetValue(int i) { return this->ContourValues->GetValue(i); }
182
187 double* GetValues() { return this->ContourValues->GetValues(); }
188
194 void GetValues(double* contourValues) { this->ContourValues->GetValues(contourValues); }
195
201 void SetNumberOfContours(int number) { this->ContourValues->SetNumberOfContours(number); }
202
206 vtkIdType GetNumberOfContours() { return this->ContourValues->GetNumberOfContours(); }
207
212 void GenerateValues(int numContours, double range[2])
213 {
214 this->ContourValues->GenerateValues(numContours, range);
215 }
216
221 void GenerateValues(int numContours, double rangeStart, double rangeEnd)
222 {
223 this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
224 }
225
231
233
237 vtkGetObjectMacro(CutFunction, vtkImplicitFunction);
239
241
250
252
263
265
272
274
289 vtkSetClampMacro(SortBy, int, VTK_SORT_BY_VALUE, VTK_SORT_BY_CELL);
290 vtkGetMacro(SortBy, int);
293 const char* GetSortByAsString();
295
301
307 VTK_DEPRECATED_IN_9_4_0("This is no longer used. Use vtkCellTypes::GetDimension(type) instead.")
308 static void GetCellTypeDimensions(unsigned char* cellTypeDimensions);
309
311
317 vtkGetMacro(OutputPointsPrecision, int);
319
320protected:
322 ~vtkCutter() override;
323
326 int FillInputPortInformation(int port, vtkInformation* info) override;
328 void DataSetCutter(vtkDataSet* input, vtkPolyData* output);
335
341
347
348 // Garbage collection method
350
351private:
352 vtkCutter(const vtkCutter&) = delete;
353 void operator=(const vtkCutter&) = delete;
354};
355
359inline const char* vtkCutter::GetSortByAsString()
360{
361 if (this->SortBy == VTK_SORT_BY_VALUE)
362 {
363 return "SortByValue";
364 }
365 else
366 {
367 return "SortByCell";
368 }
369}
370
371VTK_ABI_NAMESPACE_END
372#endif
helper object to manage setting and generating contour values
vtkNew< vtkPlaneCutter > PlaneCutter
Definition vtkCutter.h:340
vtkNew< vtkRectilinearSynchronizedTemplates > RectilinearSynchronizedTemplates
Definition vtkCutter.h:339
void StructuredGridCutter(vtkDataSet *, vtkPolyData *)
const char * GetSortByAsString()
Return the sorting procedure as a descriptive character string.
Definition vtkCutter.h:359
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:194
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void CreateDefaultLocator()
Create default locator.
vtkIdType GetNumberOfContours()
Get the number of contours in the list of contour values.
Definition vtkCutter.h:206
vtkNew< vtkContourValues > ContourValues
Definition vtkCutter.h:344
vtkNew< vtkSynchronizedTemplates3D > SynchronizedTemplates3D
Definition vtkCutter.h:336
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:201
double * GetValues()
Get a pointer to an array of contour values.
Definition vtkCutter.h:187
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:212
int FillInputPortInformation(int port, vtkInformation *info) override
vtkIncrementalPointLocator * Locator
Definition vtkCutter.h:342
vtkNew< vtkGridSynchronizedTemplates3D > GridSynchronizedTemplates
Definition vtkCutter.h:338
vtkImplicitFunction * CutFunction
Definition vtkCutter.h:333
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:292
vtkTypeBool GenerateCutScalars
Definition vtkCutter.h:345
void StructuredPointsCutter(vtkDataSet *, vtkPolyData *, vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void ReportReferences(vtkGarbageCollector *) override
void SetValue(int i, double value)
Set a particular contour value at contour number i.
Definition vtkCutter.h:176
vtkTypeBool GenerateTriangles
Definition vtkCutter.h:334
void UnstructuredGridCutter(vtkDataSet *input, vtkPolyData *output)
int OutputPointsPrecision
Definition vtkCutter.h:346
void SetSortByToSortByValue()
Set the sorting order for the generated polydata.
Definition vtkCutter.h:291
vtkNew< vtkSynchronizedTemplatesCutter3D > SynchronizedTemplatesCutter3D
Definition vtkCutter.h:337
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:221
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:181
virtual void SetSortBy(int)
Set the sorting order for the generated polydata.
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
Detect and break reference loops.
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:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Allocate and hold a VTK object.
Definition vtkNew.h:167
cut any dataset with a plane and generate a polygonal cut surface
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:64
#define VTK_SORT_BY_VALUE
Definition vtkCutter.h:148
#define VTK_SORT_BY_CELL
Definition vtkCutter.h:149
#define VTK_DEPRECATED_IN_9_4_0(reason)
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287