VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkLocator.h,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 =========================================================================*/ 00052 #ifndef __vtkLocator_h 00053 #define __vtkLocator_h 00054 00055 #include "vtkObject.h" 00056 00057 class vtkDataSet; 00058 class vtkPolyData; 00059 00060 class VTK_FILTERING_EXPORT vtkLocator : public vtkObject 00061 { 00062 public: 00063 vtkTypeRevisionMacro(vtkLocator,vtkObject); 00064 void PrintSelf(ostream& os, vtkIndent indent); 00065 00067 00068 virtual void SetDataSet(vtkDataSet*); 00069 vtkGetObjectMacro(DataSet,vtkDataSet); 00071 00073 00075 vtkSetClampMacro(MaxLevel,int,0,VTK_LARGE_INTEGER); 00076 vtkGetMacro(MaxLevel,int); 00078 00080 00083 vtkGetMacro(Level,int); 00085 00087 00091 vtkSetMacro(Automatic,int); 00092 vtkGetMacro(Automatic,int); 00093 vtkBooleanMacro(Automatic,int); 00095 00097 00099 vtkSetClampMacro(Tolerance,double,0.0,VTK_DOUBLE_MAX); 00100 vtkGetMacro(Tolerance,double); 00102 00105 virtual void Update(); 00106 00108 virtual void Initialize(); 00109 00111 virtual void BuildLocator() = 0; 00112 00114 virtual void FreeSearchStructure() = 0; 00115 00120 virtual void GenerateRepresentation(int level, vtkPolyData *pd) = 0; 00121 00123 00124 vtkGetMacro(BuildTime, unsigned long); 00126 00128 00129 virtual void Register(vtkObjectBase *o); 00130 virtual void UnRegister(vtkObjectBase *o); 00132 protected: 00133 vtkLocator(); 00134 ~vtkLocator(); 00135 00136 vtkDataSet *DataSet; 00137 int Automatic; // boolean controls automatic subdivision (or uses user spec.) 00138 double Tolerance; // for performing merging 00139 int MaxLevel; 00140 int Level; 00141 00142 vtkTimeStamp BuildTime; // time at which locator was built 00143 00144 virtual void ReportReferences(vtkGarbageCollector*); 00145 private: 00146 vtkLocator(const vtkLocator&); // Not implemented. 00147 void operator=(const vtkLocator&); // Not implemented. 00148 }; 00149 00150 #endif 00151 00152