VTK  9.5.20250606
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
82#ifndef vtkPointSet_h
83#define vtkPointSet_h
84
85#include "vtkCommonDataModelModule.h" // For export macro
86#include "vtkDataSet.h"
87#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
88
89#include "vtkCellTypes.h" // For GetCellType
90#include "vtkGenericCell.h" // For GetCell
91#include "vtkPoints.h" // Needed for inline methods
92
93VTK_ABI_NAMESPACE_BEGIN
96
97class VTKCOMMONDATAMODEL_EXPORT VTK_MARSHALAUTO vtkPointSet : public vtkDataSet
98{
99public:
103 static vtkPointSet* New();
105
107
110 vtkTypeMacro(vtkPointSet, vtkDataSet);
111 void PrintSelf(ostream& os, vtkIndent indent) override;
113
117 int GetDataObjectType() VTK_FUTURE_CONST override { return VTK_POINT_SET; }
118
120
129 vtkSetMacro(Editable, bool);
130 vtkGetMacro(Editable, bool);
131 vtkBooleanMacro(Editable, bool);
133
137 void Initialize() override;
138
142 void CopyStructure(vtkDataSet* pd) override;
143
145
148 vtkIdType GetNumberOfPoints() override;
149 void GetPoint(vtkIdType ptId, double x[3]) override { this->Points->GetPoint(ptId, x); }
150 vtkIdType FindPoint(double x[3]) override;
151 vtkIdType FindCell(double x[3], vtkCell* cell, vtkIdType cellId, double tol2, int& subId,
152 double pcoords[3], double* weights) override;
153 vtkIdType FindCell(double x[3], vtkCell* cell, vtkGenericCell* gencell, vtkIdType cellId,
154 double tol2, int& subId, double pcoords[3], double* weights) override;
156
158
161 vtkIdType GetNumberOfCells() override { return 0; }
162 int GetMaxCellSize() override { return 0; }
164
165 using Superclass::GetCell;
171
173
177 void GetCellPoints(vtkIdType, vtkIdList* idList) override { idList->Reset(); }
178 void GetPointCells(vtkIdType, vtkIdList* idList) override { idList->Reset(); }
180
184 void GetCell(vtkIdType, vtkGenericCell* cell) override { cell->SetCellTypeToEmptyCell(); }
185
190 int GetCellType(vtkIdType) override { return VTK_EMPTY_CELL; }
191
196 vtkIdType GetCellSize(vtkIdType) override { return 1; }
197
204 double* GetPoint(vtkIdType ptId) VTK_SIZEHINT(3) override { return this->Points->GetPoint(ptId); }
205
210
212
217 void BuildLocator() { this->BuildPointLocator(); }
219
225
227
234 virtual void SetPointLocator(vtkAbstractPointLocator*);
236 vtkGetObjectMacro(PointLocator, vtkAbstractPointLocator);
238
240
245 virtual void SetCellLocator(vtkAbstractCellLocator*);
247 vtkGetObjectMacro(CellLocator, vtkAbstractCellLocator);
249
253 vtkMTimeType GetMTime() override;
254
258 void ComputeBounds() override;
259
263 void Squeeze() override;
264
266
269 virtual void SetPoints(vtkPoints*);
270 vtkPoints* GetPoints() override { return this->Points; }
272
281 unsigned long GetActualMemorySize() override;
282
284
287 void ShallowCopy(vtkDataObject* src) override;
288 void DeepCopy(vtkDataObject* src) override;
290
292
295 bool UsesGarbageCollector() const override { return true; }
297
299
305
306protected:
308 ~vtkPointSet() override;
309
314
316
317private:
318 void Cleanup();
319
320 vtkPointSet(const vtkPointSet&) = delete;
321 void operator=(const vtkPointSet&) = delete;
322};
323
325{
326 if (this->Points)
327 {
328 return this->Points->GetNumberOfPoints();
329 }
330 else
331 {
332 return 0;
333 }
334}
335
336VTK_ABI_NAMESPACE_END
337#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:130
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:165
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:133
void Reset()
Reset to an empty state but retain previously allocated memory.
Definition vtkIdList.h:244
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete class for storing a set of points
Definition vtkPointSet.h:98
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.
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:139
vtkIdType GetNumberOfPoints() const
Return number of points in array.
Definition vtkPoints.h:231
@ 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)