VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkLocator.h 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 vtkTypeMacro(vtkLocator,vtkObject); 00064 void PrintSelf(ostream& os, vtkIndent indent); 00065 00067 00068 virtual void SetDataSet(vtkDataSet*); 00069 vtkGetObjectMacro(DataSet,vtkDataSet); 00071 00073 00076 vtkSetClampMacro(MaxLevel,int,0,VTK_LARGE_INTEGER); 00077 vtkGetMacro(MaxLevel,int); 00079 00081 00084 vtkGetMacro(Level,int); 00086 00088 00092 vtkSetMacro(Automatic,int); 00093 vtkGetMacro(Automatic,int); 00094 vtkBooleanMacro(Automatic,int); 00096 00098 00100 vtkSetClampMacro(Tolerance,double,0.0,VTK_DOUBLE_MAX); 00101 vtkGetMacro(Tolerance,double); 00103 00106 virtual void Update(); 00107 00109 virtual void Initialize(); 00110 00112 virtual void BuildLocator() = 0; 00113 00115 virtual void FreeSearchStructure() = 0; 00116 00121 virtual void GenerateRepresentation(int level, vtkPolyData *pd) = 0; 00122 00124 00125 vtkGetMacro(BuildTime, unsigned long); 00127 00129 00130 virtual void Register(vtkObjectBase *o); 00131 virtual void UnRegister(vtkObjectBase *o); 00132 protected: 00133 vtkLocator(); 00134 ~vtkLocator(); 00136 00137 vtkDataSet *DataSet; 00138 int Automatic; // boolean controls automatic subdivision (or uses user spec.) 00139 double Tolerance; // for performing merging 00140 int MaxLevel; 00141 int Level; 00142 00143 vtkTimeStamp BuildTime; // time at which locator was built 00144 00145 virtual void ReportReferences(vtkGarbageCollector*); 00146 private: 00147 vtkLocator(const vtkLocator&); // Not implemented. 00148 void operator=(const vtkLocator&); // Not implemented. 00149 }; 00150 00151 #endif 00152 00153