Frequently used node predicates, e.g. for filtering Images / Segmentations, non-helper-nodes etc. are used at different locations. It might make sense to find these locations and provide a global location for standard node predicates.
Using classes for node predicate definition instead of string would be preferred, so we need to clarify where to put the node predicates such that all required classes are known (e.g. mitk::TNodePredicateDataType<mitk::Image>::New() instead of mitk::NodePredicateDataType::New("Image")).
Description
Related Objects
Event Timeline
I would like to discuss the possibilities again since this it is a common thing that the same node predicates are defined over and over again in different classes.
Maybe someone can take the time and invest in some research to find possible solutions:
Main problem here (also mentioned partially in T27133#226601): If we want to have type NodePredicates (e.g. mitk::TNodePredicateDataType<mitk::Image>::New() instead of mitk::NodePredicateDataType::New("Image") - see task description), we need to have the dependencies to the required data type.
It might be helpful to create a list of data taypes used for NodePredicates inside MITK and list in which modules these data types are located.
This task was closed here on Phabricator since it was migrated to GitLab. Please continue on GitLab.