/usr/include/vtk-6.3/vtkIncrementalPointLocator.h is in libvtk6-dev 6.3.0+dfsg1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkIncrementalPointLocator.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkIncrementalPointLocator - Abstract class in support of both
// point location and point insertion.
//
// .SECTION Description
// Compared to a static point locator for pure location functionalities
// through some search structure established from a fixed set of points,
// an incremental point locator allows for, in addition, point insertion
// capabilities, with the search structure maintaining a dynamically
// increasing number of points. There are two incremental point locators,
// i.e., vtkPointLocator and vtkIncrementalOctreePointLocator. As opposed
// to the uniform bin-based search structure (adopted in vtkPointLocator)
// with a fixed spatial resolution, an octree mechanism (employed in
// vtkIncrementalOctreePointlocator) resorts to a hierarchy of tree-like
// sub-division of the 3D data domain. Thus it enables data-aware multi-
// resolution and accordingly accelerated point location as well as point
// insertion, particularly when handling a radically imbalanced layout of
// points as not uncommon in datasets defined on adaptive meshes. In other
// words, vtkIncrementalOctreePointLocator is an octree-based accelerated
// implementation of all functionalities of vtkPointLocator.
//
// .SECTION See Also
// vtkLocator, vtkIncrementalOctreePointLocator, vtkPointLocator,
// vtkMergePoints
#ifndef vtkIncrementalPointLocator_h
#define vtkIncrementalPointLocator_h
#include "vtkCommonDataModelModule.h" // For export macro
#include "vtkAbstractPointLocator.h"
class vtkPoints;
class vtkIdList;
class VTKCOMMONDATAMODEL_EXPORT vtkIncrementalPointLocator : public vtkAbstractPointLocator
{
public:
vtkTypeMacro( vtkIncrementalPointLocator, vtkAbstractPointLocator );
void PrintSelf( ostream & os, vtkIndent indent );
// Description:
// Delete the search structure.
virtual void Initialize() = 0;
// Description:
// Given a point x assumed to be covered by the search structure, return the
// index of the closest point (already inserted to the search structure)
// regardless of the associated minimum squared distance relative to the
// squared insertion-tolerance distance. This method is used when performing
// incremental point insertion. Note -1 indicates that no point is found.
// InitPointInsertion() should have been called in advance.
virtual vtkIdType FindClosestInsertedPoint( const double x[3] ) = 0;
// -------------------------------------------------------------------------
// ---------------------------- Point Location ----------------------------
// ---- All virtual functions related to point location are declared by ----
// --------------- the parent class vtkAbstractPointLocator ---------------
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
// ---------------------------- Point Insertion ----------------------------
// -------------------------------------------------------------------------
// Description:
// Initialize the point insertion process. newPts is an object, storing 3D
// point coordinates, to which incremental point insertion puts coordinates.
// It is created and provided by an external VTK class. Argument bounds
// represents the spatial bounding box, into which the points fall.
virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6] ) = 0;
// Description:
// Initialize the point insertion process. newPts is an object, storing 3D
// point coordinates, to which incremental point insertion puts coordinates.
// It is created and provided by an external VTK class. Argument bounds
// represents the spatial bounding box, into which the points fall.
virtual int InitPointInsertion( vtkPoints * newPts, const double bounds[6],
vtkIdType estSize ) = 0;
// Description:
// Determine whether or not a given point has been inserted. Return the id of
// the already inserted point if true, else return -1. InitPointInsertion()
// should have been called in advance.
virtual vtkIdType IsInsertedPoint( double x, double y, double z ) = 0;
// Description:
// Determine whether or not a given point has been inserted. Return the id of
// the already inserted point if true, else return -1. InitPointInsertion()
// should have been called in advance.
virtual vtkIdType IsInsertedPoint( const double x[3] ) = 0;
// Description:
// Insert a point unless there has been a duplciate in the search structure.
// This method is not thread safe.
virtual int InsertUniquePoint( const double x[3], vtkIdType & ptId ) = 0;
// Description:
// Insert a given point with a specified point index ptId. InitPointInsertion()
// should have been called prior to this function. Also, IsInsertedPoint()
// should have been called in advance to ensure that the given point has not
// been inserted unless point duplication is allowed.
virtual void InsertPoint( vtkIdType ptId, const double x[3] ) = 0;
// Description:
// Insert a given point and return the point index. InitPointInsertion()
// should have been called prior to this function. Also, IsInsertedPoint()
// should have been called in advance to ensure that the given point has not
// been inserted unless point duplication is allowed.
virtual vtkIdType InsertNextPoint( const double x[3] ) = 0;
protected:
vtkIncrementalPointLocator();
virtual ~vtkIncrementalPointLocator();
private:
vtkIncrementalPointLocator( const vtkIncrementalPointLocator & ); // Not implemented.
void operator = ( const vtkIncrementalPointLocator & ); // Not implemented.
};
#endif
|