Drawing axes (and values on them) is not unified. For instance, the Track Viewer (Issue #59) first draws a timeline, and then completely independently on it draws all assets, mimicking the formulas used in the timeline to translate time to pixels. Another example is the track Scatter Plot with two orthogonal axes (for time and counts) into which a set of fluxes is drawn using a formula that is completely independent on the two orthogonal axes.
This is wrong because once the formula for translating values (e.g. the above time) to pixels changes, then all custom measurements will go off sync with the instance of the axis (e.g. the above timeline in the Track Viewer). Tightly coupled with axes is charting which should be fully revised as for further usability and agile style of code.
The following is a list of mandatory modifications. But any further improvements regarding the various instances of axes should also be committed into this issue.
Must be able to draw only part of an axis.
An axis must provide methods to translate an input value to a client pixel (or logical unit), and vice versa.
An axis should provide helper methods to draw "primitives," e.g. perpendicular lines or text.
Must completely revise the Charting namespace.
Must revise the usage of a timeline in the Track Map tab.
Drawing axes (and values on them) is not unified. For instance, the Track Viewer (Issue #59) first draws a timeline, and then completely independently on it draws all assets, mimicking the formulas used in the timeline to translate time to pixels. Another example is the track Scatter Plot with two orthogonal axes (for time and counts) into which a set of fluxes is drawn using a formula that is completely independent on the two orthogonal axes.
This is wrong because once the formula for translating values (e.g. the above time) to pixels changes, then all custom measurements will go off sync with the instance of the axis (e.g. the above timeline in the Track Viewer). Tightly coupled with axes is charting which should be fully revised as for further usability and agile style of code.
The following is a list of mandatory modifications. But any further improvements regarding the various instances of axes should also be committed into this issue.