chart-fx
chart-fx copied to clipboard
Notes for future work past 11.3
Here are some notes for low-priority things that may be good to be addressed at some point in the future:
Axis
- [ ] The code for determining the Axis scale/ticks/range should be cleaned up. At the moment there are many different overloads and it is unclear when to use which.
- [ ] Fix OscilloscopeAxis zero offset
- [ ] The tick generation should be easier to extend. Setting the ticks should not require creating a new axis.
- [ ] The tick generator should generate decomposed doubles w/o rounding errors and explicitly set precision. This would make the string conversion easier and fix some issues with rounding errors around zero.
- [ ] The grid should be drawn within the Axes. That'd make it easier to support grids for multiple axes with different colors
- [ ] Change autoRanging / growRanging / user to be an enum rather than two mutually exclusive booleans
- [ ] make min/max/tickUnit properties ReadOnly to match scale and length. Alternatively, make them bindable and throw an error if the properties get bound while auto-ranging is enabled
Renderer
- [ ] Replace the axisList inside Renderers with dedicated setXAxis() / setYAxis()
DataSet
- [ ] Provide a batch export (e.g.,
DataSet::export(DataExport)) so that data can be exported more efficiently (memcpy) than looping overgetX(i) / getY(i). The result would be something like a more generic version of theCachedDataPointsin theErrorDataSetRenderer.
Chart
- [ ] Make colors looked-up colors and natively support AtlantaFX and Modena-style themes
- [ ] Remove deprecated
Chart::getAllDataSetsandChart::getDataSets? Maybe also remove the default renderer?
Sampler
- [ ] Maybe migrate from the FXSampler to the AtlantaFX sampler?
- [ ] Add examples for an ImageRenderer and an OpenGL line renderer
I just noticed that the thread pool in HdrHistogramRecorder#L115 is not using daemon threads. That needs to be fixed.