@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,104 @@
|
|
|
1
|
+
import { TgdMaterialDiffuse, TgdPainterGroup, TgdPainterSegments, TgdTexture2D, } from "@tolokoban/tgd";
|
|
2
|
+
import { makeData } from "./factory.js";
|
|
3
|
+
import { getDistancesTextureCanvas, getRegionsTextureCanvas } from "./textures.js";
|
|
4
|
+
export class SwcPainter extends TgdPainterGroup {
|
|
5
|
+
constructor(context, nodes) {
|
|
6
|
+
super();
|
|
7
|
+
this.context = context;
|
|
8
|
+
this._colorBy = "section";
|
|
9
|
+
this.textureIsOutOfDate = true;
|
|
10
|
+
this._somaVisible = true;
|
|
11
|
+
this.radiusSwitch = 0;
|
|
12
|
+
this.customColorsForSection = null;
|
|
13
|
+
this.customColorsForDistance = null;
|
|
14
|
+
this.paint = (time, delay) => {
|
|
15
|
+
this.updateTextureIfNeeded();
|
|
16
|
+
super.paint(time, delay);
|
|
17
|
+
};
|
|
18
|
+
this.refresh = () => {
|
|
19
|
+
this.context.paint();
|
|
20
|
+
};
|
|
21
|
+
const texture = (this.texture = new TgdTexture2D(context, {
|
|
22
|
+
params: {
|
|
23
|
+
wrapR: "CLAMP_TO_EDGE",
|
|
24
|
+
wrapS: "CLAMP_TO_EDGE",
|
|
25
|
+
wrapT: "CLAMP_TO_EDGE",
|
|
26
|
+
},
|
|
27
|
+
}));
|
|
28
|
+
const material = new TgdMaterialDiffuse({
|
|
29
|
+
color: texture,
|
|
30
|
+
lockLightsToCamera: true,
|
|
31
|
+
alphaCut: 1,
|
|
32
|
+
});
|
|
33
|
+
const { neurites, soma } = makeData(nodes);
|
|
34
|
+
const painterNeurites = (this.painterNeurites = new TgdPainterSegments(context, {
|
|
35
|
+
dataset: neurites.makeDataset,
|
|
36
|
+
minRadius: 2,
|
|
37
|
+
roundness: 8,
|
|
38
|
+
material,
|
|
39
|
+
}));
|
|
40
|
+
const painterSoma = new TgdPainterSegments(context, {
|
|
41
|
+
dataset: soma.makeDataset,
|
|
42
|
+
minRadius: 2,
|
|
43
|
+
roundness: 48,
|
|
44
|
+
material,
|
|
45
|
+
});
|
|
46
|
+
this.add(painterNeurites, painterSoma);
|
|
47
|
+
}
|
|
48
|
+
get minRadius() {
|
|
49
|
+
return this.painterNeurites.minRadius;
|
|
50
|
+
}
|
|
51
|
+
set minRadius(radius) {
|
|
52
|
+
this.painterNeurites.minRadius = radius;
|
|
53
|
+
}
|
|
54
|
+
get radiusMultiplier() {
|
|
55
|
+
return this.painterNeurites.radiusMultiplier;
|
|
56
|
+
}
|
|
57
|
+
set radiusMultiplier(radius) {
|
|
58
|
+
console.log("🐞 [painter@67] radius =", radius);
|
|
59
|
+
this.painterNeurites.radiusMultiplier = radius;
|
|
60
|
+
}
|
|
61
|
+
get somaVisible() {
|
|
62
|
+
return this._somaVisible;
|
|
63
|
+
}
|
|
64
|
+
set somaVisible(visible) {
|
|
65
|
+
if (visible === this._somaVisible)
|
|
66
|
+
return;
|
|
67
|
+
this._somaVisible = visible;
|
|
68
|
+
this.textureIsOutOfDate = true;
|
|
69
|
+
}
|
|
70
|
+
get colorBy() {
|
|
71
|
+
return this._colorBy;
|
|
72
|
+
}
|
|
73
|
+
set colorBy(value) {
|
|
74
|
+
if (value === this._colorBy)
|
|
75
|
+
return;
|
|
76
|
+
this._colorBy = value;
|
|
77
|
+
this.textureIsOutOfDate = true;
|
|
78
|
+
this.refresh();
|
|
79
|
+
}
|
|
80
|
+
get radiusType() {
|
|
81
|
+
return this.radiusSwitch;
|
|
82
|
+
}
|
|
83
|
+
set radiusType(value) {
|
|
84
|
+
this.radiusSwitch = value;
|
|
85
|
+
}
|
|
86
|
+
updateTextureIfNeeded() {
|
|
87
|
+
var _a, _b;
|
|
88
|
+
const { texture, colorBy, textureIsOutOfDate, customColorsForSection, customColorsForDistance, } = this;
|
|
89
|
+
if (textureIsOutOfDate) {
|
|
90
|
+
texture.loadBitmap(colorBy === "section"
|
|
91
|
+
? getRegionsTextureCanvas(this.somaVisible, (_a = this.colors) !== null && _a !== void 0 ? _a : {}, customColorsForSection)
|
|
92
|
+
: getDistancesTextureCanvas((_b = this.colors) !== null && _b !== void 0 ? _b : {}, customColorsForDistance));
|
|
93
|
+
this.textureIsOutOfDate = false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
resetColors(colors, customColorsForSection, customColorsForDistance) {
|
|
97
|
+
this.textureIsOutOfDate = true;
|
|
98
|
+
this.customColorsForSection = customColorsForSection;
|
|
99
|
+
this.customColorsForDistance = customColorsForDistance;
|
|
100
|
+
this.colors = colors;
|
|
101
|
+
this.refresh();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb3JwaG9sb2d5L3BhaW50ZXIvcGFpbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFLaEYsTUFBTSxPQUFPLFVBQVcsU0FBUSxlQUFlO0lBVzdDLFlBQ2tCLE9BQW1CLEVBQ25DLEtBQWdCO1FBRWhCLEtBQUssRUFBRSxDQUFDO1FBSFEsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVY3QixhQUFRLEdBQTJCLFNBQVMsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsMkJBQXNCLEdBQW9CLElBQUksQ0FBQztRQUMvQyw0QkFBdUIsR0FBb0IsSUFBSSxDQUFDO1FBZ0Z4QyxVQUFLLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDO1FBZ0NjLFlBQU8sR0FBRyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUM7UUE3R0EsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN4RCxNQUFNLEVBQUU7Z0JBQ04s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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TgdPainterSegmentsData } from "@tolokoban/tgd";
|
|
2
|
+
import type { CellNodes } from "./nodes";
|
|
3
|
+
export declare class Segments {
|
|
4
|
+
private _data;
|
|
5
|
+
private _count;
|
|
6
|
+
private readonly nodesXYZR;
|
|
7
|
+
private readonly nodesUV;
|
|
8
|
+
private readonly nodesInfluence;
|
|
9
|
+
private readonly attAxyzr;
|
|
10
|
+
private readonly attAuv;
|
|
11
|
+
private readonly attAinfluence;
|
|
12
|
+
private readonly attBxyzr;
|
|
13
|
+
private readonly attBuv;
|
|
14
|
+
private readonly attBinfluence;
|
|
15
|
+
private readonly elemByIndex;
|
|
16
|
+
constructor(nodes: CellNodes);
|
|
17
|
+
get count(): number;
|
|
18
|
+
addSegment(indexNodeA: number, indexNodeB: number): void;
|
|
19
|
+
get data(): TgdPainterSegmentsData;
|
|
20
|
+
private pushA;
|
|
21
|
+
private pushB;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../../src/morphology/painter/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2D;IACrF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAE7C,KAAK,EAAE,SAAS;IAU5B,IAAI,KAAK,WAER;IAED,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IA6CjD,IAAI,IAAI,2BAcP;IAED,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,KAAK;CASd"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { TgdPainterSegmentsData } from "@tolokoban/tgd";
|
|
2
|
+
import { CellNodeType } from "./../../types.js";
|
|
3
|
+
export class Segments {
|
|
4
|
+
constructor(nodes) {
|
|
5
|
+
this._data = null;
|
|
6
|
+
this._count = 0;
|
|
7
|
+
this.nodesXYZR = [];
|
|
8
|
+
this.nodesUV = [];
|
|
9
|
+
this.nodesInfluence = [];
|
|
10
|
+
this.attAxyzr = [];
|
|
11
|
+
this.attAuv = [];
|
|
12
|
+
this.attAinfluence = [];
|
|
13
|
+
this.attBxyzr = [];
|
|
14
|
+
this.attBuv = [];
|
|
15
|
+
this.attBinfluence = [];
|
|
16
|
+
this.elemByIndex = new Map();
|
|
17
|
+
nodes.forEach(({ index, type, x, y, z, radius, u, v }) => {
|
|
18
|
+
const elem = this.nodesUV.length;
|
|
19
|
+
this.nodesXYZR.push([x, y, z, radius]);
|
|
20
|
+
this.nodesUV.push([u, v]);
|
|
21
|
+
this.nodesInfluence.push(type === CellNodeType.Soma ? 0 : 1);
|
|
22
|
+
this.elemByIndex.set(index, elem);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
get count() {
|
|
26
|
+
return this._count;
|
|
27
|
+
}
|
|
28
|
+
addSegment(indexNodeA, indexNodeB) {
|
|
29
|
+
const { data } = this;
|
|
30
|
+
const elemA = this.elemByIndex.get(indexNodeA);
|
|
31
|
+
if (typeof elemA !== "number")
|
|
32
|
+
return;
|
|
33
|
+
const elemB = this.elemByIndex.get(indexNodeB);
|
|
34
|
+
if (typeof elemB !== "number")
|
|
35
|
+
return;
|
|
36
|
+
const nodeAxyzr = this.nodesXYZR[elemA];
|
|
37
|
+
const nodeBxyzr = this.nodesXYZR[elemB];
|
|
38
|
+
const nodeAuv = this.nodesUV[elemA];
|
|
39
|
+
const nodeBuv = this.nodesUV[elemB];
|
|
40
|
+
const influenceA = this.nodesInfluence[elemA];
|
|
41
|
+
const influenceB = this.nodesInfluence[elemB];
|
|
42
|
+
const influenceC = (influenceA + influenceB) * 0.5;
|
|
43
|
+
const [, aV] = nodeAuv;
|
|
44
|
+
const [, bV] = nodeBuv;
|
|
45
|
+
if (aV === bV) {
|
|
46
|
+
this.pushA(nodeAxyzr, nodeAuv, influenceA);
|
|
47
|
+
this.pushB(nodeBxyzr, nodeBuv, influenceB);
|
|
48
|
+
data.add(nodeAxyzr, nodeBxyzr, nodeAuv, nodeBuv, influenceA, influenceB);
|
|
49
|
+
this._count++;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const [xA, yA, zA, rA] = nodeAxyzr;
|
|
53
|
+
const [xB, yB, zB, rB] = nodeBxyzr;
|
|
54
|
+
const nodeCxyzr = [
|
|
55
|
+
(xA + xB) * 0.5,
|
|
56
|
+
(yA + yB) * 0.5,
|
|
57
|
+
(zA + zB) * 0.5,
|
|
58
|
+
(rA + rB) * 0.5,
|
|
59
|
+
];
|
|
60
|
+
this.pushA(nodeAxyzr, nodeAuv, influenceA);
|
|
61
|
+
this.pushB(nodeCxyzr, nodeAuv, influenceA);
|
|
62
|
+
data.add(nodeAxyzr, nodeCxyzr, nodeAuv, nodeAuv, influenceA, influenceC);
|
|
63
|
+
this._count++;
|
|
64
|
+
this.pushA(nodeCxyzr, nodeBuv, influenceB);
|
|
65
|
+
this.pushB(nodeBxyzr, nodeBuv, influenceB);
|
|
66
|
+
data.add(nodeCxyzr, nodeBxyzr, nodeBuv, nodeBuv, influenceC, influenceB);
|
|
67
|
+
this._count++;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
get data() {
|
|
71
|
+
if (!this._data) {
|
|
72
|
+
this._data = new TgdPainterSegmentsData();
|
|
73
|
+
for (let i = 0; i < this.attAxyzr.length; i++) {
|
|
74
|
+
const Axyzr = this.attAxyzr[i];
|
|
75
|
+
const Auv = this.attAuv[i];
|
|
76
|
+
const Ainfluence = this.attAinfluence[i];
|
|
77
|
+
const Bxyzr = this.attBxyzr[i];
|
|
78
|
+
const Buv = this.attBuv[i];
|
|
79
|
+
const Binfluence = this.attBinfluence[i];
|
|
80
|
+
this._data.add(Axyzr, Bxyzr, Auv, Buv, Ainfluence, Binfluence);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return this._data;
|
|
84
|
+
}
|
|
85
|
+
pushA(xyzr, uv, influence) {
|
|
86
|
+
this.attAxyzr.push(xyzr);
|
|
87
|
+
this.attAuv.push(uv);
|
|
88
|
+
this.attAinfluence.push(influence);
|
|
89
|
+
}
|
|
90
|
+
pushB(xyzr, uv, influence) {
|
|
91
|
+
this.attBxyzr.push(xyzr);
|
|
92
|
+
this.attBuv.push(uv);
|
|
93
|
+
this.attBinfluence.push(influence);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9ycGhvbG9neS9wYWludGVyL3NlZ21lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJdkMsTUFBTSxPQUFPLFFBQVE7SUFjbkIsWUFBWSxLQUFnQjtRQWJwQixVQUFLLEdBQWtDLElBQUksQ0FBQztRQUM1QyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ0YsY0FBUyxHQUF3RCxFQUFFLENBQUM7UUFDcEUsWUFBTyxHQUE2QixFQUFFLENBQUM7UUFDdkMsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDOUIsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQWUsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFlLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixnQkFBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBR3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFB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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ColorsInterface } from "../../colors";
|
|
2
|
+
export declare function getRegionsTextureCanvas(somaVisible: boolean, { soma, axon, basalDendrite, apicalDendrite, unknown, }: Partial<{
|
|
3
|
+
soma: string;
|
|
4
|
+
axon: string;
|
|
5
|
+
apicalDendrite: string;
|
|
6
|
+
basalDendrite: string;
|
|
7
|
+
unknown: string;
|
|
8
|
+
}>, customColors: string[] | null): HTMLCanvasElement;
|
|
9
|
+
export declare function getDistancesTextureCanvas({ soma, axon, basalDendrite, apicalDendrite, }: Partial<ColorsInterface>, customColors: string[] | null): HTMLCanvasElement;
|
|
10
|
+
//# sourceMappingURL=textures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textures.d.ts","sourceRoot":"","sources":["../../../src/morphology/painter/textures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,OAAO,EACpB,EACE,IAAa,EACb,IAAa,EACb,aAAsB,EACtB,cAAuB,EACvB,OAAgB,GACjB,EAAE,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,EACF,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,GAC5B,iBAAiB,CAYnB;AAED,wBAAgB,yBAAyB,CACvC,EACE,IAAa,EACb,IAAa,EACb,aAAsB,EACtB,cAAuB,GACxB,EAAE,OAAO,CAAC,eAAe,CAAC,EAC3B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,GAC5B,iBAAiB,CAoBnB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { TgdColor, tgdCanvasCreateWithContext2D } from "@tolokoban/tgd";
|
|
2
|
+
export function getRegionsTextureCanvas(somaVisible, { soma = "#777", axon = "#00f", basalDendrite = "#f00", apicalDendrite = "#f0f", unknown = "#8a8", }, customColors) {
|
|
3
|
+
const w = 1;
|
|
4
|
+
const h = 5;
|
|
5
|
+
const { ctx } = tgdCanvasCreateWithContext2D(w, h);
|
|
6
|
+
const colors = customColors !== null && customColors !== void 0 ? customColors : [soma, axon, basalDendrite, apicalDendrite, unknown];
|
|
7
|
+
colors[0] = setOpacity(colors[0], somaVisible);
|
|
8
|
+
colors.forEach((color, index) => {
|
|
9
|
+
ctx.fillStyle = color;
|
|
10
|
+
const y = index;
|
|
11
|
+
ctx.fillRect(0, y, w, 1);
|
|
12
|
+
});
|
|
13
|
+
return ctx.canvas;
|
|
14
|
+
}
|
|
15
|
+
export function getDistancesTextureCanvas({ soma = "#777", axon = "#00f", basalDendrite = "#f00", apicalDendrite = "#f0f", }, customColors) {
|
|
16
|
+
const w = 256;
|
|
17
|
+
const h = 5;
|
|
18
|
+
const ctx = createCanvas2DContext(w, h);
|
|
19
|
+
ctx.clearRect(0, 0, w, h);
|
|
20
|
+
const colors = ["#0f0", "#ff0", "#f00"];
|
|
21
|
+
const grad = ctx.createLinearGradient(0, 0, w, h);
|
|
22
|
+
colors.forEach((color, index) => {
|
|
23
|
+
grad.addColorStop(index / (colors.length - 1), color);
|
|
24
|
+
});
|
|
25
|
+
const sectionColors = customColors !== null && customColors !== void 0 ? customColors : [soma, axon, basalDendrite, apicalDendrite];
|
|
26
|
+
sectionColors.forEach((colorString, y) => {
|
|
27
|
+
const color = new TgdColor();
|
|
28
|
+
color.parse(colorString);
|
|
29
|
+
if (color.A >= 1) {
|
|
30
|
+
ctx.fillStyle = grad;
|
|
31
|
+
ctx.fillRect(0, y, w, 1);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return ctx.canvas;
|
|
35
|
+
}
|
|
36
|
+
function createCanvas2DContext(width, height) {
|
|
37
|
+
const canvas = globalThis.document.createElement("canvas");
|
|
38
|
+
if (!canvas)
|
|
39
|
+
throw Error("Unable to create a HTMLCanvasElement!");
|
|
40
|
+
canvas.width = width;
|
|
41
|
+
canvas.height = height;
|
|
42
|
+
const ctx = canvas.getContext("2d");
|
|
43
|
+
if (!ctx)
|
|
44
|
+
throw Error("Unable to create a 2D context!");
|
|
45
|
+
return ctx;
|
|
46
|
+
}
|
|
47
|
+
const COLOR = new TgdColor();
|
|
48
|
+
function setOpacity(color, opaque) {
|
|
49
|
+
COLOR.parse(color);
|
|
50
|
+
COLOR.A = opaque ? 1 : 0.99;
|
|
51
|
+
return COLOR.toString();
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9ycGhvbG9neS9wYWludGVyL3RleHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RSxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFdBQW9CLEVBQ3BCLEVBQ0UsSUFBSSxHQUFHLE1BQU0sRUFDYixJQUFJLEdBQUcsTUFBTSxFQUNiLGFBQWEsR0FBRyxNQUFNLEVBQ3RCLGNBQWMsR0FBRyxNQUFNLEVBQ3ZCLE9BQU8sR0FBRyxNQUFNLEdBT2hCLEVBQ0YsWUFBNkI7SUFFN0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1osTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLDRCQUE0QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxZQUFZLGFBQVosWUFBWSxjQUFaLFlBQVksR0FBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNoQixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUMs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-header-length.d.ts","sourceRoot":"","sources":["../../src/nrrd/get-header-length.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,UA0C/C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export function getHeaderLength(data) {
|
|
2
|
+
const CR = "\r".charCodeAt(0);
|
|
3
|
+
const LF = "\n".charCodeAt(0);
|
|
4
|
+
const ESCAPE = "\\".charCodeAt(0);
|
|
5
|
+
let state = 0;
|
|
6
|
+
let cursor = 0;
|
|
7
|
+
while (cursor < data.length) {
|
|
8
|
+
const char = data[cursor++];
|
|
9
|
+
if (char === ESCAPE) {
|
|
10
|
+
cursor++;
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
switch (state) {
|
|
14
|
+
case 0:
|
|
15
|
+
if (char === CR)
|
|
16
|
+
state = 1;
|
|
17
|
+
else if (char === LF)
|
|
18
|
+
state = 4;
|
|
19
|
+
break;
|
|
20
|
+
case 1:
|
|
21
|
+
if (char === LF)
|
|
22
|
+
state = 2;
|
|
23
|
+
else
|
|
24
|
+
state = 0;
|
|
25
|
+
break;
|
|
26
|
+
case 2:
|
|
27
|
+
if (char === CR)
|
|
28
|
+
state = 3;
|
|
29
|
+
else
|
|
30
|
+
state = 0;
|
|
31
|
+
break;
|
|
32
|
+
case 3:
|
|
33
|
+
if (char === LF)
|
|
34
|
+
return cursor;
|
|
35
|
+
else
|
|
36
|
+
state = 0;
|
|
37
|
+
break;
|
|
38
|
+
case 4:
|
|
39
|
+
if (char === LF)
|
|
40
|
+
return cursor;
|
|
41
|
+
else
|
|
42
|
+
state = 0;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWhlYWRlci1sZW5ndGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbnJyZC9nZXQtaGVhZGVyLWxlbmd0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQWdCO0lBQzlDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUVwQixNQUFNLEVBQUUsQ0FBQztZQUNULFNBQVM7UUFDWCxDQUFDO1FBQ0QsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUVkLEtBQUssQ0FBQztnQkFDSixJQUFJLElBQUksS0FBSyxFQUFFO29CQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7cUJBQ3RCLElBQUksSUFBSSxLQUFLLEVBQUU7b0JBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsTUFBTTtZQUVSLEtBQUssQ0FBQztnQkFDSixJQUFJLElBQUksS0FBSyxFQUFFO29CQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7O29CQUN0QixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLE1BQU07WUFFUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxJQUFJLEtBQUssRUFBRTtvQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDOztvQkFDdEIsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDZixNQUFNO1lBRVIsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxLQUFLLEVBQUU7b0JBQUUsT0FBTyxNQUFNLENBQUM7O29CQUMxQixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLE1BQU07WUFFUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxJQUFJLEtBQUssRUFBRTtvQkFBRSxPQUFPLE1BQU0sQ0FBQzs7b0JBQzFCLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2YsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type Vector3 = [x: number, y: number, z: number];
|
|
2
|
+
interface Axis {
|
|
3
|
+
x: Vector3;
|
|
4
|
+
y: Vector3;
|
|
5
|
+
z: Vector3;
|
|
6
|
+
}
|
|
7
|
+
export default class VolumeHeader {
|
|
8
|
+
readonly center: Vector3;
|
|
9
|
+
readonly boundingSphereRadius: number;
|
|
10
|
+
readonly endian: string;
|
|
11
|
+
readonly dimension: number;
|
|
12
|
+
readonly encoding: string;
|
|
13
|
+
readonly sizes: {
|
|
14
|
+
quaternion: number;
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
z: number;
|
|
18
|
+
};
|
|
19
|
+
readonly spaceDimension: number;
|
|
20
|
+
readonly spaceOrigin: Vector3;
|
|
21
|
+
readonly spaceAxis: Axis;
|
|
22
|
+
readonly type: string;
|
|
23
|
+
constructor(content: string);
|
|
24
|
+
private computeCenter;
|
|
25
|
+
private computeBoundingSphereRadius;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/nrrd/header.ts"],"names":[],"mappings":"AAGA,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACjD,UAAU,IAAI;IACZ,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;CACZ;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAI/B,SAAgB,MAAM,EAAE,OAAO,CAAC;IAChC,SAAgB,oBAAoB,EAAE,MAAM,CAAC;IAE7C,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC,SAAgB,KAAK,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IAEF,SAAgB,cAAc,EAAE,MAAM,CAAC;IAEvC,SAAgB,WAAW,EAAE,OAAO,CAAC;IAErC,SAAgB,SAAS,EAAE,IAAI,CAAC;IAEhC,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM;IA2B3B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,2BAA2B;CAQpC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const NRRD_MAGIC_NUMBER = /^NRRD[0-9]{4}$/g;
|
|
2
|
+
export default class VolumeHeader {
|
|
3
|
+
constructor(content) {
|
|
4
|
+
const lines = content
|
|
5
|
+
.trim()
|
|
6
|
+
.split(/[\n\r]+/g)
|
|
7
|
+
.filter(isNotComment);
|
|
8
|
+
assertMagicNumber(lines);
|
|
9
|
+
const fieldsArray = lines.map(toField).filter(isDefined);
|
|
10
|
+
const fields = new Map();
|
|
11
|
+
for (const [name, value] of fieldsArray) {
|
|
12
|
+
fields.set(name, value);
|
|
13
|
+
}
|
|
14
|
+
this.dimension = parseInt(readField(fields, "dimension"));
|
|
15
|
+
this.encoding = readField(fields, "encoding");
|
|
16
|
+
this.endian = readField(fields, "endian", "N/A");
|
|
17
|
+
this.sizes = parseSizes(fields);
|
|
18
|
+
this.spaceDimension = parseInt(readField(fields, "space dimension"));
|
|
19
|
+
this.spaceOrigin = parseSpaceOrigin(fields);
|
|
20
|
+
this.spaceAxis = parseSpaceAxis(fields);
|
|
21
|
+
this.type = readField(fields, "type");
|
|
22
|
+
if (this.dimension !== 4)
|
|
23
|
+
throw Error(`We need 4 dimensions, but the file has ${this.dimension}!`);
|
|
24
|
+
if (this.spaceDimension !== 3)
|
|
25
|
+
throw Error(`The space is 3D, but the file is defined in ${this.dimension}D!`);
|
|
26
|
+
this.center = this.computeCenter();
|
|
27
|
+
this.boundingSphereRadius = this.computeBoundingSphereRadius();
|
|
28
|
+
}
|
|
29
|
+
computeCenter() {
|
|
30
|
+
const [ox, oy, oz] = this.spaceOrigin;
|
|
31
|
+
const [axx, axy, axz] = this.spaceAxis.x;
|
|
32
|
+
const [ayx, ayy, ayz] = this.spaceAxis.y;
|
|
33
|
+
const [azx, azy, azz] = this.spaceAxis.z;
|
|
34
|
+
const { x: sizeX, y: sizeY, z: sizeZ } = this.sizes;
|
|
35
|
+
const x = ox + 0.5 * (axx * sizeX + ayx * sizeY + azx * sizeZ);
|
|
36
|
+
const y = oy + 0.5 * (axy * sizeX + ayy * sizeY + azy * sizeZ);
|
|
37
|
+
const z = oz + 0.5 * (axz * sizeX + ayz * sizeY + azz * sizeZ);
|
|
38
|
+
return [x, y, z];
|
|
39
|
+
}
|
|
40
|
+
computeBoundingSphereRadius() {
|
|
41
|
+
const [ox, oy, oz] = this.spaceOrigin;
|
|
42
|
+
const [cx, cy, cz] = this.center;
|
|
43
|
+
const x = cx - ox;
|
|
44
|
+
const y = cy - oy;
|
|
45
|
+
const z = cz - oz;
|
|
46
|
+
return Math.sqrt(x * x + y * y + z * z) / 2;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function isDefined(item) {
|
|
50
|
+
return typeof item !== "undefined";
|
|
51
|
+
}
|
|
52
|
+
function toField(line) {
|
|
53
|
+
const colonPosition = line.indexOf(":");
|
|
54
|
+
if (colonPosition < 0)
|
|
55
|
+
return;
|
|
56
|
+
return [line.substring(0, colonPosition), line.substring(colonPosition + 1).trim()];
|
|
57
|
+
}
|
|
58
|
+
function isNotComment(line) {
|
|
59
|
+
return !line.startsWith("#");
|
|
60
|
+
}
|
|
61
|
+
function assertMagicNumber(lines) {
|
|
62
|
+
var _a;
|
|
63
|
+
const magicNumber = (_a = lines.shift()) !== null && _a !== void 0 ? _a : "";
|
|
64
|
+
NRRD_MAGIC_NUMBER.lastIndex = -1;
|
|
65
|
+
if (!NRRD_MAGIC_NUMBER.test(magicNumber)) {
|
|
66
|
+
throw Error("This is not a valid NRRD file!\nWrong magic number.");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function readField(fields, name, defaultValue) {
|
|
70
|
+
var _a;
|
|
71
|
+
if (!fields.has(name)) {
|
|
72
|
+
if (typeof defaultValue === "string")
|
|
73
|
+
return defaultValue;
|
|
74
|
+
throw Error(`NRRD header missed the mandatory field "${name}"!`);
|
|
75
|
+
}
|
|
76
|
+
return (_a = fields.get(name)) !== null && _a !== void 0 ? _a : "";
|
|
77
|
+
}
|
|
78
|
+
function parseSizes(fields) {
|
|
79
|
+
const text = readField(fields, "sizes");
|
|
80
|
+
const elements = text.split(/[ \t]+/);
|
|
81
|
+
const values = elements.map((t) => parseInt(t, 10));
|
|
82
|
+
if (values.length !== 4)
|
|
83
|
+
throw Error(`Field "sizes" must be an array with 4 elements, not with ${elements.length}!`);
|
|
84
|
+
const [quaternion, x, y, z] = values;
|
|
85
|
+
return { quaternion, x, y, z };
|
|
86
|
+
}
|
|
87
|
+
function parseSpaceOrigin(fields) {
|
|
88
|
+
return parseVector3(readField(fields, "space origin"));
|
|
89
|
+
}
|
|
90
|
+
function parseSpaceAxis(fields) {
|
|
91
|
+
const NUM = "([e0-9.-]+)";
|
|
92
|
+
const SEP = "[,\\s]+";
|
|
93
|
+
const VEC = `\\(\\s*${NUM}${SEP}${NUM}${SEP}${NUM}\\s*\\)`;
|
|
94
|
+
const RX_SPACE_DIRECTIONS = new RegExp(`^[^(]*${VEC}\\s*${VEC}\\s*${VEC}\\s*$`, "gi");
|
|
95
|
+
const field = readField(fields, "space directions");
|
|
96
|
+
const match = RX_SPACE_DIRECTIONS.exec(field);
|
|
97
|
+
if (!match) {
|
|
98
|
+
console.error(`Unable to parse field "space directions"!`, field);
|
|
99
|
+
console.error("RegExp:", RX_SPACE_DIRECTIONS.source);
|
|
100
|
+
throw Error(`Unable to parse field "space directions"!`);
|
|
101
|
+
}
|
|
102
|
+
const [_all, xx, xy, xz, yx, yy, yz, zx, zy, zz] = match;
|
|
103
|
+
return {
|
|
104
|
+
x: [parseFloat(xx), parseFloat(xy), parseFloat(xz)],
|
|
105
|
+
y: [parseFloat(yx), parseFloat(yy), parseFloat(yz)],
|
|
106
|
+
z: [parseFloat(zx), parseFloat(zy), parseFloat(zz)],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function parseVector3(text) {
|
|
110
|
+
text = text.trim();
|
|
111
|
+
if (!text.startsWith("(") || !text.endsWith(")")) {
|
|
112
|
+
throw Error(`Wrong Vector format: "${text}"!`);
|
|
113
|
+
}
|
|
114
|
+
const elements = text
|
|
115
|
+
.substring(1, text.length - 1)
|
|
116
|
+
.split(",")
|
|
117
|
+
.map(parseFloat);
|
|
118
|
+
if (elements.length !== 3)
|
|
119
|
+
throw Error(`Vectors must have 3 dimensons: "${text}"!`);
|
|
120
|
+
return elements;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25ycmQvaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7QUFVNUMsTUFBTSxDQUFDLE9BQU8sT0FBTyxZQUFZO0lBNEIvQixZQUFZLE9BQWU7UUFDekIsTUFBTSxLQUFLLEdBQUcsT0FBTzthQUNsQixJQUFJLEVBQUU7YUFDTixLQUFLLENBQUMsVUFBVSxDQUFDO2FBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQVksQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUN6QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUMs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nrrd/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAK9B,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAWpE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import Volume from "./volume.js";
|
|
3
|
+
import VolumeHeader from "./header.js";
|
|
4
|
+
import { decompress } from "fflate";
|
|
5
|
+
import { getHeaderLength } from "./get-header-length.js";
|
|
6
|
+
export function parseNRRD(buffer) {
|
|
7
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
8
|
+
const data = new Uint8Array(buffer);
|
|
9
|
+
const headerLength = getHeaderLength(data);
|
|
10
|
+
const headerData = data.subarray(0, headerLength);
|
|
11
|
+
const header = new VolumeHeader(new TextDecoder().decode(headerData));
|
|
12
|
+
console.log("🚀 [index] header = ", header);
|
|
13
|
+
const zippedBody = data.subarray(headerLength);
|
|
14
|
+
console.log(`Unzippin ${zippedBody.byteLength} bytes...`);
|
|
15
|
+
const body = yield gunzip(zippedBody);
|
|
16
|
+
console.log(`...into ${body.byteLength} bytes.`);
|
|
17
|
+
return new Volume(header, body.buffer);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function gunzip(content) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
return new Promise((resolve) => {
|
|
23
|
+
decompress(content, (err, data) => {
|
|
24
|
+
if (err) {
|
|
25
|
+
console.error(err);
|
|
26
|
+
throw Error(`Unable to gunzip NRRD data!\n${err.message}`);
|
|
27
|
+
}
|
|
28
|
+
resolve(data);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbnJyZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sWUFBWSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sUUFBUSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxNQUFNLFVBQWdCLFNBQVMsQ0FBQyxNQUFtQjs7UUFDakQsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxVQUFVLENBQUMsVUFBVSxXQUFXLENBQUMsQ0FBQztRQUMxRCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFVBQVUsU0FBUyxDQUFDLENBQUM7UUFDakQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FBQTtBQUVELFNBQWUsTUFBTSxDQUFDLE9BQW1COztRQUN2QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQXNCLEVBQUUsSUFBZ0IsRUFBRSxFQUFFO2dCQUMvRCxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDN0QsQ0FBQztnQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FBQSJ9
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import VolumeHeader from "./header";
|
|
2
|
+
export default class Volume {
|
|
3
|
+
readonly header: VolumeHeader;
|
|
4
|
+
attributesSizeInBytes: number;
|
|
5
|
+
qx: number;
|
|
6
|
+
qy: number;
|
|
7
|
+
qz: number;
|
|
8
|
+
qw: number;
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
z: number;
|
|
12
|
+
private readonly dataLength;
|
|
13
|
+
private readonly typeLength;
|
|
14
|
+
private readonly view;
|
|
15
|
+
private readonly read;
|
|
16
|
+
constructor(header: VolumeHeader, data: ArrayBufferLike);
|
|
17
|
+
walkVolume(callback: (x: number, y: number, z: number, qx: number, qy: number, qz: number, qw: number) => void): void;
|
|
18
|
+
countNonNull(): number;
|
|
19
|
+
private readonly readInt8;
|
|
20
|
+
private readonly readInt16LittleEndian;
|
|
21
|
+
private readonly readInt16BigEndian;
|
|
22
|
+
private readonly readInt32LittleEndian;
|
|
23
|
+
private readonly readInt32BigEndian;
|
|
24
|
+
private readonly readFloat32LittleEndian;
|
|
25
|
+
private readonly readFloat32BigEndian;
|
|
26
|
+
private readonly readFloat64LittleEndian;
|
|
27
|
+
private readonly readFloat64BigEndian;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=volume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../src/nrrd/volume.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,MAAM;aAmBP,MAAM,EAAE,YAAY;IAlB/B,qBAAqB,SAAK;IAC1B,EAAE,SAAK;IACP,EAAE,SAAK;IACP,EAAE,SAAK;IACP,EAAE,SAAK;IACP,CAAC,SAAK;IACN,CAAC,SAAK;IACN,CAAC,SAAK;IAEb,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;gBAM/B,MAAM,EAAE,YAAY,EACpC,IAAI,EAAE,eAAe;IA8CvB,UAAU,CACR,QAAQ,EAAE,CACR,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,IAAI;IAwCX,YAAY;IAyBZ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyD;IAElF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CACH;IAEnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACC;IAEpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CACH;IAEnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACC;IAEpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CACH;IAErC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CACC;IAEtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CACH;IAErC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CACC;CACvC"}
|