VTK
vtkLinearSelector.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: $RCSfile: vtkCellDistanceFilter,v $
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 =========================================================================*/
32 #ifndef VTK_LINEAR_SELECTOR_H
33 #define VTK_LINEAR_SELECTOR_H
34 
35 #include "vtkCommonExecutionModelModule.h" // For export macro
36 #include <vtkSelectionAlgorithm.h>
37 
38 class vtkAlgorithmOutput;
39 class vtkDataSet;
40 class vtkDoubleArray;
41 class vtkIdTypeArray;
42 class vtkPoints;
43 
44 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkLinearSelector: public vtkSelectionAlgorithm
45 {
46  public:
48  void PrintSelf(ostream& os, vtkIndent indent);
49 
50  static vtkLinearSelector *New();
51 
53 
54  vtkSetVector3Macro(StartPoint,double);
55  vtkGetVectorMacro(StartPoint,double,3);
57 
59 
60  vtkSetVector3Macro(EndPoint,double);
61  vtkGetVectorMacro(EndPoint,double,3);
63 
65 
66  virtual void SetPoints(vtkPoints*);
67  vtkGetObjectMacro(Points,vtkPoints);
69 
71 
72  vtkSetMacro(Tolerance,double);
73  vtkGetMacro(Tolerance,double);
75 
77 
78  vtkSetMacro(IncludeVertices,bool);
79  vtkGetMacro(IncludeVertices,bool);
80  vtkBooleanMacro(IncludeVertices,bool);
82 
84 
85  vtkSetClampMacro(VertexEliminationTolerance,double,0.,.1 );
86  vtkGetMacro(VertexEliminationTolerance,double);
88 
89  protected:
91  virtual ~vtkLinearSelector();
92 
94 
95  virtual int RequestData(vtkInformation *request,
96  vtkInformationVector **inputVector,
97  vtkInformationVector *outputVector);
98 
101  void SeekIntersectingCells(vtkDataSet* input, vtkIdTypeArray* outIndices);
102 
103  private:
104  vtkLinearSelector(const vtkLinearSelector&); // Not implemented
105  void operator =(const vtkLinearSelector&); // Not implemented
106 
108 
110  double StartPoint[3];
111  double EndPoint[3];
113 
116  vtkPoints* Points;
117 
119  double Tolerance;
120 
122  bool IncludeVertices;
123 
125 
126  double VertexEliminationTolerance;
127 };
129 
130 
131 #endif // VTK_LINEAR_SELECTOR_H