Skip to content

Reworking cell links classes for performance and consistent API

vtkStaticCellLinks has been rewritten using std::atomic and vtkSMPTools for an ~10x speed improvement. Some clean up and improvements to the API, including classes that use cell links were also made. An additional construct is the notion of a dataset being "editable". That is, after a dataset is constructed, it is assumed non-editable if no further modifications to the geometry and topology are made. This allows the use of static locators and cell links classes. If editable, then the old vtkCellLinks and vtkPointLocators are used, and certain editing methods in the dataset API are allowed.

Additional changes include using vtkStaticPointLocator for non-editable classes. Some of the API related to cell links has also been cleaned up. Notably, GetPointCells(ptId, npts, cells) uses vtkIdType for npts type - previously it was unsigned short int which was a holdover from days when the number of cells using a point was represented as unsigned short.

Edited by Will Schroeder

Merge request reports