Merged requested to merge andrew.wilson/iMSTK:PhysicsUpdateRefactor into master
Further modularization of the physics pipeline in Imstk using a computational graph to add task based parallelism and configuration of the pipeline.
- Flips dependency of Solvers & DynamicalModels avoiding a circular dependency and default solvers
- Pbd reset bug fix
- Pbd performance improvement
- Pbd collision bug fixes
- Pbd constraints moved out of DynamicalModels
- Breaks physics update into computational steps adding the imstkComputeGraph
- Adds tbb based parallelism for this graph, all objects may now run in parallel until they interact which then establishes sync points. Can be turned off, which instead topologically sorts the graph and executes sequentially.
- SPH takes special advantage of this doing numerous steps in its own subgraph.
- Greatly changes how interactions are accomplished to handle them in a parallel manner
- Adds benchmarking of each computational step, displaying each's elapsed time in a real time bar graph
- Conformance with Solvers and DynamicalModels
- Scene's no longer contain solvers
- SceneObjects now update (in parallel) (for scripting movement/animation other in the loop updates you may need)
- All SceneObjects reset on Scene reset now, not just those of specific types
- PbdRigidObject removed