@openbraininstitute/morphoviewer 0.0.1 → 0.24.16
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/LICENSE +201 -0
- package/README.md +35 -0
- package/lib/dist/abstract-canvas.d.ts +37 -0
- package/lib/dist/abstract-canvas.d.ts.map +1 -0
- package/lib/dist/abstract-canvas.js +131 -0
- package/lib/dist/colors.d.ts +34 -0
- package/lib/dist/colors.d.ts.map +1 -0
- package/lib/dist/colors.js +125 -0
- package/lib/dist/components/button-reset-camera/button-reset-camera.d.ts +10 -0
- package/lib/dist/components/button-reset-camera/button-reset-camera.d.ts.map +1 -0
- package/lib/dist/components/button-reset-camera/button-reset-camera.js +10 -0
- package/lib/dist/components/button-reset-camera/button-reset-camera.module.css +10 -0
- package/lib/dist/components/button-reset-camera/index.d.ts +2 -0
- package/lib/dist/components/button-reset-camera/index.d.ts.map +1 -0
- package/lib/dist/components/button-reset-camera/index.js +2 -0
- package/lib/dist/components/icons/3d.d.ts +8 -0
- package/lib/dist/components/icons/3d.d.ts.map +1 -0
- package/lib/dist/components/icons/3d.js +5 -0
- package/lib/dist/components/icons/center.d.ts +8 -0
- package/lib/dist/components/icons/center.d.ts.map +1 -0
- package/lib/dist/components/icons/center.js +5 -0
- package/lib/dist/components/icons/close.d.ts +8 -0
- package/lib/dist/components/icons/close.d.ts.map +1 -0
- package/lib/dist/components/icons/close.js +5 -0
- package/lib/dist/components/icons/copy.d.ts +2 -0
- package/lib/dist/components/icons/copy.d.ts.map +1 -0
- package/lib/dist/components/icons/copy.js +5 -0
- package/lib/dist/components/icons/dendrogram-circular.d.ts +2 -0
- package/lib/dist/components/icons/dendrogram-circular.d.ts.map +1 -0
- package/lib/dist/components/icons/dendrogram-circular.js +5 -0
- package/lib/dist/components/icons/dendrogram-straight.d.ts +2 -0
- package/lib/dist/components/icons/dendrogram-straight.d.ts.map +1 -0
- package/lib/dist/components/icons/dendrogram-straight.js +5 -0
- package/lib/dist/components/icons/fullscreen.d.ts +8 -0
- package/lib/dist/components/icons/fullscreen.d.ts.map +1 -0
- package/lib/dist/components/icons/fullscreen.js +5 -0
- package/lib/dist/components/icons/minimize.d.ts +8 -0
- package/lib/dist/components/icons/minimize.d.ts.map +1 -0
- package/lib/dist/components/icons/minimize.js +5 -0
- package/lib/dist/components/icons/pause.d.ts +8 -0
- package/lib/dist/components/icons/pause.d.ts.map +1 -0
- package/lib/dist/components/icons/pause.js +5 -0
- package/lib/dist/components/icons/play.d.ts +8 -0
- package/lib/dist/components/icons/play.d.ts.map +1 -0
- package/lib/dist/components/icons/play.js +5 -0
- package/lib/dist/components/icons/zoom-in.d.ts +8 -0
- package/lib/dist/components/icons/zoom-in.d.ts.map +1 -0
- package/lib/dist/components/icons/zoom-in.js +5 -0
- package/lib/dist/components/icons/zoom-out.d.ts +8 -0
- package/lib/dist/components/icons/zoom-out.d.ts.map +1 -0
- package/lib/dist/components/icons/zoom-out.js +5 -0
- package/lib/dist/components/morpho-viewer-octree/index.d.ts +4 -0
- package/lib/dist/components/morpho-viewer-octree/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-octree/index.js +3 -0
- package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.js +31 -0
- package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.module.css +70 -0
- package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts +12 -0
- package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-octree/painter/camera.js +23 -0
- package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts +23 -0
- package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-octree/painter/manager.js +180 -0
- package/lib/dist/components/morpho-viewer-octree/tools.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-octree/tools.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-octree/tools.js +9 -0
- package/lib/dist/components/morpho-viewer-octree/types.d.ts +19 -0
- package/lib/dist/components/morpho-viewer-octree/types.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-octree/types.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/colors.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/colors.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/colors.js +24 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts +7 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.js +12 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.module.css +25 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.d.ts +6 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.js +50 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.module.css +115 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.js +12 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/hint.d.ts +8 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/hint.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/hint.js +57 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/hint.module.css +23 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/hint/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.d.ts +5 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.js +34 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.module.css +5 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.d.ts +19 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.js +209 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts +6 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.js +21 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.module.css +20 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts +6 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.js +12 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.module.css +21 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts +8 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.js +19 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.module.css +52 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.d.ts +6 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.js +20 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.module.css +69 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.d.ts +6 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.js +13 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts +7 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.js +13 -0
- package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.module.css +60 -0
- package/lib/dist/components/morpho-viewer-simul/contants.d.ts +9 -0
- package/lib/dist/components/morpho-viewer-simul/contants.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/contants.js +9 -0
- package/lib/dist/components/morpho-viewer-simul/hooks.d.ts +9 -0
- package/lib/dist/components/morpho-viewer-simul/hooks.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/hooks.js +34 -0
- package/lib/dist/components/morpho-viewer-simul/index.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-simul/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/index.js +3 -0
- package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.js +42 -0
- package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.module.css +94 -0
- package/lib/dist/components/morpho-viewer-simul/painter/camera.d.ts +18 -0
- package/lib/dist/components/morpho-viewer-simul/painter/camera.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/camera.js +17 -0
- package/lib/dist/components/morpho-viewer-simul/painter/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/initializer.d.ts +14 -0
- package/lib/dist/components/morpho-viewer-simul/painter/initializer.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/initializer.js +35 -0
- package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts +99 -0
- package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/manager.js +566 -0
- package/lib/dist/components/morpho-viewer-simul/painter/math.d.ts +4 -0
- package/lib/dist/components/morpho-viewer-simul/painter/math.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/math.js +33 -0
- package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts +12 -0
- package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.js +40 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.d.ts +5 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.js +14 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.d.ts +23 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.js +84 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.js +12 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.d.ts +6 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.js +29 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.d.ts +12 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.js +34 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.d.ts +15 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.js +85 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.js +20 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.d.ts +20 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.js +114 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts +24 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.js +127 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts +28 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.js +136 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.d.ts +26 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.js +116 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts +12 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.js +87 -0
- package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts +5 -0
- package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/segments.js +58 -0
- package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts +9 -0
- package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/soma.js +44 -0
- package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts +44 -0
- package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.js +164 -0
- package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts +59 -0
- package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/structure.js +175 -0
- package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts +41 -0
- package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/transition.js +152 -0
- package/lib/dist/components/morpho-viewer-simul/painter/tree.d.ts +7 -0
- package/lib/dist/components/morpho-viewer-simul/painter/tree.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/painter/tree.js +96 -0
- package/lib/dist/components/morpho-viewer-simul/types/private.d.ts +33 -0
- package/lib/dist/components/morpho-viewer-simul/types/private.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/types/private.js +2 -0
- package/lib/dist/components/morpho-viewer-simul/types/public.d.ts +91 -0
- package/lib/dist/components/morpho-viewer-simul/types/public.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/types/public.js +13 -0
- package/lib/dist/components/morpho-viewer-simul/utils.d.ts +4 -0
- package/lib/dist/components/morpho-viewer-simul/utils.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-simul/utils.js +25 -0
- package/lib/dist/components/morpho-viewer-small-circuit/index.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-small-circuit/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/index.js +3 -0
- package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +32 -0
- package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +63 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +13 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.js +39 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/index.js +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +49 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.js +347 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.js +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +22 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +61 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts +4 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js +42 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +2 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +19 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +105 -0
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +23 -0
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -0
- package/lib/dist/components/morpho-viewer-small-circuit/types.js +2 -0
- package/lib/dist/components/tooltip/index.d.ts +2 -0
- package/lib/dist/components/tooltip/index.d.ts.map +1 -0
- package/lib/dist/components/tooltip/index.js +2 -0
- package/lib/dist/components/tooltip/tooltip.d.ts +14 -0
- package/lib/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/lib/dist/components/tooltip/tooltip.js +10 -0
- package/lib/dist/components/tooltip/tooltip.module.css +74 -0
- package/lib/dist/gizmo/gizmo-canvas.d.ts +17 -0
- package/lib/dist/gizmo/gizmo-canvas.d.ts.map +1 -0
- package/lib/dist/gizmo/gizmo-canvas.js +98 -0
- package/lib/dist/gizmo/index.d.ts +2 -0
- package/lib/dist/gizmo/index.d.ts.map +1 -0
- package/lib/dist/gizmo/index.js +2 -0
- package/lib/dist/gizmo/painter/shader.frag.d.ts +2 -0
- package/lib/dist/gizmo/painter/shader.frag.d.ts.map +1 -0
- package/lib/dist/gizmo/painter/shader.frag.js +19 -0
- package/lib/dist/gizmo/painter/shader.vert.d.ts +2 -0
- package/lib/dist/gizmo/painter/shader.vert.d.ts.map +1 -0
- package/lib/dist/gizmo/painter/shader.vert.js +26 -0
- package/lib/dist/gizmo/painter/tips.d.ts +13 -0
- package/lib/dist/gizmo/painter/tips.d.ts.map +1 -0
- package/lib/dist/gizmo/painter/tips.js +85 -0
- package/lib/dist/index.d.ts +16 -0
- package/lib/dist/index.d.ts.map +1 -0
- package/lib/dist/index.js +14 -0
- package/lib/dist/morphology/morphology-canvas.d.ts +64 -0
- package/lib/dist/morphology/morphology-canvas.d.ts.map +1 -0
- package/lib/dist/morphology/morphology-canvas.js +275 -0
- package/lib/dist/morphology/painter/factory.d.ts +7 -0
- package/lib/dist/morphology/painter/factory.d.ts.map +1 -0
- package/lib/dist/morphology/painter/factory.js +22 -0
- package/lib/dist/morphology/painter/index.d.ts +2 -0
- package/lib/dist/morphology/painter/index.d.ts.map +1 -0
- package/lib/dist/morphology/painter/index.js +2 -0
- package/lib/dist/morphology/painter/nodes.d.ts +21 -0
- package/lib/dist/morphology/painter/nodes.d.ts.map +1 -0
- package/lib/dist/morphology/painter/nodes.js +134 -0
- package/lib/dist/morphology/painter/painter.d.ts +31 -0
- package/lib/dist/morphology/painter/painter.d.ts.map +1 -0
- package/lib/dist/morphology/painter/painter.js +104 -0
- package/lib/dist/morphology/painter/segments.d.ts +23 -0
- package/lib/dist/morphology/painter/segments.d.ts.map +1 -0
- package/lib/dist/morphology/painter/segments.js +96 -0
- package/lib/dist/morphology/painter/textures.d.ts +10 -0
- package/lib/dist/morphology/painter/textures.d.ts.map +1 -0
- package/lib/dist/morphology/painter/textures.js +53 -0
- package/lib/dist/nrrd/get-header-length.d.ts +2 -0
- package/lib/dist/nrrd/get-header-length.d.ts.map +1 -0
- package/lib/dist/nrrd/get-header-length.js +48 -0
- package/lib/dist/nrrd/header.d.ts +28 -0
- package/lib/dist/nrrd/header.d.ts.map +1 -0
- package/lib/dist/nrrd/header.js +122 -0
- package/lib/dist/nrrd/index.d.ts +3 -0
- package/lib/dist/nrrd/index.d.ts.map +1 -0
- package/lib/dist/nrrd/index.js +33 -0
- package/lib/dist/nrrd/volume.d.ts +29 -0
- package/lib/dist/nrrd/volume.d.ts.map +1 -0
- package/lib/dist/nrrd/volume.js +129 -0
- package/lib/dist/package.json +83 -0
- package/lib/dist/parser/for-each-line.d.ts +2 -0
- package/lib/dist/parser/for-each-line.d.ts.map +1 -0
- package/lib/dist/parser/for-each-line.js +14 -0
- package/lib/dist/parser/swc.d.ts +14 -0
- package/lib/dist/parser/swc.d.ts.map +1 -0
- package/lib/dist/parser/swc.js +49 -0
- package/lib/dist/scalebar.d.ts +11 -0
- package/lib/dist/scalebar.d.ts.map +1 -0
- package/lib/dist/scalebar.js +25 -0
- package/lib/dist/tools/cache-lru.d.ts +18 -0
- package/lib/dist/tools/cache-lru.d.ts.map +1 -0
- package/lib/dist/tools/cache-lru.js +53 -0
- package/lib/dist/tools/morphology-to-tree.d.ts +4 -0
- package/lib/dist/tools/morphology-to-tree.d.ts.map +1 -0
- package/lib/dist/tools/morphology-to-tree.js +89 -0
- package/lib/dist/types.d.ts +9 -0
- package/lib/dist/types.d.ts.map +1 -0
- package/lib/dist/types.js +9 -0
- package/lib/dist/utils.d.ts +16 -0
- package/lib/dist/utils.d.ts.map +1 -0
- package/lib/dist/utils.js +56 -0
- package/package.json +40 -15
- package/package.json~ +0 -16
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { TgdBoundingBox } from "@tolokoban/tgd";
|
|
2
|
+
import { MorphoViewerTreeItemType, } from "../types/public.js";
|
|
3
|
+
import { resolveSectionIndex } from "../utils.js";
|
|
4
|
+
import { findSoma, parentOrphansToSoma } from "./soma.js";
|
|
5
|
+
import { addLiaisons, computeRanks, populateTree } from "./tree.js";
|
|
6
|
+
export class Structure {
|
|
7
|
+
constructor(morphology) {
|
|
8
|
+
var _a;
|
|
9
|
+
this.bboxDendrites = new TgdBoundingBox();
|
|
10
|
+
this.bbox = new TgdBoundingBox();
|
|
11
|
+
this.bboxSoma = new TgdBoundingBox();
|
|
12
|
+
this.items = [];
|
|
13
|
+
this.segmentsPerSection = new Map();
|
|
14
|
+
this._hasApicalDendrites = false;
|
|
15
|
+
this.cellId = morphology.cellId;
|
|
16
|
+
this.useStraightCylinders = (_a = morphology.useStraightCylinders) !== null && _a !== void 0 ? _a : false;
|
|
17
|
+
const { somaTreeItem } = findSoma(morphology);
|
|
18
|
+
const treeRoot = parentOrphansToSoma(morphology, somaTreeItem);
|
|
19
|
+
if (!treeRoot)
|
|
20
|
+
throw new Error("No root found in morphology!");
|
|
21
|
+
this.computeDistancesFromSoma(treeRoot);
|
|
22
|
+
const root = this.createAllSegments(treeRoot);
|
|
23
|
+
this.root = root;
|
|
24
|
+
this.center = [treeRoot.x, treeRoot.y, treeRoot.z];
|
|
25
|
+
this.zoomMin = Math.min(0.75, computeZoomByDividingBBoxes(this.bboxDendrites, this.bbox));
|
|
26
|
+
this.zoomMax = Math.max(1.33, computeZoomByDividingBBoxes(this.bboxDendrites, this.bboxSoma));
|
|
27
|
+
this.computeSectionsLengths();
|
|
28
|
+
populateTree(root);
|
|
29
|
+
computeRanks(root);
|
|
30
|
+
addLiaisons(root, this.items);
|
|
31
|
+
}
|
|
32
|
+
computeSectionsLengths() {
|
|
33
|
+
for (const segments of this.segmentsPerSection.values()) {
|
|
34
|
+
const sectionLength = segments.reduce((length, segment) => length + segment.segmentLength, 0);
|
|
35
|
+
for (const segment of segments) {
|
|
36
|
+
segment.sectionLength = sectionLength;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
createAllSegments(node, parent) {
|
|
41
|
+
var _a;
|
|
42
|
+
const segment = this.createSegment(parent !== null && parent !== void 0 ? parent : node, node);
|
|
43
|
+
for (const child of (_a = node.children) !== null && _a !== void 0 ? _a : []) {
|
|
44
|
+
const childSegment = this.createAllSegments(child, node);
|
|
45
|
+
childSegment.parent = segment;
|
|
46
|
+
segment.children.push(childSegment);
|
|
47
|
+
}
|
|
48
|
+
return segment;
|
|
49
|
+
}
|
|
50
|
+
computeDistancesFromSoma(singleRoot) {
|
|
51
|
+
singleRoot.distanceFromSoma = 0;
|
|
52
|
+
this.registerBranch(null, singleRoot, 0);
|
|
53
|
+
}
|
|
54
|
+
get hasApicalDendrites() {
|
|
55
|
+
return this._hasApicalDendrites;
|
|
56
|
+
}
|
|
57
|
+
registerBranch(parent, node, distanceFromSoma) {
|
|
58
|
+
var _a;
|
|
59
|
+
node.distanceFromSoma = distanceFromSoma;
|
|
60
|
+
const { type } = node;
|
|
61
|
+
if ([
|
|
62
|
+
MorphoViewerTreeItemType.Soma,
|
|
63
|
+
MorphoViewerTreeItemType.Dendrite,
|
|
64
|
+
MorphoViewerTreeItemType.ApicalDendrite,
|
|
65
|
+
MorphoViewerTreeItemType.BasalDendrite,
|
|
66
|
+
].includes(type)) {
|
|
67
|
+
this.bboxDendrites.addSphere(node.x, node.y, node.z, node.radius);
|
|
68
|
+
if (type === MorphoViewerTreeItemType.Soma) {
|
|
69
|
+
this.bboxSoma.addSphere(node.x, node.y, node.z, node.radius);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (parent) {
|
|
73
|
+
if (node.type === MorphoViewerTreeItemType.ApicalDendrite) {
|
|
74
|
+
this._hasApicalDendrites = true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
for (const child of (_a = node.children) !== null && _a !== void 0 ? _a : []) {
|
|
78
|
+
this.registerBranch(node, child, distanceFromSoma +
|
|
79
|
+
(parent ? computeDistance([parent.x, parent.y, parent.z], [node.x, node.y, node.z]) : 0));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
getSegmentsOfSection(sectionName) {
|
|
83
|
+
var _a;
|
|
84
|
+
return (_a = this.segmentsPerSection.get(sectionName)) !== null && _a !== void 0 ? _a : [];
|
|
85
|
+
}
|
|
86
|
+
getSegmentOfSectionAtOffset(sectionName, offset) {
|
|
87
|
+
const segments = this.getSegmentsOfSection(sectionName);
|
|
88
|
+
const length = segments.length;
|
|
89
|
+
if (length === 0) {
|
|
90
|
+
console.error(`Section "${sectionName}" not found.`);
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const sectionLengthAtOffset = offset * segments[0].sectionLength;
|
|
94
|
+
let lengthBeforeCurrentSegment = 0;
|
|
95
|
+
for (const segment of segments) {
|
|
96
|
+
const { segmentLength } = segment;
|
|
97
|
+
if (lengthBeforeCurrentSegment + segmentLength >= sectionLengthAtOffset) {
|
|
98
|
+
return {
|
|
99
|
+
segment,
|
|
100
|
+
offset: segmentLength > 0
|
|
101
|
+
? (sectionLengthAtOffset - lengthBeforeCurrentSegment) / segmentLength
|
|
102
|
+
: 0.5,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
lengthBeforeCurrentSegment += segmentLength;
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
offset: 1,
|
|
109
|
+
segment: segments[segments.length - 1],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
get length() {
|
|
113
|
+
return this.items.length;
|
|
114
|
+
}
|
|
115
|
+
get(index) {
|
|
116
|
+
const item = this.items[index];
|
|
117
|
+
if (!item)
|
|
118
|
+
throw Error(`Index (${index}) out of bounds! Items available: ${this.length}.`);
|
|
119
|
+
return item;
|
|
120
|
+
}
|
|
121
|
+
forEach(callback) {
|
|
122
|
+
this.items.forEach(callback);
|
|
123
|
+
}
|
|
124
|
+
createSegment(parent, node) {
|
|
125
|
+
var _a;
|
|
126
|
+
const index = this.items.length;
|
|
127
|
+
const item = {
|
|
128
|
+
children: [],
|
|
129
|
+
index,
|
|
130
|
+
distanceFromSoma: node.distanceFromSoma,
|
|
131
|
+
segmentLength: computeDistance([parent.x, parent.y, parent.z], [node.x, node.y, node.z]),
|
|
132
|
+
sectionLength: 0,
|
|
133
|
+
name: `${node.sectionId}[${node.segmentId}]`,
|
|
134
|
+
sectionName: node.sectionId,
|
|
135
|
+
sectionIndex: resolveSectionIndex(node.sectionId),
|
|
136
|
+
segmentIndex: parseInt(node.segmentId, 10),
|
|
137
|
+
segmentsCount: 1,
|
|
138
|
+
start: [parent.x, parent.y, parent.z],
|
|
139
|
+
end: [node.x, node.y, node.z],
|
|
140
|
+
radiusStart: adjustParentRadius(parent, node),
|
|
141
|
+
radiusEnd: node.radius,
|
|
142
|
+
type: node.type,
|
|
143
|
+
leavesCount: 0,
|
|
144
|
+
maxLength: 0,
|
|
145
|
+
rank: 0,
|
|
146
|
+
node,
|
|
147
|
+
};
|
|
148
|
+
this.items.push(item);
|
|
149
|
+
const segments = (_a = this.segmentsPerSection.get(node.sectionId)) !== null && _a !== void 0 ? _a : [];
|
|
150
|
+
segments.push(item);
|
|
151
|
+
this.segmentsPerSection.set(node.sectionId, segments);
|
|
152
|
+
for (const segment of segments) {
|
|
153
|
+
segment.segmentsCount = segments.length;
|
|
154
|
+
}
|
|
155
|
+
return item;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function computeZoomByDividingBBoxes(bbox1, bbox2) {
|
|
159
|
+
const width1 = bbox1.max[0] - bbox1.min[0];
|
|
160
|
+
const height1 = bbox1.max[1] - bbox1.min[1];
|
|
161
|
+
const width2 = bbox2.max[0] - bbox2.min[0];
|
|
162
|
+
const height2 = bbox2.max[1] - bbox2.min[1];
|
|
163
|
+
return Math.min(width1 / width2, height1 / height2);
|
|
164
|
+
}
|
|
165
|
+
function computeDistance([x1, y1, z1], [x2, y2, z2]) {
|
|
166
|
+
return Math.sqrt(Math.pow((x1 - x2), 2) + Math.pow((y1 - y2), 2) + Math.pow((z1 - z2), 2));
|
|
167
|
+
}
|
|
168
|
+
function adjustParentRadius(parent, node) {
|
|
169
|
+
if (parent.type !== MorphoViewerTreeItemType.Soma ||
|
|
170
|
+
node.type === MorphoViewerTreeItemType.Soma) {
|
|
171
|
+
return parent.radius;
|
|
172
|
+
}
|
|
173
|
+
return Math.max(parent.radius * 0.5, node.radius);
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zaW11bC9wYWludGVyL3N0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGNBQWMsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBR0wsd0JBQXdCLEdBQ3pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBb0NqRSxNQUFNLE9BQU8sU0FBUztJQXNCcEIsWUFBWSxVQUE0Qjs7UUFmeEIsa0JBQWEsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBTXBDLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBSTVCLGFBQVEsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2hDLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBQzVCLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBQ2pFLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUczQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQUEsVUFBVSxDQUFDLG9CQUFvQixtQ0FBSSxLQUFLLENBQUM7UUFDckUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVE7WUFBRSxN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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type TgdContext, TgdEvent, TgdPainterGroup } from "@tolokoban/tgd";
|
|
2
|
+
import type { MorphoViewerMode, MorphoViewerSynapsesGroup } from "../types/public";
|
|
3
|
+
import type { OffscreenPainter } from "./offscreen-painter";
|
|
4
|
+
import type { Painter } from "./painters";
|
|
5
|
+
export interface TransitionManagerOptions {
|
|
6
|
+
clearColor: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class TransitionManager extends TgdPainterGroup {
|
|
9
|
+
readonly context: TgdContext;
|
|
10
|
+
widthAtTarget: number;
|
|
11
|
+
heightAtTarget: number;
|
|
12
|
+
readonly eventResetCamera: TgdEvent<void>;
|
|
13
|
+
duration: number;
|
|
14
|
+
private _painter;
|
|
15
|
+
private _offscreen;
|
|
16
|
+
private _clearColor;
|
|
17
|
+
private _mode;
|
|
18
|
+
private _minRadius;
|
|
19
|
+
private _synapses;
|
|
20
|
+
private _mix;
|
|
21
|
+
private ongoingAnimations;
|
|
22
|
+
private readonly clear;
|
|
23
|
+
constructor(context: TgdContext, { clearColor }?: Partial<TransitionManagerOptions>);
|
|
24
|
+
get minRadius(): number;
|
|
25
|
+
set minRadius(minRadius: number);
|
|
26
|
+
get painter(): Painter | null;
|
|
27
|
+
set painter(painter: Painter | null);
|
|
28
|
+
get offscreen(): OffscreenPainter | null;
|
|
29
|
+
set offscreen(offscreen: OffscreenPainter | null);
|
|
30
|
+
get clearColor(): string;
|
|
31
|
+
set clearColor(clearColor: string);
|
|
32
|
+
get synapses(): MorphoViewerSynapsesGroup[];
|
|
33
|
+
set synapses(synapses: MorphoViewerSynapsesGroup[]);
|
|
34
|
+
get mix(): number;
|
|
35
|
+
private set mix(value);
|
|
36
|
+
get mode(): MorphoViewerMode;
|
|
37
|
+
set mode(newMode: MorphoViewerMode);
|
|
38
|
+
private readonly beforePaint;
|
|
39
|
+
private readonly scheduleAnim;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=transition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-simul/painter/transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,QAAQ,EAGR,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,qBAAa,iBAAkB,SAAQ,eAAe;aAkBlC,OAAO,EAAE,UAAU;IAjB9B,aAAa,SAAK;IAClB,cAAc,SAAK;IAC1B,SAAgB,gBAAgB,iBAAkB;IAE3C,QAAQ,SAAO;IAEtB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAGtB,OAAO,EAAE,UAAU,EACnC,EAAE,UAAmB,EAAE,GAAE,OAAO,CAAC,wBAAwB,CAAM;IAQjE,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAO9B;IAED,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAE5B;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAalC;IAED,IAAI,SAAS,IAAI,gBAAgB,GAAG,IAAI,CAEvC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAY/C;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAWhC;IAED,IAAI,QAAQ,IAAI,yBAAyB,EAAE,CAE1C;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,EAAE,EAMjD;IAED,IAAI,GAAG,IAGc,MAAM,CAD1B;IACD,OAAO,KAAK,GAAG,QAOd;IAED,IAAI,IAAI,IAIU,gBAAgB,CAFjC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAKjC;IAED,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CA2B3B;CACH"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { TgdColor, TgdEvent, TgdPainterClear, TgdPainterGroup, tgdCalcMix, } from "@tolokoban/tgd";
|
|
2
|
+
export class TransitionManager extends TgdPainterGroup {
|
|
3
|
+
constructor(context, { clearColor = "#004" } = {}) {
|
|
4
|
+
super({ name: "TransitionManager" });
|
|
5
|
+
this.context = context;
|
|
6
|
+
this.widthAtTarget = 1;
|
|
7
|
+
this.heightAtTarget = 1;
|
|
8
|
+
this.eventResetCamera = new TgdEvent();
|
|
9
|
+
this.duration = 0.6;
|
|
10
|
+
this._painter = null;
|
|
11
|
+
this._offscreen = null;
|
|
12
|
+
this._clearColor = "";
|
|
13
|
+
this._mode = "3d";
|
|
14
|
+
this._minRadius = 2;
|
|
15
|
+
this._synapses = [];
|
|
16
|
+
this._mix = 0;
|
|
17
|
+
this.ongoingAnimations = [];
|
|
18
|
+
this.beforePaint = () => {
|
|
19
|
+
const { context, widthAtTarget, heightAtTarget } = this;
|
|
20
|
+
context === null || context === void 0 ? void 0 : context.camera.fitSpaceAtTarget(widthAtTarget, heightAtTarget);
|
|
21
|
+
};
|
|
22
|
+
this.scheduleAnim = (newMode) => {
|
|
23
|
+
const { context, painter, offscreen } = this;
|
|
24
|
+
if (!context || !painter || !offscreen)
|
|
25
|
+
return;
|
|
26
|
+
this._mode = newMode;
|
|
27
|
+
this.eventResetCamera.dispatch();
|
|
28
|
+
if (newMode === "dendrogram") {
|
|
29
|
+
context.animCancelArray(this.ongoingAnimations);
|
|
30
|
+
const mixStart = this.mix;
|
|
31
|
+
const mixEnd = 1;
|
|
32
|
+
this.ongoingAnimations = context.animSchedule({
|
|
33
|
+
duration: this.duration * Math.abs(mixEnd - mixStart),
|
|
34
|
+
action: (alpha) => {
|
|
35
|
+
this.mix = tgdCalcMix(mixStart, mixEnd, alpha);
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
else if (newMode === "3d") {
|
|
40
|
+
context.animCancelArray(this.ongoingAnimations);
|
|
41
|
+
const mixStart = this.mix;
|
|
42
|
+
const mixEnd = 0;
|
|
43
|
+
this.ongoingAnimations = context.animSchedule({
|
|
44
|
+
duration: this.duration * Math.abs(mixEnd - mixStart),
|
|
45
|
+
action: (alpha) => {
|
|
46
|
+
this.mix = tgdCalcMix(mixStart, mixEnd, alpha);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
this.clear = new TgdPainterClear(context, { color: [0, 0, 0, 1], depth: 1 });
|
|
52
|
+
this.add(this.clear, this.beforePaint);
|
|
53
|
+
this.clearColor = clearColor;
|
|
54
|
+
}
|
|
55
|
+
get minRadius() {
|
|
56
|
+
return this._minRadius;
|
|
57
|
+
}
|
|
58
|
+
set minRadius(minRadius) {
|
|
59
|
+
if (this._minRadius === minRadius)
|
|
60
|
+
return;
|
|
61
|
+
this._minRadius = minRadius;
|
|
62
|
+
const { painter, offscreen } = this;
|
|
63
|
+
if (painter)
|
|
64
|
+
painter.minRadius = minRadius;
|
|
65
|
+
if (offscreen)
|
|
66
|
+
offscreen.minRadius = minRadius;
|
|
67
|
+
}
|
|
68
|
+
get painter() {
|
|
69
|
+
return this._painter;
|
|
70
|
+
}
|
|
71
|
+
set painter(painter) {
|
|
72
|
+
const { _painter } = this;
|
|
73
|
+
if (_painter === painter)
|
|
74
|
+
return;
|
|
75
|
+
if (_painter)
|
|
76
|
+
this.remove(_painter);
|
|
77
|
+
if (painter) {
|
|
78
|
+
this.add(painter);
|
|
79
|
+
painter.synapses = this.synapses;
|
|
80
|
+
painter.mix = this.mix;
|
|
81
|
+
painter.minRadius = this.minRadius;
|
|
82
|
+
}
|
|
83
|
+
this._painter = painter;
|
|
84
|
+
this.context.paint();
|
|
85
|
+
}
|
|
86
|
+
get offscreen() {
|
|
87
|
+
return this._offscreen;
|
|
88
|
+
}
|
|
89
|
+
set offscreen(offscreen) {
|
|
90
|
+
const { _offscreen } = this;
|
|
91
|
+
if (_offscreen === offscreen)
|
|
92
|
+
return;
|
|
93
|
+
if (_offscreen)
|
|
94
|
+
this.remove(_offscreen);
|
|
95
|
+
if (offscreen) {
|
|
96
|
+
this.add(offscreen);
|
|
97
|
+
offscreen.mix = this.mix;
|
|
98
|
+
offscreen.minRadius = this.minRadius;
|
|
99
|
+
}
|
|
100
|
+
this._offscreen = offscreen;
|
|
101
|
+
this.context.paint();
|
|
102
|
+
}
|
|
103
|
+
get clearColor() {
|
|
104
|
+
return this._clearColor;
|
|
105
|
+
}
|
|
106
|
+
set clearColor(clearColor) {
|
|
107
|
+
if (this._clearColor === clearColor)
|
|
108
|
+
return;
|
|
109
|
+
this._clearColor = clearColor;
|
|
110
|
+
const color = TgdColor.fromString(clearColor);
|
|
111
|
+
const { clear } = this;
|
|
112
|
+
clear.red = color.R;
|
|
113
|
+
clear.green = color.G;
|
|
114
|
+
clear.blue = color.B;
|
|
115
|
+
clear.alpha = color.A;
|
|
116
|
+
this.context.paint();
|
|
117
|
+
}
|
|
118
|
+
get synapses() {
|
|
119
|
+
return this._synapses;
|
|
120
|
+
}
|
|
121
|
+
set synapses(synapses) {
|
|
122
|
+
if (this._synapses === synapses)
|
|
123
|
+
return;
|
|
124
|
+
this._synapses = synapses;
|
|
125
|
+
const { painter } = this;
|
|
126
|
+
if (painter)
|
|
127
|
+
painter.synapses = synapses;
|
|
128
|
+
}
|
|
129
|
+
get mix() {
|
|
130
|
+
return this._mix;
|
|
131
|
+
}
|
|
132
|
+
set mix(mix) {
|
|
133
|
+
if (this._mix === mix)
|
|
134
|
+
return;
|
|
135
|
+
this._mix = mix;
|
|
136
|
+
const { painter, offscreen } = this;
|
|
137
|
+
if (painter)
|
|
138
|
+
painter.mix = mix;
|
|
139
|
+
if (offscreen)
|
|
140
|
+
offscreen.mix = mix;
|
|
141
|
+
}
|
|
142
|
+
get mode() {
|
|
143
|
+
return this._mode;
|
|
144
|
+
}
|
|
145
|
+
set mode(newMode) {
|
|
146
|
+
const oldMode = this._mode;
|
|
147
|
+
if (oldMode === newMode)
|
|
148
|
+
return;
|
|
149
|
+
this.scheduleAnim(newMode);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc2ltdWwvcGFpbnRlci90cmFuc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUVSLGVBQWUsRUFDZixlQUFlLEVBRWYsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFZeEIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFpQnBELFlBQ2tCLE9BQW1CLEVBQ25DLEVBQUUsVUFBVSxHQUFHLE1BQU0sS0FBd0MsRUFBRTtRQUUvRCxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBSHJCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFqQjlCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ1YscUJBQWdCLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUUzQyxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBRWQsYUFBUSxHQUFtQixJQUFJLENBQUM7UUFDaEMsZUFBVSxHQUE0QixJQUFJLENBQUM7UUFDM0MsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsVUFBSyxHQUFxQixJQUFJLENBQUM7UUFDL0IsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBZ0MsRUFBRSxDQUFDO1FBQzVDLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxzQkFBaUIsR0FBbUIsRUFBRSxDQUFDO1FBOEc5QixnQkFBVyxHQUFHLEdBQUcsRUFBRTtZQUNsQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDeEQsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsY0FB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StructureItem } from "./structure";
|
|
2
|
+
export declare function builTree(items: StructureItem[], soma: StructureItem | null): StructureItem;
|
|
3
|
+
export declare function debugTree(item: StructureItem, depth?: number): void;
|
|
4
|
+
export declare function populateTree(item: StructureItem, distance?: number): void;
|
|
5
|
+
export declare function computeRanks(item: StructureItem, rankMin?: number, rankMax?: number): void;
|
|
6
|
+
export declare function addLiaisons(root: StructureItem, items: StructureItem[]): void;
|
|
7
|
+
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-simul/painter/tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,aAAa,CAyB1F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,SAAI,QAWvD;AAOD,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,SAAI,QAa7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,SAAK,EAAE,OAAO,SAAK,QAW3E;AAQD,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,QAmCtE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { MorphoViewerTreeItemType } from "../types/public.js";
|
|
2
|
+
export function builTree(items, soma) {
|
|
3
|
+
const map = new Map();
|
|
4
|
+
for (const item of items)
|
|
5
|
+
map.set(key3D(item.end), item);
|
|
6
|
+
for (const item of items) {
|
|
7
|
+
if (item.parent)
|
|
8
|
+
continue;
|
|
9
|
+
const parent = map.get(key3D(item.start));
|
|
10
|
+
if (!parent)
|
|
11
|
+
continue;
|
|
12
|
+
parent.children.push(item);
|
|
13
|
+
item.parent = parent;
|
|
14
|
+
if (parent.type !== MorphoViewerTreeItemType.Soma) {
|
|
15
|
+
item.radiusStart = parent.radiusEnd;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const [root, ...orphans] = items.filter((item) => !item.parent);
|
|
19
|
+
for (const item of orphans) {
|
|
20
|
+
root.children.push(item);
|
|
21
|
+
item.parent = root;
|
|
22
|
+
}
|
|
23
|
+
populateTree(root);
|
|
24
|
+
computeRanks(root);
|
|
25
|
+
addLiaisons(root, items);
|
|
26
|
+
return root;
|
|
27
|
+
}
|
|
28
|
+
export function debugTree(item, depth = 0) {
|
|
29
|
+
try {
|
|
30
|
+
console.debug(`${"| ".repeat(depth)}${item.name}`);
|
|
31
|
+
for (const child of item.children)
|
|
32
|
+
debugTree(child, depth + 1);
|
|
33
|
+
}
|
|
34
|
+
catch (ex) {
|
|
35
|
+
console.error(ex);
|
|
36
|
+
console.error(item);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function key3D([x, y, z]) {
|
|
40
|
+
const PRECISION = 3;
|
|
41
|
+
return `${x.toFixed(PRECISION)}/${y.toFixed(PRECISION)}/${z.toFixed(PRECISION)}`;
|
|
42
|
+
}
|
|
43
|
+
export function populateTree(item, distance = 0) {
|
|
44
|
+
if (!item)
|
|
45
|
+
return;
|
|
46
|
+
item.distanceFromSoma = distance;
|
|
47
|
+
const newDistance = distance + item.segmentLength;
|
|
48
|
+
item.leavesCount = item.children.length > 0 ? 0 : 1;
|
|
49
|
+
item.maxLength = 0;
|
|
50
|
+
for (const child of item.children) {
|
|
51
|
+
populateTree(child, newDistance);
|
|
52
|
+
item.leavesCount += child.leavesCount;
|
|
53
|
+
item.maxLength = Math.max(item.maxLength, child.maxLength);
|
|
54
|
+
}
|
|
55
|
+
item.maxLength += item.segmentLength;
|
|
56
|
+
}
|
|
57
|
+
export function computeRanks(item, rankMin = -1, rankMax = +1) {
|
|
58
|
+
if (!item)
|
|
59
|
+
return;
|
|
60
|
+
item.rank = (rankMin + rankMax) / 2;
|
|
61
|
+
const rankSize = Math.abs(rankMax - rankMin);
|
|
62
|
+
let rank = rankMin;
|
|
63
|
+
for (const child of item.children) {
|
|
64
|
+
const rankChildSize = (rankSize * child.leavesCount) / item.leavesCount;
|
|
65
|
+
computeRanks(child, rank, rank + rankChildSize);
|
|
66
|
+
rank += rankChildSize;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export function addLiaisons(root, items) {
|
|
70
|
+
if (!root)
|
|
71
|
+
return;
|
|
72
|
+
if (root.children.length > 1) {
|
|
73
|
+
for (let index = 0; index < root.children.length; index++) {
|
|
74
|
+
const child = root.children[index];
|
|
75
|
+
const liaison = Object.assign(Object.assign({}, child), { name: `${root.name} > ${child.name}`, type: MorphoViewerTreeItemType.Liaison, index: root.index, start: [...root.end], end: [...child.start], radiusStart: 1e-3, radiusEnd: 1e-3, children: [child] });
|
|
76
|
+
const [x1, y1, z1] = liaison.start;
|
|
77
|
+
const [x2, y2, z2] = liaison.end;
|
|
78
|
+
const x = x2 - x1;
|
|
79
|
+
const y = y2 - y1;
|
|
80
|
+
const z = z2 - z1;
|
|
81
|
+
const distance = x * x + y * y + z * z;
|
|
82
|
+
if (distance > 1e-12) {
|
|
83
|
+
console.log(root.name, "->", child.name, Math.sqrt(distance), liaison);
|
|
84
|
+
}
|
|
85
|
+
items.push(liaison);
|
|
86
|
+
root.children[index] = liaison;
|
|
87
|
+
addLiaisons(child, items);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
for (const child of root.children) {
|
|
92
|
+
addLiaisons(child, items);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc2ltdWwvcGFpbnRlci90cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBc0IsRUFBRSxJQUEwQjtJQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUM3QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUs7UUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsU0FBUztRQUUxQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTTtZQUFFLFNBQVM7UUFFdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FB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
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PainterManager } from "../painter";
|
|
2
|
+
import { MorphoViewerSimulProps } from "./public";
|
|
3
|
+
export interface MorphologySection {
|
|
4
|
+
index: number;
|
|
5
|
+
name: string;
|
|
6
|
+
nseg: number;
|
|
7
|
+
distance_from_soma: number;
|
|
8
|
+
sec_length: number;
|
|
9
|
+
xstart: number[];
|
|
10
|
+
xend: number[];
|
|
11
|
+
xcenter: number[];
|
|
12
|
+
xdirection: number[];
|
|
13
|
+
ystart: number[];
|
|
14
|
+
yend: number[];
|
|
15
|
+
ycenter: number[];
|
|
16
|
+
ydirection: number[];
|
|
17
|
+
zstart: number[];
|
|
18
|
+
zend: number[];
|
|
19
|
+
zcenter: number[];
|
|
20
|
+
zdirection: number[];
|
|
21
|
+
segx: number[];
|
|
22
|
+
diam: number[];
|
|
23
|
+
length: number[];
|
|
24
|
+
distance: number[];
|
|
25
|
+
neuron_segments_offset: number[];
|
|
26
|
+
neuron_section_id: number;
|
|
27
|
+
segment_distance_from_soma: number[];
|
|
28
|
+
}
|
|
29
|
+
export type Morphology = Record<string, MorphologySection>;
|
|
30
|
+
export interface MorphoViewerSimulContentProps extends MorphoViewerSimulProps {
|
|
31
|
+
painterManager: PainterManager;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=private.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-simul/types/private.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE3D,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC3E,cAAc,EAAE,cAAc,CAAC;CAChC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { TgdEvent } from "@tolokoban/tgd";
|
|
2
|
+
export interface MorphoViewerElectrodeRecording {
|
|
3
|
+
section: string;
|
|
4
|
+
offset: number;
|
|
5
|
+
record_currents: boolean;
|
|
6
|
+
origin: "injection" | "recording";
|
|
7
|
+
color?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export interface MorphoViewerElectrodeInjection {
|
|
10
|
+
inject_to: string;
|
|
11
|
+
}
|
|
12
|
+
export interface MorphoViewerSynapsesGroup {
|
|
13
|
+
color: string;
|
|
14
|
+
sections: Record<string, number[]>;
|
|
15
|
+
}
|
|
16
|
+
export interface MorphoViewerElectrodesProps {
|
|
17
|
+
recordings?: MorphoViewerElectrodeRecording[];
|
|
18
|
+
onRecordingsChange?(this: void, recordings: MorphoViewerElectrodeRecording[]): void;
|
|
19
|
+
injection?: MorphoViewerElectrodeInjection | undefined;
|
|
20
|
+
onInjectionChange?(this: void, injections: MorphoViewerElectrodeInjection | undefined): void;
|
|
21
|
+
}
|
|
22
|
+
export interface MorphoViewerSimulCamera {
|
|
23
|
+
orientation: [number, number, number, number];
|
|
24
|
+
center: [number, number, number];
|
|
25
|
+
zoom: number;
|
|
26
|
+
}
|
|
27
|
+
export interface MorphoViewerSimulController {
|
|
28
|
+
cameraGet(): MorphoViewerSimulCamera;
|
|
29
|
+
cameraSet(settings: MorphoViewerSimulCamera): void;
|
|
30
|
+
cameraReset(): void;
|
|
31
|
+
spikeProgress: number;
|
|
32
|
+
readonly eventSpikeProgressChange: TgdEvent<number>;
|
|
33
|
+
spikePlaying: boolean;
|
|
34
|
+
readonly eventSpikePlayingChange: TgdEvent<boolean>;
|
|
35
|
+
}
|
|
36
|
+
export interface MorphoViewerSimulProps extends MorphoViewerElectrodesProps {
|
|
37
|
+
backgroundColor?: string;
|
|
38
|
+
minRadius?: number;
|
|
39
|
+
morphology: MorphoViewerTree;
|
|
40
|
+
synapses?: MorphoViewerSynapsesGroup[];
|
|
41
|
+
spikes?: MorphoViewerSpikeRecord[];
|
|
42
|
+
spikeProgress?: number;
|
|
43
|
+
onSpikeProgressChange?(spikeProgress: number): void;
|
|
44
|
+
spikePlaying?: boolean;
|
|
45
|
+
onSpikePlayingChange?(spikePlaying: boolean): void;
|
|
46
|
+
disableClick?: boolean;
|
|
47
|
+
onSegmentClick?(item: {
|
|
48
|
+
segment: MorphoViewerTreeItem;
|
|
49
|
+
parent?: MorphoViewerTreeItem;
|
|
50
|
+
}): void;
|
|
51
|
+
onClose?(): void;
|
|
52
|
+
onMinimize?(): void;
|
|
53
|
+
onReady?(controller: MorphoViewerSimulController): void;
|
|
54
|
+
verbose?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export type MorphoViewerMode = "3d" | "dendrogram";
|
|
57
|
+
export declare enum MorphoViewerTreeItemType {
|
|
58
|
+
Soma = 0,
|
|
59
|
+
Dendrite = 1,
|
|
60
|
+
BasalDendrite = 2,
|
|
61
|
+
ApicalDendrite = 3,
|
|
62
|
+
Myelin = 4,
|
|
63
|
+
Axon = 5,
|
|
64
|
+
Selected = 6,
|
|
65
|
+
Liaison = 7,
|
|
66
|
+
Unknown = 8
|
|
67
|
+
}
|
|
68
|
+
export interface MorphoViewerTreeItem {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
z: number;
|
|
72
|
+
radius: number;
|
|
73
|
+
type: MorphoViewerTreeItemType;
|
|
74
|
+
sectionId: string;
|
|
75
|
+
segmentId: string;
|
|
76
|
+
distanceFromSoma: number;
|
|
77
|
+
children?: MorphoViewerTreeItem[];
|
|
78
|
+
}
|
|
79
|
+
export interface MorphoViewerTree {
|
|
80
|
+
cellId: string;
|
|
81
|
+
roots: MorphoViewerTreeItem[];
|
|
82
|
+
useStraightCylinders?: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface MorphoViewerSpikeRecord {
|
|
85
|
+
label: string;
|
|
86
|
+
color: string;
|
|
87
|
+
spikesInSeconds: number[];
|
|
88
|
+
timeMinInSeconds: number;
|
|
89
|
+
timeMaxInSeconds: number;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-simul/types/public.ts"],"names":[],"mappings":"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"}
|