@openbraininstitute/morphoviewer 0.33.0 → 0.35.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/index.d.ts +1 -0
- package/dist/behaviors/index.d.ts.map +1 -1
- package/dist/behaviors/index.js +2 -1
- package/dist/behaviors/space-per-pixel.d.ts.map +1 -1
- package/dist/behaviors/space-per-pixel.js +2 -2
- package/dist/behaviors/zoom.d.ts +3 -0
- package/dist/behaviors/zoom.d.ts.map +1 -0
- package/dist/behaviors/zoom.js +13 -0
- package/dist/components/morpho-viewer-small-circuit/index.d.ts +1 -0
- package/dist/components/morpho-viewer-small-circuit/index.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/index.js +2 -1
- package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +20 -2
- package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +8 -0
- package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +6 -1
- package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/camera.js +20 -5
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +31 -6
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +240 -45
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +2 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-flat-texture-intensity.d.ts +11 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-flat-texture-intensity.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-flat-texture-intensity.js +32 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +2 -4
- 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 +10 -14
- package/dist/components/morpho-viewer-small-circuit/types.d.ts +3 -1
- package/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +17 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.js +120 -2
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +1 -0
- 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 +12 -6
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts +27 -0
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts.map +1 -0
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.js +131 -0
- package/dist/components/morpho-viewer-somas-only/types.d.ts +2 -1
- package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
- package/dist/components/signals.d.ts +1 -0
- package/dist/components/signals.d.ts.map +1 -1
- package/dist/components/signals.js +2 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/package.json +1 -1
- package/dist/painters/gizmo.d.ts +1 -0
- package/dist/painters/gizmo.d.ts.map +1 -1
- package/dist/painters/gizmo.js +27 -5
- package/dist/spikes/index.d.ts +3 -0
- package/dist/spikes/index.d.ts.map +1 -0
- package/dist/spikes/index.js +2 -0
- package/dist/spikes/spiking-circuit.d.ts +30 -0
- package/dist/spikes/spiking-circuit.d.ts.map +1 -0
- package/dist/spikes/spiking-circuit.js +159 -0
- package/dist/spikes/types.d.ts +16 -0
- package/dist/spikes/types.d.ts.map +1 -0
- package/dist/spikes/types.js +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/behaviors/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/behaviors/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC"}
|
package/dist/behaviors/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from "./space-per-pixel";
|
|
2
|
-
|
|
2
|
+
export * from "./zoom";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmVoYXZpb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxRQUFRLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-per-pixel.d.ts","sourceRoot":"","sources":["../../src/behaviors/space-per-pixel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"space-per-pixel.d.ts","sourceRoot":"","sources":["../../src/behaviors/space-per-pixel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG3D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,cAW9E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function watchSpacePerPixel(context, event) {
|
|
2
2
|
let spacePerPixel = -1;
|
|
3
3
|
const listener = () => {
|
|
4
|
-
const value = context.camera.spacePerPixel;
|
|
4
|
+
const value = context.camera.spacePerPixel * context.resolution;
|
|
5
5
|
if (value === spacePerPixel)
|
|
6
6
|
return;
|
|
7
7
|
spacePerPixel = value;
|
|
@@ -10,4 +10,4 @@ export function watchSpacePerPixel(context, event) {
|
|
|
10
10
|
context.eventPaint.addListener(listener);
|
|
11
11
|
return () => context.eventPaint.removeListener(listener);
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UtcGVyLXBpeGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JlaGF2aW9ycy9zcGFjZS1wZXItcGl4ZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQW1CLEVBQUUsS0FBdUI7SUFDN0UsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDaEUsSUFBSSxLQUFLLEtBQUssYUFBYTtZQUFFLE9BQU87UUFFcEMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDM0QsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../src/behaviors/zoom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG3D,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,cAWrE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function watchZoom(context, event) {
|
|
2
|
+
let zoom = Number.NaN;
|
|
3
|
+
const listener = () => {
|
|
4
|
+
const value = context.camera.zoom;
|
|
5
|
+
if (value === zoom)
|
|
6
|
+
return;
|
|
7
|
+
zoom = value;
|
|
8
|
+
event.dispatch(value);
|
|
9
|
+
};
|
|
10
|
+
context.eventPaint.addListener(listener);
|
|
11
|
+
return () => context.eventPaint.removeListener(listener);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZWhhdmlvcnMvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQW1CLEVBQUUsS0FBdUI7SUFDcEUsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLE9BQU87UUFFM0IsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNiLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMzRCxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,cAAc,SAAS,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { MorphoViewerSmallCircuit } from "./morpho-viewer-small-circuit";
|
|
2
|
+
export { ZOOM_MAX, ZOOM_MIN } from "./painter/camera";
|
|
2
3
|
export { DEFAULT_LOCATION_MARKER_RADIUS } from "./painter/manager";
|
|
3
4
|
export * from "./types";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNtYWxsLWNpcmN1aXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxjQUFjLFNBQVMsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morpho-viewer-small-circuit.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,GAAG,CAAC;AAyCvD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"morpho-viewer-small-circuit.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,GAAG,CAAC;AAyCvD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBA6D5E"}
|
|
@@ -11,6 +11,10 @@ export function MorphoViewerSmallCircuit(props) {
|
|
|
11
11
|
var _a, _b;
|
|
12
12
|
const ref = React.useRef(null);
|
|
13
13
|
const manager = usePainterManager(props);
|
|
14
|
+
React.useEffect(() => {
|
|
15
|
+
if (props.scalebar)
|
|
16
|
+
manager.refreshScalebar();
|
|
17
|
+
}, [props.scalebar, manager]);
|
|
14
18
|
const handleToggleFullscreen = () => {
|
|
15
19
|
const div = ref.current;
|
|
16
20
|
if (!div)
|
|
@@ -36,7 +40,7 @@ export function MorphoViewerSmallCircuit(props) {
|
|
|
36
40
|
};
|
|
37
41
|
return (_jsxs("div", { ref: ref, className: classNames(props.className, styles.morphoViewerSmallCircuit), style: {
|
|
38
42
|
background: (_a = props.backgroundColor) !== null && _a !== void 0 ? _a : "#000",
|
|
39
|
-
}, "data-version": version, children: [_jsx(Canvas, { painterManager: manager }), _jsx(ControlsLayout, { content: (_b = props.controls) !== null && _b !== void 0 ? _b : getDefaultControls(props), onClick: handleControls }), props.scalebar && (_jsx(MorphoViewerScalebar, { className: props.scalebar, spacePerPixelEvent: manager.eventScalebar, unit: props.scalebar }))] }));
|
|
43
|
+
}, "data-version": version, children: [_jsx(Canvas, { painterManager: manager }), props.gizmo ? (_jsx(GizmoCanvas, { painterManager: manager, options: props.gizmo, interactive: !props.dendrogram })) : null, _jsx(ControlsLayout, { content: (_b = props.controls) !== null && _b !== void 0 ? _b : getDefaultControls(props), onClick: handleControls }), props.scalebar && (_jsx(MorphoViewerScalebar, { className: props.scalebar, spacePerPixelEvent: manager.eventScalebar, unit: props.scalebar }))] }));
|
|
40
44
|
}
|
|
41
45
|
const Canvas = React.memo(({ painterManager }) => {
|
|
42
46
|
return (_jsxs(_Fragment, { children: [_jsx("canvas", { className: styles.webgl, ref: (canvas) => {
|
|
@@ -51,7 +55,21 @@ const Canvas = React.memo(({ painterManager }) => {
|
|
|
51
55
|
};
|
|
52
56
|
} }, "overlays")] }));
|
|
53
57
|
});
|
|
58
|
+
const GizmoCanvas = React.memo(({ painterManager, options, interactive, }) => {
|
|
59
|
+
const { alignX, alignY, size, margin } = normalizeGizmo(options);
|
|
60
|
+
const ref = React.useCallback((canvas) => {
|
|
61
|
+
painterManager.gizmoCanvas = canvas;
|
|
62
|
+
return () => {
|
|
63
|
+
painterManager.gizmoCanvas = null;
|
|
64
|
+
};
|
|
65
|
+
}, [painterManager]);
|
|
66
|
+
return (_jsx("canvas", { className: styles.gizmo, style: Object.assign(Object.assign(Object.assign({ width: size, height: size }, (alignX < 0 ? { left: margin } : { right: margin })), (alignY > 0 ? { top: margin } : { bottom: margin })), { pointerEvents: interactive ? "auto" : "none" }), ref: ref }));
|
|
67
|
+
});
|
|
68
|
+
const DEFAULT_GIZMO = { alignX: +1, alignY: -1, size: 96, margin: 10 };
|
|
69
|
+
function normalizeGizmo(options) {
|
|
70
|
+
return typeof options === "boolean" ? DEFAULT_GIZMO : Object.assign(Object.assign({}, DEFAULT_GIZMO), options);
|
|
71
|
+
}
|
|
54
72
|
function getDefaultControls(props) {
|
|
55
73
|
return ["reset-camera", ["fullscreen", props.onClose && "close", props.onMinimize && "minimize"]];
|
|
56
74
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L21vcnBoby12aWV3ZXItc21hbGwtY2lyY3VpdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxPQUFPLEVBQXNCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sb0JBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUF1QixpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUluRSxPQUFPLE1BQU0sTUFBTSwwQ0FBMEMsQ0FBQztBQXVDOUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQW9DOztJQUMzRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUF3QixJQUFJLENBQUMsQ0FBQztJQUN0RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV6QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLEtBQUssQ0FBQyxRQUFRO1lBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hELENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHO1lBQUUs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
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { type TgdCameraState, type TgdContext, type TgdEvent } from "@tolokoban/tgd";
|
|
1
|
+
import { type TgdCameraState, type TgdContext, type TgdEvent, type TgdQuat } from "@tolokoban/tgd";
|
|
2
2
|
import type { MorphoViewerSignalCameraResetOptions } from "../../signals";
|
|
3
|
+
export declare const ZOOM_MIN = 0.25;
|
|
4
|
+
export declare const ZOOM_MAX = 100;
|
|
5
|
+
export declare function clampZoom(zoom: number): number;
|
|
3
6
|
export declare class CameraManager {
|
|
4
7
|
private readonly context;
|
|
5
8
|
readonly eventRestingPosition: TgdEvent<boolean>;
|
|
@@ -7,12 +10,14 @@ export declare class CameraManager {
|
|
|
7
10
|
private animations;
|
|
8
11
|
private orbit;
|
|
9
12
|
private savedSpeedOrbit;
|
|
13
|
+
private _rotationLocked;
|
|
10
14
|
constructor(context: TgdContext, eventRestingPosition: TgdEvent<boolean>);
|
|
11
15
|
get enabled(): boolean;
|
|
12
16
|
set rotationLocked(locked: boolean);
|
|
13
17
|
set enabled(enabled: boolean);
|
|
14
18
|
resetCamera(options?: MorphoViewerSignalCameraResetOptions): void;
|
|
15
19
|
applyZoom(zoom: number | undefined): void;
|
|
20
|
+
turnTo(orientation: Readonly<TgdQuat>): void;
|
|
16
21
|
private animateTo;
|
|
17
22
|
delete(): void;
|
|
18
23
|
private readonly hanleOrbitChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-small-circuit/painter/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,UAAU,EAEf,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-small-circuit/painter/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,UAAU,EAEf,KAAK,QAAQ,EACb,KAAK,OAAO,EAGb,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AAGjF,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAO5B,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,qBAAa,aAAa;IAStB,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC;IATlD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAM;IAE5C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAS;gBAGb,OAAO,EAAE,UAAU,EACpB,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC;IAazD,IAAI,OAAO,IAAI,OAAO,CAErB;IAGD,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAWjC;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAE3B;IAED,WAAW,CAAC,OAAO,GAAE,oCAAyC;IAY9D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAUlC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC;IAOrC,OAAO,CAAC,SAAS;IAWjB,MAAM;IAMN,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAE/B;CACH"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { TgdCameraOrthographic, TgdControllerCameraOrbit, tgdActionCreateCameraInterpolation, tgdEasingFunctionInOutCubic, } from "@tolokoban/tgd";
|
|
2
|
-
const ZOOM_MIN = 0.25;
|
|
3
|
-
const ZOOM_MAX = 100;
|
|
2
|
+
export const ZOOM_MIN = 0.25;
|
|
3
|
+
export const ZOOM_MAX = 100;
|
|
4
|
+
const MOVE_DURATION_IN_SECONDS = 0.5;
|
|
5
|
+
const TURN_DURATION_IN_SECONDS = 0.3;
|
|
6
|
+
export function clampZoom(zoom) {
|
|
7
|
+
if (Number.isNaN(zoom))
|
|
8
|
+
return ZOOM_MIN;
|
|
9
|
+
return Math.min(ZOOM_MAX, Math.max(ZOOM_MIN, zoom));
|
|
10
|
+
}
|
|
4
11
|
export class CameraManager {
|
|
5
12
|
constructor(context, eventRestingPosition) {
|
|
6
13
|
this.context = context;
|
|
@@ -9,6 +16,7 @@ export class CameraManager {
|
|
|
9
16
|
this.animations = [];
|
|
10
17
|
this.orbit = null;
|
|
11
18
|
this.savedSpeedOrbit = null;
|
|
19
|
+
this._rotationLocked = false;
|
|
12
20
|
this.hanleOrbitChange = () => {
|
|
13
21
|
this.eventRestingPosition.dispatch(false);
|
|
14
22
|
};
|
|
@@ -27,6 +35,7 @@ export class CameraManager {
|
|
|
27
35
|
return (_b = (_a = this.orbit) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : false;
|
|
28
36
|
}
|
|
29
37
|
set rotationLocked(locked) {
|
|
38
|
+
this._rotationLocked = locked;
|
|
30
39
|
const { orbit } = this;
|
|
31
40
|
if (!orbit)
|
|
32
41
|
return;
|
|
@@ -52,11 +61,17 @@ export class CameraManager {
|
|
|
52
61
|
applyZoom(zoom) {
|
|
53
62
|
this.animateTo(Object.assign(Object.assign({}, this.target), { zoom: zoom !== null && zoom !== void 0 ? zoom : this.target.zoom }));
|
|
54
63
|
}
|
|
55
|
-
|
|
64
|
+
turnTo(orientation) {
|
|
65
|
+
if (this._rotationLocked)
|
|
66
|
+
return;
|
|
67
|
+
this.target.orientation = orientation;
|
|
68
|
+
this.animateTo({ orientation }, TURN_DURATION_IN_SECONDS);
|
|
69
|
+
}
|
|
70
|
+
animateTo(state, duration = MOVE_DURATION_IN_SECONDS) {
|
|
56
71
|
const { context } = this;
|
|
57
72
|
context.animCancelArray(this.animations);
|
|
58
73
|
this.animations = context.animSchedule({
|
|
59
|
-
duration
|
|
74
|
+
duration,
|
|
60
75
|
easingFunction: tgdEasingFunctionInOutCubic,
|
|
61
76
|
action: tgdActionCreateCameraInterpolation(context.camera, state),
|
|
62
77
|
onEnd: () => this.eventRestingPosition.dispatch(true),
|
|
@@ -69,4 +84,4 @@ export class CameraManager {
|
|
|
69
84
|
this.context.animCancelArray(this.animations);
|
|
70
85
|
}
|
|
71
86
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvY2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxxQkFBcUIsRUFHckIsd0JBQXdCLEVBR3hCLGtDQUFrQyxFQUNsQywyQkFBMkIsR0FDNUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUt4QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFFNUIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFHckMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZO0lBQ3BDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFhO0lBUXhCLFlBQ21CLE9BQW1CLEVBQ3BCLG9CQUF1QztRQUR0QyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ3BCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBbUI7UUFUbEQsV0FBTSxHQUE0QixFQUFFLENBQUM7UUFFcEMsZUFBVSxHQUFtQixFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFvQyxJQUFJLENBQUM7UUFDOUMsb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBb0ZmLHFCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEtBQUss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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { TgdEvent
|
|
1
|
+
import { TgdEvent } from "@tolokoban/tgd";
|
|
2
|
+
import type { MorphoViewerSpikes } from "../../../spikes";
|
|
2
3
|
import type { MorphoViewerTreeItemType } from "../../morpho-viewer-simul";
|
|
3
4
|
import type { MorphoViewerSignalCameraResetOptions, MorphoViewerSignalSnapshotOptions } from "../../signals";
|
|
4
5
|
import type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay } from "../../types";
|
|
@@ -12,6 +13,9 @@ export declare class PainterManager {
|
|
|
12
13
|
readonly eventLocationHover: TgdEvent<MorphoViewerMorphologyLocationHover | null>;
|
|
13
14
|
readonly eventLocationLabels: TgdEvent<MorphoViewerMorphologyLocationLabel[]>;
|
|
14
15
|
readonly eventScalebar: TgdEvent<number>;
|
|
16
|
+
readonly eventZoom: TgdEvent<number>;
|
|
17
|
+
readonly eventSpikeTime: TgdEvent<number>;
|
|
18
|
+
readonly eventSpikePlaying: TgdEvent<boolean>;
|
|
15
19
|
onLoadProgress?(progress: number): void;
|
|
16
20
|
private readonly viewportMatchingScale;
|
|
17
21
|
private _canvas;
|
|
@@ -25,6 +29,7 @@ export declare class PainterManager {
|
|
|
25
29
|
private _locationPickingEnabled;
|
|
26
30
|
private _pickableSectionTypes;
|
|
27
31
|
private _highlightedCellIds;
|
|
32
|
+
private highlightedCellIdSet;
|
|
28
33
|
private hoveredCellId;
|
|
29
34
|
private nudgeStart;
|
|
30
35
|
private readonly groupCells;
|
|
@@ -44,7 +49,9 @@ export declare class PainterManager {
|
|
|
44
49
|
private placementSignature;
|
|
45
50
|
private bbox;
|
|
46
51
|
private _verbose;
|
|
47
|
-
private
|
|
52
|
+
private gizmoOverlay;
|
|
53
|
+
private readonly handleGizmoTipClick;
|
|
54
|
+
private _gizmoCanvas;
|
|
48
55
|
private painterOverlays;
|
|
49
56
|
private painterSynapses;
|
|
50
57
|
private painterLocationMarkers;
|
|
@@ -76,8 +83,11 @@ export declare class PainterManager {
|
|
|
76
83
|
private _neuronOpacity;
|
|
77
84
|
private _somaAsSphere;
|
|
78
85
|
private spacePerPixel;
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
private readonly spiking;
|
|
87
|
+
private get measuredSpacePerPixel();
|
|
88
|
+
get gizmoCanvas(): HTMLCanvasElement | null;
|
|
89
|
+
set gizmoCanvas(canvas: HTMLCanvasElement | null);
|
|
90
|
+
private applyGizmoCanvas;
|
|
81
91
|
get somaAsSphere(): boolean;
|
|
82
92
|
set somaAsSphere(somaAsSphere: boolean);
|
|
83
93
|
get neuronOpacity(): number;
|
|
@@ -102,6 +112,8 @@ export declare class PainterManager {
|
|
|
102
112
|
private animateDendrogram;
|
|
103
113
|
private setDendrogramMix;
|
|
104
114
|
private blendedWorldSegment;
|
|
115
|
+
get zoom(): number;
|
|
116
|
+
set zoom(zoom: number);
|
|
105
117
|
get locationLabelsEnabled(): boolean;
|
|
106
118
|
set locationLabelsEnabled(enabled: boolean);
|
|
107
119
|
private readonly publishLocationLabels;
|
|
@@ -111,9 +123,21 @@ export declare class PainterManager {
|
|
|
111
123
|
private readonly updateCircuit;
|
|
112
124
|
private readonly adaptCameraFromBBox;
|
|
113
125
|
private combineCellsBBoxes;
|
|
114
|
-
get highlightedCellIds(): string[]
|
|
126
|
+
get highlightedCellIds(): string[];
|
|
115
127
|
set highlightedCellIds(value: string[] | undefined);
|
|
116
128
|
private updateHighlightedCells;
|
|
129
|
+
private applyCellBrightness;
|
|
130
|
+
private applySpikeFrame;
|
|
131
|
+
private readonly handleSpikeFrame;
|
|
132
|
+
setSpikes(spikes: MorphoViewerSpikes | undefined): void;
|
|
133
|
+
get spikeTime(): number;
|
|
134
|
+
set spikeTime(timeInMs: number);
|
|
135
|
+
get spikePlaying(): boolean;
|
|
136
|
+
set spikePlaying(playing: boolean);
|
|
137
|
+
get spikeSpeed(): number;
|
|
138
|
+
set spikeSpeed(speed: number);
|
|
139
|
+
get spikeAfterglowInSeconds(): number;
|
|
140
|
+
set spikeAfterglowInSeconds(afterglowInSeconds: number);
|
|
117
141
|
get background(): string;
|
|
118
142
|
set background(color: string);
|
|
119
143
|
get canvas(): HTMLCanvasElement | null;
|
|
@@ -121,6 +145,7 @@ export declare class PainterManager {
|
|
|
121
145
|
get overlayCanvas(): HTMLCanvasElement | null;
|
|
122
146
|
set overlayCanvas(canvas: HTMLCanvasElement | null);
|
|
123
147
|
private bindOverlaySurface;
|
|
148
|
+
refreshScalebar(): void;
|
|
124
149
|
private readonly handleSpacePerPixel;
|
|
125
150
|
private pinOverlaysAfterDrag;
|
|
126
151
|
private clearPinnedOverlay;
|
|
@@ -138,5 +163,5 @@ export declare class PainterManager {
|
|
|
138
163
|
private dispatchLocationPick;
|
|
139
164
|
private delete;
|
|
140
165
|
}
|
|
141
|
-
export declare function usePainterManager({ backgroundColor, circuit, loadCell, onCellHover, onCellClick, highlightedCellIds, onLoadProgress,
|
|
166
|
+
export declare function usePainterManager({ backgroundColor, circuit, loadCell, onCellHover, onCellClick, highlightedCellIds, onLoadProgress, verbose, overlays, overlaysRadius, overlaysMinRadiusInPixels, overlaysInteractive, onOverlayTransform, highlightedOverlayId, synapses, synapsesRadius, synapsesMinRadiusInPixels, neuronOpacity, somaAsSphere, signals, locationSelection, dendrogram, onZoomChange, spikes, spikeTime, onSpikeTimeChange, spikePlaying, onSpikePlayingChange, spikeSpeed, spikeAfterglowInSeconds, }: MorphoViewerSmallCircuitProps): PainterManager;
|
|
142
167
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -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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"}
|