1234567891011121314151617181920212223242526272829303132333435363738 |
- import { GraphicalObject } from "./GraphicalObject";
- import { GraphicalLabel } from "./GraphicalLabel";
- import { StaffLine } from "./StaffLine";
- import { BoundingBox } from "./BoundingBox";
- import { AbstractExpression, PlacementEnum } from "../VoiceData/Expressions/AbstractExpression";
- import { EngravingRules } from "./EngravingRules";
- import { SourceMeasure } from "../VoiceData";
- export abstract class AbstractGraphicalExpression extends GraphicalObject {
- protected label: GraphicalLabel;
- protected parentStaffLine: StaffLine;
- /** Internal cache of read expression */
- protected expression: AbstractExpression;
- /** EngravingRules for positioning */
- protected rules: EngravingRules;
- protected parentMeasure: SourceMeasure;
- constructor(parentStaffline: StaffLine, expression: AbstractExpression, measure: SourceMeasure) {
- super();
- this.expression = expression;
- this.parentMeasure = measure; // could be undefined!
- this.boundingBox = new BoundingBox(this, parentStaffline.PositionAndShape);
- this.parentStaffLine = parentStaffline;
- this.parentStaffLine.AbstractExpressions.push(this);
- this.rules = parentStaffline.ParentMusicSystem.rules;
- }
- /** Graphical label of the expression if available */
- get Label(): GraphicalLabel { return this.label; }
- /** Staffline where the expression is attached to */
- public get ParentStaffLine(): StaffLine { return this.parentStaffLine; }
- public get SourceExpression(): AbstractExpression { return this.expression; }
- public get Placement(): PlacementEnum { return this.expression.Placement; }
- //#region abstract methods
- public abstract updateSkyBottomLine(): void;
- //#endregion
- }
|