| 740 | void Initialize() { this->PtIds.Local().TakeReference(vtkIdList::New()); } |
| 741 | |
| 742 | void operator()(vtkIdType cellId, vtkIdType endCellId) |
| 743 | { |
| 744 | auto& ptIds = this->PtIds.Local(); |
| 745 | bool isFirst = vtkSMPTools::GetSingleThread(); |
| 746 | for (; cellId < endCellId; ++cellId) |
| 747 | { |
| 748 | if (isFirst) |
| 749 | { |
| 750 | this->Filter->CheckAbort(); |
| 751 | } |
| 752 | if (this->Filter->GetAbortOutput()) |
| 753 | { |
| 754 | break; |
| 755 | } |
| 756 | // Handle ghost cells here. Another option was used cellVis array. |
| 757 | if (this->CellGhosts && this->CellGhosts[cellId] & vtkDataSetAttributes::DUPLICATECELL) |
| 758 | { // Do not create surfaces in outer ghost cells. |
| 759 | continue; |
| 760 | } |
| 761 | |
| 762 | // Get the ijk to see if this cell is on the boundary of the structured data. |
| 763 | vtkIdType faceMark; |
| 764 | int ijk[3]; |
| 765 | vtkStructuredData::ComputeCellStructuredCoords(cellId, this->Dims, ijk); |
| 766 | if ((faceMark = this->ProcessCell(cellId, ijk, ptIds)) > 0) |
| 767 | { // on boundary |
| 768 | this->MarkStructuredCell(cellId, faceMark, ptIds); |
| 769 | } |
| 770 | } // for all cells in this batch |
| 771 | } // operator() |
| 772 | |
| 773 | void Reduce() {} |
| 774 | }; |
nothing calls this directly
no test coverage detected