00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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;
00138 double Tolerance;
00139 int MaxLevel;
00140 int Level;
00141
00142 vtkTimeStamp BuildTime;
00143
00144 virtual void ReportReferences(vtkGarbageCollector*);
00145 private:
00146 vtkLocator(const vtkLocator&);
00147 void operator=(const vtkLocator&);
00148 };
00149
00150 #endif
00151
00152