VTK
vtkIntersectionPolyDataFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkIntersectionPolyDataFilter.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 =========================================================================*/
60 #ifndef vtkIntersectionPolyDataFilter_h
61 #define vtkIntersectionPolyDataFilter_h
62 
63 #include "vtkFiltersGeneralModule.h" // For export macro
64 #include "vtkPolyDataAlgorithm.h"
65 
66 class VTKFILTERSGENERAL_EXPORT vtkIntersectionPolyDataFilter :
68 {
69 public:
72  void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE;
73 
75 
78  vtkGetMacro(NumberOfIntersectionPoints, int);
79  vtkGetMacro(NumberOfIntersectionLines, int);
81 
83 
87  vtkGetMacro(SplitFirstOutput, int);
88  vtkSetMacro(SplitFirstOutput, int);
89  vtkBooleanMacro(SplitFirstOutput, int);
91 
93 
97  vtkGetMacro(SplitSecondOutput, int);
98  vtkSetMacro(SplitSecondOutput, int);
99  vtkBooleanMacro(SplitSecondOutput, int);
101 
103 
107  vtkGetMacro(ComputeIntersectionPointArray, int);
108  vtkSetMacro(ComputeIntersectionPointArray, int);
109  vtkBooleanMacro(ComputeIntersectionPointArray, int);
111 
113 
116  vtkGetMacro(CheckInput, int);
117  vtkSetMacro(CheckInput, int);
118  vtkBooleanMacro(CheckInput, int);
120 
122 
126  vtkGetMacro(CheckMesh, int);
127  vtkSetMacro(CheckMesh, int);
128  vtkBooleanMacro(CheckMesh, int);
130 
132 
137  vtkGetMacro(Status, int);
139 
141 
144  vtkGetMacro(Tolerance, double);
145  vtkSetMacro(Tolerance, double);
147 
158  static int TriangleTriangleIntersection(double p1[3], double q1[3],
159  double r1[3], double p2[3],
160  double q2[3], double r2[3],
161  int &coplanar, double pt1[3],
162  double pt2[3], double surfaceid[2],
163  double tolerance);
164 
169  static void CleanAndCheckSurface(vtkPolyData *pd, double stats[2],
170  double tolerance);
171 
175  static void CleanAndCheckInput(vtkPolyData *pd, double tolerance);
176 
177 
178 protected:
179  vtkIntersectionPolyDataFilter(); //Constructor
180  ~vtkIntersectionPolyDataFilter() VTK_OVERRIDE; //Destructor
181 
182  int RequestData(vtkInformation*, vtkInformationVector**,
183  vtkInformationVector*) VTK_OVERRIDE; //Update
184  int FillInputPortInformation(int, vtkInformation*) VTK_OVERRIDE; //Input,Output
185 
186 private:
188  void operator=(const vtkIntersectionPolyDataFilter&) VTK_DELETE_FUNCTION;
189 
190  int NumberOfIntersectionPoints;
191  int NumberOfIntersectionLines;
192  int SplitFirstOutput;
193  int SplitSecondOutput;
194  int ComputeIntersectionPointArray;
195  int CheckMesh;
196  int CheckInput;
197  int Status;
198  double Tolerance;
199 
200  class Impl; //Implementation class
201 };
202 
203 
204 #endif // vtkIntersectionPolyDataFilter_h
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkIntersectionPolyDataFilter computes the intersection between two vtkPolyData objects.
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.