Forthcoming list of TaskGraph Changes
Agglomerating a list of minor TaskGraph changes we should make. Whilst it fits extremely well into imstk there's some changes needed.
- CollisionDetection should not have a TaskNode, it should be decoupled from this. Rather the "interaction" that defines the permutation on the pipeline should provide this node.
- CollisionHandling should also not have a TaskNode for the same reason.
- Interactions should just be SceneObjects and should have a separable TaskGraph. Because all SceneObject TaskGraphs are summed. Currently the interaction nodes are inserted into each SceneObjects subgraph separately, then summed into the final scene task graph. If interactions defined their own graphs, as long as nodes from both objects interacting exist in this graph, they will join when summed into the final graph. This nicely decouples the interactions and SceneObjects.
- CollisionPair might be able to be removed
- A more atomic expression for permuting the task graph should be provided. Like a graph functor or something. Interactions could use these. For instance, I could technically make an "InsertableNode" which defines a preceding node->inserted node->succeeding node, just 3 nodes. Everything can be broken down sets of insertables. When summed they form a final graph.