VTK  9.5.2
vtkPointSet.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
43#ifndef vtkPointSet_h
44#define vtkPointSet_h
45
46#include "vtkCommonDataModelModule.h" // For export macro
47#include "vtkDataSet.h"
48#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
49
50#include "vtkCellTypes.h" // For GetCellType
51#include "vtkGenericCell.h" // For GetCell
52#include "vtkPoints.h" // Needed for inline methods
53
54VTK_ABI_NAMESPACE_BEGIN
57
58class VTKCOMMONDATAMODEL_EXPORT VTK_MARSHALAUTO vtkPointSet : public vtkDataSet
59{
60public:
64 static vtkPointSet* New();
66
68
71 vtkTypeMacro(vtkPointSet, vtkDataSet);
72 void PrintSelf(ostream& os, vtkIndent indent) override;
74
78 int GetDataObjectType() VTK_FUTURE_CONST override { return VTK_POINT_SET; }
79
81
90 vtkSetMacro(Editable, bool);
91 vtkGetMacro(Editable, bool);
92 vtkBooleanMacro(Editable, bool);
94
98 void Initialize() override;
99
103 void CopyStructure(vtkDataSet* pd) override;
104
106
109 vtkIdType GetNumberOfPoints() override;
110 void GetPoint(vtkIdType ptId, double x[3]) override { this->Points->GetPoint(ptId, x); }
111 vtkIdType FindPoint(double x[3]) override;
112 vtkIdType FindCell(double x[3], vtkCell* cell, vtkIdType cellId, double tol2, int& subId,
113 double pcoords[3], double* weights) override;
114 vtkIdType FindCell(double x[3], vtkCell* cell, vtkGenericCell* gencell, vtkIdType cellId,
115 double tol2, int& subId, double pcoords[3], double* weights) override;
117
119
122 vtkIdType GetNumberOfCells() override { return 0; }
123 int GetMaxCellSize() override { return 0; }
125
126 using Superclass::GetCell;
132
134
138 void GetCellPoints(vtkIdType, vtkIdList* idList) override { idList->Reset(); }
139 void GetPointCells(vtkIdType, vtkIdList* idList) override { idList->Reset(); }
141
145 void GetCell(vtkIdType, vtkGenericCell* cell) override { cell->SetCellTypeToEmptyCell(); }
146
151 int GetCellType(vtkIdType) override { return VTK_EMPTY_CELL; }
152
157 vtkIdType GetCellSize(vtkIdType) override { return 1; }
158
165 double* GetPoint(vtkIdType ptId) VTK_SIZEHINT(3) override { return this->Points->GetPoint(ptId); }
166
171
173
178 void BuildLocator() { this->BuildPointLocator(); }
180
186
188
195 virtual void SetPointLocator(vtkAbstractPointLocator*);
197 vtkGetObjectMacro(PointLocator, vtkAbstractPointLocator);
199
201
206 virtual void SetCellLocator(vtkAbstractCellLocator*);
208 vtkGetObjectMacro(CellLocator, vtkAbstractCellLocator);
210
214 vtkMTimeType GetMTime() override;
215
219 void ComputeBounds() override;
220
224 void Squeeze() override;
225
227
230 virtual void SetPoints(vtkPoints*);
231 vtkPoints* GetPoints() override { return this->Points; }
233
242 unsigned long GetActualMemorySize() override;
243
245
248 void ShallowCopy(vtkDataObject* src) override;
249 void DeepCopy(vtkDataObject* src) override;
251
253
256 bool UsesGarbageCollector() const override { return true; }
258
260
266
267protected:
269 ~vtkPointSet() override;
270
275
277
278private:
279 void Cleanup();
280
281 vtkPointSet(const vtkPointSet&) = delete;
282 void operator=(const vtkPointSet&) = delete;
283};
284
286{
287 if (this->Points)
288 {
289 return this->Points->GetNumberOfPoints();
290 }
291 else
292 {
293 return 0;
294 }
295}
296
297VTK_ABI_NAMESPACE_END
298#endif
an abstract base class for locators which find cells
abstract class to quickly locate points in 3-space
Efficient cell iterator for vtkDataSet topologies.
abstract class to specify cell behavior
Definition vtkCell.h:51
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:56
virtual vtkIdType GetNumberOfPoints()=0
Determine the number of points composing the dataset.
virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)=0
Topological inquiry to get points defining cell.
Detect and break reference loops.
provides thread-safe access to cells
void SetCellTypeToEmptyCell()
list of point or cell ids
Definition vtkIdList.h:24
void Reset()
Reset to an empty state but retain previously allocated memory.
Definition vtkIdList.h:135
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete class for storing a set of points
Definition vtkPointSet.h:59
void GetCellPoints(vtkIdType, vtkIdList *idList) override
This method resets parameter idList, as there is no cell in a vtkPointSet.
void CopyStructure(vtkDataSet *pd) override
Copy the geometric structure of an input point set object.
void Initialize() override
Reset to an empty state and free any memory.
void GetPointCells(vtkIdType, vtkIdList *idList) override
This method resets parameter idList, as there is no cell in a vtkPointSet.
static vtkPointSet * ExtendedNew()
void BuildPointLocator()
Build the internal point locator .
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for type information and printing.
~vtkPointSet() override
void ShallowCopy(vtkDataObject *src) override
Shallow and Deep copy.
bool UsesGarbageCollector() const override
Overwritten to handle the data/locator loop.
vtkIdType GetCellSize(vtkIdType) override
This method always returns 1, as all cells are point in a pure vtkPointSet.
vtkCellIterator * NewCellIterator() override
Return an iterator that traverses the cells in this data set.
vtkIdType FindPoint(double x[3]) override
See vtkDataSet for additional information.
static vtkPointSet * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
static vtkPointSet * New()
Standard instantiation method.
vtkIdType FindCell(double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
See vtkDataSet for additional information.
vtkAbstractPointLocator * PointLocator
void BuildLocator()
Build the internal point locator .
vtkIdType FindCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
See vtkDataSet for additional information.
vtkAbstractCellLocator * CellLocator
void BuildCellLocator()
Build the cell locator.
vtkPoints * Points
vtkIdType GetNumberOfCells() override
This method always returns 0, as there are no cells in a vtkPointSet.
static vtkPointSet * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
vtkIdType GetNumberOfPoints() override
See vtkDataSet for additional information.
void DeepCopy(vtkDataObject *src) override
Shallow and Deep copy.
void GetPoint(vtkIdType ptId, double x[3]) override
See vtkDataSet for additional information.
void ReportReferences(vtkGarbageCollector *) override
void GetCell(vtkIdType, vtkGenericCell *cell) override
This method sets cell to be an empty cell.
vtkCell * GetCell(vtkIdType) override
This method always return a vtkEmptyCell, as there is no cell in a vtkPointSet.
int GetCellType(vtkIdType) override
This method always returns VTK_EMPTY_CELL, as there is no cell in a vtkPointSet.
int GetDataObjectType() VTK_FUTURE_CONST override
Standard vtkDataSet API methods.
Definition vtkPointSet.h:78
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
int GetMaxCellSize() override
This method always returns 0, as there are no cells in a vtkPointSet.
double * GetPoint(vtkIdType ptId) override
See vtkDataSet for additional information.
represent and manipulate 3D points
Definition vtkPoints.h:30
vtkIdType GetNumberOfPoints() const
Return number of points in array.
Definition vtkPoints.h:122
@ VTK_EMPTY_CELL
Definition vtkCellType.h:37
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
@ VTK_POINT_SET
Definition vtkType.h:85
#define VTK_SIZEHINT(...)
#define VTK_MARSHAL_EXCLUDE_REASON_NOT_SUPPORTED
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)