.. just a simple indicator in the x-axis for now
when points are selected. may extend to the y-axis
as well.
.. lots more to come on smart guides but needs a lot
of thought and play time.
.. refactor as paint based approach was awful
from a utility and performance perspective.
Even though it was just a UX experiment it
bombed to CPU on Linux and Windows.
.. the toolbar draw/select buttons now set the mode.
.. in select mode you can select points (same as holding
shift whilst in draw mode).
.. this is just to make the UX less complex for casual users.
.. for now pressing SHIFT and CLICK will enable
selecting points.
shift-click when hovering on a point will toggle
selection of that point
shift-click in space will start a rectangle select
tool; as it drags it will select points within it.
hitting the ESC key will clear all selections.
.. the toolbar button "Select" needs to be integrated
into this scheme so users don't need to know about
the ability to select with the shift key (as we had
this before with intervals and it wasn't intuitive
to casual users).
.. we calculate for ourselves since its probably
quite expensive to calculate every metric.
.. could look to use the metric factory in the future
if we want to make these metrics more configurable
.. we only have two commands; create and move point
but baking this in early so we can adopt it for
all other commands as they arrive.
.. due to the interactive nature of a graphical editor
the command class behaves differently to the one
used on the ride data editor; commands are added to
the stack when they complete (so move point isn't a
history of the mouse cursor moving its just the begin
and end point).
.. initial code to display an ERG file for editing
.. this just introduces the basic model for rendering
the erg file and loading the model.
.. the interaction model using a 'points' editor will
follow next and then one to use 'blocks'.
.. There is a LONG way to go, this commit is just to
put a checkpoint down and test across platforms