VTK
vtkLinearSelector.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkLinearSelector.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 =========================================================================*/
34 #ifndef vtkLinearSelector_h
35 #define vtkLinearSelector_h
36 
37 #include "vtkFiltersSelectionModule.h" // For export macro
38 #include "vtkSelectionAlgorithm.h"
39 
40 class vtkAlgorithmOutput;
41 class vtkDataSet;
42 class vtkDoubleArray;
43 class vtkIdTypeArray;
44 class vtkPoints;
45 
46 class VTKFILTERSSELECTION_EXPORT vtkLinearSelector : public vtkSelectionAlgorithm
47 {
48  public:
50  void PrintSelf(ostream& os, vtkIndent indent);
51 
52  static vtkLinearSelector* New();
53 
55 
58  vtkSetVector3Macro(StartPoint,double);
59  vtkGetVectorMacro(StartPoint,double,3);
61 
63 
66  vtkSetVector3Macro(EndPoint,double);
67  vtkGetVectorMacro(EndPoint,double,3);
69 
71 
74  virtual void SetPoints(vtkPoints*);
75  vtkGetObjectMacro(Points,vtkPoints);
77 
79 
82  vtkSetMacro(Tolerance,double);
83  vtkGetMacro(Tolerance,double);
85 
87 
90  vtkSetMacro(IncludeVertices,bool);
91  vtkGetMacro(IncludeVertices,bool);
92  vtkBooleanMacro(IncludeVertices,bool);
94 
96 
99  vtkSetClampMacro(VertexEliminationTolerance,double,0.,.1 );
100  vtkGetMacro(VertexEliminationTolerance,double);
102 
103  protected:
105  virtual ~vtkLinearSelector();
106 
108 
109  virtual int RequestData(vtkInformation *request,
110  vtkInformationVector **inputVector,
111  vtkInformationVector *outputVector);
112 
117  void SeekIntersectingCells(vtkDataSet* input, vtkIdTypeArray* outIndices);
118 
119  private:
120  vtkLinearSelector(const vtkLinearSelector&) VTK_DELETE_FUNCTION;
121  void operator =(const vtkLinearSelector&) VTK_DELETE_FUNCTION;
122 
124 
128  double StartPoint[3];
129  double EndPoint[3];
131 
136  vtkPoints* Points;
137 
141  double Tolerance;
142 
147  bool IncludeVertices;
148 
150 
154  double VertexEliminationTolerance;
155 };
157 
158 
159 #endif // vtkLinearSelector_h
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
dynamic, self-adjusting array of vtkIdType
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
select cells intersecting a line (possibly broken)
static vtkSelectionAlgorithm * New()
a simple class to control print indentation
Definition: vtkIndent.h:39
Superclass for algorithms that produce only Selection as output.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
represent and manipulate 3D points
Definition: vtkPoints.h:39