Tie.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import {Note} from "./Note";
  2. import {Beam} from "./Beam";
  3. import {Fraction} from "../../Common/DataObjects/fraction";
  4. import {Tuplet} from "./Tuplet";
  5. // FIXME: Missing Slur class
  6. type Slur = any;
  7. export class Tie {
  8. constructor(note: Note) {
  9. this.start = note;
  10. }
  11. private start: Note;
  12. private tieBeam: Beam;
  13. private beamStartTimestamp: Fraction;
  14. private tieTuplet: Tuplet;
  15. private tieEndingSlur: Slur;
  16. private tieStartingSlur: Slur;
  17. private fractions: Fraction[] = [];
  18. private noteHasBeenCreated: boolean[] = [];
  19. private baseNoteYPosition: number;
  20. public get Start(): Note {
  21. return this.start;
  22. }
  23. public set Start(value: Note) {
  24. this.start = value;
  25. }
  26. public get TieBeam(): Beam {
  27. return this.tieBeam;
  28. }
  29. public set TieBeam(value: Beam) {
  30. this.tieBeam = value;
  31. }
  32. public get BeamStartTimestamp(): Fraction {
  33. return this.beamStartTimestamp;
  34. }
  35. public set BeamStartTimestamp(value: Fraction) {
  36. this.beamStartTimestamp = value;
  37. }
  38. public get TieTuplet(): Tuplet {
  39. return this.tieTuplet;
  40. }
  41. public set TieTuplet(value: Tuplet) {
  42. this.tieTuplet = value;
  43. }
  44. public get TieEndingSlur(): Slur {
  45. return this.tieEndingSlur;
  46. }
  47. public set TieEndingSlur(value: Slur) {
  48. this.tieEndingSlur = value;
  49. }
  50. public get TieStartingSlur(): Slur {
  51. return this.tieStartingSlur;
  52. }
  53. public set TieStartingSlur(value: Slur) {
  54. this.tieStartingSlur = value;
  55. }
  56. public get Fractions(): Fraction[] {
  57. return this.fractions;
  58. }
  59. public set Fractions(value: Fraction[]) {
  60. this.fractions = value;
  61. }
  62. public get NoteHasBeenCreated(): boolean[] {
  63. return this.noteHasBeenCreated;
  64. }
  65. public set NoteHasBeenCreated(value: boolean[]) {
  66. this.noteHasBeenCreated = value;
  67. }
  68. public get BaseNoteYPosition(): number {
  69. return this.baseNoteYPosition;
  70. }
  71. public set BaseNoteYPosition(value: number) {
  72. this.baseNoteYPosition = value;
  73. }
  74. public initializeBoolList(): void {
  75. this.noteHasBeenCreated = [];
  76. for (let idx: number = 0, len: number = this.fractions.length; idx < len; ++idx) {
  77. // let fraction: Fraction = this.fractions[idx];
  78. this.noteHasBeenCreated.push(false);
  79. }
  80. }
  81. public allGraphicalNotesHaveBeenCreated(): boolean {
  82. for (let idx: number = 0, len: number = this.noteHasBeenCreated.length; idx < len; ++idx) {
  83. if (!this.noteHasBeenCreated[idx]) { return false; }
  84. }
  85. return true;
  86. }
  87. }