forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathvtkNonMergingPointLocator.h
73 lines (57 loc) · 2.82 KB
/
vtkNonMergingPointLocator.h
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
/*=========================================================================
Program: Visualization Toolkit
Module: vtkNonMergingPointLocator.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 vtkNonMergingPointLocator - direct / check-free point insertion.
//
// .SECTION Description
// As a special sub-class of vtkPointLocator, vtkNonMergingPointLocator is
// intended for direct / check-free insertion of points into a vtkPoints
// object. In other words, any given point is always directly inserted.
// The name emphasizes the difference between this class and its sibling
// class vtkMergePoints in that the latter class performs check-based zero
// tolerance point insertion (or to 'merge' exactly duplicate / coincident
// points) by exploiting the uniform bin mechanism employed by the parent
// class vtkPointLocator. vtkPointLocator allows for generic (zero and non-
// zero) tolerance point insertion as well as point location.
//
// .SECTION See Also
// vtkIncrementalPointLocator vtkPointLocator vtkMergePoints
#ifndef __vtkNonMergingPointLocator_h
#define __vtkNonMergingPointLocator_h
#include "vtkPointLocator.h"
class vtkPoints;
class VTK_FILTERING_EXPORT vtkNonMergingPointLocator : public vtkPointLocator
{
public:
static vtkNonMergingPointLocator * New();
vtkTypeMacro( vtkNonMergingPointLocator, vtkPointLocator );
void PrintSelf( ostream & os, vtkIndent indent );
//BTX
// Description:
// Determine whether a given point x has been inserted into the points list.
// Return the id of the already inserted point if it is true, or -1 else.
// Note this function always returns -1 since any point is always inserted.
virtual vtkIdType IsInsertedPoint( const double [3] ) { return -1; }
virtual vtkIdType IsInsertedPoint( double, double, double ) { return -1; }
//ETX
// Description:
// Determine whether a given point x has been inserted into the points list.
// Return 0 if a duplicate has been inserted in the list, or 1 else. Note
// this function always returns 1 since any point is always inserted. The
// index of the point is returned via ptId.
virtual int InsertUniquePoint( const double x[3], vtkIdType & ptId );
protected:
vtkNonMergingPointLocator() { };
~vtkNonMergingPointLocator() { };
private:
vtkNonMergingPointLocator( const vtkNonMergingPointLocator & ); // Not implemented.
void operator = ( const vtkNonMergingPointLocator & ); // Not implemented.
};
#endif