@openbraininstitute/morphoviewer 0.0.1 → 0.24.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +35 -0
  3. package/lib/dist/abstract-canvas.d.ts +37 -0
  4. package/lib/dist/abstract-canvas.d.ts.map +1 -0
  5. package/lib/dist/abstract-canvas.js +131 -0
  6. package/lib/dist/colors.d.ts +34 -0
  7. package/lib/dist/colors.d.ts.map +1 -0
  8. package/lib/dist/colors.js +125 -0
  9. package/lib/dist/components/button-reset-camera/button-reset-camera.d.ts +10 -0
  10. package/lib/dist/components/button-reset-camera/button-reset-camera.d.ts.map +1 -0
  11. package/lib/dist/components/button-reset-camera/button-reset-camera.js +10 -0
  12. package/lib/dist/components/button-reset-camera/button-reset-camera.module.css +10 -0
  13. package/lib/dist/components/button-reset-camera/index.d.ts +2 -0
  14. package/lib/dist/components/button-reset-camera/index.d.ts.map +1 -0
  15. package/lib/dist/components/button-reset-camera/index.js +2 -0
  16. package/lib/dist/components/icons/3d.d.ts +8 -0
  17. package/lib/dist/components/icons/3d.d.ts.map +1 -0
  18. package/lib/dist/components/icons/3d.js +5 -0
  19. package/lib/dist/components/icons/center.d.ts +8 -0
  20. package/lib/dist/components/icons/center.d.ts.map +1 -0
  21. package/lib/dist/components/icons/center.js +5 -0
  22. package/lib/dist/components/icons/close.d.ts +8 -0
  23. package/lib/dist/components/icons/close.d.ts.map +1 -0
  24. package/lib/dist/components/icons/close.js +5 -0
  25. package/lib/dist/components/icons/copy.d.ts +2 -0
  26. package/lib/dist/components/icons/copy.d.ts.map +1 -0
  27. package/lib/dist/components/icons/copy.js +5 -0
  28. package/lib/dist/components/icons/dendrogram-circular.d.ts +2 -0
  29. package/lib/dist/components/icons/dendrogram-circular.d.ts.map +1 -0
  30. package/lib/dist/components/icons/dendrogram-circular.js +5 -0
  31. package/lib/dist/components/icons/dendrogram-straight.d.ts +2 -0
  32. package/lib/dist/components/icons/dendrogram-straight.d.ts.map +1 -0
  33. package/lib/dist/components/icons/dendrogram-straight.js +5 -0
  34. package/lib/dist/components/icons/fullscreen.d.ts +8 -0
  35. package/lib/dist/components/icons/fullscreen.d.ts.map +1 -0
  36. package/lib/dist/components/icons/fullscreen.js +5 -0
  37. package/lib/dist/components/icons/minimize.d.ts +8 -0
  38. package/lib/dist/components/icons/minimize.d.ts.map +1 -0
  39. package/lib/dist/components/icons/minimize.js +5 -0
  40. package/lib/dist/components/icons/pause.d.ts +8 -0
  41. package/lib/dist/components/icons/pause.d.ts.map +1 -0
  42. package/lib/dist/components/icons/pause.js +5 -0
  43. package/lib/dist/components/icons/play.d.ts +8 -0
  44. package/lib/dist/components/icons/play.d.ts.map +1 -0
  45. package/lib/dist/components/icons/play.js +5 -0
  46. package/lib/dist/components/icons/zoom-in.d.ts +8 -0
  47. package/lib/dist/components/icons/zoom-in.d.ts.map +1 -0
  48. package/lib/dist/components/icons/zoom-in.js +5 -0
  49. package/lib/dist/components/icons/zoom-out.d.ts +8 -0
  50. package/lib/dist/components/icons/zoom-out.d.ts.map +1 -0
  51. package/lib/dist/components/icons/zoom-out.js +5 -0
  52. package/lib/dist/components/morpho-viewer-octree/index.d.ts +4 -0
  53. package/lib/dist/components/morpho-viewer-octree/index.d.ts.map +1 -0
  54. package/lib/dist/components/morpho-viewer-octree/index.js +3 -0
  55. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.d.ts +3 -0
  56. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.d.ts.map +1 -0
  57. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.js +31 -0
  58. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.module.css +70 -0
  59. package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts +12 -0
  60. package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts.map +1 -0
  61. package/lib/dist/components/morpho-viewer-octree/painter/camera.js +23 -0
  62. package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts +23 -0
  63. package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts.map +1 -0
  64. package/lib/dist/components/morpho-viewer-octree/painter/manager.js +180 -0
  65. package/lib/dist/components/morpho-viewer-octree/tools.d.ts +2 -0
  66. package/lib/dist/components/morpho-viewer-octree/tools.d.ts.map +1 -0
  67. package/lib/dist/components/morpho-viewer-octree/tools.js +9 -0
  68. package/lib/dist/components/morpho-viewer-octree/types.d.ts +19 -0
  69. package/lib/dist/components/morpho-viewer-octree/types.d.ts.map +1 -0
  70. package/lib/dist/components/morpho-viewer-octree/types.js +2 -0
  71. package/lib/dist/components/morpho-viewer-simul/colors.d.ts +2 -0
  72. package/lib/dist/components/morpho-viewer-simul/colors.d.ts.map +1 -0
  73. package/lib/dist/components/morpho-viewer-simul/colors.js +24 -0
  74. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts +7 -0
  75. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts.map +1 -0
  76. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.js +12 -0
  77. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.module.css +25 -0
  78. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.d.ts +2 -0
  79. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.d.ts.map +1 -0
  80. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.js +2 -0
  81. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.d.ts +6 -0
  82. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.d.ts.map +1 -0
  83. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.js +50 -0
  84. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.module.css +115 -0
  85. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.d.ts +2 -0
  86. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.d.ts.map +1 -0
  87. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/hooks.js +12 -0
  88. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.d.ts +2 -0
  89. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.d.ts.map +1 -0
  90. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.js +2 -0
  91. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.d.ts +8 -0
  92. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.d.ts.map +1 -0
  93. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.js +57 -0
  94. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.module.css +23 -0
  95. package/lib/dist/components/morpho-viewer-simul/components/hint/index.d.ts +2 -0
  96. package/lib/dist/components/morpho-viewer-simul/components/hint/index.d.ts.map +1 -0
  97. package/lib/dist/components/morpho-viewer-simul/components/hint/index.js +2 -0
  98. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.d.ts +2 -0
  99. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.d.ts.map +1 -0
  100. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.js +2 -0
  101. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.d.ts +5 -0
  102. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.d.ts.map +1 -0
  103. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.js +34 -0
  104. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.module.css +5 -0
  105. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.d.ts +19 -0
  106. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.d.ts.map +1 -0
  107. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.js +209 -0
  108. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts +6 -0
  109. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts.map +1 -0
  110. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.js +21 -0
  111. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.module.css +20 -0
  112. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.d.ts +2 -0
  113. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.d.ts.map +1 -0
  114. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.js +2 -0
  115. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.d.ts +2 -0
  116. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.d.ts.map +1 -0
  117. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.js +2 -0
  118. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.d.ts +2 -0
  119. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.d.ts.map +1 -0
  120. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.js +2 -0
  121. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts +6 -0
  122. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts.map +1 -0
  123. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.js +12 -0
  124. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.module.css +21 -0
  125. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.d.ts +2 -0
  126. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.d.ts.map +1 -0
  127. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.js +2 -0
  128. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts +8 -0
  129. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts.map +1 -0
  130. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.js +19 -0
  131. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.module.css +52 -0
  132. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.d.ts +2 -0
  133. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.d.ts.map +1 -0
  134. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.js +2 -0
  135. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.d.ts +6 -0
  136. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.d.ts.map +1 -0
  137. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.js +20 -0
  138. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.module.css +69 -0
  139. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.d.ts +6 -0
  140. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.d.ts.map +1 -0
  141. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.js +13 -0
  142. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.d.ts +2 -0
  143. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.d.ts.map +1 -0
  144. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.js +2 -0
  145. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts +7 -0
  146. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts.map +1 -0
  147. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.js +13 -0
  148. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.module.css +60 -0
  149. package/lib/dist/components/morpho-viewer-simul/contants.d.ts +9 -0
  150. package/lib/dist/components/morpho-viewer-simul/contants.d.ts.map +1 -0
  151. package/lib/dist/components/morpho-viewer-simul/contants.js +9 -0
  152. package/lib/dist/components/morpho-viewer-simul/hooks.d.ts +9 -0
  153. package/lib/dist/components/morpho-viewer-simul/hooks.d.ts.map +1 -0
  154. package/lib/dist/components/morpho-viewer-simul/hooks.js +34 -0
  155. package/lib/dist/components/morpho-viewer-simul/index.d.ts +3 -0
  156. package/lib/dist/components/morpho-viewer-simul/index.d.ts.map +1 -0
  157. package/lib/dist/components/morpho-viewer-simul/index.js +3 -0
  158. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.d.ts +3 -0
  159. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.d.ts.map +1 -0
  160. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.js +42 -0
  161. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.module.css +94 -0
  162. package/lib/dist/components/morpho-viewer-simul/painter/camera.d.ts +18 -0
  163. package/lib/dist/components/morpho-viewer-simul/painter/camera.d.ts.map +1 -0
  164. package/lib/dist/components/morpho-viewer-simul/painter/camera.js +17 -0
  165. package/lib/dist/components/morpho-viewer-simul/painter/index.d.ts +2 -0
  166. package/lib/dist/components/morpho-viewer-simul/painter/index.d.ts.map +1 -0
  167. package/lib/dist/components/morpho-viewer-simul/painter/index.js +2 -0
  168. package/lib/dist/components/morpho-viewer-simul/painter/initializer.d.ts +14 -0
  169. package/lib/dist/components/morpho-viewer-simul/painter/initializer.d.ts.map +1 -0
  170. package/lib/dist/components/morpho-viewer-simul/painter/initializer.js +35 -0
  171. package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts +99 -0
  172. package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts.map +1 -0
  173. package/lib/dist/components/morpho-viewer-simul/painter/manager.js +566 -0
  174. package/lib/dist/components/morpho-viewer-simul/painter/math.d.ts +4 -0
  175. package/lib/dist/components/morpho-viewer-simul/painter/math.d.ts.map +1 -0
  176. package/lib/dist/components/morpho-viewer-simul/painter/math.js +33 -0
  177. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts +12 -0
  178. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts.map +1 -0
  179. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.js +40 -0
  180. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.d.ts +2 -0
  181. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.d.ts.map +1 -0
  182. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.js +2 -0
  183. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.d.ts +5 -0
  184. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.d.ts.map +1 -0
  185. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/material-index.js +14 -0
  186. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.d.ts +23 -0
  187. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -0
  188. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.js +84 -0
  189. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.d.ts +2 -0
  190. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.d.ts.map +1 -0
  191. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.js +12 -0
  192. package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.d.ts +6 -0
  193. package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.d.ts.map +1 -0
  194. package/lib/dist/components/morpho-viewer-simul/painter/painters/highlight.js +29 -0
  195. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.d.ts +2 -0
  196. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.d.ts.map +1 -0
  197. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.js +2 -0
  198. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.d.ts +12 -0
  199. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.d.ts.map +1 -0
  200. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.js +34 -0
  201. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.d.ts +15 -0
  202. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.d.ts.map +1 -0
  203. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.js +85 -0
  204. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.d.ts +2 -0
  205. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.d.ts.map +1 -0
  206. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.js +2 -0
  207. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts +3 -0
  208. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts.map +1 -0
  209. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.js +20 -0
  210. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.d.ts +2 -0
  211. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.d.ts.map +1 -0
  212. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.js +2 -0
  213. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.d.ts +20 -0
  214. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.d.ts.map +1 -0
  215. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.js +114 -0
  216. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts +24 -0
  217. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts.map +1 -0
  218. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.js +127 -0
  219. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts +28 -0
  220. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts.map +1 -0
  221. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.js +136 -0
  222. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.d.ts +2 -0
  223. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.d.ts.map +1 -0
  224. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.js +2 -0
  225. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.d.ts +26 -0
  226. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.d.ts.map +1 -0
  227. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.js +116 -0
  228. package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts +12 -0
  229. package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts.map +1 -0
  230. package/lib/dist/components/morpho-viewer-simul/painter/painters/synapses.js +87 -0
  231. package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts +5 -0
  232. package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts.map +1 -0
  233. package/lib/dist/components/morpho-viewer-simul/painter/segments.js +58 -0
  234. package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts +9 -0
  235. package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts.map +1 -0
  236. package/lib/dist/components/morpho-viewer-simul/painter/soma.js +44 -0
  237. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts +44 -0
  238. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts.map +1 -0
  239. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.js +164 -0
  240. package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts +59 -0
  241. package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts.map +1 -0
  242. package/lib/dist/components/morpho-viewer-simul/painter/structure.js +175 -0
  243. package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts +41 -0
  244. package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts.map +1 -0
  245. package/lib/dist/components/morpho-viewer-simul/painter/transition.js +152 -0
  246. package/lib/dist/components/morpho-viewer-simul/painter/tree.d.ts +7 -0
  247. package/lib/dist/components/morpho-viewer-simul/painter/tree.d.ts.map +1 -0
  248. package/lib/dist/components/morpho-viewer-simul/painter/tree.js +96 -0
  249. package/lib/dist/components/morpho-viewer-simul/types/private.d.ts +33 -0
  250. package/lib/dist/components/morpho-viewer-simul/types/private.d.ts.map +1 -0
  251. package/lib/dist/components/morpho-viewer-simul/types/private.js +2 -0
  252. package/lib/dist/components/morpho-viewer-simul/types/public.d.ts +91 -0
  253. package/lib/dist/components/morpho-viewer-simul/types/public.d.ts.map +1 -0
  254. package/lib/dist/components/morpho-viewer-simul/types/public.js +13 -0
  255. package/lib/dist/components/morpho-viewer-simul/utils.d.ts +4 -0
  256. package/lib/dist/components/morpho-viewer-simul/utils.d.ts.map +1 -0
  257. package/lib/dist/components/morpho-viewer-simul/utils.js +25 -0
  258. package/lib/dist/components/morpho-viewer-small-circuit/index.d.ts +3 -0
  259. package/lib/dist/components/morpho-viewer-small-circuit/index.d.ts.map +1 -0
  260. package/lib/dist/components/morpho-viewer-small-circuit/index.js +3 -0
  261. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts +3 -0
  262. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map +1 -0
  263. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +32 -0
  264. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +63 -0
  265. package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +13 -0
  266. package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -0
  267. package/lib/dist/components/morpho-viewer-small-circuit/painter/camera.js +39 -0
  268. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.d.ts +2 -0
  269. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.d.ts.map +1 -0
  270. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.js +2 -0
  271. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +49 -0
  272. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -0
  273. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.js +347 -0
  274. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.d.ts +2 -0
  275. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.d.ts.map +1 -0
  276. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.js +2 -0
  277. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +22 -0
  278. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -0
  279. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +61 -0
  280. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts +4 -0
  281. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts.map +1 -0
  282. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js +42 -0
  283. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +2 -0
  284. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts.map +1 -0
  285. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +2 -0
  286. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +19 -0
  287. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -0
  288. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +105 -0
  289. package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +23 -0
  290. package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -0
  291. package/lib/dist/components/morpho-viewer-small-circuit/types.js +2 -0
  292. package/lib/dist/components/tooltip/index.d.ts +2 -0
  293. package/lib/dist/components/tooltip/index.d.ts.map +1 -0
  294. package/lib/dist/components/tooltip/index.js +2 -0
  295. package/lib/dist/components/tooltip/tooltip.d.ts +14 -0
  296. package/lib/dist/components/tooltip/tooltip.d.ts.map +1 -0
  297. package/lib/dist/components/tooltip/tooltip.js +10 -0
  298. package/lib/dist/components/tooltip/tooltip.module.css +74 -0
  299. package/lib/dist/gizmo/gizmo-canvas.d.ts +17 -0
  300. package/lib/dist/gizmo/gizmo-canvas.d.ts.map +1 -0
  301. package/lib/dist/gizmo/gizmo-canvas.js +98 -0
  302. package/lib/dist/gizmo/index.d.ts +2 -0
  303. package/lib/dist/gizmo/index.d.ts.map +1 -0
  304. package/lib/dist/gizmo/index.js +2 -0
  305. package/lib/dist/gizmo/painter/shader.frag.d.ts +2 -0
  306. package/lib/dist/gizmo/painter/shader.frag.d.ts.map +1 -0
  307. package/lib/dist/gizmo/painter/shader.frag.js +19 -0
  308. package/lib/dist/gizmo/painter/shader.vert.d.ts +2 -0
  309. package/lib/dist/gizmo/painter/shader.vert.d.ts.map +1 -0
  310. package/lib/dist/gizmo/painter/shader.vert.js +26 -0
  311. package/lib/dist/gizmo/painter/tips.d.ts +13 -0
  312. package/lib/dist/gizmo/painter/tips.d.ts.map +1 -0
  313. package/lib/dist/gizmo/painter/tips.js +85 -0
  314. package/lib/dist/index.d.ts +16 -0
  315. package/lib/dist/index.d.ts.map +1 -0
  316. package/lib/dist/index.js +14 -0
  317. package/lib/dist/morphology/morphology-canvas.d.ts +64 -0
  318. package/lib/dist/morphology/morphology-canvas.d.ts.map +1 -0
  319. package/lib/dist/morphology/morphology-canvas.js +275 -0
  320. package/lib/dist/morphology/painter/factory.d.ts +7 -0
  321. package/lib/dist/morphology/painter/factory.d.ts.map +1 -0
  322. package/lib/dist/morphology/painter/factory.js +22 -0
  323. package/lib/dist/morphology/painter/index.d.ts +2 -0
  324. package/lib/dist/morphology/painter/index.d.ts.map +1 -0
  325. package/lib/dist/morphology/painter/index.js +2 -0
  326. package/lib/dist/morphology/painter/nodes.d.ts +21 -0
  327. package/lib/dist/morphology/painter/nodes.d.ts.map +1 -0
  328. package/lib/dist/morphology/painter/nodes.js +134 -0
  329. package/lib/dist/morphology/painter/painter.d.ts +31 -0
  330. package/lib/dist/morphology/painter/painter.d.ts.map +1 -0
  331. package/lib/dist/morphology/painter/painter.js +104 -0
  332. package/lib/dist/morphology/painter/segments.d.ts +23 -0
  333. package/lib/dist/morphology/painter/segments.d.ts.map +1 -0
  334. package/lib/dist/morphology/painter/segments.js +96 -0
  335. package/lib/dist/morphology/painter/textures.d.ts +10 -0
  336. package/lib/dist/morphology/painter/textures.d.ts.map +1 -0
  337. package/lib/dist/morphology/painter/textures.js +53 -0
  338. package/lib/dist/nrrd/get-header-length.d.ts +2 -0
  339. package/lib/dist/nrrd/get-header-length.d.ts.map +1 -0
  340. package/lib/dist/nrrd/get-header-length.js +48 -0
  341. package/lib/dist/nrrd/header.d.ts +28 -0
  342. package/lib/dist/nrrd/header.d.ts.map +1 -0
  343. package/lib/dist/nrrd/header.js +122 -0
  344. package/lib/dist/nrrd/index.d.ts +3 -0
  345. package/lib/dist/nrrd/index.d.ts.map +1 -0
  346. package/lib/dist/nrrd/index.js +33 -0
  347. package/lib/dist/nrrd/volume.d.ts +29 -0
  348. package/lib/dist/nrrd/volume.d.ts.map +1 -0
  349. package/lib/dist/nrrd/volume.js +129 -0
  350. package/lib/dist/package.json +83 -0
  351. package/lib/dist/parser/for-each-line.d.ts +2 -0
  352. package/lib/dist/parser/for-each-line.d.ts.map +1 -0
  353. package/lib/dist/parser/for-each-line.js +14 -0
  354. package/lib/dist/parser/swc.d.ts +14 -0
  355. package/lib/dist/parser/swc.d.ts.map +1 -0
  356. package/lib/dist/parser/swc.js +49 -0
  357. package/lib/dist/scalebar.d.ts +11 -0
  358. package/lib/dist/scalebar.d.ts.map +1 -0
  359. package/lib/dist/scalebar.js +25 -0
  360. package/lib/dist/tools/cache-lru.d.ts +18 -0
  361. package/lib/dist/tools/cache-lru.d.ts.map +1 -0
  362. package/lib/dist/tools/cache-lru.js +53 -0
  363. package/lib/dist/tools/morphology-to-tree.d.ts +4 -0
  364. package/lib/dist/tools/morphology-to-tree.d.ts.map +1 -0
  365. package/lib/dist/tools/morphology-to-tree.js +89 -0
  366. package/lib/dist/types.d.ts +9 -0
  367. package/lib/dist/types.d.ts.map +1 -0
  368. package/lib/dist/types.js +9 -0
  369. package/lib/dist/utils.d.ts +16 -0
  370. package/lib/dist/utils.d.ts.map +1 -0
  371. package/lib/dist/utils.js +56 -0
  372. package/package.json +40 -15
  373. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25ycmQvdm9sdW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sTUFBTTtJQWtCekIsWUFDa0IsTUFBb0IsRUFDcEMsSUFBcUI7UUFETCxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBbEIvQiwwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUNQLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDUCxPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUNQLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sTUFBQyxHQUFHLENBQUMsQ0FBQztRQW9JSSxhQUFRLEdBQUcsQ0FBQyxNQUFjLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpFLDBCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxCLHVCQUFrQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5CLDBCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxCLHVCQUFrQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5CLDRCQUF1QixHQUFH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
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@bbp/morphoviewer",
3
+ "version": "0.24.16",
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": ["./dist"],
10
+ "scripts": {
11
+ "clean": "rm -rf ./dist .tsbuildinfo",
12
+ "doc": "typedoc --watch",
13
+ "prebuild": "npm run clean",
14
+ "build": "build-typescript-library .",
15
+ "prestart": "npm run clean",
16
+ "start": "build-typescript-library --watch .",
17
+ "lint": "oxlint src/",
18
+ "test": "jest",
19
+ "test:watch": "jest --watch"
20
+ },
21
+ "keywords": ["SWC", "morphology", "OBI", "webgl2", "BBP"],
22
+ "author": "Fabien PETITJEAN <fabien.petitjean@epfl.ch>",
23
+ "license": "ISC",
24
+ "devDependencies": {
25
+ "@biomejs/biome": "^2.4.4",
26
+ "@types/jest": "^30.0.0",
27
+ "@types/react": "^19.2.14",
28
+ "@typescript-eslint/eslint-plugin": "^8.55.0",
29
+ "@typescript-eslint/parser": "^8.55.0",
30
+ "babel-jest": "^30.2.0",
31
+ "build-typescript-library": "^0.10.0",
32
+ "jest": "^30.2.0",
33
+ "jest-environment-jsdom": "^30.2.0",
34
+ "oxfmt": "^0.46.0",
35
+ "oxlint": "^1.61.0",
36
+ "ts-jest": "^29.4.6",
37
+ "ts-loader": "^9.5.4",
38
+ "ts-patch": "^3.2.1",
39
+ "typedoc": "^0.28.16",
40
+ "typescript": "^5.9.3",
41
+ "typescript-eslint": "^8.55.0",
42
+ "typescript-transform-paths": "^3.5.1"
43
+ },
44
+ "jest": {
45
+ "testEnvironment": "jsdom",
46
+ "moduleFileExtensions": ["tsx", "ts", "js", "jsx", "wasm"],
47
+ "transform": {
48
+ "^.+\\.tsx?$": "ts-jest"
49
+ },
50
+ "testMatch": ["**/*.(test|spec).(ts|tsx)"],
51
+ "globals": {
52
+ "ENV_VARIABLES": {}
53
+ },
54
+ "moduleNameMapper": {
55
+ "^@tgd/(.*)$": "<rootDir>/src/tgd/$1",
56
+ "^@tgd": "<rootDir>/src/tgd",
57
+ "^@/(.*)$": "<rootDir>/src/$1",
58
+ "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/mocks.js",
59
+ "\\.(css|less)$": "<rootDir>/__mocks__/mocks.js",
60
+ "\\.(py|sh|txt|bin)$": "<rootDir>/__mocks__/mocks.js"
61
+ },
62
+ "verbose": true,
63
+ "collectCoverage": true,
64
+ "coverageReporters": ["lcov"],
65
+ "coverageDirectory": "test-coverage",
66
+ "coverageThreshold": {
67
+ "global": {
68
+ "branches": 0,
69
+ "functions": 0,
70
+ "lines": 0,
71
+ "statements": 0
72
+ }
73
+ }
74
+ },
75
+ "peerDependencies": {
76
+ "react": "^19.2.4"
77
+ },
78
+ "dependencies": {
79
+ "@tolokoban/tgd": "^2.0.124",
80
+ "fflate": "^0.8.2",
81
+ "tslib": "^2.8.1"
82
+ }
83
+ }
@@ -0,0 +1,2 @@
1
+ export declare const forEachLine: (content: string) => Generator<string, string, unknown>;
2
+ //# sourceMappingURL=for-each-line.d.ts.map
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvbG9neS10by10cmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL21vcnBob2xvZ3ktdG8tdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBR0wsd0JBQXdCLEdBQ3pCLE1BQU0sK0NBQStDLENBQUM7QUFPdkQsTUFBTSxVQUFVLHFDQUFxQyxDQUNuRCxVQUFzQixFQUN0QixNQUFjO0lBRWQsTUFBTSxJQUFJLEdBQXFCO1FBQzdCLE1BQU07UUFDTixLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNFLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQy9CLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLElBQUksS0FBSyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyRCxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELEtBQUssSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDdkUsTUFBTSxLQUFLLEdBQWlCO2dCQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQzdCLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBaUI7Z0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDM0IsQ0FBQztZQUNGLE1BQU0sT0FBTyxHQUFZO2dCQUN2QixTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxFQUFFO29CQUNKLElBQUk7b0JBQ0osQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLFdBQVc7b0JBQ3RCLFNBQVMsRUFBRSxHQUFHLFlBQVksRUFBRTtvQkFDNUIsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDbkIsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7YUFDRixDQUFDO1lBQ0YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFeEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsV0FBbUI7SUFDdEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTTtZQUNULE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLEtBQUssTUFBTTtZQUNULE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLEtBQUssTUFBTTtZQUNULE9BQU8sd0JBQXdCLENBQUMsYUFBYSxDQUFDO1FBQ2hELEtBQUssTUFBTTtZQUNULE9BQU8sd0JBQXdCLENBQUMsY0FBYyxDQUFDO1FBQ2pELEtBQUssTUFBTTtZQUNULE9BQU8sd0JBQXdCLENBQUMsTUFBTSxDQUFDO1FBQ3pDO1lBQ0UsT0FBTyx3QkFBd0IsQ0FBQyxPQUFPLENBQUM7SUFDNUMsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFlO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNuRixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxXQUFtQjtJQUNoRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7QUFDNUQsQ0FBQyJ9
@@ -0,0 +1,9 @@
1
+ export type ColoringType = "section" | "distance";
2
+ export declare enum CellNodeType {
3
+ Soma = 1,
4
+ Axon = 2,
5
+ BasalDendrite = 3,
6
+ ApicalDendrite = 4,
7
+ Unknown = 666
8
+ }
9
+ //# sourceMappingURL=types.d.ts.map
@@ -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"}