Ticket #820 (closed task: fixed)
Adapt OWGraph and Curve to support non-cartesian axes
|Reported by:||Noughmad||Owned by:||Noughmad|
The Curve class in C++ uses a QTransform() to transform from data coordinates to graph coordinates. This is faster than using a custom functions, and much less complicated because it avoids the need to call Python functions from C++. However, it doesn't support arbitrary transformations, like the ones needed for LinProj, RadViz and PolyViz classes.
To make sure that Curve gets a set of (x,y) data points, the transformation from data values to (x,y) values should happen in OWGraph. In the current implementations, this is a responsibility of individual visualizations. But this means duplicated code, the visualizations should only provide a set of axes (subclasses of Axis), which will be used by OWGraph when mapping to graph coordinates.
To minimize duplication, the general part of this functionality will be in OWGraph, while the visualization-specific part will be provided by custom Axis subclasses.