Difference between revisions of "TAChart Roadmap"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "Below is a list of items that would be good to have in TAChart. Some of them are planned for implementation by the current maintainer, others will require patches from int...")
(No difference)

Revision as of 05:52, 14 October 2012

Below is a list of items that would be good to have in TAChart. Some of them are planned for implementation by the current maintainer, others will require patches from interested contributors.

Editors

  • TChartExtent editor
  • series index list editor
  • ListSource.DataPoints editor: intergate with YCount
  • marks.format/style editor
  • margins editor
  • subcomponent editor
    • add shortcuts, use actions
    • convert to grid/checklist, show enabled/active checkboxes

Axises/Transformations

  • finish multiaxis
    • auto-scaling to percent range
    • partial-linear/local zoom transform (?)
    • inverted as transformation (?)
    • logBase 0 => e ?
  • non-decartes axises + XY transform (ternary, polar...)
  • various axis marks steps -- logarithmic etc.
  • fixed start/step interval source (?)
  • use Intrevals.Count in custom source
  • merge Intervals of axis and source (?)
    • advanced axis step controls -- targetStepSize(Pixels/Graph/Axis)...
  • test/fix inverted axis
  • axis.autoscale as a shortcut(?)
  • axis.DateTimeFormat(?)
  • axis.Depth
  • update margins for axis.ZPosition
  • walls
  • YYYMMDD -> datetime transform(?)
  • LineRange(?)
  • arrows: fill color, pixel-symmetrical
  • fixed size/synchronize axis size between linked charts
  • "axis breaks" -- transformation?

Series

  • 3-d series: bubble, box-and-whiskers(?), OHLC(?), func
  • fix 3-d pie series with exploded slices
  • bar: pyramid, code, cylinder, prism, number of faces
  • bug: all-negative area has no zero plane
  • top-down and right-to-left series
  • Z axis, XZ and YZ grids
  • polar axis
  • polar series: labels, brush, pointers
  • TConstantLine.Source -- use X only
  • 3-d surface
  • color map:
    • isolines & labels,
    • gradients,
    • data interpolation, auto-scale colors (thresholds in percent)
    • better design-time display,
    • transparency threshold (?) / ColorSource.Y as opacity (?)
  • range bar series
  • Gantt series (bar.starty, bar.startx, bar.endx)
  • stacked/donut pie series (?)
  • test/fix rotated stacked series
  • subcharts
  • GIS
  • func series: discontinuity pointers
  • slopegraphs, sparklines (?)
  • arrow series
  • use Hare-Niemer integer compensation to make sure that percents always add up to 100% (??)
  • pie chart slice grouping: MinSliceSize (?)
  • ternary charts (?)
  • measurement series
  • support infinity in more series

Legend

  • ColumnPerGroup
  • legend line per stack level
  • legendpanel.autosize -> scrollable with scrollbox
  • different widths for columns
  • arbitrary position

Tools

  • test/fix many charts per toolset
  • remove old reticule
  • xorpen/xortext in all drawers
  • label editor/notes
  • axis tools

Optimization

  • caches: graphpoints, imagepoints, layers/barriers
  • image cache for tools

Sources

  • OO (incompatible?)
  • YList in Marks.Format
  • calculated sources: optimization, sliding median, user-derined filter
  • derivative: Savitzky-Golay, non-equidistant X
  • bug: db-source does not auto-refresh after dataset changes (?)
  • support NaN in all series: func, ...
  • TColorSource (?)

Labels

  • fix labels with NaNs
  • margins
  • more frame shapes: rounded rects, ellipses, callouts
  • fix/improve pie series label positioning
    • "sideband" positioning
    • special label attachments: "center", "side center", "nearest point"
  • auto-position labels: two-level, generic, GA
  • free labels (notes)
  • control label attachment (top, bottom, center, ...)
  • Styles stored false
  • measure non-symmetrical labels correctly

Presentation

  • embellishments: gradient, shadow, glow(?)
    • color->embellishment mapping(?)
  • Generic renderer (?): OpenGL, SVG, true 3-d
  • TCanvas-independent API: TChartPen, TChartBrush, TChartFont
  • panes (??)
  • styles: apply to more series, usecolor, perstack/perpoint
    • embelishments from styles ?

Drawers

  • transparency in all drawers (print, wmf, ...)
  • radial pie in all drawers
  • extract PrepareSimplePen

Chart

  • DepthX/DepthY ...or... CameraVector
  • navigation: "axis scrollbar", CurrentExtentPen, limit navscrollbar to the extent
  • measuring units: pixels, graph, percent

Demos

  • crosshair page in tools demo
  • zerolevel (?)
  • from tutorials

Other

  • warnings (incompatible axises in group, ...)
  • more documentation
  • more tests
  • better icons
  • lazreport integration
  • more tutorials
  • wizards
  • shapes
  • LazLogger
  • better teechart compatibility

Internal

  • AddSubcomponent => SetParentComponent
  • extract TSubcomponentClassRegistry
  • LazFreeType in nogui (or even OpenGL)
  • bresenham in TesselateRadialPie
  • advanced notification