VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCellDistanceFilter,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00032 #ifndef VTK_LINEAR_SELECTOR_H 00033 #define VTK_LINEAR_SELECTOR_H 00034 00035 #include <vtkSelectionAlgorithm.h> 00036 00037 class vtkAlgorithmOutput; 00038 class vtkDataSet; 00039 class vtkDoubleArray; 00040 class vtkIdTypeArray; 00041 class vtkPoints; 00042 00043 class VTK_FILTERING_EXPORT vtkLinearSelector: public vtkSelectionAlgorithm 00044 { 00045 public: 00046 vtkTypeMacro(vtkLinearSelector,vtkSelectionAlgorithm); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00048 00049 static vtkLinearSelector *New(); 00050 00052 00053 vtkSetVector3Macro(StartPoint,double); 00054 vtkGetVectorMacro(StartPoint,double,3); 00056 00058 00059 vtkSetVector3Macro(EndPoint,double); 00060 vtkGetVectorMacro(EndPoint,double,3); 00062 00064 00065 virtual void SetPoints(vtkPoints*); 00066 vtkGetObjectMacro(Points,vtkPoints); 00068 00070 00071 vtkSetMacro(Tolerance,double); 00072 vtkGetMacro(Tolerance,double); 00074 00076 00077 vtkSetMacro(IncludeVertices,bool); 00078 vtkGetMacro(IncludeVertices,bool); 00079 vtkBooleanMacro(IncludeVertices,bool); 00081 00083 00084 vtkSetClampMacro(VertexEliminationTolerance,double,0.,.1 ); 00085 vtkGetMacro(VertexEliminationTolerance,double); 00087 00088 protected: 00089 vtkLinearSelector(); 00090 virtual ~vtkLinearSelector(); 00091 00092 virtual int FillInputPortInformation(int port, vtkInformation *info); 00093 00094 virtual int RequestData(vtkInformation *request, 00095 vtkInformationVector **inputVector, 00096 vtkInformationVector *outputVector); 00097 00100 void SeekIntersectingCells(vtkDataSet* input, vtkIdTypeArray* outIndices); 00101 00102 private: 00103 vtkLinearSelector(const vtkLinearSelector&); // Not implemented 00104 void operator =(const vtkLinearSelector&); // Not implemented 00105 00107 00109 double StartPoint[3]; 00110 double EndPoint[3]; 00112 00115 vtkPoints* Points; 00116 00118 double Tolerance; 00119 00121 bool IncludeVertices; 00122 00124 00125 double VertexEliminationTolerance; 00126 }; 00128 00129 00130 #endif // VTK_LINEAR_SELECTOR_H