openmct/platform/features/plot/README.md
Pete Richards 49560698f6 [Reorg] Make timeline-specific chart directive
Make a separate chart directive for drawing resource graphs in timelines.  This
is in preparation for a new plot bundle which will make a large number of
changes to the drawing API to support newly requested features.  By separating
code, there will be no impact to the timeline when the new plot features are
added.
2017-01-17 09:59:00 -08:00

1.8 KiB

Plot README

Chart

The mct-chart directive is used to support drawing of simple charts. It is present to support the Plot view, and its functionality is limited to the functionality that is relevant for that view.

This directive is used at the element level and takes one attribute, draw which is an Angular expression which will should evaluate to a drawing object. This drawing object should contain the following properties:

  • dimensions: The size, in logical coordinates, of the chart area. A two-element array or numbers.
  • origin: The position, in logical coordinates, of the lower-left corner of the chart area. A two-element array or numbers.
  • lines: An array of lines (e.g. as a plot line) to draw, where each line is expressed as an object containing:
    • buffer: A Float32Array containing points in the line, in logical coordinates, in sequential x,y pairs.
    • color: The color of the line, as a four-element RGBA array, where each element is a number in the range of 0.0-1.0.
    • points: The number of points in the line.
  • boxes: An array of rectangles to draw in the chart area. Each is an object containing:
    • start: The first corner of the rectangle, as a two-element array of numbers, in logical coordinates.
    • end: The opposite corner of the rectangle, as a two-element array of numbers, in logical coordinates. color : The color of the line, as a four-element RGBA array, where each element is a number in the range of 0.0-1.0.

While mct-chart is intended to support plots specifically, it does perform some useful management of canvas objects (e.g. choosing between WebGL and Canvas 2D APIs for drawing based on browser support) so its usage is recommended when its supported drawing primitives are sufficient for other charting tasks.