123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import {StaffMeasure} from "./StaffMeasure";
- import {StaffLine} from "./StaffLine";
- import {MusicSystem} from "./MusicSystem";
- import {SystemLinePosition} from "./SystemLinePosition";
- import {SystemLinesEnum} from "./SystemLinesEnum";
- import {BoundingBox} from "./BoundingBox";
- import {GraphicalObject} from "./GraphicalObject";
- import {EngravingRules} from "./EngravingRules";
- export class SystemLine extends GraphicalObject {
- constructor(lineType: SystemLinesEnum, linePosition: SystemLinePosition, musicSystem: MusicSystem,
- topMeasure: StaffMeasure, bottomMeasure: StaffMeasure = undefined) {
- super();
- this.lineType = lineType;
- this.linePosition = linePosition;
- this.parentMusicSystem = musicSystem;
- this.topMeasure = topMeasure;
- this.bottomMeasure = bottomMeasure;
- this.parentTopStaffLine = topMeasure.ParentStaffLine;
- this.boundingBox = new BoundingBox(this, musicSystem.PositionAndShape);
- }
- public lineType: SystemLinesEnum;
- public linePosition: SystemLinePosition;
- public parentMusicSystem: MusicSystem;
- public parentTopStaffLine: StaffLine;
- public topMeasure: StaffMeasure;
- public bottomMeasure: StaffMeasure;
- public static getObjectWidthForLineType(rules: EngravingRules, systemLineType: SystemLinesEnum): number {
- switch (systemLineType) {
- case SystemLinesEnum.SingleThin:
- return rules.SystemThinLineWidth;
- case SystemLinesEnum.DoubleThin:
- return rules.SystemThinLineWidth * 2 + rules.DistanceBetweenVerticalSystemLines;
- case SystemLinesEnum.ThinBold:
- return rules.SystemThinLineWidth + rules.SystemBoldLineWidth + rules.DistanceBetweenVerticalSystemLines;
- case SystemLinesEnum.BoldThinDots:
- return rules.SystemThinLineWidth + rules.SystemBoldLineWidth + rules.DistanceBetweenVerticalSystemLines + rules.SystemDotWidth +
- rules.DistanceBetweenDotAndLine;
- case SystemLinesEnum.DotsThinBold:
- return rules.SystemThinLineWidth + rules.SystemBoldLineWidth + rules.DistanceBetweenVerticalSystemLines + rules.SystemDotWidth +
- rules.DistanceBetweenDotAndLine;
- case SystemLinesEnum.DotsBoldBoldDots:
- return 2 * rules.SystemBoldLineWidth + 2 * rules.SystemDotWidth + 2 * rules.DistanceBetweenDotAndLine +
- rules.DistanceBetweenVerticalSystemLines;
- default:
- return 0;
- }
- }
- }
|