VTK  9.2.6
vtkBooleanOperationPolyDataFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkBooleanOperationPolyDataFilter.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=========================================================================*/
36
37#ifndef vtkBooleanOperationPolyDataFilter_h
38#define vtkBooleanOperationPolyDataFilter_h
39
40#include "vtkFiltersGeneralModule.h" // For export macro
42
43#include "vtkDataSetAttributes.h" // Needed for CopyCells() method
44
45class vtkIdList;
46
47class VTKFILTERSGENERAL_EXPORT vtkBooleanOperationPolyDataFilter : public vtkPolyDataAlgorithm
48{
49public:
54
56
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
65
67
70 vtkSetClampMacro(Operation, int, VTK_UNION, VTK_DIFFERENCE);
71 vtkGetMacro(Operation, int);
76
78
82 vtkSetMacro(ReorientDifferenceCells, vtkTypeBool);
83 vtkGetMacro(ReorientDifferenceCells, vtkTypeBool);
84 vtkBooleanMacro(ReorientDifferenceCells, vtkTypeBool);
86
88
92 vtkSetMacro(Tolerance, double);
93 vtkGetMacro(Tolerance, double);
95
96protected:
99
103 void SortPolyData(vtkPolyData* input, vtkIdList* intersectionList, vtkIdList* unionList);
104
107
108private:
110 void operator=(const vtkBooleanOperationPolyDataFilter&) = delete;
111
117 void CopyCells(vtkPolyData* in, vtkPolyData* out, int idx,
119 vtkIdList* cellIds, bool reverseCells);
120
125 double Tolerance;
126
131 int Operation;
132
134
138 vtkTypeBool ReorientDifferenceCells;
140};
141
142#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
Fill the input port information objects for this algorithm.
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:31
a simple class to control print indentation
Definition vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:85
int vtkTypeBool
Definition vtkABI.h:69