| 553 | } |
| 554 | |
| 555 | mitk::DataStorage::SetOfObjects::ConstPointer mitk::LevelWindowManager::GetRelevantNodes() const |
| 556 | { |
| 557 | if (m_DataStorage.IsNull()) |
| 558 | { |
| 559 | return DataStorage::SetOfObjects::ConstPointer(DataStorage::SetOfObjects::New()); |
| 560 | } |
| 561 | |
| 562 | auto notBinary = NodePredicateProperty::New("binary", BoolProperty::New(false)); |
| 563 | auto hasLevelWindow = NodePredicateProperty::New("levelwindow", nullptr); |
| 564 | |
| 565 | auto isImage = NodePredicateDataType::New("Image"); |
| 566 | auto isDImage = NodePredicateDataType::New("DiffusionImage"); |
| 567 | auto isTImage = NodePredicateDataType::New("TensorImage"); |
| 568 | auto isOdfImage = NodePredicateDataType::New("OdfImage"); |
| 569 | auto isShImage = NodePredicateDataType::New("ShImage"); |
| 570 | auto predicateTypes = NodePredicateOr::New(); |
| 571 | predicateTypes->AddPredicate(isImage); |
| 572 | predicateTypes->AddPredicate(isDImage); |
| 573 | predicateTypes->AddPredicate(isTImage); |
| 574 | predicateTypes->AddPredicate(isOdfImage); |
| 575 | predicateTypes->AddPredicate(isShImage); |
| 576 | |
| 577 | NodePredicateAnd::Pointer predicate = NodePredicateAnd::New(); |
| 578 | predicate->AddPredicate(notBinary); |
| 579 | predicate->AddPredicate(hasLevelWindow); |
| 580 | predicate->AddPredicate(predicateTypes); |
| 581 | |
| 582 | DataStorage::SetOfObjects::ConstPointer relevantNodes = m_DataStorage->GetSubset(predicate); |
| 583 | |
| 584 | return relevantNodes; |
| 585 | } |
| 586 | |
| 587 | void mitk::LevelWindowManager::UpdateObservers() |
| 588 | { |