VTK  9.7.1
vtkLocator.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
48 #ifndef vtkLocator_h
49 #define vtkLocator_h
50 
51 #include "vtkCommonDataModelModule.h" // For export macro
52 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_7_0
53 #include "vtkObject.h"
54 
55 VTK_ABI_NAMESPACE_BEGIN
56 class vtkDataSet;
57 class vtkPolyData;
58 
59 class VTKCOMMONDATAMODEL_EXPORT vtkLocator : public vtkObject
60 {
61 public:
63 
66  vtkTypeMacro(vtkLocator, vtkObject);
67  void PrintSelf(ostream& os, vtkIndent indent) override;
69 
71 
74  virtual void SetDataSet(vtkDataSet*);
75  vtkGetObjectMacro(DataSet, vtkDataSet);
77 
79 
84  vtkSetClampMacro(MaxLevel, int, 0, VTK_INT_MAX);
85  vtkGetMacro(MaxLevel, int);
87 
89 
94  vtkGetMacro(Level, int);
96 
98 
104  vtkSetMacro(Automatic, vtkTypeBool);
105  vtkGetMacro(Automatic, vtkTypeBool);
106  vtkBooleanMacro(Automatic, vtkTypeBool);
108 
110 
114  VTK_DEPRECATED_IN_9_7_0("Tolerance is only used by vtkAbstractPointLocator subclasses")
115  void SetTolerance(double vtkNotUsed(tol)) {}
116  VTK_DEPRECATED_IN_9_7_0("Tolerance is only used by vtkAbstractPointLocator subclasses")
117  double GetToleranceMinValue() VTK_FUTURE_CONST { return 0.0; }
118  VTK_DEPRECATED_IN_9_7_0("Tolerance is only used by vtkAbstractPointLocator subclasses")
119  double GetToleranceMaxValue() VTK_FUTURE_CONST { return VTK_DOUBLE_MAX; }
120  VTK_DEPRECATED_IN_9_7_0("Tolerance is only used by vtkAbstractPointLocator subclasses")
121  double GetToleranceDefaultValue() VTK_FUTURE_CONST { return 0.001; }
123 
125 
136  vtkSetMacro(UseExistingSearchStructure, vtkTypeBool);
137  vtkGetMacro(UseExistingSearchStructure, vtkTypeBool);
138  vtkBooleanMacro(UseExistingSearchStructure, vtkTypeBool);
140 
145  virtual void Update();
146 
150  virtual void Initialize();
151 
156  virtual void BuildLocator() = 0;
157 
163  virtual void ForceBuildLocator() {}
164 
168  virtual void FreeSearchStructure() = 0;
169 
176  virtual void GenerateRepresentation(int level, vtkPolyData* pd) = 0;
177 
179 
182  vtkGetMacro(BuildTime, vtkMTimeType);
184 
186 
189  bool UsesGarbageCollector() const override { return true; }
191 
192 protected:
193  vtkLocator();
194  ~vtkLocator() override;
195 
199  virtual void BuildLocatorInternal() {}
200 
203  vtkTypeBool Automatic; // boolean controls automatic subdivision (or uses user spec.)
204  int MaxLevel;
205  int Level;
206 
207  vtkTimeStamp BuildTime; // time at which locator was built
208 
209  void ReportReferences(vtkGarbageCollector*) override;
210 
211 private:
212  vtkLocator(const vtkLocator&) = delete;
213  void operator=(const vtkLocator&) = delete;
214 };
215 
216 VTK_ABI_NAMESPACE_END
217 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
#define VTK_DOUBLE_MAX
Definition: vtkType.h:202
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:318
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
vtkDataSet * DataSet
Definition: vtkLocator.h:201
#define VTK_INT_MAX
Definition: vtkType.h:192
record modification and/or execution time
Definition: vtkTimeStamp.h:24
abstract base class for objects that accelerate spatial searches
Definition: vtkLocator.h:59
vtkTimeStamp BuildTime
Definition: vtkLocator.h:207
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:71
Detect and break reference loops.
int vtkTypeBool
Definition: vtkABI.h:64
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual void BuildLocatorInternal()
This function is not pure virtual to maintain backwards compatibility.
Definition: vtkLocator.h:199
virtual void ReportReferences(vtkGarbageCollector *)
std::map< std::string, DataArray > DataSet
key: variable name, value: DataArray
Definition: VTXTypes.h:28
vtkTypeBool Automatic
Definition: vtkLocator.h:203
bool UsesGarbageCollector() const override
Handle the PointSet <-> Locator loop.
Definition: vtkLocator.h:189
int MaxLevel
Definition: vtkLocator.h:204
vtkTypeBool UseExistingSearchStructure
Definition: vtkLocator.h:202
#define VTK_DEPRECATED_IN_9_7_0(reason)
virtual void ForceBuildLocator()
Build the locator from the input dataset (even if UseExistingSearchStructure is on).
Definition: vtkLocator.h:163