VTK
vtkClipConvexPolyData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkClipConvexPolyData.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 =========================================================================*/
26 #ifndef __vtkClipConvexPolyData_h
27 #define __vtkClipConvexPolyData_h
28 
29 #include "vtkPolyDataAlgorithm.h"
30 
31 class vtkPlaneCollection;
32 class vtkPlane;
33 class vtkClipConvexPolyDataInternals;
34 
36 {
37 public:
38  static vtkClipConvexPolyData *New();
40  void PrintSelf(ostream& os, vtkIndent indent);
41 
43 
45  void SetPlanes(vtkPlaneCollection *planes);
46  vtkGetObjectMacro(Planes,vtkPlaneCollection);
48 
51  virtual unsigned long int GetMTime();
52 
53 protected:
56 
57  // The method that does it all...
58  int RequestData(vtkInformation *request,
59  vtkInformationVector **inputVector,
60  vtkInformationVector *outputVector);
61 
63 
64  void ClipWithPlane(vtkPlane *p,
65  double tolerance);
67 
69  bool HasDegeneracies(vtkPlane *p);
70 
72  void ClearInternals();
73 
75  void ClearNewVertices();
76 
78  void RemoveEmptyPolygons();
79 
81  vtkClipConvexPolyDataInternals *Internal;
82 
83 private:
84  vtkClipConvexPolyData(const vtkClipConvexPolyData&); // Not implemented.
85  void operator=(const vtkClipConvexPolyData&); // Not implemented.
86 };
87 
88 #endif