VTK
dox/Filtering/vtkLinearSelector.h
Go to the documentation of this file.
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