VTK
vtkSelectEnclosedPoints.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSelectEnclosedPoints.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 =========================================================================*/
46 #ifndef vtkSelectEnclosedPoints_h
47 #define vtkSelectEnclosedPoints_h
48 
49 #include "vtkFiltersModelingModule.h" // For export macro
50 #include "vtkDataSetAlgorithm.h"
51 
53 class vtkCellLocator;
54 class vtkIdList;
55 class vtkGenericCell;
56 
57 
58 class VTKFILTERSMODELING_EXPORT vtkSelectEnclosedPoints : public vtkDataSetAlgorithm
59 {
60 public:
62 
66  void PrintSelf(ostream& os, vtkIndent indent);
68 
72  static vtkSelectEnclosedPoints *New();
73 
75 
80  void SetSurfaceData(vtkPolyData *pd);
81  void SetSurfaceConnection(vtkAlgorithmOutput* algOutput);
83 
85 
88  vtkPolyData *GetSurface();
89  vtkPolyData *GetSurface(vtkInformationVector *sourceInfo);
91 
93 
98  vtkSetMacro(InsideOut,int);
99  vtkBooleanMacro(InsideOut,int);
100  vtkGetMacro(InsideOut,int);
102 
104 
108  vtkSetMacro(CheckSurface,int);
109  vtkBooleanMacro(CheckSurface,int);
110  vtkGetMacro(CheckSurface,int);
112 
117  int IsInside(vtkIdType inputPtId);
118 
120 
124  vtkSetClampMacro(Tolerance,double,0.0,VTK_FLOAT_MAX);
125  vtkGetMacro(Tolerance,double);
127 
129 
135  void Initialize(vtkPolyData *surface);
136  int IsInsideSurface(double x, double y, double z);
137  int IsInsideSurface(double x[3]);
138  void Complete();
140 
141 protected:
144 
147  double Tolerance;
148 
149  int IsSurfaceClosed(vtkPolyData *surface);
151 
152  // Internal structures for accelerating the intersection test
157  double Bounds[6];
158  double Length;
159 
161  virtual int FillInputPortInformation(int, vtkInformation *);
162 
163  void ReportReferences(vtkGarbageCollector*) VTK_OVERRIDE;
164 
165 private:
166  vtkSelectEnclosedPoints(const vtkSelectEnclosedPoints&) VTK_DELETE_FUNCTION;
167  void operator=(const vtkSelectEnclosedPoints&) VTK_DELETE_FUNCTION;
168 };
169 
170 #endif
vtkUnsignedCharArray * InsideOutsideArray
Store vtkAlgorithm input/output information.
void ReportReferences(vtkGarbageCollector *) override
mark points as to whether they are inside a closed surface
int vtkIdType
Definition: vtkType.h:287
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
Detect and break reference loops.
provides thread-safe access to cells
Proxy object to connect input/output ports.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
octree-based spatial search object to quickly locate cells
#define VTK_FLOAT_MAX
Definition: vtkType.h:161
a simple class to control print indentation
Definition: vtkIndent.h:39
list of point or cell ids
Definition: vtkIdList.h:36
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
dynamic, self-adjusting array of unsigned char
Store zero or more vtkInformation instances.
Superclass for algorithms that produce output of the same type as input.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkDataSetAlgorithm * New()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.