VTK  9.3.0
vtkLoopBooleanPolyDataFilter.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
33 #ifndef vtkLoopBooleanPolyDataFilter_h
34 #define vtkLoopBooleanPolyDataFilter_h
35 
36 #include "vtkDataSetAttributes.h" // Needed for CopyCells() method
37 #include "vtkFiltersGeneralModule.h" // For export macro
38 #include "vtkPolyDataAlgorithm.h"
39 
40 VTK_ABI_NAMESPACE_BEGIN
41 class vtkIdList;
42 
47 class VTKFILTERSGENERAL_EXPORT vtkLoopBooleanPolyDataFilter : public vtkPolyDataAlgorithm
48 {
49 public:
54 
56 
57  void PrintSelf(ostream& os, vtkIndent indent) override;
58 
60 
63  vtkGetMacro(NumberOfIntersectionPoints, int);
64  vtkGetMacro(NumberOfIntersectionLines, int);
66 
68 
73  vtkGetMacro(NoIntersectionOutput, int);
74  vtkSetMacro(NoIntersectionOutput, int);
75  vtkBooleanMacro(NoIntersectionOutput, int);
77 
78  // Union intersection, or difference
80  {
81  VTK_UNION = 0,
83  VTK_DIFFERENCE
84  };
85  // Output if no intersection
87  {
88  VTK_NEITHER = 0,
92  };
93 
95 
98  vtkSetClampMacro(Operation, int, VTK_UNION, VTK_DIFFERENCE);
99  vtkGetMacro(Operation, int);
100  void SetOperationToUnion() { this->SetOperation(VTK_UNION); }
101  void SetOperationToIntersection() { this->SetOperation(VTK_INTERSECTION); }
102  void SetOperationToDifference() { this->SetOperation(VTK_DIFFERENCE); }
104 
106 
111  vtkGetMacro(Status, int);
113 
115 
118  vtkGetMacro(Tolerance, double);
119  vtkSetMacro(Tolerance, double);
121 
122 protected:
125 
128 
129 private:
131  void operator=(const vtkLoopBooleanPolyDataFilter&) = delete;
132 
134 
138  int Operation;
139  int NoIntersectionOutput;
140  int NumberOfIntersectionPoints;
141  int NumberOfIntersectionLines;
143 
144  int Status;
145  double Tolerance;
146 
147  class Impl;
148 };
149 
150 VTK_ABI_NAMESPACE_END
151 #endif
list of point or cell ids
Definition: vtkIdList.h:32
a simple class to control print indentation
Definition: vtkIndent.h:38
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Filter to perform boolean operations.
int FillInputPortInformation(int, vtkInformation *) override
Fill the input port information objects for this algorithm.
void SetOperationToDifference()
Set the boolean operation to perform.
static vtkLoopBooleanPolyDataFilter * New()
Construct object that computes the boolean surface.
~vtkLoopBooleanPolyDataFilter() override
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetOperationToIntersection()
Set the boolean operation to perform.
void SetOperationToUnion()
Set the boolean operation to perform.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Superclass for algorithms that produce only polydata as output.