Things I don't like about them being separate:
- The classes in each one handle different tasks but
- Their use is actually related (e.g. would have been handy to have normal handler classes in the algorithms sub-classes (from ConstraintGeometry to CollisionAlgorithm))
- Needle simulation cannot be done if one plugin is missing. So we have 2 plugins to do one thing, it's not like there is partial functionality with one plugin and the other one enhances it. On top of that, we are not using one of these plugins to do something else that is self-contained and dedicated.
- It forces an upstream/downstream dependency hierarchy that could be handled just as well with CMake files.
Things that are good:
- Distinct classes that are used separately (but not really)?