These are quite big changes but they actually make the implementation of Instrument simpler and cleaner. You can now add new controls to an existing Instrument instance and connect them to built-in controls. There is also support for 2D controls and an axis manager that can convert between different coordinate systems. The current implementation of AxisManager does not do any conversions, but everything is prepared for it to do so which should make implementing it straightforward if we need it.
I also added some tests for the new Control/2DControl/AxisManager system.
These are quite big changes but they actually make the implementation of
Instrument
simpler and cleaner. You can now add new controls to an existingInstrument
instance and connect them to built-in controls. There is also support for 2D controls and an axis manager that can convert between different coordinate systems. The current implementation ofAxisManager
does not do any conversions, but everything is prepared for it to do so which should make implementing it straightforward if we need it. I also added some tests for the new Control/2DControl/AxisManager system.