UNPKG

webdaw-modules

Version:

a set of modules for building a web-based DAW

55 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSelectedMeasures = void 0; var _2d_1 = require("../util/2d"); var getBoundingBoxMeasure_1 = require("./getBoundingBoxMeasure"); /** * finds all measures that have a overlap with the selection rectangle */ exports.getSelectedMeasures = function (osmd, start, end, upbeat) { if (upbeat === void 0) { upbeat = false; } var boundingBoxes = getBoundingBoxMeasure_1.getBoundingBoxMeasureAll(osmd); // console.log(boundingBoxes); var selectedBars = []; var selection = { x: start.x, y: start.y, width: end.x - start.x, height: end.y - start.y, left: start.x, top: start.y, right: end.x, bottom: end.y, }; // console.log(boundingBoxes[0], selection); boundingBoxes.forEach(function (bbox) { if (_2d_1.hasOverlap(bbox, selection)) { if (bbox.measureNumber) { selectedBars.push(bbox.measureNumber); } } }); if (upbeat) { selectedBars = selectedBars.map(function (b) { return b + 1; }); } // console.log(selectedBars); var barNumbers = []; // add missing bar numbers for (var i = 0; i < selectedBars.length; i++) { var value = selectedBars[i]; barNumbers.push(value); if (i + 1 < selectedBars.length) { var next = selectedBars[i + 1]; // console.log(value, next); while (next - value > 1) { // console.log(value); barNumbers.push(++value); } } } return { barNumbers: barNumbers, boundingBoxes: barNumbers.map(function (num) { return boundingBoxes[num - 1]; }), }; }; //# sourceMappingURL=getSelectedMeasures.js.map