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
24 #ifndef vtkLoopBooleanPolyDataFilter_h
25 #define vtkLoopBooleanPolyDataFilter_h
26 
27 #include "vtkDataSetAttributes.h" // Needed for CopyCells() method
28 #include "vtkFiltersGeneralModule.h" // For export macro
29 #include "vtkPolyDataAlgorithm.h"
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class vtkIdList;
33 
38 class VTKFILTERSGENERAL_EXPORT vtkLoopBooleanPolyDataFilter : public vtkPolyDataAlgorithm
39 {
40 public:
45 
47 
48  void PrintSelf(ostream& os, vtkIndent indent) override;
49 
51 
54  vtkGetMacro(NumberOfIntersectionPoints, int);
55  vtkGetMacro(NumberOfIntersectionLines, int);
57 
59 
64  vtkGetMacro(NoIntersectionOutput, int);
65  vtkSetMacro(NoIntersectionOutput, int);
66  vtkBooleanMacro(NoIntersectionOutput, int);
68 
69  // Union intersection, or difference
71  {
72  VTK_UNION = 0,
74  VTK_DIFFERENCE
75  };
76  // Output if no intersection
78  {
79  VTK_NEITHER = 0,
83  };
84 
86 
89  vtkSetClampMacro(Operation, int, VTK_UNION, VTK_DIFFERENCE);
90  vtkGetMacro(Operation, int);
91  void SetOperationToUnion() { this->SetOperation(VTK_UNION); }
92  void SetOperationToIntersection() { this->SetOperation(VTK_INTERSECTION); }
93  void SetOperationToDifference() { this->SetOperation(VTK_DIFFERENCE); }
95 
97 
102  vtkGetMacro(Status, int);
104 
106 
109  vtkGetMacro(Tolerance, double);
110  vtkSetMacro(Tolerance, double);
112 
113 protected:
116 
119 
120 private:
122  void operator=(const vtkLoopBooleanPolyDataFilter&) = delete;
123 
125 
129  int Operation;
130  int NoIntersectionOutput;
131  int NumberOfIntersectionPoints;
132  int NumberOfIntersectionLines;
134 
135  int Status;
136  double Tolerance;
137 
138  class Impl;
139 };
140 
141 VTK_ABI_NAMESPACE_END
142 #endif
list of point or cell ids
Definition: vtkIdList.h:23
a simple class to control print indentation
Definition: vtkIndent.h:29
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.