@sudobility/music_drawing 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas-renderer.d.ts +53 -0
- package/dist/canvas-renderer.d.ts.map +1 -1
- package/dist/canvas-renderer.js +123 -2
- package/dist/canvas-renderer.js.map +1 -1
- package/dist/hit-test.d.ts +101 -0
- package/dist/hit-test.d.ts.map +1 -0
- package/dist/hit-test.js +213 -0
- package/dist/hit-test.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +15 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +36 -3
- package/dist/layout.js.map +1 -1
- package/dist/measure-content.d.ts +3 -1
- package/dist/measure-content.d.ts.map +1 -1
- package/dist/measure-content.js +2 -2
- package/dist/measure-content.js.map +1 -1
- package/dist/note-colors.d.ts +55 -0
- package/dist/note-colors.d.ts.map +1 -0
- package/dist/note-colors.js +31 -0
- package/dist/note-colors.js.map +1 -0
- package/dist/note-drag.d.ts +29 -0
- package/dist/note-drag.d.ts.map +1 -0
- package/dist/note-drag.js +27 -0
- package/dist/note-drag.js.map +1 -0
- package/dist/playback-scroll.d.ts +40 -0
- package/dist/playback-scroll.d.ts.map +1 -0
- package/dist/playback-scroll.js +128 -0
- package/dist/playback-scroll.js.map +1 -0
- package/dist/playhead.d.ts +41 -7
- package/dist/playhead.d.ts.map +1 -1
- package/dist/playhead.js +153 -2
- package/dist/playhead.js.map +1 -1
- package/dist/render-theme.d.ts +30 -0
- package/dist/render-theme.d.ts.map +1 -0
- package/dist/render-theme.js +23 -0
- package/dist/render-theme.js.map +1 -0
- package/dist/skia/index.d.ts +1 -0
- package/dist/skia/index.d.ts.map +1 -1
- package/dist/skia/index.js +1 -0
- package/dist/skia/index.js.map +1 -1
- package/dist/skia/skia-api.d.ts +8 -0
- package/dist/skia/skia-api.d.ts.map +1 -1
- package/dist/skia/skia-context.d.ts +1 -0
- package/dist/skia/skia-context.d.ts.map +1 -1
- package/dist/skia/skia-context.js +104 -8
- package/dist/skia/skia-context.js.map +1 -1
- package/dist/stave-header.d.ts +29 -0
- package/dist/stave-header.d.ts.map +1 -0
- package/dist/stave-header.js +122 -0
- package/dist/stave-header.js.map +1 -0
- package/dist/test/fake-skia.d.ts +12 -1
- package/dist/test/fake-skia.d.ts.map +1 -1
- package/dist/test/fake-skia.js +8 -1
- package/dist/test/fake-skia.js.map +1 -1
- package/dist/track-gutter.d.ts +14 -0
- package/dist/track-gutter.d.ts.map +1 -0
- package/dist/track-gutter.js +37 -0
- package/dist/track-gutter.js.map +1 -0
- package/package.json +3 -3
|
@@ -20,11 +20,64 @@ export type CanvasRenderOptions = RenderOptions & {
|
|
|
20
20
|
/** Backing-store scale (window.devicePixelRatio); default 1. The canvas element's width/height must already be sized to cssSize × this. */
|
|
21
21
|
devicePixelRatio?: number;
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Where notes actually live inside a measure.
|
|
25
|
+
*
|
|
26
|
+
* Not the stave box: a measure spends its left edge on clef, key and time
|
|
27
|
+
* signature, and keeps clearance before the closing barline. This is the span
|
|
28
|
+
* a tick should be interpolated across, and `caretPositionForTick` /
|
|
29
|
+
* `tickForPoint` in `playhead.ts` both take it for that reason.
|
|
30
|
+
*
|
|
31
|
+
* **Logical units, unlike `measureIdToBBox` beside it**, which is zoom-scaled
|
|
32
|
+
* CSS px. That is deliberate rather than an oversight: this is a *correction
|
|
33
|
+
* to the layout plan's own `box`, and the plan is logical — as are the
|
|
34
|
+
* playhead functions that consume it, which return a logical x their callers
|
|
35
|
+
* scale. Scaling here would mean handing playhead one logical number and one
|
|
36
|
+
* scaled one for the same measure.
|
|
37
|
+
*/
|
|
38
|
+
export type NoteArea = {
|
|
39
|
+
startX: number;
|
|
40
|
+
endX: number;
|
|
41
|
+
};
|
|
42
|
+
/** One drawn note's score tick and the x VexFlow placed it at. */
|
|
43
|
+
export type TickPosition = {
|
|
44
|
+
tick: number;
|
|
45
|
+
x: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Everything the playhead needs about one drawn measure.
|
|
49
|
+
*
|
|
50
|
+
* `positions` is the load-bearing part and the reason this exists: it is where
|
|
51
|
+
* the noteheads actually went, so the caret and click-to-seek read the same
|
|
52
|
+
* numbers the notes were drawn from rather than approximating them. VexFlow
|
|
53
|
+
* does not space a bar proportionally to ticks — a bar of `q q h` puts its
|
|
54
|
+
* notes where engraving convention wants them, not where arithmetic would — so
|
|
55
|
+
* no interpolation across the bar can agree with the page. Interpolating
|
|
56
|
+
* *between the notes themselves* agrees at every note by construction.
|
|
57
|
+
*
|
|
58
|
+
* `area` covers what the notes cannot say: where the bar's music begins before
|
|
59
|
+
* the first note (a caret at the downbeat of a bar whose first event is late),
|
|
60
|
+
* and where it ends after the last. It is also the whole answer for a measure
|
|
61
|
+
* with nothing drawn in it.
|
|
62
|
+
*/
|
|
63
|
+
export type MeasureNotePositions = {
|
|
64
|
+
area: NoteArea;
|
|
65
|
+
/** Ascending by tick. One entry per drawn note; a chord contributes one. */
|
|
66
|
+
positions: TickPosition[];
|
|
67
|
+
};
|
|
23
68
|
export type CanvasRenderResult = {
|
|
24
69
|
/** Note/rest event id -> bbox, zoom-scaled CSS px, content coordinates (scroll NOT subtracted). Drawn window only. */
|
|
25
70
|
idToBBox: Map<string, BBox>;
|
|
26
71
|
/** Measure id -> its stave box (from the layout plan), same units. Drawn window only; one entry per (track, measure). */
|
|
27
72
|
measureIdToBBox: Map<string, BBox>;
|
|
73
|
+
/**
|
|
74
|
+
* Measure id -> where its notes were actually drawn. Drawn window only.
|
|
75
|
+
*
|
|
76
|
+
* The caret and click-to-seek both read this, so both agree with the page by
|
|
77
|
+
* construction rather than by two approximations that have to be kept
|
|
78
|
+
* matched to it and to each other.
|
|
79
|
+
*/
|
|
80
|
+
measureNotePositions: Map<string, MeasureNotePositions>;
|
|
28
81
|
drawnMeasureIndices: Set<number>;
|
|
29
82
|
/** The (cached) full-score layout this frame was drawn against. */
|
|
30
83
|
plan: LayoutPlan;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-renderer.d.ts","sourceRoot":"","sources":["../src/canvas-renderer.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAoBrD,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AAG5D,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,sBAAsB,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,QAAQ,EAAE,cAAc,CAAC;IACzB,2IAA2I;IAC3I,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sHAAsH;IACtH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,yHAAyH;IACzH,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,mEAAmE;IACnE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"canvas-renderer.d.ts","sourceRoot":"","sources":["../src/canvas-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/canvas-renderer.js
CHANGED
|
@@ -22,6 +22,43 @@ import { buildMeasureContent, buildGlissandos, buildHairpins, buildOttavas, buil
|
|
|
22
22
|
import { MEASURE_HEADER_HEIGHT, STAVE_HEIGHT, STAVE_TOP_LINE_OFFSET, TRACK_INFO_WIDTH, computeLayout, measureLayoutAt, resolveZoom, systemsInRange, } from './layout.js';
|
|
23
23
|
import { barNumberAt } from '@sudobility/music_types';
|
|
24
24
|
import { PRINT_INK, renderModeFor, shouldShowTrackInfo } from './types.js';
|
|
25
|
+
/**
|
|
26
|
+
* Where each of a column's notes was placed, ascending by tick.
|
|
27
|
+
*
|
|
28
|
+
* One entry per tick, not per notehead: a chord is several events at one tick
|
|
29
|
+
* drawn as one `StaveNote`, and a tie-decomposed long note is several
|
|
30
|
+
* `StaveNote`s for one event — either way the caret wants one x per moment.
|
|
31
|
+
* The first x wins, which is the leftmost thing drawn at that tick.
|
|
32
|
+
*
|
|
33
|
+
* Rests count. A bar that opens with a rest still has a position for its
|
|
34
|
+
* downbeat, and leaving them out would make the caret jump the width of the
|
|
35
|
+
* rest at the start of every such bar.
|
|
36
|
+
*/
|
|
37
|
+
function tickPositionsFor(column, trackZeroId, startTickByEventId) {
|
|
38
|
+
if (!trackZeroId)
|
|
39
|
+
return [];
|
|
40
|
+
const channels = column.channels.get(trackZeroId);
|
|
41
|
+
if (!channels)
|
|
42
|
+
return [];
|
|
43
|
+
const byTick = new Map();
|
|
44
|
+
for (const channel of channels.values()) {
|
|
45
|
+
for (const entry of channel) {
|
|
46
|
+
const eventId = entry.meta.eventIds[0];
|
|
47
|
+
if (eventId === undefined)
|
|
48
|
+
continue;
|
|
49
|
+
const tick = startTickByEventId.get(eventId);
|
|
50
|
+
if (tick === undefined)
|
|
51
|
+
continue;
|
|
52
|
+
const x = entry.note.getAbsoluteX();
|
|
53
|
+
const existing = byTick.get(tick);
|
|
54
|
+
if (existing === undefined || x < existing)
|
|
55
|
+
byTick.set(tick, x);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return [...byTick.entries()]
|
|
59
|
+
.map(([tick, x]) => ({ tick, x }))
|
|
60
|
+
.sort((a, b) => a.tick - b.tick);
|
|
61
|
+
}
|
|
25
62
|
/** Width kept free at the end of each measure's note area so the final glyph never crosses the barline — see the joint-format comment in `drawSystem`. */
|
|
26
63
|
const BARLINE_CLEARANCE = 12;
|
|
27
64
|
/** Measure-number type, and where it sits inside the gutter band. */
|
|
@@ -276,7 +313,7 @@ export class CanvasScoreRenderer {
|
|
|
276
313
|
: null;
|
|
277
314
|
const frame = cached ?? this.buildWindow(key, plan, score, z, options, visibleSystems);
|
|
278
315
|
this.window = frame;
|
|
279
|
-
const { drawings, channelsByTrack, measureIdToBBox, drawnMeasureIndices } = frame;
|
|
316
|
+
const { drawings, channelsByTrack, measureIdToBBox, measureNotePositions, drawnMeasureIndices, } = frame;
|
|
280
317
|
// Which staves this frame actually put ink on. Spans are drawn after every
|
|
281
318
|
// system, so they need the whole frame's answer, not one system's.
|
|
282
319
|
const drawnStaves = new Set();
|
|
@@ -326,6 +363,7 @@ export class CanvasScoreRenderer {
|
|
|
326
363
|
return {
|
|
327
364
|
idToBBox,
|
|
328
365
|
measureIdToBBox,
|
|
366
|
+
measureNotePositions,
|
|
329
367
|
drawnMeasureIndices,
|
|
330
368
|
plan,
|
|
331
369
|
theme: options.theme,
|
|
@@ -342,6 +380,7 @@ export class CanvasScoreRenderer {
|
|
|
342
380
|
for (const track of plan.tracks)
|
|
343
381
|
channelsByTrack.set(track.id, new Map());
|
|
344
382
|
const measureIdToBBox = new Map();
|
|
383
|
+
const measureNotePositions = new Map();
|
|
345
384
|
const drawnMeasureIndices = new Set();
|
|
346
385
|
const drawings = [];
|
|
347
386
|
let columnCount = 0;
|
|
@@ -369,8 +408,15 @@ export class CanvasScoreRenderer {
|
|
|
369
408
|
for (const [trackIndex, stave] of column.staveByTrackIndex)
|
|
370
409
|
firstStaveByTrack.set(trackIndex, stave);
|
|
371
410
|
}
|
|
372
|
-
for (const [id, box] of column.measureIdToBBox)
|
|
411
|
+
for (const [id, box] of column.measureIdToBBox) {
|
|
373
412
|
measureIdToBBox.set(id, box);
|
|
413
|
+
if (column.noteArea) {
|
|
414
|
+
measureNotePositions.set(id, {
|
|
415
|
+
area: column.noteArea,
|
|
416
|
+
positions: column.tickPositions,
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
}
|
|
374
420
|
if (column.onTrackZero)
|
|
375
421
|
drawnMeasureIndices.add(measureIndex);
|
|
376
422
|
// Merged in window order, so a channel reads as one run of notes in
|
|
@@ -398,6 +444,7 @@ export class CanvasScoreRenderer {
|
|
|
398
444
|
drawings,
|
|
399
445
|
channelsByTrack,
|
|
400
446
|
measureIdToBBox,
|
|
447
|
+
measureNotePositions,
|
|
401
448
|
drawnMeasureIndices,
|
|
402
449
|
spans: null,
|
|
403
450
|
};
|
|
@@ -743,6 +790,23 @@ export class CanvasScoreRenderer {
|
|
|
743
790
|
* takes part, which is exactly what makes the column reusable on its own.
|
|
744
791
|
*/
|
|
745
792
|
buildColumn(measureIndex, plan, score, z) {
|
|
793
|
+
/*
|
|
794
|
+
Track 0's events for this measure, by id.
|
|
795
|
+
|
|
796
|
+
Track 0 because the playhead resolves a tick against the shared measure
|
|
797
|
+
grid and reads that grid from track 0, exactly as `caretPositionForTick`
|
|
798
|
+
does. Built here rather than looked up per note so a dense measure costs
|
|
799
|
+
one pass instead of one search per notehead.
|
|
800
|
+
*/
|
|
801
|
+
const startTickByEventId = new Map();
|
|
802
|
+
const trackZeroMeasure = score.tracks[0]?.measures[measureIndex];
|
|
803
|
+
if (trackZeroMeasure) {
|
|
804
|
+
for (const voice of trackZeroMeasure.voices) {
|
|
805
|
+
for (const event of voice.events) {
|
|
806
|
+
startTickByEventId.set(event.id, event.startTick);
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
746
810
|
const column = {
|
|
747
811
|
measureIndex,
|
|
748
812
|
staves: [],
|
|
@@ -755,6 +819,8 @@ export class CanvasScoreRenderer {
|
|
|
755
819
|
measureIdToBBox: new Map(),
|
|
756
820
|
onTrackZero: false,
|
|
757
821
|
bboxes: new Map(),
|
|
822
|
+
noteArea: null,
|
|
823
|
+
tickPositions: [],
|
|
758
824
|
};
|
|
759
825
|
const measureStaves = [];
|
|
760
826
|
const voiceGroups = [];
|
|
@@ -814,6 +880,33 @@ export class CanvasScoreRenderer {
|
|
|
814
880
|
// always overhangs into the next measure regardless of measure width.
|
|
815
881
|
if (measureStaves.length > 1)
|
|
816
882
|
Stave.formatBegModifiers(measureStaves);
|
|
883
|
+
/*
|
|
884
|
+
The note area, now that the modifiers are placed and aligned.
|
|
885
|
+
|
|
886
|
+
The widest start and the narrowest end across the column's staves — the
|
|
887
|
+
span in which *every* track of this measure has room for notes, which is
|
|
888
|
+
also the span the formatter justifies into. On a single-track score the
|
|
889
|
+
two staves collapse to one and this is simply that stave's own.
|
|
890
|
+
|
|
891
|
+
Left in logical units — see `NoteArea`. VexFlow is handed the plan's own
|
|
892
|
+
logical box, so these come back in those units, and the playhead
|
|
893
|
+
functions that consume them work in the same ones.
|
|
894
|
+
|
|
895
|
+
Taken from the stave rather than from the first note. The formatter
|
|
896
|
+
leaves a pad of roughly a notehead between `getNoteStartX()` and where it
|
|
897
|
+
places the first tickable, so this still starts a little left of the
|
|
898
|
+
first notehead — but a tickable reports `getAbsoluteX()` of 0 until it
|
|
899
|
+
has been *drawn* (the same reason `ColumnDrawing.bboxes` is a fill-in),
|
|
900
|
+
so reading it here is not possible and reading it after the first paint
|
|
901
|
+
would make the caret shift once, visibly, on every new window. A stable
|
|
902
|
+
small constant beats an accurate value that arrives late.
|
|
903
|
+
*/
|
|
904
|
+
if (measureStaves.length > 0) {
|
|
905
|
+
column.noteArea = {
|
|
906
|
+
startX: Math.max(...measureStaves.map(s => s.getNoteStartX())),
|
|
907
|
+
endX: Math.min(...measureStaves.map(s => s.getNoteEndX())),
|
|
908
|
+
};
|
|
909
|
+
}
|
|
817
910
|
if (voiceGroups.length > 0) {
|
|
818
911
|
const formatter = new Formatter();
|
|
819
912
|
for (const group of voiceGroups)
|
|
@@ -821,6 +914,34 @@ export class CanvasScoreRenderer {
|
|
|
821
914
|
const justifyWidth = Math.max(20, Math.min(...measureStaves.map(s => s.getNoteEndX() - s.getNoteStartX())) - BARLINE_CLEARANCE);
|
|
822
915
|
formatter.format(voiceGroups.flat(), justifyWidth);
|
|
823
916
|
column.voices.push(...voiceGroups.flat());
|
|
917
|
+
/*
|
|
918
|
+
Attach each tickable to its stave, then record where the formatter put
|
|
919
|
+
it. This is what lets the caret share the notes' own positions rather
|
|
920
|
+
than approximate them.
|
|
921
|
+
|
|
922
|
+
`Note.getAbsoluteX()` is `tickContext.getX() + stave.getNoteStartX() +
|
|
923
|
+
the stave padding`, and it returns only the first of those three while
|
|
924
|
+
`this.stave` is unset — which it is here, because `Voice.setStave()`
|
|
925
|
+
deliberately does not reach its tickables (see `ColumnDrawing.beams`).
|
|
926
|
+
VexFlow sets them itself in `Voice.preFormat` and again in `Voice.draw`;
|
|
927
|
+
doing it here is the same assignment a few lines earlier, and it is
|
|
928
|
+
what makes the position readable before anything is painted. Guarded on
|
|
929
|
+
`getStave()` so a tickable that already has one keeps it.
|
|
930
|
+
|
|
931
|
+
Nothing else changes as a result: the two places that ask a note for its
|
|
932
|
+
stave both gate on `drawnStaves.has(stave)`, so a note on a culled stave
|
|
933
|
+
is still culled — it simply now knows which stave it was culled from.
|
|
934
|
+
*/
|
|
935
|
+
for (const voice of voiceGroups.flat()) {
|
|
936
|
+
const voiceStave = voice.getStave();
|
|
937
|
+
if (!voiceStave)
|
|
938
|
+
continue;
|
|
939
|
+
for (const tickable of voice.getTickables()) {
|
|
940
|
+
if (!tickable.getStave())
|
|
941
|
+
tickable.setStave(voiceStave);
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
column.tickPositions = tickPositionsFor(column, plan.tracks[0]?.id, startTickByEventId);
|
|
824
945
|
}
|
|
825
946
|
return column;
|
|
826
947
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-renderer.js","sourceRoot":"","sources":["../src/canvas-renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canvas-renderer.js","sourceRoot":"","sources":["../src/canvas-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { Pitch, Score } from '@sudobility/music_types';
|
|
2
|
+
import type { LayoutPlan } from './layout.js';
|
|
3
|
+
import type { BBox } from './types.js';
|
|
4
|
+
export type Point = {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
/** Whether `point` falls within `box`, inclusive of edges. */
|
|
9
|
+
export declare function pointInBBox(box: BBox, point: Point): boolean;
|
|
10
|
+
/** Whether two boxes overlap by a nonzero area (merely touching edges doesn't count). */
|
|
11
|
+
export declare function bboxesIntersect(a: BBox, b: BBox): boolean;
|
|
12
|
+
/** Builds a normalized (non-negative width/height) box spanning two drag corners, in either order. */
|
|
13
|
+
export declare function boxFromPoints(a: Point, b: Point): BBox;
|
|
14
|
+
/**
|
|
15
|
+
* The topmost id whose bbox contains `point`, or `null` if none match.
|
|
16
|
+
* Later map insertions win on overlap — the canvas renderer inserts in
|
|
17
|
+
* draw order, so "later" is "drawn on top" (for the piano roll's
|
|
18
|
+
* non-overlapping note rects, first vs. last is indistinguishable).
|
|
19
|
+
* Linear over the map: the canvas maps only ever hold the drawn window,
|
|
20
|
+
* so this is O(visible), within the no-O(score) interaction rule.
|
|
21
|
+
*/
|
|
22
|
+
export declare function eventIdAtPoint(idToBBox: ReadonlyMap<string, BBox>, point: Point): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Every event id whose bbox contains `point`.
|
|
25
|
+
*
|
|
26
|
+
* A chord's notes are drawn as one VexFlow `StaveNote`, so the renderer maps
|
|
27
|
+
* all of their ids to the same box — `eventIdAtPoint` therefore returns an
|
|
28
|
+
* arbitrary member of a chord, and no click can reach the others. Selecting
|
|
29
|
+
* the whole chord is the honest answer to a click on overlapping noteheads;
|
|
30
|
+
* picking individual notes out of it is the piano keyboard's job.
|
|
31
|
+
*/
|
|
32
|
+
export declare function eventIdsAtPoint(idToBBox: ReadonlyMap<string, BBox>, point: Point): string[];
|
|
33
|
+
/** Every id whose bbox intersects `box` (drag-box/rubber-band selection), in map iteration order. */
|
|
34
|
+
export declare function eventIdsInBox(idToBBox: ReadonlyMap<string, BBox>, box: BBox): string[];
|
|
35
|
+
/** The measure id whose stave box contains `point`, or `null`. Same window-scoped linear scan as `eventIdAtPoint`. */
|
|
36
|
+
/**
|
|
37
|
+
* Which track and measure a point lands in, from the layout alone.
|
|
38
|
+
*
|
|
39
|
+
* The plan-based counterpart to `measureIdAtPoint`, which needs a frame's
|
|
40
|
+
* bbox map. A caller that only has the layout — anything deciding where a
|
|
41
|
+
* touch went before it has a render result to consult — asks this.
|
|
42
|
+
*
|
|
43
|
+
* Nearest by centre rather than first match: staves for different tracks are
|
|
44
|
+
* stacked and their boxes can abut, so iteration order would otherwise decide
|
|
45
|
+
* which track a touch on the boundary belonged to.
|
|
46
|
+
*
|
|
47
|
+
* It deliberately reports no position *within* the bar. It used to, as a
|
|
48
|
+
* fraction of the stave box, and the React Native app placed its caret from
|
|
49
|
+
* that — but a box begins at the barline and spends its left edge on the clef,
|
|
50
|
+
* key and time signature, so tapping those landed the caret about a fifth of
|
|
51
|
+
* the way into the first bar. `tickForPoint` is what answers that, from the
|
|
52
|
+
* noteheads actually drawn.
|
|
53
|
+
*/
|
|
54
|
+
export type MeasureHit = {
|
|
55
|
+
trackId: string;
|
|
56
|
+
measureIndex: number;
|
|
57
|
+
};
|
|
58
|
+
export declare function measureAtPoint(plan: LayoutPlan, point: Point): MeasureHit | null;
|
|
59
|
+
export declare function measureIdAtPoint(measureIdToBBox: ReadonlyMap<string, BBox>, point: Point): string | null;
|
|
60
|
+
/**
|
|
61
|
+
* The measure index under `point` when it falls in a system's
|
|
62
|
+
* measure-number gutter band, or `null` anywhere else. Logical (unzoomed)
|
|
63
|
+
* content coordinates — the caller divides by zoom, same as `tickForPoint`.
|
|
64
|
+
*
|
|
65
|
+
* Measure geometry is read off track 0: every track shares one measure grid
|
|
66
|
+
* (see `rebuildMeasureTicks`), which is exactly why one gutter can serve the
|
|
67
|
+
* whole system rather than needing one band per stave.
|
|
68
|
+
*
|
|
69
|
+
* The band is half-open at the bottom (`y < system.yTop`) so a click landing
|
|
70
|
+
* exactly on the stave's top line belongs to the stave, not the gutter —
|
|
71
|
+
* otherwise the two hit zones would both claim that row of pixels.
|
|
72
|
+
*/
|
|
73
|
+
export declare function measureIndexAtGutterPoint(plan: LayoutPlan, point: Point): number | null;
|
|
74
|
+
/**
|
|
75
|
+
* The track whose stave band contains `point`, in **content** coordinates.
|
|
76
|
+
*
|
|
77
|
+
* The sibling of `trackIdAtGutterPoint`, which does the same y-band search but
|
|
78
|
+
* is x-constrained to the gutter and reads *viewport* coordinates — the one
|
|
79
|
+
* place in the editor where the two spaces differ, because the gutter is
|
|
80
|
+
* painted pinned to the viewport's left edge. A drop can land anywhere on the
|
|
81
|
+
* staff, so it needs the ordinary content-space search.
|
|
82
|
+
*/
|
|
83
|
+
export declare function trackIdAtContentPoint(plan: LayoutPlan, point: Point): string | null;
|
|
84
|
+
/**
|
|
85
|
+
* The pitch a point on a stave lands on, or `null` when it is not over one.
|
|
86
|
+
*
|
|
87
|
+
* A staff position is a line or the space beside it, so the y distance from the
|
|
88
|
+
* top line divided by `STAVE_POSITION_HEIGHT` — rounded, since a click near a
|
|
89
|
+
* line means that line — is how many diatonic steps down from the clef's top
|
|
90
|
+
* note the reader is pointing at. `STAVE_TOP_LINE_OFFSET` is the same constant
|
|
91
|
+
* the renderer draws with, so this agrees with what is on screen by
|
|
92
|
+
* construction rather than by a matched guess.
|
|
93
|
+
*
|
|
94
|
+
* Content coordinates, unzoomed, like every other hit test here except the
|
|
95
|
+
* track gutter.
|
|
96
|
+
*/
|
|
97
|
+
export declare function pitchAtStavePoint(plan: LayoutPlan, score: Score, point: Point): {
|
|
98
|
+
pitch: Pitch;
|
|
99
|
+
trackId: string;
|
|
100
|
+
} | null;
|
|
101
|
+
//# sourceMappingURL=hit-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAO5D;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAOzD;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAOtD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EACnC,KAAK,EAAE,KAAK,GACX,MAAM,GAAG,IAAI,CAMf;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EACnC,KAAK,EAAE,KAAK,GACX,MAAM,EAAE,CAMV;AAED,qGAAqG;AACrG,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EACnC,GAAG,EAAE,IAAI,GACR,MAAM,EAAE,CAMV;AAED,sHAAsH;AACtH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,GACX,UAAU,GAAG,IAAI,CAsBnB;AAED,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,KAAK,EAAE,KAAK,GACX,MAAM,GAAG,IAAI,CAMf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,GACX,MAAM,GAAG,IAAI,CAcf;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,GACX,MAAM,GAAG,IAAI,CAcf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACX;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyB1C"}
|