@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.
Files changed (373) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +37 -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 +54 -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 +378 -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 +7 -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 +54 -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 +20 -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 +127 -0
  289. package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +24 -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 +96 -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 +43 -15
  373. package/package.json~ +0 -16
@@ -0,0 +1,127 @@
1
+ import { __awaiter } from "tslib";
2
+ import { TgdBoundingBox, TgdColor, TgdGeometrySphereIco, TgdLight, TgdMaterialDiffuse, TgdMaterialFlat, TgdMaterialSolid, TgdPainterGroup, TgdPainterMesh, TgdQuat, TgdVec4, } from "@tolokoban/tgd";
3
+ import { int16ToVec3 } from "./../../../../utils.js";
4
+ import { createCellFromTree } from "./factory/tree.js";
5
+ export class PainterCell extends TgdPainterGroup {
6
+ constructor(context, options) {
7
+ var _a;
8
+ super({
9
+ name: `Cell/${options.cell.id}`,
10
+ });
11
+ this.context = context;
12
+ this.options = options;
13
+ this._black = false;
14
+ const { cell } = options;
15
+ const geometry = new TgdGeometrySphereIco({
16
+ center: cell.center,
17
+ radius: cell.somaRadius,
18
+ subdivisions: 2,
19
+ });
20
+ const color = ensureCellHasColor(cell);
21
+ const materialType = (_a = options.matrerial) !== null && _a !== void 0 ? _a : "full";
22
+ switch (materialType) {
23
+ case "full":
24
+ this.material = new TgdMaterialDiffuse({
25
+ color,
26
+ lockLightsToCamera: true,
27
+ ambient: new TgdLight({
28
+ color: [0.8, 0.8, 0.8, 0],
29
+ }),
30
+ });
31
+ break;
32
+ case "flat":
33
+ this.material = new TgdMaterialSolid({ color });
34
+ break;
35
+ default:
36
+ this.material = new TgdMaterialFlat({
37
+ color: [...int16ToVec3(materialType), 1],
38
+ });
39
+ break;
40
+ }
41
+ const mesh = new TgdPainterMesh(context, {
42
+ geometry,
43
+ material: this.material,
44
+ });
45
+ this.add(mesh);
46
+ this.loadCell();
47
+ }
48
+ get black() {
49
+ return this._black;
50
+ }
51
+ set black(value) {
52
+ var _a;
53
+ if (this._black === value)
54
+ return;
55
+ this._black = value;
56
+ const { material } = this;
57
+ if (material instanceof TgdMaterialSolid) {
58
+ material.color = value
59
+ ? new TgdVec4(0, 0, 0, 1)
60
+ : TgdColor.fromString((_a = this.options.cell.color) !== null && _a !== void 0 ? _a : "#f90").toVec4();
61
+ }
62
+ }
63
+ loadCell() {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const { context, material } = this;
66
+ const { cell, loadCell, onCellLoaded } = this.options;
67
+ try {
68
+ const [path] = cell.id.split("?");
69
+ const data = yield loadCell(path);
70
+ if (isCellAsTree(data)) {
71
+ const { node, bbox } = createCellFromTree(context, material, data.data, typeof this.options.matrerial === "number");
72
+ const [x, y, z] = cell.center;
73
+ const quat = new TgdQuat(cell.orientation);
74
+ node.transfo.setPosition(x, y, z);
75
+ node.transfo.orientation = quat;
76
+ onCellLoaded === null || onCellLoaded === void 0 ? void 0 : onCellLoaded(applyTransfoToBBox(node.transfo, bbox));
77
+ this.removeAll();
78
+ this.add(node);
79
+ context.paint();
80
+ }
81
+ }
82
+ catch (error) {
83
+ console.error(`Error loading cell "${cell.id}":`, error);
84
+ onCellLoaded === null || onCellLoaded === void 0 ? void 0 : onCellLoaded(null);
85
+ }
86
+ });
87
+ }
88
+ }
89
+ function isCellAsTree(data) {
90
+ if (!data || data.type !== "tree")
91
+ return false;
92
+ return true;
93
+ }
94
+ function ensureCellHasColor(cell) {
95
+ const color = new TgdColor(Math.random(), Math.random(), Math.random(), 1);
96
+ color.rgb2hsl();
97
+ color.L = 0.5;
98
+ color.hsl2rgb();
99
+ if (cell.color) {
100
+ color.parse(cell.color);
101
+ }
102
+ else {
103
+ cell.color = color.toString();
104
+ }
105
+ return [color.R, color.G, color.B, color.A];
106
+ }
107
+ function applyTransfoToBBox(transfo, bbox) {
108
+ const { matrix } = transfo;
109
+ const [x0, y0, z0] = bbox.min;
110
+ const [x1, y1, z1] = bbox.max;
111
+ const points = [
112
+ new TgdVec4(x0, y0, z0, 1),
113
+ new TgdVec4(x0, y0, z1, 1),
114
+ new TgdVec4(x0, y1, z0, 1),
115
+ new TgdVec4(x0, y1, z1, 1),
116
+ new TgdVec4(x1, y0, z0, 1),
117
+ new TgdVec4(x1, y0, z1, 1),
118
+ new TgdVec4(x1, y1, z0, 1),
119
+ new TgdVec4(x1, y1, z1, 1),
120
+ ].map((vec) => vec.applyMatrix(matrix));
121
+ const transformedBBox = new TgdBoundingBox();
122
+ for (const [x, y, z] of points) {
123
+ transformedBBox.addPoint(x, y, z);
124
+ }
125
+ return transformedBBox;
126
+ }
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvcGFpbnRlci1jZWxsL3BhaW50ZXItY2VsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGNBQWMsRUFDZCxRQUFRLEVBRVIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFFUixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsY0FBYyxFQUNkLE9BQU8sRUFFUCxPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBa0JwRCxNQUFNLE9BQU8sV0FBWSxTQUFRLGVBQWU7SUFJOUMsWUFDbUIsT0FBbUIsRUFDbkIsT0FBMkI7O1FBRTVDLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxRQUFRLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1NBQ2hDLENBQUMsQ0FBQztRQUxjLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFKdEMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVNyQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQW9CLENBQUM7WUFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxNQUFBLE9B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
@@ -0,0 +1,24 @@
1
+ import type { MorphoViewerTree } from "../morpho-viewer-simul";
2
+ export interface MorphoViewerSmallCircuitCell {
3
+ id: string;
4
+ center: [x: number, y: number, z: number];
5
+ orientation: [x: number, y: number, z: number, w: number];
6
+ somaRadius: number;
7
+ color?: string;
8
+ }
9
+ export type MorphoViewerSmallCircuitCellData = {
10
+ type: "tree";
11
+ data: MorphoViewerTree;
12
+ };
13
+ export interface MorphoViewerSmallCircuitProps {
14
+ className?: string;
15
+ backgroundColor?: string;
16
+ circuit: MorphoViewerSmallCircuitCell[];
17
+ highlightedCellIds?: string[];
18
+ onCellHover?(cell: MorphoViewerSmallCircuitCell | undefined): void;
19
+ onCellClick?(cell: MorphoViewerSmallCircuitCell | undefined): void;
20
+ onClose?(): void;
21
+ loadCell(id: string): Promise<MorphoViewerSmallCircuitCellData | null>;
22
+ onLoadProgress?(progress: number): void;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAC;IACnE,OAAO,CAAC,IAAI,IAAI,CAAC;IAKjB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAOvE,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNtYWxsLWNpcmN1aXQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,2 @@
1
+ export { default } from "./tooltip";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from "./tooltip.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90b29sdGlwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUMifQ==
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ export interface TooltipProps {
3
+ className?: string;
4
+ classNameTooltip?: string;
5
+ backColor?: string;
6
+ foreColor?: string;
7
+ arrow?: "top" | "topLeft" | "topRight";
8
+ arrowWidth?: number;
9
+ arrowHeight?: number;
10
+ tooltip: React.ReactNode;
11
+ children: React.ReactNode;
12
+ }
13
+ export default function Tooltip({ className, classNameTooltip, tooltip, arrow, arrowWidth, arrowHeight, backColor, foreColor, children, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,KAAa,EACb,UAAe,EACf,WAAgB,EAChB,SAAkB,EAClB,SAAkB,EAClB,QAAQ,GACT,EAAE,YAAY,2CA4Bd"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames } from "./../../utils.js";
3
+ import styles from "./tooltip.module.css";
4
+ export default function Tooltip({ className, classNameTooltip, tooltip, arrow = "top", arrowWidth = 16, arrowHeight = 16, backColor = "#fff", foreColor = "#000", children, }) {
5
+ return (_jsxs("div", { className: classNames(className, styles.container), style: {
6
+ "--custom-backColor": backColor,
7
+ "--custom-foreColor": foreColor,
8
+ }, children: [children, _jsxs("div", { className: classNames(styles.tooltip, styles[arrow], classNameTooltip), children: [tooltip, _jsxs("svg", { className: classNames(styles.arrow, styles[arrow]), viewBox: `0 0 ${arrowWidth} ${arrowHeight}`, children: [_jsx("path", { stroke: "none", d: `M0,${arrowHeight}L${arrowWidth / 2},0,${arrowWidth},${arrowHeight}Z` }), _jsx("path", { fill: "none", d: `M0,${arrowHeight}L${arrowWidth / 2},0,${arrowWidth},${arrowHeight}` })] })] })] }));
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckMsT0FBTyxNQUFNLE1BQU0sc0JBQXNCLENBQUM7QUFjMUMsTUFBTSxDQUFDLE9BQU8sVUFBVSxPQUFPLENBQUMsRUFDOUIsU0FBUyxFQUNULGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsS0FBSyxHQUFHLEtBQUssRUFDYixVQUFVLEdBQUcsRUFBRSxFQUNmLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLFNBQVMsR0FBRyxNQUFNLEVBQ2xCLFNBQVMsR0FBRyxNQUFNLEVBQ2xCLFFBQVEsR0FDSztJQUNiLE9BQU8sQ0FDTCxlQUNFLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDbEQsS0FBSyxFQUFFO1lBQ0wsb0JBQW9CLEVBQUUsU0FBUztZQUMvQixvQkFBb0IsRUFBRSxTQUFTO1NBQ2hDLGFBRUEsUUFBUSxFQUNULGVBQUssU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxhQUN4RSxPQUFPLEVBQ1IsZUFDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2xELE9BQU8sRUFBRSxPQUFPLFVBQVUsSUFBSSxXQUFXLEVBQUUsYUFFM0MsZUFDRSxNQUFNLEVBQUMsTUFBTSxFQUNiLENBQUMsRUFBRSxNQUFNLFdBQVcsSUFBSSxVQUFVLEdBQUcsQ0FBQyxNQUFNLFVBQVUsSUFBSSxXQUFXLEdBQUcsR0FDeEUsRUFDRixlQUNFLElBQUksRUFBQyxNQUFNLEVBQ1gsQ0FBQyxFQUFFLE1BQU0sV0FBVyxJQUFJLFVBQVUsR0FBRyxDQUFDLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxHQUN2RSxJQUNFLElBQ0YsSUFDRixDQUNQLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,74 @@
1
+ .container {
2
+ position: relative;
3
+ --custom-backColor: #fff;
4
+ --custom-foreColor: #000;
5
+ --arrowWidth: 16px;
6
+ --arrowHeight: 16px;
7
+ --borderColor: var(--custom-foreColor);
8
+ --borderColor: color-mix(in srgb, var(--custom-foreColor) 50%, transparent 50%);
9
+ }
10
+
11
+ .tooltip {
12
+ border-radius: 0.25em;
13
+ padding: 0.5em 1em;
14
+ color: var(--custom-foreColor, #000);
15
+ background-color: var(--custom-backColor, #fff);
16
+ position: absolute;
17
+ /* width: fit-content; */
18
+ z-index: 999999;
19
+ box-shadow: 0 0.25em 0.5em #0007;
20
+ pointer-events: none;
21
+ border: 1px solid var(--borderColor);
22
+ text-align: center;
23
+ min-width: 160px;
24
+ transition: opacity 0.2s;
25
+ opacity: 0;
26
+
27
+ &.top {
28
+ left: 50%;
29
+ bottom: 0;
30
+ transform: translate(-50%, calc(100% + var(--arrowHeight)));
31
+ }
32
+
33
+ &.topLeft {
34
+ left: 50%;
35
+ bottom: 0;
36
+ transform: translate(calc(-1 * var(--arrowWidth)), calc(100% + var(--arrowHeight)));
37
+ }
38
+
39
+ &.topRight {
40
+ left: 50%;
41
+ bottom: 0;
42
+ transform: translate(calc(-100% + var(--arrowWidth)), calc(100% + var(--arrowHeight)));
43
+ }
44
+
45
+ .arrow {
46
+ width: var(--arrowWidth);
47
+ height: var(--arrowHeight);
48
+ fill: var(--custom-backColor);
49
+ stroke: var(--borderColor);
50
+ position: absolute;
51
+
52
+ &.top {
53
+ top: 0;
54
+ left: 50%;
55
+ transform: translate(-50%, calc(-100% + 1px));
56
+ }
57
+
58
+ &.topLeft {
59
+ top: 0;
60
+ left: var(--arrowWidth);
61
+ transform: translate(-50%, calc(-100% + 1px));
62
+ }
63
+
64
+ &.topRight {
65
+ top: 0;
66
+ right: var(--arrowWidth);
67
+ transform: translate(50%, calc(-100% + 1px));
68
+ }
69
+ }
70
+ }
71
+
72
+ .container:hover .tooltip {
73
+ opacity: 1;
74
+ }
@@ -0,0 +1,17 @@
1
+ import { TgdCamera, TgdEvent, TgdQuat } from "@tolokoban/tgd";
2
+ export declare class GizmoCanvas {
3
+ eventTipClick: TgdEvent<{
4
+ from: Readonly<TgdQuat>;
5
+ to: Readonly<TgdQuat>;
6
+ }>;
7
+ private _canvas;
8
+ private context;
9
+ private _camera;
10
+ private _orbiter;
11
+ private _tipsPainter;
12
+ attachCamera(camera: TgdCamera): void;
13
+ get canvas(): HTMLCanvasElement | null;
14
+ set canvas(canvas: HTMLCanvasElement | null);
15
+ private readonly handleTap;
16
+ }
17
+ //# sourceMappingURL=gizmo-canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gizmo-canvas.d.ts","sourceRoot":"","sources":["../../src/gizmo/gizmo-canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,QAAQ,EAIR,OAAO,EAGR,MAAM,gBAAgB,CAAC;AAGxB,qBAAa,WAAW;IAIf,aAAa;cACZ,QAAQ,CAAC,OAAO,CAAC;YACnB,QAAQ,CAAC,OAAO,CAAC;OAClB;IAEL,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,YAAY,CAA4B;IAEhD,YAAY,CAAC,MAAM,EAAE,SAAS;IAQ9B,IAAI,MAAM,IAGS,iBAAiB,GAAG,IAAI,CAD1C;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAwC1C;IAED,OAAO,CAAC,QAAQ,CAAC,SAAS,CA4BxB;CACH"}
@@ -0,0 +1,98 @@
1
+ import { TgdContext, TgdControllerCameraOrbit, TgdEvent, TgdPainterClear, TgdPainterDepth, TgdQuat, TgdVec3, } from "@tolokoban/tgd";
2
+ import { TipsPainter } from "./painter/tips.js";
3
+ export class GizmoCanvas {
4
+ constructor() {
5
+ this.eventTipClick = new TgdEvent();
6
+ this._canvas = null;
7
+ this.context = null;
8
+ this._camera = null;
9
+ this._orbiter = null;
10
+ this._tipsPainter = null;
11
+ this.handleTap = (evt) => {
12
+ var _a;
13
+ const camera = (_a = this._tipsPainter) === null || _a === void 0 ? void 0 : _a.camera;
14
+ if (!camera)
15
+ return;
16
+ const { origin, direction } = camera.castRay(evt.x, evt.y);
17
+ const maxDist = 1;
18
+ let bestDist = maxDist;
19
+ let bestName = "+X+Y+Z";
20
+ for (const [tip, name] of TIPS) {
21
+ const dist = tip.distanceToLineSquared(origin, direction);
22
+ if (dist < bestDist) {
23
+ bestDist = dist;
24
+ bestName = name;
25
+ }
26
+ }
27
+ if (bestDist < maxDist) {
28
+ const quat = new TgdQuat();
29
+ quat.face(bestName);
30
+ if (quat.isEqual(camera.transfo.orientation)) {
31
+ quat.rotateAroundY(Math.PI);
32
+ }
33
+ this.eventTipClick.dispatch({
34
+ from: new TgdQuat(camera.transfo.orientation),
35
+ to: quat,
36
+ });
37
+ }
38
+ };
39
+ }
40
+ attachCamera(camera) {
41
+ this._camera = camera;
42
+ const { context } = this;
43
+ if (!context)
44
+ return;
45
+ context.camera = camera;
46
+ }
47
+ get canvas() {
48
+ return this._canvas;
49
+ }
50
+ set canvas(canvas) {
51
+ var _a;
52
+ if (canvas === this._canvas)
53
+ return;
54
+ this._canvas = canvas;
55
+ if (this.context) {
56
+ this.context.inputs.pointer.eventTap.removeListener(this.handleTap);
57
+ this.context.delete();
58
+ this.context = null;
59
+ const orbiter = this._orbiter;
60
+ if (orbiter) {
61
+ orbiter.detach();
62
+ }
63
+ }
64
+ (_a = this._tipsPainter) === null || _a === void 0 ? void 0 : _a.delete();
65
+ if (!canvas)
66
+ return;
67
+ const context = new TgdContext(canvas, {
68
+ alpha: true,
69
+ depth: true,
70
+ antialias: true,
71
+ name: "GizmoCanvas",
72
+ });
73
+ context.inputs.pointer.eventTap.addListener(this.handleTap);
74
+ this.context = context;
75
+ if (this._camera)
76
+ this.context.camera = this._camera;
77
+ this._orbiter = new TgdControllerCameraOrbit(context, {
78
+ speedPanning: 0,
79
+ speedZoom: 0,
80
+ });
81
+ const painter = new TipsPainter(context);
82
+ this._tipsPainter = painter;
83
+ context.add(new TgdPainterClear(context, {
84
+ color: [0, 0, 0, 0],
85
+ depth: 1,
86
+ }), new TgdPainterDepth(context, { enabled: true }), painter);
87
+ context.paint();
88
+ }
89
+ }
90
+ const TIPS = [
91
+ [new TgdVec3(1, 0, 0), "-Z+Y+X"],
92
+ [new TgdVec3(0, 1, 0), "+Z+X+Y"],
93
+ [new TgdVec3(0, 0, 1), "+X+Y+Z"],
94
+ [new TgdVec3(-1, 0, 0), "+Z+Y-X"],
95
+ [new TgdVec3(0, -1, 0), "+Z-X-Y"],
96
+ [new TgdVec3(0, 0, -1), "-X+Y-Z"],
97
+ ];
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpem1vL2dpem1vLWNhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixRQUFRLEVBRVIsZUFBZSxFQUNmLGVBQWUsRUFDZixPQUFPLEVBRVAsT0FBTyxHQUNSLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBSVMsa0JBQWEsR0FBRyxJQUFJLFFBQVEsRUFHL0IsQ0FBQztRQUVHLFlBQU8sR0FBNkIsSUFBSSxDQUFDO1FBQ3pDLFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBQ2xDLFlBQU8sR0FBcUIsSUFBSSxDQUFDO1FBQ2pDLGFBQVEsR0FBb0MsSUFBSSxDQUFDO1FBQ2pELGlCQUFZLEdBQXVCLElBQUksQ0FBQztRQXVEL0IsY0FBUyxHQUFHLENBQUMsR0FBNEIsRUFBRSxFQUFFOztZQUM1RCxNQUFNLE1BQU0sR0FBRyxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLE1BQU0sQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDbEIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBRXZCLElBQUksUUFBUSxHQUFnQixRQUFRLENBQUM7WUFDckMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMscUJBQXFCLENB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
@@ -0,0 +1,2 @@
1
+ export * from "./gizmo-canvas";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gizmo/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./gizmo-canvas.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l6bW8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export declare const FRAG = "#version 300 es\n\nprecision mediump float;\n\nuniform sampler2D uniTexture;\n\nin vec2 varUV;\nout vec4 FragColor;\n\n\nvoid main() {\n vec2 uv = varUV + gl_PointCoord * vec2(0.333333333, 0.5);\n FragColor = texture(uniTexture, uv);\n if (FragColor.w < 1.0) {\n discard;\n }\n}\n";
2
+ //# sourceMappingURL=shader.frag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader.frag.d.ts","sourceRoot":"","sources":["../../../src/gizmo/painter/shader.frag.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,gTAiBhB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export const FRAG = `#version 300 es
2
+
3
+ precision mediump float;
4
+
5
+ uniform sampler2D uniTexture;
6
+
7
+ in vec2 varUV;
8
+ out vec4 FragColor;
9
+
10
+
11
+ void main() {
12
+ vec2 uv = varUV + gl_PointCoord * vec2(0.333333333, 0.5);
13
+ FragColor = texture(uniTexture, uv);
14
+ if (FragColor.w < 1.0) {
15
+ discard;
16
+ }
17
+ }
18
+ `;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZGVyLmZyYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2l6bW8vcGFpbnRlci9zaGFkZXIuZnJhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJuQixDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export declare const VERT = "#version 300 es\n\nprecision mediump float;\n\nuniform mat4 uniModelViewMatrix;\nuniform mat4 uniProjectionMatrix;\nuniform float uniScreenHeight;\n\n/**\n * Position of the tip.\n */\nin vec4 attPos;\nin vec2 attUV;\n\nout vec2 varUV;\n\nvoid main() {\n varUV = attUV;\n vec4 point = uniModelViewMatrix * attPos;\n gl_Position = uniProjectionMatrix * point;\n point.y += 0.3;\n point = uniProjectionMatrix * point;\n gl_PointSize = uniScreenHeight * abs(gl_Position.y / gl_Position.w - point.y / point.w);\n}\n";
2
+ //# sourceMappingURL=shader.vert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader.vert.d.ts","sourceRoot":"","sources":["../../../src/gizmo/painter/shader.vert.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,shBAwBhB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export const VERT = `#version 300 es
2
+
3
+ precision mediump float;
4
+
5
+ uniform mat4 uniModelViewMatrix;
6
+ uniform mat4 uniProjectionMatrix;
7
+ uniform float uniScreenHeight;
8
+
9
+ /**
10
+ * Position of the tip.
11
+ */
12
+ in vec4 attPos;
13
+ in vec2 attUV;
14
+
15
+ out vec2 varUV;
16
+
17
+ void main() {
18
+ varUV = attUV;
19
+ vec4 point = uniModelViewMatrix * attPos;
20
+ gl_Position = uniProjectionMatrix * point;
21
+ point.y += 0.3;
22
+ point = uniProjectionMatrix * point;
23
+ gl_PointSize = uniScreenHeight * abs(gl_Position.y / gl_Position.w - point.y / point.w);
24
+ }
25
+ `;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZGVyLnZlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2l6bW8vcGFpbnRlci9zaGFkZXIudmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCbkIsQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ import { TgdCameraPerspective, TgdContext, TgdPainter } from "@tolokoban/tgd";
2
+ export declare class TipsPainter extends TgdPainter {
3
+ private readonly context;
4
+ readonly camera: TgdCameraPerspective;
5
+ private readonly texture;
6
+ private readonly prg;
7
+ private readonly vao;
8
+ constructor(context: TgdContext);
9
+ delete(): void;
10
+ paint(): void;
11
+ setTips(): void;
12
+ }
13
+ //# sourceMappingURL=tips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../../../src/gizmo/painter/tips.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,UAAU,EAEV,UAAU,EAKX,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,WAAY,SAAQ,UAAU;IAW7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,SAAgB,MAAM,uBAKnB;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;gBAER,OAAO,EAAE,UAAU;IA4BhD,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;IAeb,OAAO;CAWR"}
@@ -0,0 +1,85 @@
1
+ import { TgdCameraPerspective, TgdDataset, TgdPainter, TgdProgram, TgdTexture2D, TgdVertexArray, tgdCanvasCreateWithContext2D, } from "@tolokoban/tgd";
2
+ import { FRAG } from "./shader.frag.js";
3
+ import { VERT } from "./shader.vert.js";
4
+ export class TipsPainter extends TgdPainter {
5
+ constructor(context) {
6
+ super();
7
+ this.context = context;
8
+ this.camera = new TgdCameraPerspective({
9
+ transfo: { distance: 4 },
10
+ fovy: Math.PI / 4,
11
+ near: 1e-6,
12
+ far: 8,
13
+ });
14
+ this.texture = new TgdTexture2D(context, {
15
+ params: {
16
+ minFilter: "LINEAR",
17
+ magFilter: "LINEAR",
18
+ },
19
+ });
20
+ this.setTips();
21
+ const dataset = new TgdDataset({
22
+ attPos: "vec3",
23
+ attUV: "vec2",
24
+ });
25
+ dataset.set("attPos", new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1]));
26
+ const X = 1 / 3;
27
+ const Y = 1 / 2;
28
+ dataset.set("attUV", new Float32Array([0, 0, X, 0, 2 * X, 0, 0, Y, X, Y, 2 * X, Y]));
29
+ const prg = new TgdProgram(context.gl, { vert: VERT, frag: FRAG });
30
+ const vao = new TgdVertexArray(context.gl, prg, [dataset]);
31
+ this.prg = prg;
32
+ this.vao = vao;
33
+ }
34
+ delete() {
35
+ this.vao.delete();
36
+ }
37
+ paint() {
38
+ const { camera, context, prg, vao } = this;
39
+ const { gl } = context;
40
+ camera.transfo.orientation = context.camera.transfo.orientation;
41
+ camera.screenWidth = context.width;
42
+ camera.screenHeight = context.height;
43
+ prg.use();
44
+ this.texture.activate(0, prg, "uniTexture");
45
+ prg.uniform1f("uniScreenHeight", context.height);
46
+ prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
47
+ prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
48
+ vao.bind();
49
+ gl.drawArrays(gl.POINTS, 0, 6);
50
+ }
51
+ setTips() {
52
+ const SIZE = 256;
53
+ const { canvas, ctx } = tgdCanvasCreateWithContext2D(SIZE * 3, SIZE * 2);
54
+ paintDisk(ctx, 0, 0, SIZE, "X", "#f00", "#fff");
55
+ paintDisk(ctx, 1, 0, SIZE, "Y", "#0f0", "#000");
56
+ paintDisk(ctx, 2, 0, SIZE, "Z", "#00f", "#fff");
57
+ paintDisk(ctx, 0, 1, SIZE, "", "#f00", "#500");
58
+ paintDisk(ctx, 1, 1, SIZE, "", "#0f0", "#050");
59
+ paintDisk(ctx, 2, 1, SIZE, "", "#00f", "#005");
60
+ this.texture.loadBitmap(canvas);
61
+ }
62
+ }
63
+ function paintDisk(ctx, col, row, size, text, colorBack, colorText = "#fff") {
64
+ const x = (col + 0.5) * size;
65
+ const y = (row + 0.5) * size;
66
+ const r = size * 0.45;
67
+ ctx.fillStyle = colorBack;
68
+ ctx.beginPath();
69
+ ctx.ellipse(x, y, r, r, 0, 0, 2 * Math.PI);
70
+ ctx.fill();
71
+ if (text) {
72
+ ctx.font = `bold ${size * 0.5}px sans-serif`;
73
+ ctx.fillStyle = colorText;
74
+ ctx.textAlign = "center";
75
+ ctx.textBaseline = "middle";
76
+ ctx.fillText(text, x, y);
77
+ }
78
+ else {
79
+ ctx.fillStyle = colorText;
80
+ ctx.beginPath();
81
+ ctx.ellipse(x, y, r * 0.8, r * 0.8, 0, 0, 2 * Math.PI);
82
+ ctx.fill();
83
+ }
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9naXptby9wYWludGVyL3RpcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osY0FBYyxFQUNkLDRCQUE0QixHQUM3QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBWSxTQUFRLFVBQVU7SUFXekMsWUFBNkIsT0FBbUI7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVZoQyxXQUFNLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQztZQUNoRCxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUM7WUFDakIsSUFBSSxFQUFFLElBQUk7WUFDVixHQUFHLEVBQUUsQ0FBQztTQUNQLENBQUMsQ0FBQztRQU9ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQ3ZDLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsU0FBUyxFQUFFLFFBQVE7YUFDcEI7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUM3QixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FDVCxRQUFRLEVBQ1IsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFF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QUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNYLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxHQUFHLENBQUMsSUFBSSxHQUFHLFFBQVEsSUFBSSxHQUFHLEdBQUcsZUFBZSxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNOLEdBQUcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RCxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,16 @@
1
+ export { TgdCamera, TgdCameraOrthographic, TgdColor, tgdFullscreenToggle } from "@tolokoban/tgd";
2
+ export type { CanvasOptions } from "./abstract-canvas";
3
+ export type { ColorsInterface } from "./colors";
4
+ export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
5
+ export * from "./components/morpho-viewer-octree";
6
+ export * from "./components/morpho-viewer-simul";
7
+ export * from "./components/morpho-viewer-small-circuit";
8
+ export * from "./gizmo";
9
+ export { MorphologyCanvas } from "./morphology/morphology-canvas";
10
+ export { version } from "./package.json";
11
+ export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tree";
12
+ export type { ColoringType } from "./types";
13
+ export { CellNodeType } from "./types";
14
+ export { TgdEvent as MorphoViewerEvent } from "@tolokoban/tgd";
15
+ export { useEventState, useEventValue } from "./utils";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjG,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtE,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}