------------------------------------------------------------------------------
| 654 | |
| 655 | //------------------------------------------------------------------------------ |
| 656 | vtkSmartPointer<vtkTypeUInt32Array> vtkObjectManager::GetAllDependenciesAsVTKDataArray( |
| 657 | vtkTypeUInt32 identifier) |
| 658 | { |
| 659 | auto root = identifier; |
| 660 | std::deque<vtkTypeUInt32> traversealDeque; |
| 661 | std::unordered_set<vtkTypeUInt32> visited; |
| 662 | auto result = vtk::TakeSmartPointer(vtkTypeUInt32Array::New()); |
| 663 | result->SetNumberOfComponents(1); |
| 664 | traversealDeque.push_back(root); |
| 665 | while (!traversealDeque.empty()) |
| 666 | { |
| 667 | const auto front = traversealDeque.front(); |
| 668 | traversealDeque.pop_front(); |
| 669 | if (visited.insert(front).second && |
| 670 | (front != vtkObjectManager::ROOT())) // avoids placing the 0 in result |
| 671 | { |
| 672 | result->InsertNextValue(front); |
| 673 | } |
| 674 | for (auto& dep : this->Context->GetDirectDependencies(front)) |
| 675 | { |
| 676 | if (visited.count(dep) == 0) |
| 677 | { |
| 678 | traversealDeque.push_back(dep); |
| 679 | } |
| 680 | } |
| 681 | } |
| 682 | return result; |
| 683 | } |
| 684 | |
| 685 | //------------------------------------------------------------------------------ |
| 686 | void vtkObjectManager::UpdateObjectsFromStates() |
no test coverage detected