@openbraininstitute/morphoviewer 0.0.1 → 0.24.18
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 +37 -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 +54 -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 +378 -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 +7 -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 +54 -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 +20 -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 +127 -0
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +24 -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 +96 -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 +43 -15
- package/package.json~ +0 -16
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
export default class Volume {
|
|
2
|
+
constructor(header, data) {
|
|
3
|
+
this.header = header;
|
|
4
|
+
this.attributesSizeInBytes = 0;
|
|
5
|
+
this.qx = 0;
|
|
6
|
+
this.qy = 0;
|
|
7
|
+
this.qz = 0;
|
|
8
|
+
this.qw = 0;
|
|
9
|
+
this.x = 0;
|
|
10
|
+
this.y = 0;
|
|
11
|
+
this.z = 0;
|
|
12
|
+
this.readInt8 = (offset) => this.view.getInt8(offset);
|
|
13
|
+
this.readInt16LittleEndian = (offset) => this.view.getInt16(offset, true);
|
|
14
|
+
this.readInt16BigEndian = (offset) => this.view.getInt16(offset, false);
|
|
15
|
+
this.readInt32LittleEndian = (offset) => this.view.getInt32(offset, true);
|
|
16
|
+
this.readInt32BigEndian = (offset) => this.view.getInt32(offset, false);
|
|
17
|
+
this.readFloat32LittleEndian = (offset) => this.view.getFloat32(offset, true);
|
|
18
|
+
this.readFloat32BigEndian = (offset) => this.view.getFloat32(offset, false);
|
|
19
|
+
this.readFloat64LittleEndian = (offset) => this.view.getFloat64(offset, true);
|
|
20
|
+
this.readFloat64BigEndian = (offset) => this.view.getFloat64(offset, false);
|
|
21
|
+
this.view = new DataView(data);
|
|
22
|
+
switch (header.type) {
|
|
23
|
+
case "int8":
|
|
24
|
+
case "int8_t":
|
|
25
|
+
case "signed char":
|
|
26
|
+
this.typeLength = 1;
|
|
27
|
+
this.read = this.readInt8;
|
|
28
|
+
break;
|
|
29
|
+
case "int16":
|
|
30
|
+
case "int16_t":
|
|
31
|
+
case "short":
|
|
32
|
+
case "short int":
|
|
33
|
+
case "signed short":
|
|
34
|
+
case "signed short int":
|
|
35
|
+
this.typeLength = 2;
|
|
36
|
+
this.read =
|
|
37
|
+
header.endian === "little" ? this.readInt16LittleEndian : this.readInt16BigEndian;
|
|
38
|
+
break;
|
|
39
|
+
case "int32":
|
|
40
|
+
case "int32_t":
|
|
41
|
+
case "int":
|
|
42
|
+
case "signed int":
|
|
43
|
+
this.typeLength = 4;
|
|
44
|
+
this.read =
|
|
45
|
+
header.endian === "little" ? this.readInt32LittleEndian : this.readInt32BigEndian;
|
|
46
|
+
break;
|
|
47
|
+
case "float":
|
|
48
|
+
this.typeLength = 4;
|
|
49
|
+
this.read =
|
|
50
|
+
header.endian === "little" ? this.readFloat32LittleEndian : this.readFloat32BigEndian;
|
|
51
|
+
break;
|
|
52
|
+
case "double":
|
|
53
|
+
this.typeLength = 8;
|
|
54
|
+
this.read =
|
|
55
|
+
header.endian === "little" ? this.readFloat64LittleEndian : this.readFloat64BigEndian;
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
throw Error(`Don't know how to deal with type "${header.type}"!\nWe only know "int8", "int16", "int32", "float" and "double".`);
|
|
59
|
+
}
|
|
60
|
+
this.dataLength = data.byteLength;
|
|
61
|
+
}
|
|
62
|
+
walkVolume(callback) {
|
|
63
|
+
const { x: sizeX, y: sizeY, z: sizeZ } = this.header.sizes;
|
|
64
|
+
const [xOrigin, yOrigin, zOrigin] = this.header.spaceOrigin;
|
|
65
|
+
const [xDirX, yDirX, zDirX] = this.header.spaceAxis.x;
|
|
66
|
+
const [xDirY, yDirY, zDirY] = this.header.spaceAxis.y;
|
|
67
|
+
const [xDirZ, yDirZ, zDirZ] = this.header.spaceAxis.z;
|
|
68
|
+
let pointer = 0;
|
|
69
|
+
let idxX = 0;
|
|
70
|
+
let idxY = 0;
|
|
71
|
+
let idxZ = 0;
|
|
72
|
+
try {
|
|
73
|
+
for (idxZ = 0; idxZ < sizeZ; idxZ++) {
|
|
74
|
+
for (idxY = 0; idxY < sizeY; idxY++) {
|
|
75
|
+
for (idxX = 0; idxX < sizeX; idxX++) {
|
|
76
|
+
const qx = this.read(pointer);
|
|
77
|
+
pointer += this.typeLength;
|
|
78
|
+
const qy = this.read(pointer);
|
|
79
|
+
pointer += this.typeLength;
|
|
80
|
+
const qz = this.read(pointer);
|
|
81
|
+
pointer += this.typeLength;
|
|
82
|
+
const qw = this.read(pointer);
|
|
83
|
+
pointer += this.typeLength;
|
|
84
|
+
if (isNotZero(qx) || isNotZero(qy) || isNotZero(qz) || isNotZero(qw)) {
|
|
85
|
+
const x = xOrigin + idxX * xDirX + idxY * xDirY + idxZ * xDirZ;
|
|
86
|
+
const y = yOrigin + idxX * yDirX + idxY * yDirY + idxZ * yDirZ;
|
|
87
|
+
const z = zOrigin + idxX * zDirX + idxY * zDirY + idxZ * zDirZ;
|
|
88
|
+
callback(x, y, z, qx, qy, qz, qw);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (ex) {
|
|
95
|
+
console.error("[Volume.walkVolume] pointer =", pointer);
|
|
96
|
+
console.error("[Volume.walkVolume] index =", idxX, idxY, idxZ);
|
|
97
|
+
throw ex;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
countNonNull() {
|
|
101
|
+
const { read } = this;
|
|
102
|
+
let count = 0;
|
|
103
|
+
const size = this.typeLength;
|
|
104
|
+
for (let offset = 0; offset < this.dataLength; offset += size * 4) {
|
|
105
|
+
if (isNotZero(read(offset))) {
|
|
106
|
+
count++;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (isNotZero(read(offset + size))) {
|
|
110
|
+
count++;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (isNotZero(read(offset + 2 * size))) {
|
|
114
|
+
count++;
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (isNotZero(read(offset + 3 * size))) {
|
|
118
|
+
count++;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return count;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const EPSILON = 1e-6;
|
|
126
|
+
function isNotZero(x) {
|
|
127
|
+
return Math.abs(x) > EPSILON;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25ycmQvdm9sdW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sTUFBTTtJQWtCekIsWUFDa0IsTUFBb0IsRUFDcEMsSUFBcUI7UUFETCxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBbEIvQiwwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUNQLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDUCxPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUNQLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sTUFBQyxHQUFHLENBQUMsQ0FBQztRQW9JSSxhQUFRLEdBQUcsQ0FBQyxNQUFjLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpFLDBCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxCLHVCQUFrQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5CLDBCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxCLHVCQUFrQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5CLDRCQUF1QixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBCLHlCQUFvQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJCLDRCQUF1QixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBCLHlCQUFvQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBOUlwQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLGFBQWE7Z0JBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLGtCQUFrQjtnQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxJQUFJO29CQUNQLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDcEYsTUFBTTtZQUNSLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssWUFBWTtnQkFDZixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUk7b0JBQ1AsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNwRixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsSUFBSTtvQkFDUCxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3hGLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxJQUFJO29CQUNQLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDeEYsTUFBTTtZQUNSO2dCQUNFLE1BQU0sS0FBSyxDQUNULHFDQUFxQyxNQUFNLENBQUMsSUFBSSxrRUFBa0UsQ0FDbkgsQ0FBQztRQUNOLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FDUixRQVFTO1FBRVQsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDNUQsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQztZQUNILEtBQUssSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLEtBQUssSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7b0JBQ3BDLEtBQUssSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ3BDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzlCLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO3dCQUMzQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM5QixPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDM0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQzNCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzlCLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO3dCQUMzQixJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDOzRCQUNyRSxNQUFNLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7NEJBQy9ELE1BQU0sQ0FBQyxHQUFHLE9BQU8sR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQzs0QkFDL0QsTUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDOzRCQUMvRCxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3BDLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0QsTUFBTSxFQUFFLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUdELFlBQVk7UUFDVixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDN0IsS0FBSyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM1QixLQUFLLEVBQUUsQ0FBQztnQkFDUixTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxLQUFLLEVBQUUsQ0FBQztnQkFDUixTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsU0FBUztZQUNYLENBQUM7WUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssRUFBRSxDQUFDO2dCQUNSLFNBQVM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQTJCRjtBQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUVyQixTQUFTLFNBQVMsQ0FBQyxDQUFTO0lBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7QUFDL0IsQ0FBQyJ9
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openbraininstitute/morphoviewer",
|
|
3
|
+
"version": "0.24.18",
|
|
4
|
+
"description": "Class to display SWC files in 3D on a canvas",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"typings": "./dist/index.d.ts",
|
|
8
|
+
"types": "./dist",
|
|
9
|
+
"files": [
|
|
10
|
+
"./dist"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"clean": "rm -rf ./dist .tsbuildinfo",
|
|
14
|
+
"doc": "typedoc --watch",
|
|
15
|
+
"prebuild": "npm run clean",
|
|
16
|
+
"build": "build-typescript-library .",
|
|
17
|
+
"prestart": "npm run clean",
|
|
18
|
+
"start": "build-typescript-library --watch .",
|
|
19
|
+
"format": "biome format --write src/",
|
|
20
|
+
"lint": "biome check src/",
|
|
21
|
+
"test": "jest",
|
|
22
|
+
"test:watch": "jest --watch"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"SWC",
|
|
26
|
+
"morphology",
|
|
27
|
+
"OBI",
|
|
28
|
+
"webgl2",
|
|
29
|
+
"BBP"
|
|
30
|
+
],
|
|
31
|
+
"author": "Fabien PETITJEAN <fabien.petitjean@epfl.ch>",
|
|
32
|
+
"license": "ISC",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@tolokoban/tgd": "^2.0.126",
|
|
35
|
+
"fflate": "^0.8.2",
|
|
36
|
+
"tslib": "^2.8.1"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/jest": "^30.0.0",
|
|
40
|
+
"@types/react": "^19.2.14",
|
|
41
|
+
"babel-jest": "^30.3.0",
|
|
42
|
+
"build-typescript-library": "^0.10.0",
|
|
43
|
+
"jest": "^30.3.0",
|
|
44
|
+
"jest-environment-jsdom": "^30.3.0",
|
|
45
|
+
"ts-jest": "^29.4.9",
|
|
46
|
+
"ts-loader": "^9.5.7",
|
|
47
|
+
"ts-patch": "^3.3.0",
|
|
48
|
+
"typedoc": "^0.28.19",
|
|
49
|
+
"typescript": "^5.9.3",
|
|
50
|
+
"typescript-transform-paths": "^3.5.6"
|
|
51
|
+
},
|
|
52
|
+
"jest": {
|
|
53
|
+
"testEnvironment": "jsdom",
|
|
54
|
+
"moduleFileExtensions": [
|
|
55
|
+
"tsx",
|
|
56
|
+
"ts",
|
|
57
|
+
"js",
|
|
58
|
+
"jsx",
|
|
59
|
+
"wasm"
|
|
60
|
+
],
|
|
61
|
+
"transform": {
|
|
62
|
+
"^.+\\.tsx?$": "ts-jest"
|
|
63
|
+
},
|
|
64
|
+
"testMatch": [
|
|
65
|
+
"**/*.(test|spec).(ts|tsx)"
|
|
66
|
+
],
|
|
67
|
+
"globals": {
|
|
68
|
+
"ENV_VARIABLES": {}
|
|
69
|
+
},
|
|
70
|
+
"moduleNameMapper": {
|
|
71
|
+
"^@tgd/(.*)$": "<rootDir>/src/tgd/$1",
|
|
72
|
+
"^@tgd": "<rootDir>/src/tgd",
|
|
73
|
+
"^@/(.*)$": "<rootDir>/src/$1",
|
|
74
|
+
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/mocks.js",
|
|
75
|
+
"\\.(css|less)$": "<rootDir>/__mocks__/mocks.js",
|
|
76
|
+
"\\.(py|sh|txt|bin)$": "<rootDir>/__mocks__/mocks.js"
|
|
77
|
+
},
|
|
78
|
+
"verbose": true,
|
|
79
|
+
"collectCoverage": true,
|
|
80
|
+
"coverageReporters": [
|
|
81
|
+
"lcov"
|
|
82
|
+
],
|
|
83
|
+
"coverageDirectory": "test-coverage",
|
|
84
|
+
"coverageThreshold": {
|
|
85
|
+
"global": {
|
|
86
|
+
"branches": 0,
|
|
87
|
+
"functions": 0,
|
|
88
|
+
"lines": 0,
|
|
89
|
+
"statements": 0
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"peerDependencies": {
|
|
94
|
+
"react": "^19.2.5"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"for-each-line.d.ts","sourceRoot":"","sources":["../../src/parser/for-each-line.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,GAAc,SAAS,MAAM,uCAYpD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const forEachLine = function* (content) {
|
|
2
|
+
const len = content.length;
|
|
3
|
+
let index = 0;
|
|
4
|
+
let cursor = 0;
|
|
5
|
+
while (index > -1 && index < len) {
|
|
6
|
+
index = content.indexOf("\n", cursor);
|
|
7
|
+
if (index < 0)
|
|
8
|
+
break;
|
|
9
|
+
yield content.substring(cursor, index).trim();
|
|
10
|
+
cursor = index + 1;
|
|
11
|
+
}
|
|
12
|
+
return content.substring(cursor).trim();
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWVhY2gtbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvZm9yLWVhY2gtbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEVBQUUsT0FBZTtJQUNuRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzNCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxLQUFLLEdBQUcsQ0FBQztZQUFFLE1BQU07UUFFckIsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxNQUFNLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CellNodeType } from "../types";
|
|
2
|
+
export interface CellNode {
|
|
3
|
+
index: number;
|
|
4
|
+
parent: number;
|
|
5
|
+
type: CellNodeType;
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
z: number;
|
|
9
|
+
radius: number;
|
|
10
|
+
u: number;
|
|
11
|
+
v: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseSwc(content: string): CellNode[];
|
|
14
|
+
//# sourceMappingURL=swc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swc.d.ts","sourceRoot":"","sources":["../../src/parser/swc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,QAAQ;IAEvB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IAEf,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,cAsBvC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CellNodeType } from "./../types.js";
|
|
2
|
+
import { forEachLine } from "./for-each-line.js";
|
|
3
|
+
export function parseSwc(content) {
|
|
4
|
+
const nodes = [];
|
|
5
|
+
for (const rawLine of forEachLine(content)) {
|
|
6
|
+
const line = stripComment(rawLine);
|
|
7
|
+
const items = line.split(/\s+/);
|
|
8
|
+
if (items.length < 7)
|
|
9
|
+
continue;
|
|
10
|
+
const [index, rawType, x, y, z, radius, parent] = items.map((s) => Number(s));
|
|
11
|
+
const type = rawType > 0 && rawType < 5 ? rawType : CellNodeType.Unknown;
|
|
12
|
+
nodes.push({
|
|
13
|
+
index,
|
|
14
|
+
parent,
|
|
15
|
+
type,
|
|
16
|
+
x,
|
|
17
|
+
y,
|
|
18
|
+
z,
|
|
19
|
+
radius,
|
|
20
|
+
u: 0,
|
|
21
|
+
v: getTextureCoordFromType(type),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return nodes;
|
|
25
|
+
}
|
|
26
|
+
function stripComment(line) {
|
|
27
|
+
const pos = line.indexOf("#");
|
|
28
|
+
if (pos < 0)
|
|
29
|
+
return line;
|
|
30
|
+
return line.substring(0, pos).trim();
|
|
31
|
+
}
|
|
32
|
+
function getTextureCoordFromType(type) {
|
|
33
|
+
return (getIndexFromType(type) + 0.5) / 5;
|
|
34
|
+
}
|
|
35
|
+
function getIndexFromType(type) {
|
|
36
|
+
switch (type) {
|
|
37
|
+
case CellNodeType.Soma:
|
|
38
|
+
return 0;
|
|
39
|
+
case CellNodeType.Axon:
|
|
40
|
+
return 1;
|
|
41
|
+
case CellNodeType.BasalDendrite:
|
|
42
|
+
return 2;
|
|
43
|
+
case CellNodeType.ApicalDendrite:
|
|
44
|
+
return 3;
|
|
45
|
+
default:
|
|
46
|
+
return 4;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3djLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlci9zd2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFrQjlDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBZTtJQUN0QyxNQUFNLEtBQUssR0FBZSxFQUFFLENBQUM7SUFDN0IsS0FBSyxNQUFNLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLFNBQVM7UUFFL0IsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUUsT0FBd0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMzRixLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsS0FBSztZQUNMLE1BQU07WUFDTixJQUFJO1lBQ0osQ0FBQztZQUNELENBQUM7WUFDRCxDQUFDO1lBQ0QsTUFBTTtZQUNOLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLElBQUksR0FBRyxHQUFHLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLElBQWtCO0lBQ2pELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsSUFBa0I7SUFDMUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssWUFBWSxDQUFDLElBQUk7WUFDcEIsT0FBTyxDQUFDLENBQUM7UUFDWCxLQUFLLFlBQVksQ0FBQyxJQUFJO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsS0FBSyxZQUFZLENBQUMsYUFBYTtZQUM3QixPQUFPLENBQUMsQ0FBQztRQUNYLEtBQUssWUFBWSxDQUFDLGNBQWM7WUFDOUIsT0FBTyxDQUFDLENBQUM7UUFDWDtZQUNFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ScalebarOptions {
|
|
2
|
+
preferedSizeInPixels: number;
|
|
3
|
+
units: Record<string, number>;
|
|
4
|
+
values: number[];
|
|
5
|
+
}
|
|
6
|
+
export declare function computeScalebarAttributes(pixelScale: number, { preferedSizeInPixels, units, values, }?: Partial<ScalebarOptions>): {
|
|
7
|
+
sizeInPixel: number;
|
|
8
|
+
value: number;
|
|
9
|
+
unit: string;
|
|
10
|
+
} | null;
|
|
11
|
+
//# sourceMappingURL=scalebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalebar.d.ts","sourceRoot":"","sources":["../src/scalebar.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,EACE,oBAA0B,EAC1B,KAMC,EACD,MAAmF,GACpF,GAAE,OAAO,CAAC,eAAe,CAAM,GAC/B;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAgBP"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function computeScalebarAttributes(pixelScale, { preferedSizeInPixels = 240, units = {
|
|
2
|
+
nm: 1e-3,
|
|
3
|
+
µm: 1,
|
|
4
|
+
mm: 1e3,
|
|
5
|
+
m: 1e6,
|
|
6
|
+
km: 1e9,
|
|
7
|
+
}, values = [1, 2, 5, 10, 20, 25, 50, 75, 100, 200, 300, 400, 500, 600, 700, 800, 900], } = {}) {
|
|
8
|
+
var _a;
|
|
9
|
+
const target = pixelScale * preferedSizeInPixels;
|
|
10
|
+
for (const unit of Object.keys(units)) {
|
|
11
|
+
const factor = (_a = units[unit]) !== null && _a !== void 0 ? _a : 1;
|
|
12
|
+
const targetWithUnit = target / factor;
|
|
13
|
+
for (const value of values) {
|
|
14
|
+
if (value >= targetWithUnit) {
|
|
15
|
+
return {
|
|
16
|
+
sizeInPixel: (value * factor) / pixelScale,
|
|
17
|
+
value,
|
|
18
|
+
unit,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2NhbGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxVQUFrQixFQUNsQixFQUNFLG9CQUFvQixHQUFHLEdBQUcsRUFDMUIsS0FBSyxHQUFHO0lBQ04sRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxHQUFHO0lBQ1AsQ0FBQyxFQUFFLEdBQUc7SUFDTixFQUFFLEVBQUUsR0FBRztDQUNSLEVBQ0QsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUN2RCxFQUFFOztJQU1oQyxNQUFNLE1BQU0sR0FBRyxVQUFVLEdBQUcsb0JBQW9CLENBQUM7SUFDakQsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLG1DQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLGNBQWMsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQzVCLE9BQU87b0JBQ0wsV0FBVyxFQUFFLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLFVBQVU7b0JBQzFDLEtBQUs7b0JBQ0wsSUFBSTtpQkFDTCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class CacheLRU<T> implements Map<string, T> {
|
|
2
|
+
readonly capacity: number;
|
|
3
|
+
private map;
|
|
4
|
+
constructor(capacity: number);
|
|
5
|
+
clear(): void;
|
|
6
|
+
delete(key: string): boolean;
|
|
7
|
+
forEach(callbackfn: (value: T, key: string, map: Map<string, T>) => void, thisArg?: any): void;
|
|
8
|
+
get(key: string): T | undefined;
|
|
9
|
+
has(key: string): boolean;
|
|
10
|
+
set(key: string, value: T): this;
|
|
11
|
+
get size(): number;
|
|
12
|
+
entries(): MapIterator<[string, T]>;
|
|
13
|
+
keys(): MapIterator<string>;
|
|
14
|
+
values(): MapIterator<T>;
|
|
15
|
+
[Symbol.iterator](): MapIterator<[string, T]>;
|
|
16
|
+
get [Symbol.toStringTag](): string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=cache-lru.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-lru.d.ts","sourceRoot":"","sources":["../../src/tools/cache-lru.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;aAGpB,QAAQ,EAAE,MAAM;IAF5C,OAAO,CAAC,GAAG,CAAwB;gBAEP,QAAQ,EAAE,MAAM;IAI5C,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI9F,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAYhC,IAAI,IAAI,WAEP;IAED,OAAO,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAInC,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC;IAI3B,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;IAIxB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAI7C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export class CacheLRU {
|
|
2
|
+
constructor(capacity) {
|
|
3
|
+
this.capacity = capacity;
|
|
4
|
+
this.map = new Map();
|
|
5
|
+
if (capacity < 1)
|
|
6
|
+
throw new Error("[CacheLRU] capacity must be at least 1!");
|
|
7
|
+
}
|
|
8
|
+
clear() {
|
|
9
|
+
this.map.clear();
|
|
10
|
+
}
|
|
11
|
+
delete(key) {
|
|
12
|
+
return this.map.delete(key);
|
|
13
|
+
}
|
|
14
|
+
forEach(callbackfn, thisArg) {
|
|
15
|
+
this.map.forEach(callbackfn, thisArg);
|
|
16
|
+
}
|
|
17
|
+
get(key) {
|
|
18
|
+
return this.map.get(key);
|
|
19
|
+
}
|
|
20
|
+
has(key) {
|
|
21
|
+
return this.map.has(key);
|
|
22
|
+
}
|
|
23
|
+
set(key, value) {
|
|
24
|
+
const { map } = this;
|
|
25
|
+
map.set(key, value);
|
|
26
|
+
while (map.size > this.capacity) {
|
|
27
|
+
const firstKey = map.keys().next().value;
|
|
28
|
+
if (typeof firstKey !== "string")
|
|
29
|
+
break;
|
|
30
|
+
map.delete(firstKey);
|
|
31
|
+
}
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
get size() {
|
|
35
|
+
return this.map.size;
|
|
36
|
+
}
|
|
37
|
+
entries() {
|
|
38
|
+
return this.map.entries();
|
|
39
|
+
}
|
|
40
|
+
keys() {
|
|
41
|
+
return this.map.keys();
|
|
42
|
+
}
|
|
43
|
+
values() {
|
|
44
|
+
return this.map.values();
|
|
45
|
+
}
|
|
46
|
+
[Symbol.iterator]() {
|
|
47
|
+
return this.map[Symbol.iterator]();
|
|
48
|
+
}
|
|
49
|
+
get [Symbol.toStringTag]() {
|
|
50
|
+
return this.map[Symbol.toStringTag];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtbHJ1LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2NhY2hlLWxydS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUduQixZQUE0QixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBRnBDLFFBQUcsR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO1FBR2pDLElBQUksUUFBUSxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLENBQUMsVUFBZ0UsRUFBRSxPQUFhO1FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBUTtRQUN2QixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN6QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQUUsTUFBTTtZQUV4QyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Morphology } from "../components/morpho-viewer-simul/types/private";
|
|
2
|
+
import { type MorphoViewerTree } from "../components/morpho-viewer-simul/types/public";
|
|
3
|
+
export declare function morphoViewerConvertMorphologyIntoTree(morphology: Morphology, cellId: string): MorphoViewerTree;
|
|
4
|
+
//# sourceMappingURL=morphology-to-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"morphology-to-tree.d.ts","sourceRoot":"","sources":["../../src/tools/morphology-to-tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,+CAA+C,CAAC;AAOvD,wBAAgB,qCAAqC,CACnD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACb,gBAAgB,CA+DlB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { MorphoViewerTreeItemType, } from "./../components/morpho-viewer-simul/types/public.js";
|
|
2
|
+
export function morphoViewerConvertMorphologyIntoTree(morphology, cellId) {
|
|
3
|
+
const tree = {
|
|
4
|
+
cellId,
|
|
5
|
+
roots: [],
|
|
6
|
+
};
|
|
7
|
+
const segments = new Map();
|
|
8
|
+
const sectionNames = Object.keys(morphology).filter(isAcceptedSectionName);
|
|
9
|
+
let hasApicalDendrites = false;
|
|
10
|
+
for (const sectionName of sectionNames) {
|
|
11
|
+
const section = morphology[sectionName];
|
|
12
|
+
const type = resolveType(sectionName);
|
|
13
|
+
if (type === MorphoViewerTreeItemType.ApicalDendrite) {
|
|
14
|
+
hasApicalDendrites = true;
|
|
15
|
+
}
|
|
16
|
+
for (let segmentIndex = 0; segmentIndex < section.nseg; segmentIndex++) {
|
|
17
|
+
const start = [
|
|
18
|
+
section.xstart[segmentIndex],
|
|
19
|
+
section.ystart[segmentIndex],
|
|
20
|
+
section.zstart[segmentIndex],
|
|
21
|
+
];
|
|
22
|
+
const end = [
|
|
23
|
+
section.xend[segmentIndex],
|
|
24
|
+
section.yend[segmentIndex],
|
|
25
|
+
section.zend[segmentIndex],
|
|
26
|
+
];
|
|
27
|
+
const segment = {
|
|
28
|
+
parentKey: key3D(start),
|
|
29
|
+
item: {
|
|
30
|
+
type,
|
|
31
|
+
x: end[0],
|
|
32
|
+
y: end[1],
|
|
33
|
+
z: end[2],
|
|
34
|
+
radius: section.diam[segmentIndex] / 2,
|
|
35
|
+
sectionId: sectionName,
|
|
36
|
+
segmentId: `${segmentIndex}`,
|
|
37
|
+
distanceFromSoma: 0,
|
|
38
|
+
children: [],
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
segments.set(key3D(end), segment);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const { parentKey, item } of segments.values()) {
|
|
45
|
+
const parent = segments.get(parentKey);
|
|
46
|
+
if (parent && parent.item !== item) {
|
|
47
|
+
if (!parent.item.children)
|
|
48
|
+
parent.item.children = [];
|
|
49
|
+
parent.item.children.push(item);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
tree.roots.push(item);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!hasApicalDendrites) {
|
|
56
|
+
for (const segment of segments.values()) {
|
|
57
|
+
const { item } = segment;
|
|
58
|
+
if (item.type === MorphoViewerTreeItemType.BasalDendrite) {
|
|
59
|
+
item.type = MorphoViewerTreeItemType.Dendrite;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return tree;
|
|
64
|
+
}
|
|
65
|
+
function resolveType(sectionName) {
|
|
66
|
+
const prefix = sectionName.slice(0, 4).toLowerCase();
|
|
67
|
+
switch (prefix) {
|
|
68
|
+
case "soma":
|
|
69
|
+
return MorphoViewerTreeItemType.Soma;
|
|
70
|
+
case "axon":
|
|
71
|
+
return MorphoViewerTreeItemType.Axon;
|
|
72
|
+
case "dend":
|
|
73
|
+
return MorphoViewerTreeItemType.BasalDendrite;
|
|
74
|
+
case "apic":
|
|
75
|
+
return MorphoViewerTreeItemType.ApicalDendrite;
|
|
76
|
+
case "myel":
|
|
77
|
+
return MorphoViewerTreeItemType.Myelin;
|
|
78
|
+
default:
|
|
79
|
+
return MorphoViewerTreeItemType.Unknown;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function key3D([x, y, z]) {
|
|
83
|
+
const PRECISION = 3;
|
|
84
|
+
return `${x.toFixed(PRECISION)}/${y.toFixed(PRECISION)}/${z.toFixed(PRECISION)}`;
|
|
85
|
+
}
|
|
86
|
+
function isAcceptedSectionName(sectionName) {
|
|
87
|
+
return sectionName.charAt(sectionName.length - 1) === "]";
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvbG9neS10by10cmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL21vcnBob2xvZ3ktdG8tdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBR0wsd0JBQXdCLEdBQ3pCLE1BQU0sK0NBQStDLENBQUM7QUFPdkQsTUFBTSxVQUFVLHFDQUFxQyxDQUNuRCxVQUFzQixFQUN0QixNQUFjO0lBRWQsTUFBTSxJQUFJLEdBQXFCO1FBQzdCLE1BQU07UUFDTixLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNFLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQy9CLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLElBQUksS0FBSyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyRCxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELEtBQUssSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDdkUsTUFBTSxLQUFLLEdBQWlCO2dCQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQzdCLENBQUM7WUFDRixN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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD,oBAAY,YAAY;IACtB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,aAAa,IAAI;IACjB,cAAc,IAAI;IAClB,OAAO,MAAM;CACd"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var CellNodeType;
|
|
2
|
+
(function (CellNodeType) {
|
|
3
|
+
CellNodeType[CellNodeType["Soma"] = 1] = "Soma";
|
|
4
|
+
CellNodeType[CellNodeType["Axon"] = 2] = "Axon";
|
|
5
|
+
CellNodeType[CellNodeType["BasalDendrite"] = 3] = "BasalDendrite";
|
|
6
|
+
CellNodeType[CellNodeType["ApicalDendrite"] = 4] = "ApicalDendrite";
|
|
7
|
+
CellNodeType[CellNodeType["Unknown"] = 666] = "Unknown";
|
|
8
|
+
})(CellNodeType || (CellNodeType = {}));
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUN0QiwrQ0FBUSxDQUFBO0lBQ1IsK0NBQVEsQ0FBQTtJQUNSLGlFQUFpQixDQUFBO0lBQ2pCLG1FQUFrQixDQUFBO0lBQ2xCLHVEQUFhLENBQUE7QUFDZixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkIifQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ArrayNumber3 } from "@tolokoban/tgd";
|
|
2
|
+
interface CustomEvent<T> {
|
|
3
|
+
addListener(listener: (v: T) => void): void;
|
|
4
|
+
removeListener(listener: (v: T) => void): void;
|
|
5
|
+
}
|
|
6
|
+
interface CustomEventDispatchable<T> extends CustomEvent<T> {
|
|
7
|
+
dispatch(arg: T): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function useEventValue<T>(initialValue: T, event?: CustomEvent<T> | null): T;
|
|
10
|
+
export declare function useEventState<T>(initialValue: T, event?: CustomEventDispatchable<T> | null): [T, (value: T) => void];
|
|
11
|
+
export declare function classNames(...args: unknown[]): string;
|
|
12
|
+
export declare function int16ToVec3(index: number): ArrayNumber3;
|
|
13
|
+
export declare function vec3ToInt16(vec3: ArrayNumber3): number;
|
|
14
|
+
export declare function useDebugMode(): boolean;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,UAAU,WAAW,CAAC,CAAC;IACrB,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;CAChD;AAED,UAAU,uBAAuB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CASlF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC7B,YAAY,EAAE,CAAC,EACf,KAAK,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,GACxC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAczB;AAED,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAErD;AAYD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,gBAExC;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,UAE7C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAOtC"}
|