VTK
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 "vtkFiltersGeneralModule.h" // For export macro
40 #include "vtkPolyDataAlgorithm.h"
41 #include "vtkDataSetAttributes.h" // Needed for CopyCells() method
42 
43 class vtkIdList;
44 
49 class VTKFILTERSGENERAL_EXPORT vtkLoopBooleanPolyDataFilter :
51 {
52 public:
57 
58  vtkTypeMacro(vtkLoopBooleanPolyDataFilter,
60 
61  void PrintSelf(ostream& os, vtkIndent indent) override;
62 
64 
67  vtkGetMacro(NumberOfIntersectionPoints, int);
68  vtkGetMacro(NumberOfIntersectionLines, int);
70 
72 
77  vtkGetMacro(NoIntersectionOutput, int);
78  vtkSetMacro(NoIntersectionOutput, int);
79  vtkBooleanMacro(NoIntersectionOutput, int);
81 
82  //Union intersection, or difference
84  {
85  VTK_UNION=0,
87  VTK_DIFFERENCE
88  };
89  //Output if no intersection
91  {
92  VTK_NEITHER=0,
96  };
97 
99 
102  vtkSetClampMacro( Operation, int, VTK_UNION, VTK_DIFFERENCE );
103  vtkGetMacro( Operation, int );
105  { this->SetOperation( VTK_UNION ); }
107  { this->SetOperation( VTK_INTERSECTION ); }
109  { this->SetOperation( VTK_DIFFERENCE ); }
111 
113 
118  vtkGetMacro(Status, int);
120 
122 
125  vtkGetMacro(Tolerance, double);
126  vtkSetMacro(Tolerance, double);
128 
129 protected:
131  ~vtkLoopBooleanPolyDataFilter() override;
132 
134  vtkInformationVector*) override;
135  int FillInputPortInformation(int, vtkInformation*) override;
136 
137 private:
139  void operator=(const vtkLoopBooleanPolyDataFilter&) = delete;
140 
142 
146  int Operation;
147  int NoIntersectionOutput;
148  int NumberOfIntersectionPoints;
149  int NumberOfIntersectionLines;
151 
152  int Status;
153  double Tolerance;
154 
155  class Impl;
156 
157 };
158 
159 #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:36
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
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.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
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.