VexFlowMusicSheetDrawer.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import {MusicSheetDrawer} from "../MusicSheetDrawer";
  2. import {RectangleF2D} from "../../../Common/DataObjects/RectangleF2D";
  3. import {StaffMeasure} from "../StaffMeasure";
  4. import {VexFlowMeasure} from "./VexFlowMeasure";
  5. import {GraphicalMusicSheet} from "../GraphicalMusicSheet";
  6. /**
  7. * Created by Matthias on 22.06.2016.
  8. */
  9. export class VexFlowMusicSheetDrawer extends MusicSheetDrawer {
  10. constructor() {
  11. super();
  12. this.canvas = document.createElement("canvas");
  13. document.body.appendChild(this.canvas);
  14. this.canvas.width = this.canvas.height = 10000;
  15. }
  16. private canvas: HTMLCanvasElement;
  17. public drawSheet(graphicalMusicSheet: GraphicalMusicSheet): void {
  18. let h1: Element = document.createElement("h1");
  19. h1.textContent = "VexFlowMusicSheetDrawer Output";
  20. document.body.appendChild(h1);
  21. super.drawSheet(graphicalMusicSheet);
  22. }
  23. protected drawMeasure(measure: StaffMeasure): void {
  24. (measure as any).stave.setY(measure.PositionAndShape.AbsolutePosition.y);
  25. (measure as any).stave.setX(measure.PositionAndShape.AbsolutePosition.x);
  26. //this.stave.setX(x);
  27. return (measure as VexFlowMeasure).draw(this.canvas);
  28. }
  29. protected applyScreenTransformation(rectangle: RectangleF2D): RectangleF2D {
  30. throw new Error("not implemented");
  31. }
  32. }