mirror of
https://github.com/nasa/openmct.git
synced 2024-12-20 13:43:09 +00:00
49560698f6
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.
1.8 KiB
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.