VTK  9.2.6
vtkLocator.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkLocator.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
59
60#ifndef vtkLocator_h
61#define vtkLocator_h
62
63#include "vtkCommonDataModelModule.h" // For export macro
64#include "vtkObject.h"
65
66class vtkDataSet;
67class vtkPolyData;
68
69class VTKCOMMONDATAMODEL_EXPORT vtkLocator : public vtkObject
70{
71public:
73
76 vtkTypeMacro(vtkLocator, vtkObject);
77 void PrintSelf(ostream& os, vtkIndent indent) override;
79
81
84 virtual void SetDataSet(vtkDataSet*);
85 vtkGetObjectMacro(DataSet, vtkDataSet);
87
89
94 vtkSetClampMacro(MaxLevel, int, 0, VTK_INT_MAX);
95 vtkGetMacro(MaxLevel, int);
97
99
104 vtkGetMacro(Level, int);
106
108
114 vtkSetMacro(Automatic, vtkTypeBool);
115 vtkGetMacro(Automatic, vtkTypeBool);
116 vtkBooleanMacro(Automatic, vtkTypeBool);
118
120
124 vtkSetClampMacro(Tolerance, double, 0.0, VTK_DOUBLE_MAX);
125 vtkGetMacro(Tolerance, double);
127
129
144
149 virtual void Update();
150
154 virtual void Initialize();
155
160 virtual void BuildLocator() = 0;
161
167 virtual void ForceBuildLocator() {}
168
172 virtual void FreeSearchStructure() = 0;
173
180 virtual void GenerateRepresentation(int level, vtkPolyData* pd) = 0;
181
183
186 vtkGetMacro(BuildTime, vtkMTimeType);
188
190
193 bool UsesGarbageCollector() const override { return true; }
195
196protected:
198 ~vtkLocator() override;
199
203 virtual void BuildLocatorInternal(){};
204
207 vtkTypeBool Automatic; // boolean controls automatic subdivision (or uses user spec.)
208 double Tolerance; // for performing merging
210 int Level;
211
212 vtkTimeStamp BuildTime; // time at which locator was built
213
215
216private:
217 vtkLocator(const vtkLocator&) = delete;
218 void operator=(const vtkLocator&) = delete;
219};
220
221#endif
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
a simple class to control print indentation
Definition vtkIndent.h:34
vtkTypeBool Automatic
Definition vtkLocator.h:207
bool UsesGarbageCollector() const override
Handle the PointSet <-> Locator loop.
Definition vtkLocator.h:193
virtual void BuildLocatorInternal()
This function is not pure virtual to maintain backwards compatibility.
Definition vtkLocator.h:203
virtual void ForceBuildLocator()
Build the locator from the input dataset (even if UseExistingSearchStructure is on).
Definition vtkLocator.h:167
vtkTimeStamp BuildTime
Definition vtkLocator.h:212
~vtkLocator() override
virtual void Update()
Cause the locator to rebuild itself if it or its input dataset has changed.
double Tolerance
Definition vtkLocator.h:208
vtkTypeBool UseExistingSearchStructure
Definition vtkLocator.h:206
virtual void SetDataSet(vtkDataSet *)
Build the locator from the points/cells defining this dataset.
virtual void Initialize()
Initialize locator.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type and print methods.
void ReportReferences(vtkGarbageCollector *) override
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
Method to build a representation at a particular level.
virtual void BuildLocator()=0
Build the locator from the input dataset.
virtual void FreeSearchStructure()=0
Free the memory required for the spatial data structure.
vtkDataSet * DataSet
Definition vtkLocator.h:205
friend class vtkGarbageCollector
Some classes need to clear the reference counts manually due to the way they work.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:85
record modification and/or execution time
int vtkTypeBool
Definition vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_DOUBLE_MAX
Definition vtkType.h:165
#define VTK_INT_MAX
Definition vtkType.h:155