VTK  9.2.6
vtkLoopBooleanPolyDataFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLoopBooleanPolyDataFilter.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 =========================================================================*/
55 #ifndef vtkLoopBooleanPolyDataFilter_h
56 #define vtkLoopBooleanPolyDataFilter_h
57 
58 #include "vtkDataSetAttributes.h" // Needed for CopyCells() method
59 #include "vtkFiltersGeneralModule.h" // For export macro
60 #include "vtkPolyDataAlgorithm.h"
61 
62 class vtkIdList;
63 
68 class VTKFILTERSGENERAL_EXPORT vtkLoopBooleanPolyDataFilter : public vtkPolyDataAlgorithm
69 {
70 public:
75 
77 
78  void PrintSelf(ostream& os, vtkIndent indent) override;
79 
81 
84  vtkGetMacro(NumberOfIntersectionPoints, int);
85  vtkGetMacro(NumberOfIntersectionLines, int);
87 
89 
94  vtkGetMacro(NoIntersectionOutput, int);
95  vtkSetMacro(NoIntersectionOutput, int);
96  vtkBooleanMacro(NoIntersectionOutput, int);
98 
99  // Union intersection, or difference
101  {
102  VTK_UNION = 0,
104  VTK_DIFFERENCE
105  };
106  // Output if no intersection
108  {
109  VTK_NEITHER = 0,
113  };
114 
116 
119  vtkSetClampMacro(Operation, int, VTK_UNION, VTK_DIFFERENCE);
120  vtkGetMacro(Operation, int);
121  void SetOperationToUnion() { this->SetOperation(VTK_UNION); }
122  void SetOperationToIntersection() { this->SetOperation(VTK_INTERSECTION); }
123  void SetOperationToDifference() { this->SetOperation(VTK_DIFFERENCE); }
125 
127 
132  vtkGetMacro(Status, int);
134 
136 
139  vtkGetMacro(Tolerance, double);
140  vtkSetMacro(Tolerance, double);
142 
143 protected:
146 
149 
150 private:
152  void operator=(const vtkLoopBooleanPolyDataFilter&) = delete;
153 
155 
159  int Operation;
160  int NoIntersectionOutput;
161  int NumberOfIntersectionPoints;
162  int NumberOfIntersectionLines;
164 
165  int Status;
166  double Tolerance;
167 
168  class Impl;
169 };
170 
171 #endif
list of point or cell ids
Definition: vtkIdList.h:143
a simple class to control print indentation
Definition: vtkIndent.h:119
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.