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 =========================================================================*/
36 #ifndef vtkLoopBooleanPolyDataFilter_h
37 #define vtkLoopBooleanPolyDataFilter_h
38 
39 #include "vtkDataSetAttributes.h" // Needed for CopyCells() method
40 #include "vtkFiltersGeneralModule.h" // For export macro
41 #include "vtkPolyDataAlgorithm.h"
42 
43 class vtkIdList;
44 
49 class VTKFILTERSGENERAL_EXPORT vtkLoopBooleanPolyDataFilter : public vtkPolyDataAlgorithm
50 {
51 public:
56 
58 
59  void PrintSelf(ostream& os, vtkIndent indent) override;
60 
62 
65  vtkGetMacro(NumberOfIntersectionPoints, int);
66  vtkGetMacro(NumberOfIntersectionLines, int);
68 
70 
75  vtkGetMacro(NoIntersectionOutput, int);
76  vtkSetMacro(NoIntersectionOutput, int);
77  vtkBooleanMacro(NoIntersectionOutput, int);
79 
80  // Union intersection, or difference
82  {
83  VTK_UNION = 0,
85  VTK_DIFFERENCE
86  };
87  // Output if no intersection
89  {
90  VTK_NEITHER = 0,
94  };
95 
97 
100  vtkSetClampMacro(Operation, int, VTK_UNION, VTK_DIFFERENCE);
101  vtkGetMacro(Operation, int);
102  void SetOperationToUnion() { this->SetOperation(VTK_UNION); }
103  void SetOperationToIntersection() { this->SetOperation(VTK_INTERSECTION); }
104  void SetOperationToDifference() { this->SetOperation(VTK_DIFFERENCE); }
106 
108 
113  vtkGetMacro(Status, int);
115 
117 
120  vtkGetMacro(Tolerance, double);
121  vtkSetMacro(Tolerance, double);
123 
124 protected:
126  ~vtkLoopBooleanPolyDataFilter() override;
127 
129  int FillInputPortInformation(int, vtkInformation*) override;
130 
131 private:
133  void operator=(const vtkLoopBooleanPolyDataFilter&) = delete;
134 
136 
140  int Operation;
141  int NoIntersectionOutput;
142  int NumberOfIntersectionPoints;
143  int NumberOfIntersectionLines;
145 
146  int Status;
147  double Tolerance;
148 
149  class Impl;
150 };
151 
152 #endif
void SetOperationToUnion()
Set the boolean operation to perform.
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
Filter to perform boolean operations.
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:39
list of point or cell ids
Definition: vtkIdList.h:33
void SetOperationToIntersection()
Set the boolean operation to perform.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
void SetOperationToDifference()
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.