File: vtkNonMergingPointLocator.h

package info (click to toggle)
vtk9 9.0.1%2Bdfsg1-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 133,688 kB
  • sloc: cpp: 1,568,287; ansic: 208,587; python: 87,847; xml: 8,022; java: 4,509; yacc: 4,027; sh: 2,515; perl: 2,183; lex: 1,766; objc: 143; makefile: 126; tcl: 59
file content (75 lines) | stat: -rw-r--r-- 2,861 bytes parent folder | download
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
/*=========================================================================

  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.

=========================================================================*/
/**
 * @class   vtkNonMergingPointLocator
 * @brief   direct / check-free point insertion.
 *
 *
 *  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.
 *
 * @sa
 *  vtkIncrementalPointLocator vtkPointLocator vtkMergePoints
 */

#ifndef vtkNonMergingPointLocator_h
#define vtkNonMergingPointLocator_h

#include "vtkCommonDataModelModule.h" // For export macro
#include "vtkPointLocator.h"

class vtkPoints;

class VTKCOMMONDATAMODEL_EXPORT vtkNonMergingPointLocator : public vtkPointLocator
{
public:
  static vtkNonMergingPointLocator* New();

  vtkTypeMacro(vtkNonMergingPointLocator, vtkPointLocator);
  void PrintSelf(ostream& os, vtkIndent indent) override;

  /**
   * 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.
   */
  vtkIdType IsInsertedPoint(const double[3]) override { return -1; }
  vtkIdType IsInsertedPoint(double, double, double) override { return -1; }

  /**
   * 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.
   */
  int InsertUniquePoint(const double x[3], vtkIdType& ptId) override;

protected:
  vtkNonMergingPointLocator() {}
  ~vtkNonMergingPointLocator() override {}

private:
  vtkNonMergingPointLocator(const vtkNonMergingPointLocator&) = delete;
  void operator=(const vtkNonMergingPointLocator&) = delete;
};

#endif