@openbraininstitute/morphoviewer 0.35.2 → 0.37.0
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/behaviors/framing.d.ts +10 -0
- package/dist/behaviors/framing.d.ts.map +1 -0
- package/dist/behaviors/framing.js +19 -0
- package/dist/behaviors/index.d.ts +2 -0
- package/dist/behaviors/index.d.ts.map +1 -1
- package/dist/behaviors/index.js +3 -1
- package/dist/behaviors/tap-guard.d.ts +17 -0
- package/dist/behaviors/tap-guard.d.ts.map +1 -0
- package/dist/behaviors/tap-guard.js +60 -0
- package/dist/components/morpho-viewer-small-circuit/painter/cached-cell-loader.d.ts +6 -0
- package/dist/components/morpho-viewer-small-circuit/painter/cached-cell-loader.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/cached-cell-loader.js +12 -0
- package/dist/components/morpho-viewer-small-circuit/painter/dedupe-by-id.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/dedupe-by-id.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/dedupe-by-id.js +14 -0
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +6 -4
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +156 -83
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +8 -1
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +57 -21
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.js +28 -6
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +42 -28
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/index.d.ts +5 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/index.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/index.js +4 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas-id.d.ts +12 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas-id.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas-id.js +79 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas.d.ts +19 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas.js +55 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/soma-cloud-data.d.ts +9 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/soma-cloud-data.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/soma-cloud-data.js +34 -0
- package/dist/components/morpho-viewer-small-circuit/painter/same-cell.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/same-cell.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/same-cell.js +15 -0
- package/dist/components/morpho-viewer-small-circuit/types.d.ts +1 -0
- package/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts +19 -4
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.js +43 -19
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +26 -5
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.js +196 -49
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +15 -3
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.js +214 -86
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts +4 -2
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.js +33 -22
- package/dist/components/morpho-viewer-somas-only/manager/soma-picker.d.ts +15 -0
- package/dist/components/morpho-viewer-somas-only/manager/soma-picker.d.ts.map +1 -0
- package/dist/components/morpho-viewer-somas-only/manager/soma-picker.js +184 -0
- package/dist/components/morpho-viewer-somas-only/types.d.ts +8 -1
- package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
- package/dist/morphology-picking/index.d.ts +1 -0
- package/dist/morphology-picking/index.d.ts.map +1 -1
- package/dist/morphology-picking/index.js +2 -1
- package/dist/morphology-picking/pick-color-codec.d.ts +4 -0
- package/dist/morphology-picking/pick-color-codec.d.ts.map +1 -0
- package/dist/morphology-picking/pick-color-codec.js +14 -0
- package/dist/package.json +1 -1
- package/dist/painters/overlay-interaction.d.ts +2 -0
- package/dist/painters/overlay-interaction.d.ts.map +1 -1
- package/dist/painters/overlay-interaction.js +11 -1
- package/dist/utils.d.ts +0 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -19
- package/package.json +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/still-pointer.d.ts +0 -9
- package/dist/components/morpho-viewer-small-circuit/painter/still-pointer.d.ts.map +0 -1
- package/dist/components/morpho-viewer-small-circuit/painter/still-pointer.js +0 -9
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/rays.d.ts +0 -3
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/rays.d.ts.map +0 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/rays.js +0 -24
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ArrayNumber3, type TgdBoundingBox, type TgdCamera, TgdVec3 } from "@tolokoban/tgd";
|
|
2
|
+
export declare const FRAME_MARGIN = 1.1;
|
|
3
|
+
export interface DepthRange {
|
|
4
|
+
near: number;
|
|
5
|
+
far: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function depthRangeCovering(scene: Readonly<TgdBoundingBox>, position: Readonly<TgdVec3>, distance: number): DepthRange;
|
|
8
|
+
export declare function widenDepthRange(camera: TgdCamera, { near, far }: DepthRange): void;
|
|
9
|
+
export declare function extentAlong(size: Readonly<ArrayNumber3>, axis: Readonly<TgdVec3>): number;
|
|
10
|
+
//# sourceMappingURL=framing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../../src/behaviors/framing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,OAAO,EACR,MAAM,gBAAgB,CAAC;AAMxB,eAAO,MAAM,YAAY,MAAM,CAAC;AAGhC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAWD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,QAAQ,EAAE,MAAM,GACf,UAAU,CAKZ;AAQD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,QAM3E;AASD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,MAAM,CAGzF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TgdCameraOrthographic, TgdVec3, } from "@tolokoban/tgd";
|
|
2
|
+
export const FRAME_MARGIN = 1.1;
|
|
3
|
+
export function depthRangeCovering(scene, position, distance) {
|
|
4
|
+
const [width, height, depth] = scene.size;
|
|
5
|
+
const radius = 0.5 * Math.hypot(width, height, depth);
|
|
6
|
+
const reach = TgdVec3.distance(position, scene.center) + radius;
|
|
7
|
+
return { near: distance - reach, far: distance + reach };
|
|
8
|
+
}
|
|
9
|
+
export function widenDepthRange(camera, { near, far }) {
|
|
10
|
+
if (far > camera.far)
|
|
11
|
+
camera.far = far;
|
|
12
|
+
if (camera instanceof TgdCameraOrthographic && near < camera.near)
|
|
13
|
+
camera.near = near;
|
|
14
|
+
}
|
|
15
|
+
export function extentAlong(size, axis) {
|
|
16
|
+
const [width, height, depth] = size;
|
|
17
|
+
return width * Math.abs(axis.x) + height * Math.abs(axis.y) + depth * Math.abs(axis.z);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZWhhdmlvcnMvZnJhbWluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwscUJBQXFCLEVBQ3JCLE9BQU8sR0FDUixNQUFNLGdCQUFnQixDQUFDO0FBTXhCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFpQmhDLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsS0FBK0IsRUFDL0IsUUFBMkIsRUFDM0IsUUFBZ0I7SUFFaEIsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztJQUMxQyxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDM0QsQ0FBQztBQVFELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWM7SUFDMUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUc7UUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUl2QyxJQUFJLE1BQU0sWUFBWSxxQkFBcUIsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUk7UUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN4RixDQUFDO0FBU0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUE0QixFQUFFLElBQXVCO0lBQy9FLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNwQyxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pGLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/behaviors/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/behaviors/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
|
package/dist/behaviors/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from "./framing";
|
|
1
2
|
export * from "./space-per-pixel";
|
|
3
|
+
export * from "./tap-guard";
|
|
2
4
|
export * from "./zoom";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmVoYXZpb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxRQUFRLENBQUMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TgdContext, TgdInputPointerEventTap } from "@tolokoban/tgd";
|
|
2
|
+
export declare class TapGuard {
|
|
3
|
+
private context;
|
|
4
|
+
private dragged;
|
|
5
|
+
private startX;
|
|
6
|
+
private startY;
|
|
7
|
+
private widthInPixels;
|
|
8
|
+
private heightInPixels;
|
|
9
|
+
attach(context: TgdContext): void;
|
|
10
|
+
detach(): void;
|
|
11
|
+
begin(x: number, y: number, widthInPixels: number, heightInPixels: number): void;
|
|
12
|
+
move(x: number, y: number): void;
|
|
13
|
+
isClick(evt: TgdInputPointerEventTap): boolean;
|
|
14
|
+
private readonly handleMoveStart;
|
|
15
|
+
private readonly handleMove;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=tap-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap-guard.d.ts","sourceRoot":"","sources":["../../src/behaviors/tap-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA4B,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAiDpG,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAE3B,MAAM,CAAC,OAAO,EAAE,UAAU;IAM1B,MAAM;IAUN,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IASzE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAWzB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO;IAc9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAS9B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAEzB;CACH"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const CLICK_SLOP_IN_PIXELS = 5;
|
|
2
|
+
const MAX_CLICK_IN_SECONDS = 0.5;
|
|
3
|
+
const PRIORITY = 100;
|
|
4
|
+
function movedBeyondSlop(dx, dy, widthInPixels, heightInPixels) {
|
|
5
|
+
if (widthInPixels <= 0 || heightInPixels <= 0)
|
|
6
|
+
return false;
|
|
7
|
+
return Math.hypot((dx * widthInPixels) / 2, (dy * heightInPixels) / 2) > CLICK_SLOP_IN_PIXELS;
|
|
8
|
+
}
|
|
9
|
+
export class TapGuard {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.context = null;
|
|
12
|
+
this.dragged = false;
|
|
13
|
+
this.startX = 0;
|
|
14
|
+
this.startY = 0;
|
|
15
|
+
this.widthInPixels = 0;
|
|
16
|
+
this.heightInPixels = 0;
|
|
17
|
+
this.handleMoveStart = (evt) => {
|
|
18
|
+
var _a;
|
|
19
|
+
const { canvas } = (_a = this.context) !== null && _a !== void 0 ? _a : {};
|
|
20
|
+
const sized = canvas && "clientWidth" in canvas;
|
|
21
|
+
this.begin(evt.start.x, evt.start.y, sized ? canvas.clientWidth : 0, sized ? canvas.clientHeight : 0);
|
|
22
|
+
};
|
|
23
|
+
this.handleMove = (evt) => {
|
|
24
|
+
this.move(evt.current.x, evt.current.y);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
attach(context) {
|
|
28
|
+
this.context = context;
|
|
29
|
+
context.inputs.pointer.eventMoveStart.addListener(this.handleMoveStart, PRIORITY);
|
|
30
|
+
context.inputs.pointer.eventMove.addListener(this.handleMove, PRIORITY);
|
|
31
|
+
}
|
|
32
|
+
detach() {
|
|
33
|
+
const { context } = this;
|
|
34
|
+
if (!context)
|
|
35
|
+
return;
|
|
36
|
+
context.inputs.pointer.eventMoveStart.removeListener(this.handleMoveStart);
|
|
37
|
+
context.inputs.pointer.eventMove.removeListener(this.handleMove);
|
|
38
|
+
this.context = null;
|
|
39
|
+
}
|
|
40
|
+
begin(x, y, widthInPixels, heightInPixels) {
|
|
41
|
+
this.dragged = false;
|
|
42
|
+
this.startX = x;
|
|
43
|
+
this.startY = y;
|
|
44
|
+
this.widthInPixels = widthInPixels;
|
|
45
|
+
this.heightInPixels = heightInPixels;
|
|
46
|
+
}
|
|
47
|
+
move(x, y) {
|
|
48
|
+
if (this.dragged)
|
|
49
|
+
return;
|
|
50
|
+
this.dragged = movedBeyondSlop(x - this.startX, y - this.startY, this.widthInPixels, this.heightInPixels);
|
|
51
|
+
}
|
|
52
|
+
isClick(evt) {
|
|
53
|
+
if (this.dragged)
|
|
54
|
+
return false;
|
|
55
|
+
if (evt.t - evt.start.t > MAX_CLICK_IN_SECONDS)
|
|
56
|
+
return false;
|
|
57
|
+
return !movedBeyondSlop(evt.x - evt.start.x, evt.y - evt.start.y, this.widthInPixels, this.heightInPixels);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JlaGF2aW9ycy90YXAtZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFVL0IsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFNakMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBR3JCLFNBQVMsZUFBZSxDQUN0QixFQUFVLEVBQ1YsRUFBVSxFQUNWLGFBQXFCLEVBQ3JCLGNBQXNCO0lBR3RCLElBQUksYUFBYSxJQUFJLENBQUMsSUFBSSxjQUFjLElBQUksQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsb0JBQW9CLENBQUM7QUFDaEcsQ0FBQztBQWlCRCxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUNVLFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQW9EVixvQkFBZSxHQUFHLENBQUMsR0FBNkIsRUFBRSxFQUFFOztZQUNuRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBQSxJQUFJLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUM7WUFDdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLGFBQWEsSUFBSSxNQUFNLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FDUixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLENB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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CacheLRU } from "../../../tools/cache-lru";
|
|
2
|
+
import type { MorphoViewerSmallCircuitCellData } from "../types";
|
|
3
|
+
type CellLoader = (id: string) => Promise<MorphoViewerSmallCircuitCellData | null>;
|
|
4
|
+
export declare function cachedCellLoader(cache: CacheLRU<Promise<MorphoViewerSmallCircuitCellData | null>>, loadCell: CellLoader): CellLoader;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=cached-cell-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-cell-loader.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-small-circuit/painter/cached-cell-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAEjE,KAAK,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;AAcnF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC,EACjE,QAAQ,EAAE,UAAU,GACnB,UAAU,CAUZ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function cachedCellLoader(cache, loadCell) {
|
|
2
|
+
return (id) => {
|
|
3
|
+
const cached = cache.get(id);
|
|
4
|
+
if (cached)
|
|
5
|
+
return cached;
|
|
6
|
+
const [path] = id.split("?");
|
|
7
|
+
const promise = loadCell(path);
|
|
8
|
+
cache.set(id, promise);
|
|
9
|
+
return promise;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWNlbGwtbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvY2FjaGVkLWNlbGwtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQWlFLEVBQ2pFLFFBQW9CO0lBRXBCLE9BQU8sQ0FBQyxFQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksTUFBTTtZQUFFLE9BQU8sTUFBTSxDQUFDO1FBRTFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedupe-by-id.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-small-circuit/painter/dedupe-by-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAa7D,wBAAgB,UAAU,CACxB,OAAO,EAAE,4BAA4B,EAAE,GACtC,4BAA4B,EAAE,CAchC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function dedupeById(circuit) {
|
|
2
|
+
const seen = new Set();
|
|
3
|
+
const kept = circuit.filter((cell) => {
|
|
4
|
+
if (seen.has(cell.id))
|
|
5
|
+
return false;
|
|
6
|
+
seen.add(cell.id);
|
|
7
|
+
return true;
|
|
8
|
+
});
|
|
9
|
+
if (kept.length === circuit.length)
|
|
10
|
+
return circuit;
|
|
11
|
+
console.warn(`Cell ids must be unique, but ${circuit.length - kept.length} of them repeat one already in the circuit. Those cells were left out: an id names a cell to the painters, to the pick buffer and to the morphology cache alike.`);
|
|
12
|
+
return kept;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVkdXBlLWJ5LWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvZGVkdXBlLWJ5LWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxVQUFVLENBQ3hCLE9BQXVDO0lBRXZDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDL0IsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ25DLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDO0lBRW5ELE9BQU8sQ0FBQyxJQUFJLENBQ1YsZ0NBQWdDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sa0tBQWtLLENBQy9OLENBQUM7SUFDRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMifQ==
|
|
@@ -44,12 +44,11 @@ export declare class PainterManager {
|
|
|
44
44
|
private framebufferHighlightedCells;
|
|
45
45
|
private framebufferBlur;
|
|
46
46
|
private loadedCellsCache;
|
|
47
|
-
private circuitSignature;
|
|
48
47
|
private fitCameraOnUpdate;
|
|
49
|
-
private
|
|
50
|
-
private bbox;
|
|
48
|
+
private placementIds;
|
|
51
49
|
private _verbose;
|
|
52
50
|
private gizmoOverlay;
|
|
51
|
+
private readonly tapGuard;
|
|
53
52
|
private readonly handleGizmoTipClick;
|
|
54
53
|
private _gizmoCanvas;
|
|
55
54
|
private painterOverlays;
|
|
@@ -63,6 +62,8 @@ export declare class PainterManager {
|
|
|
63
62
|
private previewedLocationKey;
|
|
64
63
|
private _locationLabelsEnabled;
|
|
65
64
|
private readonly cellPainters;
|
|
65
|
+
private painterCellSomas;
|
|
66
|
+
private paintedSomaAsSphere;
|
|
66
67
|
private _dendrogramMode;
|
|
67
68
|
private dendrogramMix;
|
|
68
69
|
private dendrogramAnimations;
|
|
@@ -92,7 +93,7 @@ export declare class PainterManager {
|
|
|
92
93
|
set somaAsSphere(somaAsSphere: boolean);
|
|
93
94
|
get neuronOpacity(): number;
|
|
94
95
|
set neuronOpacity(neuronOpacity: number);
|
|
95
|
-
readonly cameraReset: (options?: MorphoViewerSignalCameraResetOptions) => void
|
|
96
|
+
readonly cameraReset: (options?: MorphoViewerSignalCameraResetOptions) => void;
|
|
96
97
|
readonly snapshot: (options?: MorphoViewerSignalSnapshotOptions) => Promise<HTMLImageElement | null>;
|
|
97
98
|
get verbose(): boolean;
|
|
98
99
|
set verbose(verbose: boolean);
|
|
@@ -122,6 +123,7 @@ export declare class PainterManager {
|
|
|
122
123
|
setCircuit(circuit: MorphoViewerSmallCircuitCell[], loadCell: (id: string) => Promise<MorphoViewerSmallCircuitCellData | null>): void;
|
|
123
124
|
private readonly updateCircuit;
|
|
124
125
|
private readonly adaptCameraFromBBox;
|
|
126
|
+
private frameCamera;
|
|
125
127
|
private combineCellsBBoxes;
|
|
126
128
|
get highlightedCellIds(): string[];
|
|
127
129
|
set highlightedCellIds(value: string[] | undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-small-circuit/painter/manager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-small-circuit/painter/manager.ts"],"names":[],"mappings":"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"}
|