UNPKG

rms-sparklines

Version:
73 lines (61 loc) 2.66 kB
// Copyright2018 Rodrigo Silveira // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // the Software, and to permit persons to whom the Software is furnished to do so, // subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. import { Matrix } from 'mathjs'; import {Coordinates3DEnum} from './coordinates-3D-enum'; export class Bar3d { lowerLeft: Matrix; upperRight: Matrix; fillColor: string; originalHeight: number; constructor(lowerLeft: Matrix, upperRight: Matrix, fillColor: string, originalHeight: number) { this.lowerLeft = lowerLeft; this.upperRight = upperRight; this.fillColor = fillColor; this.originalHeight = originalHeight; } getWidth(): number { const ll: any = this.lowerLeft.toArray(); const ur: any = this.upperRight.toArray(); let width: any; width = ur[Coordinates3DEnum.X] - ll[Coordinates3DEnum.X]; return width; } getLowerLeftX(): number { const ll: any = this.lowerLeft.toArray(); return ll[Coordinates3DEnum.X]; } getLowerLeftY(): number { const ll: any = this.lowerLeft.toArray(); return ll[Coordinates3DEnum.Y]; } getHeight(): number { const ll: any = this.lowerLeft.toArray(); const ur: any = this.upperRight.toArray(); let height: any; height = ur[Coordinates3DEnum.Y] - ll[Coordinates3DEnum.Y]; return height; } draw(ctx: CanvasRenderingContext2D) { const ll: any = this.lowerLeft.toArray(); const width: any = this.getWidth(); const height: any = this.getHeight(); ctx.fillStyle = this.fillColor; ctx.fillRect(ll[Coordinates3DEnum.X], ll[Coordinates3DEnum.Y], width, height); } }