GraphicalOctaveShift.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {GraphicalObject} from "./GraphicalObject";
  2. import {OctaveShift, OctaveEnum} from "../VoiceData/Expressions/ContinuousExpressions/OctaveShift";
  3. import {BoundingBox} from "./BoundingBox";
  4. import {MusicSymbol} from "./MusicSymbol";
  5. import {ArgumentOutOfRangeException} from "../Exceptions";
  6. import {PointF2D} from "../../Common/DataObjects/PointF2D";
  7. /**
  8. * The graphical counterpart of an [[OctaveShift]]
  9. */
  10. export class GraphicalOctaveShift extends GraphicalObject {
  11. constructor(octaveShift: OctaveShift, parent: BoundingBox) {
  12. super();
  13. this.getOctaveShift = octaveShift;
  14. this.setSymbol();
  15. // ToDo: set the size again due to the given symbol...
  16. //this.PositionAndShape = new BoundingBox(parent, this.octaveSymbol, this);
  17. this.PositionAndShape = new BoundingBox(this, parent);
  18. }
  19. public getOctaveShift: OctaveShift;
  20. public octaveSymbol: MusicSymbol;
  21. public dashesStart: PointF2D;
  22. public dashesEnd: PointF2D;
  23. public endsOnDifferentStaffLine: boolean;
  24. public isFirstPart: boolean;
  25. public isSecondPart: boolean;
  26. private setSymbol(): void {
  27. switch (this.getOctaveShift.Type) {
  28. case OctaveEnum.VA8:
  29. this.octaveSymbol = MusicSymbol.VA8;
  30. break;
  31. case OctaveEnum.VB8:
  32. this.octaveSymbol = MusicSymbol.VB8;
  33. break;
  34. case OctaveEnum.MA15:
  35. this.octaveSymbol = MusicSymbol.MA15;
  36. break;
  37. case OctaveEnum.MB15:
  38. this.octaveSymbol = MusicSymbol.MB15;
  39. break;
  40. default:
  41. throw new ArgumentOutOfRangeException("");
  42. }
  43. }
  44. }