public ScoreLayoutAlgorithm( StavesMetrics metrics, StaffLinesLayoutAlgorithm staffLinesLayout, LedgerLinesComputation ledgerLinesComputation, BeatGroupLayoutAlgorithm beatGroupLayoutAlgorithm, BeatGroupSpanComputation beatGroupSpanComputation, HorizontalLayoutAlgorithm horizontalLayout, VerticalLayoutAlgorithm verticalLayout, StemsLayoutAlgorithm stemsLayout) { Metrics = metrics; StaffLinesLayout = staffLinesLayout; LedgerLinesComputation = ledgerLinesComputation; VerticalLayout = verticalLayout; StemsLayout = stemsLayout; BeatGroupLayoutAlgorithm = beatGroupLayoutAlgorithm; BeatGroupSpanComputation = beatGroupSpanComputation; HorizontalLayout = horizontalLayout; }
ScoreLayoutAlgorithm CreateLayoutEngine(StavesMetrics metrics) { var staffLinesGeometryBuilder = new StaffLinesLayoutAlgorithm(); var ledgerLinesComputation = new LedgerLinesComputation(); var beatGroupLayoutAlgorithm = new BeatGroupLayoutAlgorithm(); var beatGroupSpanComputation = new BeatGroupSpanComputation(metrics); var horizontalLayout = new HorizontalLayoutAlgorithm(metrics); var verticalLayout = new VerticalLayoutAlgorithm(metrics); var stemLayout = new StemsLayoutAlgorithm(metrics, verticalLayout); return(new ScoreLayoutAlgorithm( metrics, staffLinesGeometryBuilder, ledgerLinesComputation, beatGroupLayoutAlgorithm, beatGroupSpanComputation, horizontalLayout, verticalLayout, stemLayout)); }