You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.8 KiB
C++
76 lines
2.8 KiB
C++
/*=========================================================================
|
|
|
|
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
|