VTK  9.5.2
vtkBooleanOperationPolyDataFilter.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
27
28#ifndef vtkBooleanOperationPolyDataFilter_h
29#define vtkBooleanOperationPolyDataFilter_h
30
31#include "vtkFiltersGeneralModule.h" // For export macro
33
34#include "vtkDataSetAttributes.h" // Needed for CopyCells() method
35
36VTK_ABI_NAMESPACE_BEGIN
37class vtkIdList;
38
39class VTKFILTERSGENERAL_EXPORT vtkBooleanOperationPolyDataFilter : public vtkPolyDataAlgorithm
40{
41public:
46
48
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
57
59
62 vtkSetClampMacro(Operation, int, VTK_UNION, VTK_DIFFERENCE);
63 vtkGetMacro(Operation, int);
68
70
74 vtkSetMacro(ReorientDifferenceCells, vtkTypeBool);
75 vtkGetMacro(ReorientDifferenceCells, vtkTypeBool);
76 vtkBooleanMacro(ReorientDifferenceCells, vtkTypeBool);
78
80
84 vtkSetMacro(Tolerance, double);
85 vtkGetMacro(Tolerance, double);
87
88protected:
91
95 void SortPolyData(vtkPolyData* input, vtkIdList* intersectionList, vtkIdList* unionList);
96
99
100private:
102 void operator=(const vtkBooleanOperationPolyDataFilter&) = delete;
103
109 void CopyCells(vtkPolyData* in, vtkPolyData* out, int idx,
111 vtkIdList* cellIds, bool reverseCells);
112
117 double Tolerance;
118
123 int Operation;
124
126
130 vtkTypeBool ReorientDifferenceCells;
132};
133
134VTK_ABI_NAMESPACE_END
135#endif
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int FillInputPortInformation(int, vtkInformation *) override
void SortPolyData(vtkPolyData *input, vtkIdList *intersectionList, vtkIdList *unionList)
Labels triangles in mesh as part of the intersection or union surface.
void SetOperationToIntersection()
Set the boolean operation to perform.
static vtkBooleanOperationPolyDataFilter * New()
Construct object that computes the boolean surface.
virtual void SetOperation(int)
Set the boolean operation to perform.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetOperationToUnion()
Set the boolean operation to perform.
void SetOperationToDifference()
Set the boolean operation to perform.
vtkDataSetAttributesFieldList FieldList
list of point or cell ids
Definition vtkIdList.h:24
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:72
int vtkTypeBool
Definition vtkABI.h:64