123456789101112131415161718192021222324252627282930313233343536373839 |
- import { StaffLine } from "./StaffLine";
- import { GraphicalLabel } from "./GraphicalLabel";
- import { AbstractGraphicalExpression } from "./AbstractGraphicalExpression";
- import { PlacementEnum, AbstractExpression } from "../VoiceData/Expressions/AbstractExpression";
- import { MultiExpression } from "../VoiceData/Expressions/MultiExpression";
- import { SkyBottomLineCalculator } from "./SkyBottomLineCalculator";
- import log from "loglevel";
- import { SourceMeasure } from "../VoiceData/SourceMeasure";
- export class GraphicalUnknownExpression extends AbstractGraphicalExpression {
- public sourceMultiExpression: MultiExpression;
- constructor(staffLine: StaffLine, label: GraphicalLabel, placement: PlacementEnum, measure: SourceMeasure,
- sourceMultiExpression: MultiExpression = undefined) {
- super(staffLine, new AbstractExpression(placement), measure);
- this.label = label;
- this.sourceMultiExpression = sourceMultiExpression;
- }
- public updateSkyBottomLine(): void {
- // update Sky-BottomLine
- const skyBottomLineCalculator: SkyBottomLineCalculator = this.parentStaffLine.SkyBottomLineCalculator;
- const left: number = this.label.PositionAndShape.RelativePosition.x + this.label.PositionAndShape.BorderMarginLeft;
- const right: number = this.label.PositionAndShape.RelativePosition.x + this.label.PositionAndShape.BorderMarginRight;
- switch (this.Placement) {
- case PlacementEnum.Above:
- const yValueAbove: number = this.label.PositionAndShape.BorderMarginTop + this.label.PositionAndShape.RelativePosition.y;
- skyBottomLineCalculator.updateSkyLineInRange(left, right, yValueAbove);
- break;
- case PlacementEnum.Below:
- const yValueBelow: number = this.label.PositionAndShape.BorderMarginBottom + this.label.PositionAndShape.RelativePosition.y;
- skyBottomLineCalculator.updateBottomLineInRange(left, right, yValueBelow);
- break;
- default:
- log.error("Placement for GraphicalUnknownExpression is unknown");
- }
- }
- }
|