@openbraininstitute/morphoviewer 0.30.0 → 0.31.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.
Files changed (61) hide show
  1. package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +14 -9
  2. package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +10 -0
  3. package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +4 -1
  4. package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -1
  5. package/dist/components/morpho-viewer-small-circuit/painter/camera.js +12 -2
  6. package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +39 -8
  7. package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
  8. package/dist/components/morpho-viewer-small-circuit/painter/manager.js +292 -20
  9. package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +4 -4
  10. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +2 -0
  11. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts.map +1 -1
  12. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +3 -1
  13. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.d.ts +26 -0
  14. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.d.ts.map +1 -0
  15. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.js +105 -0
  16. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.d.ts +11 -0
  17. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.d.ts.map +1 -0
  18. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.js +7 -0
  19. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.d.ts +12 -0
  20. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.d.ts.map +1 -0
  21. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.js +7 -0
  22. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +9 -2
  23. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -1
  24. package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +76 -8
  25. package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.d.ts +6 -8
  26. package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.d.ts.map +1 -1
  27. package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.js +2 -1
  28. package/dist/components/morpho-viewer-small-circuit/types.d.ts +6 -2
  29. package/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
  30. package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +32 -4
  31. package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -1
  32. package/dist/components/morpho-viewer-somas-only/manager/manager.js +254 -13
  33. package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +5 -0
  34. package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts.map +1 -1
  35. package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.js +43 -6
  36. package/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.js +14 -9
  37. package/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.module.css +10 -0
  38. package/dist/components/morpho-viewer-somas-only/types.d.ts +6 -2
  39. package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
  40. package/dist/components/signals.d.ts +6 -3
  41. package/dist/components/signals.d.ts.map +1 -1
  42. package/dist/components/signals.js +1 -1
  43. package/dist/components/types.d.ts +32 -0
  44. package/dist/components/types.d.ts.map +1 -1
  45. package/dist/index.d.ts +3 -3
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +2 -2
  48. package/dist/package.json +2 -2
  49. package/dist/painters/overlay-interaction.d.ts +49 -0
  50. package/dist/painters/overlay-interaction.d.ts.map +1 -0
  51. package/dist/painters/overlay-interaction.js +432 -0
  52. package/dist/painters/overlay-surface.d.ts +18 -0
  53. package/dist/painters/overlay-surface.d.ts.map +1 -0
  54. package/dist/painters/overlay-surface.js +83 -0
  55. package/dist/painters/world-overlays.d.ts +25 -0
  56. package/dist/painters/world-overlays.d.ts.map +1 -0
  57. package/dist/painters/world-overlays.js +185 -0
  58. package/package.json +2 -2
  59. package/dist/components/snapshot.d.ts +0 -3
  60. package/dist/components/snapshot.d.ts.map +0 -1
  61. package/dist/components/snapshot.js +0 -32
@@ -9,9 +9,10 @@ const DEFAULT_PALETTE_COLORS = [
9
9
  ];
10
10
  export class PainterCellInfos extends TgdPainterGroup {
11
11
  constructor(context, options) {
12
- var _a;
12
+ var _a, _b;
13
13
  const bbox = new TgdBoundingBox();
14
14
  const { paletteColors, painterPointsCloudOptions } = parseCellInfos(options.cellInfos, bbox);
15
+ const opacity = clamp01((_a = options.opacity) !== null && _a !== void 0 ? _a : 1);
15
16
  const texturePalette = new TgdTexture2D(context, {
16
17
  params: {
17
18
  magFilter: "LINEAR",
@@ -20,10 +21,8 @@ export class PainterCellInfos extends TgdPainterGroup {
20
21
  wrapS: "CLAMP_TO_EDGE",
21
22
  wrapT: "CLAMP_TO_EDGE",
22
23
  },
23
- }).loadBitmap(paletteColors
24
- ? createCategoricalPalette(paletteColors, PALETTE_AO_ROWS)
25
- : tgdCanvasCreatePalette(DEFAULT_PALETTE_COLORS, 1));
26
- const uvs = (_a = middleLuminance(painterPointsCloudOptions.dataUV)) !== null && _a !== void 0 ? _a : new Float32Array(2 * options.cellInfos.length);
24
+ }).loadBitmap(createPaletteBitmap(paletteColors, opacity));
25
+ const uvs = (_b = middleLuminance(painterPointsCloudOptions.dataUV)) !== null && _b !== void 0 ? _b : new Float32Array(2 * options.cellInfos.length);
27
26
  const painterPointsCloud = new TgdPainterPointsCloud(context, Object.assign(Object.assign({}, painterPointsCloudOptions), { dataUV: computeAmbientOcclusion(bbox, 10 * RADIUS, painterPointsCloudOptions.dataPoint, uvs), texture: texturePalette, fragCode: TgdPainterPointsCloud.fragCodeSphere({
28
27
  enableSpecular: true,
29
28
  specularExponent: 50,
@@ -35,6 +34,8 @@ export class PainterCellInfos extends TgdPainterGroup {
35
34
  this.context = context;
36
35
  this.painterPointsCloud = painterPointsCloud;
37
36
  this.texturePalette = texturePalette;
37
+ this.paletteColors = paletteColors;
38
+ this._opacity = opacity;
38
39
  this.bbox = bbox;
39
40
  }
40
41
  get somaRadius() {
@@ -46,6 +47,17 @@ export class PainterCellInfos extends TgdPainterGroup {
46
47
  this.painterPointsCloud.radiusMultiplier = somaRadius;
47
48
  this.context.paint();
48
49
  }
50
+ get opacity() {
51
+ return this._opacity;
52
+ }
53
+ set opacity(opacity) {
54
+ const next = clamp01(opacity);
55
+ if (this._opacity === next)
56
+ return;
57
+ this._opacity = next;
58
+ this.texturePalette.loadBitmap(createPaletteBitmap(this.paletteColors, next));
59
+ this.context.paint();
60
+ }
49
61
  delete() {
50
62
  this.texturePalette.delete();
51
63
  super.delete();
@@ -146,6 +158,31 @@ function createCategoricalPalette(colors, rows) {
146
158
  ctx.fillRect(0, 0, width, rows);
147
159
  return canvas;
148
160
  }
161
+ function createPaletteBitmap(paletteColors, opacity) {
162
+ const canvas = paletteColors
163
+ ? createCategoricalPalette(paletteColors, PALETTE_AO_ROWS)
164
+ : tgdCanvasCreatePalette(DEFAULT_PALETTE_COLORS, 1);
165
+ return applyCanvasOpacity(canvas, opacity);
166
+ }
167
+ function applyCanvasOpacity(canvas, opacity) {
168
+ if (opacity >= 1)
169
+ return canvas;
170
+ const ctx = canvas.getContext("2d");
171
+ if (!ctx)
172
+ return canvas;
173
+ const image = ctx.getImageData(0, 0, canvas.width, canvas.height);
174
+ const alpha = Math.round(clamp01(opacity) * 255);
175
+ for (let i = 3; i < image.data.length; i += 4) {
176
+ image.data[i] = alpha;
177
+ }
178
+ ctx.putImageData(image, 0, 0);
179
+ return canvas;
180
+ }
181
+ function clamp01(value) {
182
+ if (Number.isNaN(value))
183
+ return 1;
184
+ return Math.min(1, Math.max(0, value));
185
+ }
149
186
  function middleLuminance(dataUV) {
150
187
  if (!dataUV)
151
188
  return;
@@ -154,4 +191,4 @@ function middleLuminance(dataUV) {
154
191
  }
155
192
  return dataUV;
156
193
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLHFCQUFxQixFQUVyQixZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBSWxCLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUczQixNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFPRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQU1uRCxZQUNrQixPQUFtQixFQUNuQyxPQUFnQzs7UUFFaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLEtBQUssRUFBRSxlQUFlO2dCQUN0QixLQUFLLEVBQUUsZUFBZTtnQkFDdEIsS0FBSyxFQUFFLGVBQWU7YUFDdkI7U0FDRixDQUFDLENBQUMsVUFBVSxDQUNYLGFBQWE7WUFDWCxDQUFDLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQztZQUMxRCxD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
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLHFCQUFxQixFQUVyQixZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBSWxCLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUczQixNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFTRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQVFuRCxZQUNrQixPQUFtQixFQUNuQyxPQUFnQzs7UUFFaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQUEsT0FBTyxDQUFDLE9BQU8sbUNBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLEtBQUssRUFBRSxlQUFlO2dCQUN0QixLQUFLLEVBQUUsZUFBZTtnQkFDdEIsS0FBSyxFQUFFLGVBQWU7YUFDdkI7U0FDRixDQUFDLENB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
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { tgdFullscreenToggle } from "@tolokoban/tgd";
3
3
  import React from "react";
4
4
  import { version } from "./../../package.json";
@@ -24,7 +24,7 @@ export function MorphoViewerSomasOnly(props) {
24
24
  handleToggleFullscreen();
25
25
  break;
26
26
  case "reset-camera":
27
- painterManager.cameraReset();
27
+ painterManager.cameraReset({ zoom: 1 });
28
28
  break;
29
29
  case "close":
30
30
  (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
@@ -37,14 +37,19 @@ export function MorphoViewerSomasOnly(props) {
37
37
  return (_jsxs("div", { ref: ref, className: classNames(props.className, styles.morphoViewerSomasOnly), "data-version": version, children: [_jsx(Canvas, { painterManager: painterManager }), _jsx(ControlsLayout, { content: (_a = props.controls) !== null && _a !== void 0 ? _a : getDefaultControls(props), onClick: handleControls }), props.scalebar && (_jsx(MorphoViewerScalebar, { className: props.scalebar, spacePerPixelEvent: painterManager.eventScalebar, unit: props.scalebar }))] }));
38
38
  }
39
39
  const Canvas = React.memo(({ painterManager }) => {
40
- return (_jsx("canvas", { className: styles.webgl, ref: (canvas) => {
41
- painterManager.canvas = canvas;
42
- return () => {
43
- painterManager.canvas = null;
44
- };
45
- } }, "canvas"));
40
+ return (_jsxs(_Fragment, { children: [_jsx("canvas", { className: styles.webgl, ref: (canvas) => {
41
+ painterManager.canvas = canvas;
42
+ return () => {
43
+ painterManager.canvas = null;
44
+ };
45
+ } }, "canvas"), _jsx("canvas", { className: styles.webglOverlays, ref: (canvas) => {
46
+ painterManager.overlayCanvas = canvas;
47
+ return () => {
48
+ painterManager.overlayCanvas = null;
49
+ };
50
+ } }, "overlays")] }));
46
51
  });
47
52
  function getDefaultControls(props) {
48
53
  return ["reset-camera", ["fullscreen", props.onClose && "close", props.onMinimize && "minimize"]];
49
54
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvLXZpZXdlci1zb21hcy1vbmx5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21vcnBoby12aWV3ZXItc29tYXMtb25seS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxPQUFPLEVBQXNCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sb0JBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUF1QixVQUFVLElBQUksaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJakYsT0FBTyxNQUFNLE1BQU0sdUNBQXVDLENBQUM7QUFFM0QsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQWlDOztJQUNyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUF3QixJQUFJLENBQUMsQ0FBQztJQUN0RCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUVqQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQXFCLEVBQVEsRUFBRTs7UUFDckQsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssWUFBWTtnQkFDZixzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsTUFBQSxLQUFLLENBQUMsT0FBTyxxREFBSSxDQUFDO2dCQUNsQixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLE1BQUEsS0FBSyxDQUFDLFVBQVUscURBQUksQ0FBQztnQkFDckIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsZUFDRSxHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMscUJBQXFCLENBQUMsa0JBQ3RELE9BQU8sYUFFckIsS0FBQyxNQUFNLElBQUMsY0FBYyxFQUFFLGNBQWMsR0FBSSxFQUMxQyxLQUFDLGNBQWMsSUFDYixPQUFPLEVBQUUsTUFBQSxLQUFLLENBQUMsUUFBUSxtQ0FBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFDcEQsT0FBTyxFQUFFLGNBQWMsR0FDdkIsRUFDRCxLQUFLLENBQUMsUUFBUSxJQUFJLENBQ2pCLEtBQUMsb0JBQW9CLElBQ25CLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUN6QixrQkFBa0IsRUFBRSxjQUFjLENBQUMsYUFBYSxFQUNoRCxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsR0FDcEIsQ0FDSCxJQUNHLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQXNDLEVBQUUsRUFBRTtJQUNuRixPQUFPLENBQ0wsaUJBRUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQ3ZCLEdBQUcsRUFBRSxDQUFDLE1BQWdDLEVBQUUsRUFBRTtZQUN4QyxjQUFjLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUMvQixPQUFPLEdBQUcsRUFBRTtnQkFDVixjQUFjLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMvQixDQUFDLENBQUM7UUFDSixDQUFDLElBUEcsUUFBUSxDQVFaLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxrQkFBa0IsQ0FBQyxLQUFpQztJQUMzRCxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvLXZpZXdlci1zb21hcy1vbmx5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21vcnBoby12aWV3ZXItc29tYXMtb25seS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxPQUFPLEVBQXNCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sb0JBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUF1QixVQUFVLElBQUksaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJakYsT0FBTyxNQUFNLE1BQU0sdUNBQXVDLENBQUM7QUFFM0QsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQWlDOztJQUNyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUF3QixJQUFJLENBQUMsQ0FBQztJQUN0RCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUVqQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQXFCLEVBQVEsRUFBRTs7UUFDckQsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssWUFBWTtnQkFDZixzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsTUFBQSxLQUFLLENBQUMsT0FBTyxxREFBSSxDQUFDO2dCQUNsQixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLE1BQUEsS0FBSyxDQUFDLFVBQVUscURBQUksQ0FBQztnQkFDckIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsZUFDRSxHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMscUJBQXFCLENBQUMsa0JBQ3RELE9BQU8sYUFFckIsS0FBQyxNQUFNLElBQUMsY0FBYyxFQUFFLGNBQWMsR0FBSSxFQUMxQyxLQUFDLGNBQWMsSUFDYixPQUFPLEVBQUUsTUFBQSxLQUFLLENBQUMsUUFBUSxtQ0FBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFDcEQsT0FBTyxFQUFFLGNBQWMsR0FDdkIsRUFDRCxLQUFLLENBQUMsUUFBUSxJQUFJLENBQ2pCLEtBQUMsb0JBQW9CLElBQ25CLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUN6QixrQkFBa0IsRUFBRSxjQUFjLENBQUMsYUFBYSxFQUNoRCxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsR0FDcEIsQ0FDSCxJQUNHLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQXNDLEVBQUUsRUFBRTtJQUNuRixPQUFPLENBQ0wsOEJBQ0UsaUJBRUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQ3ZCLEdBQUcsRUFBRSxDQUFDLE1BQWdDLEVBQUUsRUFBRTtvQkFDeEMsY0FBYyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7b0JBQy9CLE9BQU8sR0FBRyxFQUFFO3dCQUNWLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUMvQixDQUFDLENBQUM7Z0JBQ0osQ0FBQyxJQVBHLFFBQVEsQ0FRWixFQUNGLGlCQUVFLFNBQVMsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUMvQixHQUFHLEVBQUUsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7b0JBQ3hDLGNBQWMsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO29CQUN0QyxPQUFPLEdBQUcsRUFBRTt3QkFDVixjQUFjLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDdEMsQ0FBQyxDQUFDO2dCQUNKLENBQUMsSUFQRyxVQUFVLENBUWQsSUFDRCxDQUNKLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsa0JBQWtCLENBQUMsS0FBaUM7SUFDM0QsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDcEcsQ0FBQyJ9
@@ -12,4 +12,14 @@
12
12
  width: 100%;
13
13
  height: 100%;
14
14
  }
15
+
16
+ >.webglOverlays {
17
+ position: absolute;
18
+ left: 0;
19
+ top: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ pointer-events: none;
23
+ z-index: 1;
24
+ }
15
25
  }
@@ -1,18 +1,22 @@
1
1
  import type { ArrayNumber3 } from "@tolokoban/tgd";
2
2
  import type { ControlsLayoutProps } from "../controls-layout";
3
3
  import type { MorphoViewerSignals } from "../signals";
4
- import type { PropsForGizmo, PropsForScalebar } from "../types";
4
+ import type { MorphoViewerWorldOverlay, PropsForGizmo, PropsForOverlayInteraction, PropsForScalebar } from "../types";
5
5
  export interface MorphoViewerCellInfo {
6
6
  morphologyId: string;
7
7
  position: ArrayNumber3;
8
8
  color?: string;
9
9
  }
10
- export type MorphoViewerSomasOnlyProps = PropsForGizmo & PropsForScalebar & {
10
+ export type MorphoViewerSomasOnlyProps = PropsForGizmo & PropsForScalebar & PropsForOverlayInteraction & {
11
11
  className?: string;
12
12
  somaRadius?: number;
13
13
  cellInfos: MorphoViewerCellInfo[];
14
14
  cameraType?: "orthographic" | "perspective";
15
15
  backgroundColor?: string;
16
+ overlays?: MorphoViewerWorldOverlay[];
17
+ overlaysRadius?: number;
18
+ overlaysMinRadiusInPixels?: number;
19
+ neuronOpacity?: number;
16
20
  signals?: MorphoViewerSignals;
17
21
  onClose?(): void;
18
22
  onMinimize?(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-somas-only/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IAevB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,aAAa,GACpD,gBAAgB,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;IAK5C,eAAe,CAAC,EAAE,MAAM,CAAC;IAQzB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-somas-only/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IAevB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,aAAa,GACpD,gBAAgB,GAChB,0BAA0B,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;IAK5C,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAEtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAOnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAQvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC"}
@@ -1,7 +1,10 @@
1
- export interface MorphoViewerSnapshotOptions {
1
+ export interface MorphoViewerSignalSnapshotOptions {
2
2
  type?: "image/png" | "image/webp" | "image/jpeg";
3
3
  quality?: number;
4
4
  }
5
+ export interface MorphoViewerSignalCameraResetOptions {
6
+ zoom?: number;
7
+ }
5
8
  export declare class MorphoViewerSignal<Input = void, Output = void> {
6
9
  private handler;
7
10
  constructor(handler?: (args: Input) => Output | Promise<Output>);
@@ -9,7 +12,7 @@ export declare class MorphoViewerSignal<Input = void, Output = void> {
9
12
  register(handler: (args: Input) => Output | Promise<Output>): () => void;
10
13
  }
11
14
  export declare class MorphoViewerSignals {
12
- readonly cameraReset: MorphoViewerSignal<void, void>;
13
- readonly snapshot: MorphoViewerSignal<MorphoViewerSnapshotOptions | undefined, HTMLImageElement | null>;
15
+ readonly cameraReset: MorphoViewerSignal<MorphoViewerSignalCameraResetOptions | undefined, void>;
16
+ readonly snapshot: MorphoViewerSignal<MorphoViewerSignalSnapshotOptions | undefined, HTMLImageElement | null>;
14
17
  }
15
18
  //# sourceMappingURL=signals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/components/signals.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,2BAA2B;IAE1C,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAEjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,qBAAa,kBAAkB,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI;IACzD,OAAO,CAAC,OAAO,CAA0D;gBAE7D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;CAMzE;AAMD,qBAAa,mBAAmB;IAE9B,SAAgB,WAAW,iCAA4B;IAQvD,SAAgB,QAAQ,uFAGpB;CACL"}
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/components/signals.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,iCAAiC;IAEhD,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAEjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oCAAoC;IAInD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAQD,qBAAa,kBAAkB,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI;IACzD,OAAO,CAAC,OAAO,CAA0D;gBAE7D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;CAMzE;AAMD,qBAAa,mBAAmB;IAE9B,SAAgB,WAAW,6EAEvB;IAQJ,SAAgB,QAAQ,6FAGpB;CACL"}
@@ -24,4 +24,4 @@ export class MorphoViewerSignals {
24
24
  this.snapshot = new MorphoViewerSignal();
25
25
  }
26
26
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NpZ25hbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWNBLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBWSxPQUFtRDtRQUM3RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBR0ssUUFBUSxDQUFDLElBQVc7O1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7WUFDckYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7S0FBQTtJQUdELFFBQVEsQ0FBQyxPQUFrRDtRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO2dCQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3pELENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFFa0IsZ0JBQVcsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFRdkMsYUFBUSxHQUFHLElBQUksa0JBQWtCLEVBRzlDLENBQUM7SUFDTixDQUFDO0NBQUEifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NpZ25hbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQXFCQSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQVksT0FBbUQ7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUdLLFFBQVEsQ0FBQyxJQUFXOztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ3JGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0tBQUE7SUFHRCxRQUFRLENBQUMsT0FBa0Q7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztnQkFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6RCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sbUJBQW1CO0lBQWhDO1FBRWtCLGdCQUFXLEdBQUcsSUFBSSxrQkFBa0IsRUFFakQsQ0FBQztRQVFZLGFBQVEsR0FBRyxJQUFJLGtCQUFrQixFQUc5QyxDQUFDO0lBQ04sQ0FBQztDQUFBIn0=
@@ -61,4 +61,36 @@ export interface PropsForGizmo {
61
61
  export interface PropsForScalebar {
62
62
  scalebar?: boolean | string | ScalebarConfig;
63
63
  }
64
+ export interface MorphoViewerWorldOverlay {
65
+ color: string;
66
+ coordinates: Float32Array | number[];
67
+ id?: string;
68
+ kind?: "electrodes" | "origin" | string;
69
+ interactive?: boolean;
70
+ origin?: [number, number, number];
71
+ rotation?: {
72
+ x?: number;
73
+ y?: number;
74
+ z?: number;
75
+ };
76
+ }
77
+ export interface MorphoViewerOverlayTransformEvent {
78
+ id: string;
79
+ origin: {
80
+ x: number;
81
+ y: number;
82
+ z: number;
83
+ };
84
+ rotation: {
85
+ x: number;
86
+ y: number;
87
+ z: number;
88
+ };
89
+ phase: "end";
90
+ }
91
+ export interface PropsForOverlayInteraction {
92
+ overlaysInteractive?: boolean;
93
+ onOverlayTransform?: (event: MorphoViewerOverlayTransformEvent) => void;
94
+ highlightedOverlayId?: string | null;
95
+ }
64
96
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAG7E,eAAO,MAAM,iBAAiB;;;;;;;;;CASpB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAG5F,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAGlG,eAAO,MAAM,YAAY;;;CAGf,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IAEnC,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAE7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAW5B,KAAK,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAW/B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;CAC9C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle, } from "@tolokoban/tgd";
2
2
  export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
3
3
  export * from "./components/icons";
4
- export { MorphoViewerSignals } from "./components/signals";
5
4
  export * from "./components/morpho-viewer-octree";
6
5
  export * from "./components/morpho-viewer-simul";
7
6
  export * from "./components/morpho-viewer-small-circuit";
8
7
  export * from "./components/morpho-viewer-somas-only";
9
8
  export * from "./components/morpho-viewer-spinner";
9
+ export { MorphoViewerSignals } from "./components/signals";
10
10
  export * from "./gizmo";
11
11
  export { MorphologyCanvas } from "./morphology/morphology-canvas";
12
12
  export { version } from "./package.json";
@@ -16,7 +16,7 @@ export { CellNodeType } from "./types";
16
16
  export { useEventState, useEventValue } from "./utils";
17
17
  export type { CanvasOptions } from "./abstract-canvas";
18
18
  export type { ColorsInterface } from "./colors";
19
- export type { ScalebarConfig } from "./components/types";
20
- export type { MorphoViewerSnapshotOptions } from "./components/signals";
19
+ export type { MorphoViewerSignalSnapshotOptions as MorphoViewerSnapshotOptions } from "./components/signals";
20
+ export type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay, PropsForGizmo, PropsForScalebar, ScalebarConfig, ScalebarLabelsConfig, ScalebarOrientation, ScalebarPinsConfig, ScalebarPlacement, ScalebarSide, ScalebarWhen, } from "./components/types";
21
21
  export type { ColoringType } from "./types";
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,QAAQ,EACR,QAAQ,IAAI,iBAAiB,EAC7B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,QAAQ,EACR,QAAQ,IAAI,iBAAiB,EAC7B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,iCAAiC,IAAI,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAC7G,YAAY,EACV,iCAAiC,EACjC,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -2,12 +2,12 @@
2
2
  export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle, } from "@tolokoban/tgd";
3
3
  export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
4
4
  export * from "./components/icons";
5
- export { MorphoViewerSignals } from "./components/signals";
6
5
  export * from "./components/morpho-viewer-octree";
7
6
  export * from "./components/morpho-viewer-simul";
8
7
  export * from "./components/morpho-viewer-small-circuit";
9
8
  export * from "./components/morpho-viewer-somas-only";
10
9
  export * from "./components/morpho-viewer-spinner";
10
+ export { MorphoViewerSignals } from "./components/signals";
11
11
  export * from "./gizmo";
12
12
  export { MorphologyCanvas } from "./morphology/morphology-canvas";
13
13
  export { version } from "./package.json";
@@ -15,4 +15,4 @@ export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tre
15
15
  export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree";
16
16
  export { CellNodeType } from "./types";
17
17
  export { useEventState, useEventValue } from "./utils";
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBRWIsT0FBTyxFQUNMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsSUFBSSxpQkFBaUIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBRWIsT0FBTyxFQUNMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsSUFBSSxpQkFBaUIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDIn0=
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openbraininstitute/morphoviewer",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "Class to display SWC files in 3D on a canvas",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -42,7 +42,7 @@
42
42
  "url": "https://github.com/openbraininstitute/morphoviewer/issues"
43
43
  },
44
44
  "dependencies": {
45
- "@tolokoban/tgd": "^2.0.147",
45
+ "@tolokoban/tgd": "^2.4.0",
46
46
  "fflate": "^0.8.3",
47
47
  "tslib": "^2.8.1"
48
48
  },
@@ -0,0 +1,49 @@
1
+ import { type TgdContext } from "@tolokoban/tgd";
2
+ import type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay } from "../components/types";
3
+ type OrbitGate = {
4
+ enabled: boolean;
5
+ };
6
+ type OverlayInteractionOptions = {
7
+ context: TgdContext;
8
+ getOverlays: () => MorphoViewerWorldOverlay[];
9
+ setOverlays: (overlays: MorphoViewerWorldOverlay[]) => void;
10
+ syncOverlayPositions: () => void;
11
+ getHitRadiusPixels: () => number;
12
+ getOrbit: () => OrbitGate | null;
13
+ setHighlightedId: (id: string | null) => void;
14
+ onTransform?: (event: MorphoViewerOverlayTransformEvent) => void;
15
+ onDragStart?: () => void;
16
+ onDragEnd?: (id: string) => void;
17
+ };
18
+ export declare class OverlayInteractionController {
19
+ private readonly options;
20
+ private drag;
21
+ private hoverId;
22
+ private attached;
23
+ private onTransform?;
24
+ private modifierRotate;
25
+ private syncRaf;
26
+ constructor(options: OverlayInteractionOptions);
27
+ get isDragging(): boolean;
28
+ setOnTransform(onTransform?: (event: MorphoViewerOverlayTransformEvent) => void): void;
29
+ attach(): void;
30
+ detach(): void;
31
+ private readonly preventContextMenu;
32
+ private readonly handleKeyChange;
33
+ private readonly handleHover;
34
+ private readonly handleMoveStart;
35
+ private readonly handleMove;
36
+ private readonly handleMoveEnd;
37
+ private applyTranslate;
38
+ private applyRotate;
39
+ private scheduleSync;
40
+ private flushSync;
41
+ private cancelScheduledSync;
42
+ private emit;
43
+ private finishDrag;
44
+ private setHover;
45
+ private setCursor;
46
+ private pickOverlay;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=overlay-interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-interaction.d.ts","sourceRoot":"","sources":["../../src/painters/overlay-interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EAGhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,iCAAiC,EACjC,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAQtC,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,UAAU,CAAC;IACpB,WAAW,EAAE,MAAM,wBAAwB,EAAE,CAAC;IAK9C,WAAW,EAAE,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,IAAI,CAAC;IAE5D,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAEjC,kBAAkB,EAAE,MAAM,MAAM,CAAC;IAEjC,QAAQ,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,iCAAiC,KAAK,IAAI,CAAC;IAEjE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AAsDF,qBAAa,4BAA4B;IAQ3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAC,CAAqD;IACzE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAK;gBAES,OAAO,EAAE,yBAAyB;IAK/D,IAAI,UAAU,IAAI,OAAO,CAExB;IAMD,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,iCAAiC,KAAK,IAAI;IAQ/E,MAAM;IAiBN,MAAM;IAmBN,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAO9B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAO1B;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CA4E9B;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAYzB;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAM5B;IAMF,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,WAAW;CAyCpB"}