@openbraininstitute/morphoviewer 0.32.4 → 0.34.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 +70 -62
- package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +11 -2
- package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/camera.js +42 -6
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +24 -8
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +209 -72
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +3 -3
- 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 +9 -2
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.d.ts +2 -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 +8 -2
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/section-index.d.ts +4 -2
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/section-index.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/section-index.js +15 -6
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js +219 -16
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.js +2 -2
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.js +2 -2
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +5 -1
- 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 +16 -4
- package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/index.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/index.js +1 -1
- 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/signals.d.ts +1 -0
- package/dist/components/signals.d.ts.map +1 -1
- package/dist/components/signals.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/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,73 +1,81 @@
|
|
|
1
1
|
.morphoViewerSmallCircuit {
|
|
2
|
-
|
|
2
|
+
position: relative;
|
|
3
|
+
left: 0;
|
|
4
|
+
top: 0;
|
|
5
|
+
width: 100%;
|
|
6
|
+
height: 100%;
|
|
7
|
+
color: #fff;
|
|
8
|
+
|
|
9
|
+
> canvas.webgl {
|
|
10
|
+
position: absolute;
|
|
3
11
|
left: 0;
|
|
4
12
|
top: 0;
|
|
5
13
|
width: 100%;
|
|
6
14
|
height: 100%;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
>canvas.webgl {
|
|
10
|
-
position: absolute;
|
|
11
|
-
left: 0;
|
|
12
|
-
top: 0;
|
|
13
|
-
width: 100%;
|
|
14
|
-
height: 100%;
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
> canvas.webglOverlays {
|
|
18
|
+
position: absolute;
|
|
19
|
+
left: 0;
|
|
20
|
+
top: 0;
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 100%;
|
|
23
|
+
pointer-events: none;
|
|
24
|
+
z-index: 1;
|
|
25
|
+
}
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
27
|
+
> header {
|
|
28
|
+
position: absolute;
|
|
29
|
+
left: 0;
|
|
30
|
+
top: 0;
|
|
31
|
+
width: 100%;
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
padding: 1em;
|
|
34
|
+
margin: 0;
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-wrap: nowrap;
|
|
37
|
+
flex-direction: row;
|
|
38
|
+
justify-content: space-between;
|
|
39
|
+
align-items: center;
|
|
40
|
+
gap: 2em;
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
> div.flex {
|
|
43
|
+
display: flex;
|
|
44
|
+
flex-wrap: nowrap;
|
|
45
|
+
flex-direction: row;
|
|
46
|
+
justify-content: flex-start;
|
|
47
|
+
align-items: center;
|
|
48
|
+
gap: 0.5em;
|
|
49
|
+
}
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
51
|
+
button {
|
|
52
|
+
font: inherit;
|
|
53
|
+
width: 2.5em;
|
|
54
|
+
height: 2.5em;
|
|
55
|
+
display: grid;
|
|
56
|
+
place-items: center;
|
|
57
|
+
flex: 0 0 auto;
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
color: #fff;
|
|
60
|
+
border: 2px solid #000;
|
|
61
|
+
border-radius: 2px;
|
|
62
|
+
background: #3a3a3a;
|
|
63
|
+
margin: 0;
|
|
64
|
+
box-sizing: border-box;
|
|
65
|
+
transition: all 0.3s;
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
67
|
+
&:hover {
|
|
68
|
+
background-color: #adf;
|
|
69
|
+
color: #000;
|
|
70
|
+
}
|
|
72
71
|
}
|
|
73
|
-
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* The gizmo's canvas. Its tips are clickable, so it takes the pointer. */
|
|
76
|
+
.gizmo {
|
|
77
|
+
position: absolute;
|
|
78
|
+
z-index: 4;
|
|
79
|
+
cursor: pointer;
|
|
80
|
+
touch-action: none;
|
|
81
|
+
}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import { type TgdCameraState, type TgdContext, type TgdEvent } from "@tolokoban/tgd";
|
|
2
|
-
import { MorphoViewerSignalCameraResetOptions } from "../../signals";
|
|
1
|
+
import { type TgdCameraState, type TgdContext, type TgdEvent, type TgdQuat } from "@tolokoban/tgd";
|
|
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>;
|
|
6
9
|
target: Partial<TgdCameraState>;
|
|
7
10
|
private animations;
|
|
8
11
|
private orbit;
|
|
12
|
+
private savedSpeedOrbit;
|
|
13
|
+
private _rotationLocked;
|
|
9
14
|
constructor(context: TgdContext, eventRestingPosition: TgdEvent<boolean>);
|
|
10
15
|
get enabled(): boolean;
|
|
16
|
+
set rotationLocked(locked: boolean);
|
|
11
17
|
set enabled(enabled: boolean);
|
|
12
18
|
resetCamera(options?: MorphoViewerSignalCameraResetOptions): void;
|
|
19
|
+
applyZoom(zoom: number | undefined): void;
|
|
20
|
+
turnTo(orientation: Readonly<TgdQuat>): void;
|
|
21
|
+
private animateTo;
|
|
13
22
|
delete(): void;
|
|
14
23
|
private readonly hanleOrbitChange;
|
|
15
24
|
}
|
|
@@ -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;
|
|
@@ -8,6 +15,8 @@ export class CameraManager {
|
|
|
8
15
|
this.target = {};
|
|
9
16
|
this.animations = [];
|
|
10
17
|
this.orbit = null;
|
|
18
|
+
this.savedSpeedOrbit = null;
|
|
19
|
+
this._rotationLocked = false;
|
|
11
20
|
this.hanleOrbitChange = () => {
|
|
12
21
|
this.eventRestingPosition.dispatch(false);
|
|
13
22
|
};
|
|
@@ -25,19 +34,46 @@ export class CameraManager {
|
|
|
25
34
|
var _a, _b;
|
|
26
35
|
return (_b = (_a = this.orbit) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : false;
|
|
27
36
|
}
|
|
37
|
+
set rotationLocked(locked) {
|
|
38
|
+
this._rotationLocked = locked;
|
|
39
|
+
const { orbit } = this;
|
|
40
|
+
if (!orbit)
|
|
41
|
+
return;
|
|
42
|
+
if (locked) {
|
|
43
|
+
if (this.savedSpeedOrbit === null)
|
|
44
|
+
this.savedSpeedOrbit = orbit.speedOrbit;
|
|
45
|
+
orbit.speedOrbit = 0;
|
|
46
|
+
}
|
|
47
|
+
else if (this.savedSpeedOrbit !== null) {
|
|
48
|
+
orbit.speedOrbit = this.savedSpeedOrbit;
|
|
49
|
+
this.savedSpeedOrbit = null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
28
52
|
set enabled(enabled) {
|
|
29
53
|
if (this.orbit)
|
|
30
54
|
this.orbit.enabled = enabled;
|
|
31
55
|
}
|
|
32
56
|
resetCamera(options = {}) {
|
|
33
57
|
var _a;
|
|
34
|
-
const { context } = this;
|
|
35
58
|
this.target.zoom = (_a = options.zoom) !== null && _a !== void 0 ? _a : this.target.zoom;
|
|
59
|
+
this.animateTo(this.target);
|
|
60
|
+
}
|
|
61
|
+
applyZoom(zoom) {
|
|
62
|
+
this.animateTo(Object.assign(Object.assign({}, this.target), { zoom: zoom !== null && zoom !== void 0 ? zoom : this.target.zoom }));
|
|
63
|
+
}
|
|
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) {
|
|
71
|
+
const { context } = this;
|
|
36
72
|
context.animCancelArray(this.animations);
|
|
37
73
|
this.animations = context.animSchedule({
|
|
38
|
-
duration
|
|
74
|
+
duration,
|
|
39
75
|
easingFunction: tgdEasingFunctionInOutCubic,
|
|
40
|
-
action: tgdActionCreateCameraInterpolation(context.camera,
|
|
76
|
+
action: tgdActionCreateCameraInterpolation(context.camera, state),
|
|
41
77
|
onEnd: () => this.eventRestingPosition.dispatch(true),
|
|
42
78
|
});
|
|
43
79
|
}
|
|
@@ -48,4 +84,4 @@ export class CameraManager {
|
|
|
48
84
|
this.context.animCancelArray(this.animations);
|
|
49
85
|
}
|
|
50
86
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvY2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxxQkFBcUIsRUFHckIsd0JBQXdCLEVBR3hCLGtDQUFrQyxFQUNsQywyQkFBMkIsR0FDNUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUt4QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFFNUIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFHckMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZO0lBQ3BDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFhO0lBUXhCLFlBQ21CLE9BQW1CLEVBQ3BCLG9CQUF1QztRQUR0QyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ3BCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBbUI7UUFUbEQsV0FBTSxHQUE0QixFQUFFLENBQUM7UUFFcEMsZUFBVSxHQUFtQixFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFvQyxJQUFJLENBQUM7UUFDOUMsb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBb0ZmLHFCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEtBQUss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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TgdEvent
|
|
1
|
+
import { TgdEvent } from "@tolokoban/tgd";
|
|
2
2
|
import type { MorphoViewerTreeItemType } from "../../morpho-viewer-simul";
|
|
3
3
|
import type { MorphoViewerSignalCameraResetOptions, MorphoViewerSignalSnapshotOptions } from "../../signals";
|
|
4
4
|
import type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay } from "../../types";
|
|
@@ -12,6 +12,7 @@ export declare class PainterManager {
|
|
|
12
12
|
readonly eventLocationHover: TgdEvent<MorphoViewerMorphologyLocationHover | null>;
|
|
13
13
|
readonly eventLocationLabels: TgdEvent<MorphoViewerMorphologyLocationLabel[]>;
|
|
14
14
|
readonly eventScalebar: TgdEvent<number>;
|
|
15
|
+
readonly eventZoom: TgdEvent<number>;
|
|
15
16
|
onLoadProgress?(progress: number): void;
|
|
16
17
|
private readonly viewportMatchingScale;
|
|
17
18
|
private _canvas;
|
|
@@ -29,8 +30,8 @@ export declare class PainterManager {
|
|
|
29
30
|
private nudgeStart;
|
|
30
31
|
private readonly groupCells;
|
|
31
32
|
private circuit;
|
|
32
|
-
private readonly
|
|
33
|
-
private readonly
|
|
33
|
+
private readonly cellsForHighlights;
|
|
34
|
+
private readonly groupHighlightedCells;
|
|
34
35
|
private loadCell;
|
|
35
36
|
private cellCountTotal;
|
|
36
37
|
private cellCountLoaded;
|
|
@@ -44,7 +45,9 @@ export declare class PainterManager {
|
|
|
44
45
|
private placementSignature;
|
|
45
46
|
private bbox;
|
|
46
47
|
private _verbose;
|
|
47
|
-
private
|
|
48
|
+
private gizmoOverlay;
|
|
49
|
+
private readonly handleGizmoTipClick;
|
|
50
|
+
private _gizmoCanvas;
|
|
48
51
|
private painterOverlays;
|
|
49
52
|
private painterSynapses;
|
|
50
53
|
private painterLocationMarkers;
|
|
@@ -56,6 +59,9 @@ export declare class PainterManager {
|
|
|
56
59
|
private previewedLocationKey;
|
|
57
60
|
private _locationLabelsEnabled;
|
|
58
61
|
private readonly cellPainters;
|
|
62
|
+
private _dendrogramMode;
|
|
63
|
+
private dendrogramMix;
|
|
64
|
+
private dendrogramAnimations;
|
|
59
65
|
private readonly overlaySurface;
|
|
60
66
|
private _overlayCanvas;
|
|
61
67
|
private overlayInteraction;
|
|
@@ -73,10 +79,12 @@ export declare class PainterManager {
|
|
|
73
79
|
private _neuronOpacity;
|
|
74
80
|
private _somaAsSphere;
|
|
75
81
|
private spacePerPixel;
|
|
82
|
+
private get measuredSpacePerPixel();
|
|
83
|
+
get gizmoCanvas(): HTMLCanvasElement | null;
|
|
84
|
+
set gizmoCanvas(canvas: HTMLCanvasElement | null);
|
|
85
|
+
private applyGizmoCanvas;
|
|
76
86
|
get somaAsSphere(): boolean;
|
|
77
87
|
set somaAsSphere(somaAsSphere: boolean);
|
|
78
|
-
get gizmo(): TgdPainterGizmoOptions | boolean | null | undefined;
|
|
79
|
-
set gizmo(gizmo: TgdPainterGizmoOptions | boolean | null | undefined);
|
|
80
88
|
get neuronOpacity(): number;
|
|
81
89
|
set neuronOpacity(neuronOpacity: number);
|
|
82
90
|
readonly cameraReset: (options?: MorphoViewerSignalCameraResetOptions) => void | undefined;
|
|
@@ -94,6 +102,13 @@ export declare class PainterManager {
|
|
|
94
102
|
private applyLocationMarkers;
|
|
95
103
|
private readonly updateLocationHover;
|
|
96
104
|
private previewLocationAt;
|
|
105
|
+
get dendrogramMode(): boolean;
|
|
106
|
+
set dendrogramMode(enabled: boolean);
|
|
107
|
+
private animateDendrogram;
|
|
108
|
+
private setDendrogramMix;
|
|
109
|
+
private blendedWorldSegment;
|
|
110
|
+
get zoom(): number;
|
|
111
|
+
set zoom(zoom: number);
|
|
97
112
|
get locationLabelsEnabled(): boolean;
|
|
98
113
|
set locationLabelsEnabled(enabled: boolean);
|
|
99
114
|
private readonly publishLocationLabels;
|
|
@@ -105,7 +120,7 @@ export declare class PainterManager {
|
|
|
105
120
|
private combineCellsBBoxes;
|
|
106
121
|
get highlightedCellIds(): string[] | undefined;
|
|
107
122
|
set highlightedCellIds(value: string[] | undefined);
|
|
108
|
-
private
|
|
123
|
+
private updateHighlightedCells;
|
|
109
124
|
get background(): string;
|
|
110
125
|
set background(color: string);
|
|
111
126
|
get canvas(): HTMLCanvasElement | null;
|
|
@@ -113,6 +128,7 @@ export declare class PainterManager {
|
|
|
113
128
|
get overlayCanvas(): HTMLCanvasElement | null;
|
|
114
129
|
set overlayCanvas(canvas: HTMLCanvasElement | null);
|
|
115
130
|
private bindOverlaySurface;
|
|
131
|
+
refreshScalebar(): void;
|
|
116
132
|
private readonly handleSpacePerPixel;
|
|
117
133
|
private pinOverlaysAfterDrag;
|
|
118
134
|
private clearPinnedOverlay;
|
|
@@ -130,5 +146,5 @@ export declare class PainterManager {
|
|
|
130
146
|
private dispatchLocationPick;
|
|
131
147
|
private delete;
|
|
132
148
|
}
|
|
133
|
-
export declare function usePainterManager({ backgroundColor, circuit, loadCell, onCellHover, onCellClick, highlightedCellIds, onLoadProgress,
|
|
149
|
+
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, }: MorphoViewerSmallCircuitProps): PainterManager;
|
|
134
150
|
//# 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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"}
|