@openbraininstitute/morphoviewer 0.25.3 → 0.26.0

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 (194) hide show
  1. package/README.md +13 -0
  2. package/lib/dist/abstract-canvas.d.ts +3 -3
  3. package/lib/dist/abstract-canvas.d.ts.map +1 -1
  4. package/lib/dist/abstract-canvas.js +1 -1
  5. package/lib/dist/behaviors/index.js +1 -1
  6. package/lib/dist/behaviors/space-per-pixel.d.ts +1 -1
  7. package/lib/dist/behaviors/space-per-pixel.d.ts.map +1 -1
  8. package/lib/dist/colors.d.ts +1 -2
  9. package/lib/dist/colors.d.ts.map +1 -1
  10. package/lib/dist/components/button-reset-camera/button-reset-camera.js +3 -3
  11. package/lib/dist/components/button-reset-camera/index.js +1 -1
  12. package/lib/dist/components/controls-layout/controls-layout.js +5 -5
  13. package/lib/dist/components/controls-layout/index.js +1 -1
  14. package/lib/dist/components/morpho-viewer-octree/index.js +2 -2
  15. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.js +5 -5
  16. package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts +4 -4
  17. package/lib/dist/components/morpho-viewer-octree/painter/camera.d.ts.map +1 -1
  18. package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts +2 -2
  19. package/lib/dist/components/morpho-viewer-octree/painter/manager.d.ts.map +1 -1
  20. package/lib/dist/components/morpho-viewer-octree/painter/manager.js +3 -3
  21. package/lib/dist/components/morpho-viewer-scalebar/index.js +1 -1
  22. package/lib/dist/components/morpho-viewer-scalebar/morpho-viewer-scalebar.js +2 -2
  23. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.js +3 -3
  24. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/index.js +1 -1
  25. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.js +5 -5
  26. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/index.js +1 -1
  27. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.js +2 -2
  28. package/lib/dist/components/morpho-viewer-simul/components/hint/index.js +1 -1
  29. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/index.js +1 -1
  30. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.js +3 -3
  31. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-painter.js +1 -1
  32. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.d.ts +1 -1
  33. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.js +2 -2
  34. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/index.js +1 -1
  35. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/index.js +1 -1
  36. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/index.js +1 -1
  37. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.js +3 -3
  38. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/index.js +1 -1
  39. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.d.ts +1 -1
  40. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.js +1 -1
  41. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/index.js +1 -1
  42. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.js +1 -1
  43. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/spiking-controller.js +5 -5
  44. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/index.js +1 -1
  45. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.js +3 -3
  46. package/lib/dist/components/morpho-viewer-simul/contants.d.ts +1 -1
  47. package/lib/dist/components/morpho-viewer-simul/contants.d.ts.map +1 -1
  48. package/lib/dist/components/morpho-viewer-simul/hooks.js +1 -1
  49. package/lib/dist/components/morpho-viewer-simul/index.js +2 -2
  50. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.js +13 -13
  51. package/lib/dist/components/morpho-viewer-simul/painter/index.js +1 -1
  52. package/lib/dist/components/morpho-viewer-simul/painter/initializer.js +1 -1
  53. package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts +11 -16
  54. package/lib/dist/components/morpho-viewer-simul/painter/manager.d.ts.map +1 -1
  55. package/lib/dist/components/morpho-viewer-simul/painter/manager.js +8 -8
  56. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts +1 -1
  57. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.d.ts.map +1 -1
  58. package/lib/dist/components/morpho-viewer-simul/painter/morphology-data.js +2 -2
  59. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/index.js +1 -1
  60. package/lib/dist/components/morpho-viewer-simul/painter/offscreen-painter/offscreen-painter.js +1 -1
  61. package/lib/dist/components/morpho-viewer-simul/painter/painters/contants.js +1 -1
  62. package/lib/dist/components/morpho-viewer-simul/painter/painters/index.js +1 -1
  63. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/cursor.js +3 -3
  64. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/fill.js +1 -1
  65. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/index.js +1 -1
  66. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts +2 -2
  67. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.d.ts.map +1 -1
  68. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/cursor/texture.js +1 -1
  69. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/index.js +1 -1
  70. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/overlay.js +3 -3
  71. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts +3 -3
  72. package/lib/dist/components/morpho-viewer-simul/painter/painters/overlay/ticks.d.ts.map +1 -1
  73. package/lib/dist/components/morpho-viewer-simul/painter/painters/painter.js +5 -5
  74. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/index.js +1 -1
  75. package/lib/dist/components/morpho-viewer-simul/painter/painters/spiking/spiking.js +1 -1
  76. package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts +2 -2
  77. package/lib/dist/components/morpho-viewer-simul/painter/segments.d.ts.map +1 -1
  78. package/lib/dist/components/morpho-viewer-simul/painter/segments.js +1 -1
  79. package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts +1 -2
  80. package/lib/dist/components/morpho-viewer-simul/painter/soma.d.ts.map +1 -1
  81. package/lib/dist/components/morpho-viewer-simul/painter/soma.js +1 -1
  82. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts +7 -7
  83. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.d.ts.map +1 -1
  84. package/lib/dist/components/morpho-viewer-simul/painter/spiking-manager.js +1 -1
  85. package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts +2 -2
  86. package/lib/dist/components/morpho-viewer-simul/painter/structure.d.ts.map +1 -1
  87. package/lib/dist/components/morpho-viewer-simul/painter/structure.js +4 -4
  88. package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts +2 -2
  89. package/lib/dist/components/morpho-viewer-simul/painter/transition.d.ts.map +1 -1
  90. package/lib/dist/components/morpho-viewer-simul/painter/tree.js +1 -1
  91. package/lib/dist/components/morpho-viewer-simul/utils.js +1 -1
  92. package/lib/dist/components/morpho-viewer-small-circuit/index.js +2 -2
  93. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.d.ts.map +1 -1
  94. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +5 -5
  95. package/lib/dist/components/morpho-viewer-small-circuit/painter/index.js +1 -1
  96. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +8 -10
  97. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
  98. package/lib/dist/components/morpho-viewer-small-circuit/painter/manager.js +22 -46
  99. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/index.js +1 -1
  100. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +1 -1
  101. package/lib/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +2 -2
  102. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts +1 -1
  103. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js +1 -1
  104. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +1 -1
  105. package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +2 -2
  106. package/lib/dist/components/morpho-viewer-somas-only/index.d.ts +2 -0
  107. package/lib/dist/components/morpho-viewer-somas-only/index.d.ts.map +1 -0
  108. package/lib/dist/components/morpho-viewer-somas-only/index.js +2 -0
  109. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts +6 -0
  110. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts.map +1 -0
  111. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.js +45 -0
  112. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/index.d.ts +2 -0
  113. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/index.d.ts.map +1 -0
  114. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/index.js +2 -0
  115. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/proximity.d.ts +22 -0
  116. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/proximity.d.ts.map +1 -0
  117. package/lib/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/proximity.js +71 -0
  118. package/lib/dist/components/morpho-viewer-somas-only/manager/index.d.ts +2 -0
  119. package/lib/dist/components/morpho-viewer-somas-only/manager/index.d.ts.map +1 -0
  120. package/lib/dist/components/morpho-viewer-somas-only/manager/index.js +2 -0
  121. package/lib/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +24 -0
  122. package/lib/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -0
  123. package/lib/dist/components/morpho-viewer-somas-only/manager/manager.js +135 -0
  124. package/lib/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +13 -0
  125. package/lib/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts.map +1 -0
  126. package/lib/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.js +59 -0
  127. package/lib/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.d.ts +3 -0
  128. package/lib/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.d.ts.map +1 -0
  129. package/lib/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.js +49 -0
  130. package/lib/dist/components/morpho-viewer-somas-only/types.d.ts +15 -0
  131. package/lib/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -0
  132. package/lib/dist/components/morpho-viewer-somas-only/types.js +2 -0
  133. package/lib/dist/components/morpho-viewer-spinner/index.d.ts +2 -0
  134. package/lib/dist/components/morpho-viewer-spinner/index.d.ts.map +1 -0
  135. package/lib/dist/components/morpho-viewer-spinner/index.js +2 -0
  136. package/lib/dist/components/morpho-viewer-spinner/morpho-viewer-spinner.d.ts +6 -0
  137. package/lib/dist/components/morpho-viewer-spinner/morpho-viewer-spinner.d.ts.map +1 -0
  138. package/lib/dist/components/morpho-viewer-spinner/morpho-viewer-spinner.js +8 -0
  139. package/lib/dist/components/tooltip/index.js +1 -1
  140. package/lib/dist/components/tooltip/tooltip.js +1 -1
  141. package/lib/dist/gizmo/gizmo-canvas.d.ts +2 -5
  142. package/lib/dist/gizmo/gizmo-canvas.d.ts.map +1 -1
  143. package/lib/dist/gizmo/gizmo-canvas.js +1 -1
  144. package/lib/dist/gizmo/index.js +1 -1
  145. package/lib/dist/gizmo/painter/tips.d.ts +2 -2
  146. package/lib/dist/gizmo/painter/tips.d.ts.map +1 -1
  147. package/lib/dist/gizmo/painter/tips.js +2 -2
  148. package/lib/dist/icons/spinner.d.ts +9 -0
  149. package/lib/dist/icons/spinner.d.ts.map +1 -0
  150. package/lib/dist/icons/spinner.js +7 -0
  151. package/lib/dist/index.d.ts +3 -1
  152. package/lib/dist/index.d.ts.map +1 -1
  153. package/lib/dist/index.js +14 -12
  154. package/lib/dist/morphology/morphology-canvas.d.ts +2 -2
  155. package/lib/dist/morphology/morphology-canvas.d.ts.map +1 -1
  156. package/lib/dist/morphology/morphology-canvas.js +7 -7
  157. package/lib/dist/morphology/painter/factory.js +2 -2
  158. package/lib/dist/morphology/painter/index.js +1 -1
  159. package/lib/dist/morphology/painter/nodes.d.ts +1 -1
  160. package/lib/dist/morphology/painter/nodes.js +1 -1
  161. package/lib/dist/morphology/painter/painter.d.ts +1 -1
  162. package/lib/dist/morphology/painter/painter.js +2 -2
  163. package/lib/dist/morphology/painter/segments.d.ts +1 -2
  164. package/lib/dist/morphology/painter/segments.d.ts.map +1 -1
  165. package/lib/dist/morphology/painter/segments.js +1 -1
  166. package/lib/dist/morphology/painter/textures.d.ts +1 -1
  167. package/lib/dist/nrrd/index.js +3 -3
  168. package/lib/dist/package.json +3 -3
  169. package/lib/dist/painters/gizmo.d.ts +11 -0
  170. package/lib/dist/painters/gizmo.d.ts.map +1 -0
  171. package/lib/dist/painters/gizmo.js +53 -0
  172. package/lib/dist/parser/swc.d.ts +1 -1
  173. package/lib/dist/parser/swc.js +2 -2
  174. package/lib/dist/tools/morphology-to-tree.d.ts +2 -2
  175. package/lib/dist/tools/morphology-to-tree.js +1 -1
  176. package/lib/dist/tools/swc-to-tree.d.ts +1 -1
  177. package/lib/dist/tools/swc-to-tree.js +1 -1
  178. package/package.json +3 -3
  179. package/lib/dist/components/button-reset-camera/button-reset-camera.module.css +0 -10
  180. package/lib/dist/components/controls-layout/controls-layout.module.css +0 -53
  181. package/lib/dist/components/morpho-viewer-octree/morpho-viewer-octree.module.css +0 -70
  182. package/lib/dist/components/morpho-viewer-scalebar/morpho-viewer-scalebar.module.css +0 -13
  183. package/lib/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.module.css +0 -25
  184. package/lib/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.module.css +0 -115
  185. package/lib/dist/components/morpho-viewer-simul/components/hint/hint.module.css +0 -23
  186. package/lib/dist/components/morpho-viewer-simul/components/legend-overlay/legend-overlay.module.css +0 -5
  187. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/current-time/current-time.module.css +0 -20
  188. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.module.css +0 -21
  189. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/simul-combo/simul-combo.module.css +0 -52
  190. package/lib/dist/components/morpho-viewer-simul/components/spiking-controller/speed-combo/speed-combo.module.css +0 -69
  191. package/lib/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.module.css +0 -60
  192. package/lib/dist/components/morpho-viewer-simul/morpho-viewer-simul.module.css +0 -94
  193. package/lib/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +0 -63
  194. package/lib/dist/components/tooltip/tooltip.module.css +0 -74
@@ -0,0 +1,135 @@
1
+ import { TgdBoundingBox, TgdCameraOrthographic, TgdContext, TgdControllerCameraOrbit, TgdEvent, TgdPainterClear, TgdPainterState, tgdActionCreateCameraInterpolation, } from "@tolokoban/tgd";
2
+ import React from "react";
3
+ import { watchSpacePerPixel } from "@/behaviors";
4
+ import { PainterGizmo } from "@/painters/gizmo";
5
+ import { PainterCellInfos } from "./painter-cell-infos";
6
+ class PainterManager {
7
+ constructor() {
8
+ this.eventScalebar = new TgdEvent();
9
+ this._canvas = null;
10
+ this._cellInfos = [];
11
+ this.context = null;
12
+ this.orbit = null;
13
+ this.bbox = new TgdBoundingBox();
14
+ this.scalebarCleanup = null;
15
+ this.painterGizmo = new PainterGizmo();
16
+ this.cameraReset = () => {
17
+ const { context, bbox } = this;
18
+ if (!context)
19
+ return;
20
+ context.camera.screenWidth = context.width;
21
+ context.camera.screenHeight = context.height;
22
+ const resettedCamera = context.camera.clone();
23
+ const [width, height] = bbox.size;
24
+ if (width < 1 ||
25
+ height < 1 ||
26
+ resettedCamera.screenWidth < 1 ||
27
+ resettedCamera.screenHeight < 1) {
28
+ return;
29
+ }
30
+ resettedCamera.fitBoundingBox(bbox);
31
+ if (Number.isNaN(resettedCamera.transfo.distance)) {
32
+ return;
33
+ }
34
+ const state = resettedCamera.getCurrentState();
35
+ context.animSchedule({
36
+ duration: 0.5,
37
+ action: tgdActionCreateCameraInterpolation(context.camera, state),
38
+ });
39
+ };
40
+ }
41
+ get gizmo() {
42
+ return this.painterGizmo.options;
43
+ }
44
+ set gizmo(gizmo) {
45
+ this.painterGizmo.options = gizmo !== null && gizmo !== void 0 ? gizmo : false;
46
+ }
47
+ get canvas() {
48
+ return this._canvas;
49
+ }
50
+ set canvas(canvas) {
51
+ if (this._canvas === canvas)
52
+ return;
53
+ this._canvas = canvas;
54
+ if (canvas)
55
+ this.initialize();
56
+ else
57
+ this.delete();
58
+ }
59
+ get cellInfos() {
60
+ return this._cellInfos;
61
+ }
62
+ set cellInfos(cellInfos) {
63
+ if (this._cellInfos === cellInfos)
64
+ return;
65
+ this._cellInfos = cellInfos;
66
+ if (this.context) {
67
+ this.delete();
68
+ }
69
+ this.initialize();
70
+ }
71
+ initialize() {
72
+ if (this.context) {
73
+ return;
74
+ }
75
+ const { canvas, cellInfos } = this;
76
+ if (!canvas || !cellInfos) {
77
+ return;
78
+ }
79
+ const context = new TgdContext(canvas, { alpha: false, antialias: true, depth: true });
80
+ this.context = context;
81
+ this.scalebarCleanup = watchSpacePerPixel(context, this.eventScalebar);
82
+ const clear = new TgdPainterClear(context, {
83
+ color: [0, 0, 0, 1],
84
+ depth: 1,
85
+ });
86
+ const painterCellInfos = new PainterCellInfos(context, { cellInfos });
87
+ const state = new TgdPainterState(context, {
88
+ depth: "less",
89
+ children: [painterCellInfos],
90
+ });
91
+ this.painterGizmo.context = context;
92
+ context.add(clear, state, this.painterGizmo);
93
+ const camera = new TgdCameraOrthographic();
94
+ const { bbox } = painterCellInfos;
95
+ this.bbox = bbox;
96
+ camera.transfo.position = bbox.center;
97
+ const [width, height, depth] = bbox.size;
98
+ camera.fitSpaceAtTarget(width, height);
99
+ camera.near = 1;
100
+ camera.far = Math.max(camera.transfo.distance, Math.max(width, height, depth)) * 2;
101
+ context.camera = camera;
102
+ this.orbit = new TgdControllerCameraOrbit(context, {
103
+ inertiaOrbit: 1000,
104
+ inertiaPanning: 1000,
105
+ inertiaZoom: 300,
106
+ });
107
+ context.paint();
108
+ context.execAfterNextPaint(this.cameraReset);
109
+ }
110
+ delete() {
111
+ var _a, _b;
112
+ if (!this.context) {
113
+ return;
114
+ }
115
+ (_a = this.scalebarCleanup) === null || _a === void 0 ? void 0 : _a.call(this);
116
+ (_b = this.orbit) === null || _b === void 0 ? void 0 : _b.detach();
117
+ this.orbit = null;
118
+ this.context.delete();
119
+ this.context = null;
120
+ }
121
+ }
122
+ export function useManager({ cellInfos, gizmo }) {
123
+ const refManager = React.useRef(null);
124
+ if (!refManager.current)
125
+ refManager.current = new PainterManager();
126
+ const manager = refManager.current;
127
+ React.useEffect(() => {
128
+ manager.cellInfos = cellInfos;
129
+ }, [cellInfos, manager]);
130
+ React.useEffect(() => {
131
+ manager.gizmo = gizmo;
132
+ }, [gizmo, manager]);
133
+ return refManager.current;
134
+ }
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc29tYXMtb25seS9tYW5hZ2VyL21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCxxQkFBcUIsRUFFckIsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsZUFBZSxFQUVmLGVBQWUsRUFDZixrQ0FBa0MsR0FDbkMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RCxNQUFNLGNBQWM7SUFBcEI7UUFJa0Isa0JBQWEsR0FBRyxJQUFJLFFBQVEsRUFBVSxDQUFDO1FBRS9DLFlBQU8sR0FBNkIsSUFBSSxDQUFDO1FBQ3pDLGVBQVUsR0FBMkIsRUFBRSxDQUFDO1FBQ3hDLFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBQ2xDLFVBQUssR0FBb0MsSUFBSSxDQUFDO1FBQzlDLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzVCLG9CQUFlLEdBQXdCLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFrQzFDLGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQzFCLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFFckIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFD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
@@ -0,0 +1,13 @@
1
+ import { TgdBoundingBox, type TgdContext, TgdPainterGroup } from "@tolokoban/tgd";
2
+ import type { MorphoViewerCellInfo } from "../types";
3
+ export interface PainterCellInfosOptions {
4
+ cellInfos: MorphoViewerCellInfo[];
5
+ }
6
+ export declare class PainterCellInfos extends TgdPainterGroup {
7
+ readonly context: TgdContext;
8
+ readonly bbox: TgdBoundingBox;
9
+ private readonly texturePalette;
10
+ constructor(context: TgdContext, options: PainterCellInfosOptions);
11
+ delete(): void;
12
+ }
13
+ //# sourceMappingURL=painter-cell-infos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"painter-cell-infos.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-somas-only/manager/painter-cell-infos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,eAAe,EAKhB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIrD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,qBAAa,gBAAiB,SAAQ,eAAe;aAKjC,OAAO,EAAE,UAAU;IAJrC,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;gBAG5B,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,uBAAuB;IAsClC,MAAM,IAAI,IAAI;CAIf"}
@@ -0,0 +1,59 @@
1
+ import { TgdBoundingBox, TgdPainterGroup, TgdPainterPointsCloud, TgdTexture2D, tgdCanvasCreatePalette, } from "@tolokoban/tgd";
2
+ import { computeAmbientOcclusion } from "./ambient-occlusion";
3
+ const RADIUS = 15;
4
+ export class PainterCellInfos extends TgdPainterGroup {
5
+ constructor(context, options) {
6
+ var _a;
7
+ const texturePalette = new TgdTexture2D(context, {
8
+ params: {
9
+ magFilter: "LINEAR",
10
+ minFilter: "LINEAR",
11
+ wrapR: "CLAMP_TO_EDGE",
12
+ wrapS: "CLAMP_TO_EDGE",
13
+ wrapT: "CLAMP_TO_EDGE",
14
+ },
15
+ }).loadBitmap(tgdCanvasCreatePalette(["hsl(200, 100%, 80%)", "hsl(200, 100%, 50%)", "hsl(220, 100%, 30%)"], 1));
16
+ const bbox = new TgdBoundingBox();
17
+ const painterPointsCloudOptions = parseCellInfos(options.cellInfos, bbox);
18
+ const uvs = (_a = middleLuminance(painterPointsCloudOptions.dataUV)) !== null && _a !== void 0 ? _a : new Float32Array(2 * options.cellInfos.length);
19
+ const painterPointsCloud = new TgdPainterPointsCloud(context, Object.assign(Object.assign({}, painterPointsCloudOptions), { dataUV: computeAmbientOcclusion(bbox, 10 * RADIUS, painterPointsCloudOptions.dataPoint, uvs), texture: texturePalette, fragCode: TgdPainterPointsCloud.fragCodeSphere({
20
+ enableSpecular: true,
21
+ specularExponent: 50,
22
+ }) }));
23
+ super({
24
+ name: "PainterCellInfos",
25
+ children: [painterPointsCloud],
26
+ });
27
+ this.context = context;
28
+ this.texturePalette = texturePalette;
29
+ this.bbox = bbox;
30
+ }
31
+ delete() {
32
+ this.texturePalette.delete();
33
+ super.delete();
34
+ }
35
+ }
36
+ function parseCellInfos(cellInfos, bbox) {
37
+ const dataPoint = [];
38
+ const dataUV = [];
39
+ for (const { position } of cellInfos) {
40
+ const [x, y, z] = position;
41
+ bbox.addSphere(x, y, z, RADIUS);
42
+ dataPoint.push(x, y, z, RADIUS);
43
+ dataUV.push(Math.random(), Math.random());
44
+ }
45
+ const options = {
46
+ dataPoint: new Float32Array(dataPoint),
47
+ dataUV: new Float32Array(dataUV),
48
+ };
49
+ return options;
50
+ }
51
+ function middleLuminance(dataUV) {
52
+ if (!dataUV)
53
+ return;
54
+ for (let i = 1; i < dataUV.length; i += 2) {
55
+ dataUV[i] = 0.5;
56
+ }
57
+ return dataUV;
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLHFCQUFxQixFQUVyQixZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBTWxCLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBSW5ELFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDL0MsTUFBTSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEtBQUssRUFBRSxlQUFlO2dCQUN0QixLQUFLLEVBQUUsZUFBZTthQUN2QjtTQUNGLENBQUMsQ0FBQyxVQUFVLENBQ1gsc0JBQXNCLENBQ3BCLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsRUFDckUsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbEMsTUFBTSx5QkFBeUIsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLEdBQUcsR0FDUCxNQUFBLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsbUNBQ2pELElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLGtDQUN2RCx5QkFBeUIsS0FDNUIsTUFBTSxFQUFFLHVCQUF1QixDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFDdkIsUUFBUSxFQUFFLHFCQUFxQixDQUFDLGNBQWMsQ0FBQztnQkFDN0MsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGdCQUFnQixFQUFFLEVBQUU7YUFDckIsQ0FBQyxJQUNGLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQy9CLENBQUMsQ0FBQztRQWxDYSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBbUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQUVELFNBQVMsY0FBYyxDQUNyQixTQUFpQyxFQUNqQyxJQUFvQjtJQUVwQixNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDL0IsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLEtBQUssTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFpQztRQUM1QyxTQUFTLEVBQUUsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUM7S0FDakMsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUFnQztJQUN2RCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU87SUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ import type { MorphoViewerSomasOnlyProps } from "./types";
2
+ export declare function MorphoViewerSomasOnly(props: MorphoViewerSomasOnlyProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=morpho-viewer-somas-only.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morpho-viewer-somas-only.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-somas-only/morpho-viewer-somas-only.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAI1D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CAyCtE"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { tgdFullscreenToggle } from "@tolokoban/tgd";
3
+ import React from "react";
4
+ import { classNames } from "@/utils";
5
+ import { ControlsLayout } from "../controls-layout";
6
+ import MorphoViewerScalebar from "../morpho-viewer-scalebar";
7
+ import { useManager as usePainterManager } from "./manager";
8
+ import styles from "./morpho-viewer-somas-only.module.css";
9
+ export function MorphoViewerSomasOnly(props) {
10
+ var _a;
11
+ const ref = React.useRef(null);
12
+ const painterManager = usePainterManager(props);
13
+ const handleToggleFullscreen = () => {
14
+ const div = ref.current;
15
+ if (!div)
16
+ return;
17
+ tgdFullscreenToggle(div);
18
+ };
19
+ const handleControls = (action) => {
20
+ var _a, _b;
21
+ switch (action) {
22
+ case "fullscreen":
23
+ handleToggleFullscreen();
24
+ break;
25
+ case "reset-camera":
26
+ painterManager.cameraReset();
27
+ break;
28
+ case "close":
29
+ (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
30
+ break;
31
+ case "minimize":
32
+ (_b = props.onMinimize) === null || _b === void 0 ? void 0 : _b.call(props);
33
+ break;
34
+ }
35
+ };
36
+ return (_jsxs("div", { ref: ref, className: classNames(props.className, styles.morphoViewerSomasOnly), children: [_jsx(Canvas, { painterManager: painterManager }), _jsx(ControlsLayout, { content: (_a = props.controls) !== null && _a !== void 0 ? _a : getDefaultControls(props), onClick: handleControls }), props.scalebar && (_jsx(MorphoViewerScalebar, { className: props.scalebar, spacePerPixelEvent: painterManager.eventScalebar }))] }));
37
+ }
38
+ const Canvas = React.memo(({ painterManager }) => {
39
+ return (_jsx("canvas", { className: styles.webgl, ref: (canvas) => {
40
+ painterManager.canvas = canvas;
41
+ return () => {
42
+ painterManager.canvas = null;
43
+ };
44
+ } }, "canvas"));
45
+ });
46
+ function getDefaultControls(props) {
47
+ return ["reset-camera", ["fullscreen", props.onClose && "close", props.onMinimize && "minimize"]];
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvLXZpZXdlci1zb21hcy1vbmx5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21vcnBoby12aWV3ZXItc29tYXMtb25seS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLE9BQU8sRUFBc0IsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEUsT0FBTyxvQkFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQXVCLFVBQVUsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlqRixPQUFPLE1BQU0sTUFBTSx1Q0FBdUMsQ0FBQztBQUUzRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBaUM7O0lBQ3JFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQXdCLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBRWpCLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBcUIsRUFBUSxFQUFFOztRQUNyRCxRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2YsS0FBSyxZQUFZO2dCQUNmLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLGNBQWM7Z0JBQ2pCLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDN0IsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixNQUFBLEtBQUssQ0FBQyxPQUFPLHFEQUFJLENBQUM7Z0JBQ2xCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsTUFBQSxLQUFLLENBQUMsVUFBVSxxREFBSSxDQUFDO2dCQUNyQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FDTCxlQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUNqRixLQUFDLE1BQU0sSUFBQyxjQUFjLEVBQUUsY0FBYyxHQUFJLEVBQzFDLEtBQUMsY0FBYyxJQUNiLE9BQU8sRUFBRSxNQUFBLEtBQUssQ0FBQyxRQUFRLG1DQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUNwRCxPQUFPLEVBQUUsY0FBYyxHQUN2QixFQUNELEtBQUssQ0FBQyxRQUFRLElBQUksQ0FDakIsS0FBQyxvQkFBb0IsSUFDbkIsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQ3pCLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxhQUFhLEdBQ2hELENBQ0gsSUFDRyxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFzQyxFQUFFLEVBQUU7SUFDbkYsT0FBTyxDQUNMLGlCQUVFLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUN2QixHQUFHLEVBQUUsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7WUFDeEMsY0FBYyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDL0IsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDL0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxJQVBHLFFBQVEsQ0FRWixDQUNILENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsa0JBQWtCLENBQUMsS0FBaUM7SUFDM0QsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDcEcsQ0FBQyJ9
@@ -0,0 +1,15 @@
1
+ import type { ArrayNumber3 } from "@tolokoban/tgd";
2
+ import type { ControlsLayoutProps } from "../controls-layout";
3
+ import type { PropsForGizmo, PropsForScalebar } from "../types";
4
+ export interface MorphoViewerCellInfo {
5
+ morphologyId: string;
6
+ position: ArrayNumber3;
7
+ }
8
+ export type MorphoViewerSomasOnlyProps = PropsForGizmo & PropsForScalebar & {
9
+ className?: string;
10
+ cellInfos: MorphoViewerCellInfo[];
11
+ onClose?(): void;
12
+ onMinimize?(): void;
13
+ controls?: ControlsLayoutProps["content"];
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-somas-only/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,0BAA0B,GAAG,aAAa,GACpD,gBAAgB,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNvbWFzLW9ubHkvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,2 @@
1
+ export * from "./morpho-viewer-spinner";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-spinner/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./morpho-viewer-spinner";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNwaW5uZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQSJ9
@@ -0,0 +1,6 @@
1
+ export interface MorphoViewerSpinnerProps {
2
+ className?: string;
3
+ label?: string;
4
+ }
5
+ export declare function MorphoViewerSpinner({ className, label }: MorphoViewerSpinnerProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=morpho-viewer-spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morpho-viewer-spinner.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-spinner/morpho-viewer-spinner.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,KAAgB,EAAE,EAAE,wBAAwB,2CAW5F"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { IconSpinner } from "@/icons/spinner";
3
+ import { classNames } from "@/utils";
4
+ import styles from "./morpho-viewer-spinner.module.css";
5
+ export function MorphoViewerSpinner({ className, label = "Neuron" }) {
6
+ return (_jsxs("div", { className: classNames(className, styles.morphoViewerSpinner), children: [_jsx(IconSpinner, {}), _jsxs("div", { children: ["Loading", _jsx("br", {}), label] })] }));
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvLXZpZXdlci1zcGlubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zcGlubmVyL21vcnBoby12aWV3ZXItc3Bpbm5lci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLE9BQU8sTUFBTSxNQUFNLG9DQUFvQyxDQUFDO0FBT3hELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsUUFBUSxFQUE0QjtJQUMzRixPQUFPLENBQ0wsZUFBSyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFDL0QsS0FBQyxXQUFXLEtBQUcsRUFDZixxQ0FFRSxjQUFNLEVBQ0wsS0FBSyxJQUNGLElBQ0YsQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,2 +1,2 @@
1
- export { default } from "./tooltip.js";
1
+ export { default } from "./tooltip";
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy90b29sdGlwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { classNames } from "./../../utils.js";
2
+ import { classNames } from "@/utils";
3
3
  import styles from "./tooltip.module.css";
4
4
  export default function Tooltip({ className, classNameTooltip, tooltip, arrow = "top", arrowWidth = 16, arrowHeight = 16, backColor = "#fff", foreColor = "#000", children, }) {
5
5
  return (_jsxs("div", { className: classNames(className, styles.container), style: {
@@ -1,9 +1,6 @@
1
- import { TgdCamera, TgdEvent, TgdQuat } from "@tolokoban/tgd";
1
+ import { TgdCamera } from "@tolokoban/tgd";
2
2
  export declare class GizmoCanvas {
3
- eventTipClick: TgdEvent<{
4
- from: Readonly<TgdQuat>;
5
- to: Readonly<TgdQuat>;
6
- }>;
3
+ eventTipClick: any;
7
4
  private _canvas;
8
5
  private context;
9
6
  private _camera;
@@ -1 +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"}
1
+ {"version":3,"file":"gizmo-canvas.d.ts","sourceRoot":"","sources":["../../src/gizmo/gizmo-canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAUV,MAAM,gBAAgB,CAAC;AAGxB,qBAAa,WAAW;IAIf,aAAa,MAGf;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"}
@@ -1,5 +1,5 @@
1
1
  import { TgdContext, TgdControllerCameraOrbit, TgdEvent, TgdPainterClear, TgdPainterDepth, TgdQuat, TgdVec3, } from "@tolokoban/tgd";
2
- import { TipsPainter } from "./painter/tips.js";
2
+ import { TipsPainter } from "./painter/tips";
3
3
  export class GizmoCanvas {
4
4
  constructor() {
5
5
  this.eventTipClick = new TgdEvent();
@@ -1,2 +1,2 @@
1
- export * from "./gizmo-canvas.js";
1
+ export * from "./gizmo-canvas";
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l6bW8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -1,7 +1,7 @@
1
- import { TgdCameraPerspective, TgdContext, TgdPainter } from "@tolokoban/tgd";
1
+ import { TgdContext, TgdPainter } from "@tolokoban/tgd";
2
2
  export declare class TipsPainter extends TgdPainter {
3
3
  private readonly context;
4
- readonly camera: TgdCameraPerspective;
4
+ readonly camera: any;
5
5
  private readonly texture;
6
6
  private readonly prg;
7
7
  private readonly vao;
@@ -1 +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"}
1
+ {"version":3,"file":"tips.d.ts","sourceRoot":"","sources":["../../../src/gizmo/painter/tips.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,UAAU,EAKX,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,WAAY,SAAQ,UAAU;IAW7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,SAAgB,MAAM,MAKnB;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"}
@@ -1,6 +1,6 @@
1
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";
2
+ import { FRAG } from "./shader.frag";
3
+ import { VERT } from "./shader.vert";
4
4
  export class TipsPainter extends TgdPainter {
5
5
  constructor(context) {
6
6
  super();
@@ -0,0 +1,9 @@
1
+ import type { CSSProperties } from "react";
2
+ type Props = {
3
+ className?: string;
4
+ size?: string;
5
+ style?: CSSProperties;
6
+ };
7
+ export declare function IconSpinner({ className, style, size }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/icons/spinner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,2CAgB5D"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames } from "@/utils";
3
+ import styles from "./icon.module.css";
4
+ export function IconSpinner({ className, style, size }) {
5
+ return (_jsxs("svg", { className: classNames(className, styles.icon, styles.spin), style: Object.assign({ "--custom-icon-size": size !== null && size !== void 0 ? size : "1.5em" }, style), viewBox: "-12 -12 24 24", stroke: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("title", { children: "spinner" }), _jsx("path", { d: "M0,-8A8,8 0 0,0 -8,0", strokeWidth: "1", strokeLinecap: "round", fill: "none" })] }));
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pY29ucy9zcGlubmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUlyQyxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQVF2QyxNQUFNLFVBQVUsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQVM7SUFDM0QsT0FBTyxDQUNMLGVBQ0UsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQzFELEtBQUssa0JBQ0gsb0JBQW9CLEVBQUUsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksT0FBTyxJQUNsQyxLQUFLLEdBRVYsT0FBTyxFQUFDLGVBQWUsRUFDdkIsTUFBTSxFQUFDLGNBQWMsRUFDckIsS0FBSyxFQUFDLDRCQUE0QixhQUVsQyxzQ0FBc0IsRUFDdEIsZUFBTSxDQUFDLEVBQUMsc0JBQXNCLEVBQUMsV0FBVyxFQUFDLEdBQUcsRUFBQyxhQUFhLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLEdBQUcsSUFDL0UsQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,8 +1,10 @@
1
- export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle } from "@tolokoban/tgd";
1
+ export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle, } from "@tolokoban/tgd";
2
2
  export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
3
3
  export * from "./components/morpho-viewer-octree";
4
4
  export * from "./components/morpho-viewer-simul";
5
5
  export * from "./components/morpho-viewer-small-circuit";
6
+ export * from "./components/morpho-viewer-somas-only";
7
+ export * from "./components/morpho-viewer-spinner";
6
8
  export * from "./gizmo";
7
9
  export { MorphologyCanvas } from "./morphology/morphology-canvas";
8
10
  export { version } from "./package.json";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,IAAI,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAE/H,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACrE,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA;AAChD,cAAc,0CAA0C,CAAA;AACxD,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAA;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEtD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,QAAQ,EACR,QAAQ,IAAI,iBAAiB,EAC7B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,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,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,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,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
package/lib/dist/index.js CHANGED
@@ -1,14 +1,16 @@
1
1
  "use client";
2
- export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle } from "@tolokoban/tgd";
3
- export { colorContrast, colorLuminance, colorToRGBA } from "./colors.js";
4
- export * from "./components/morpho-viewer-octree/index.js";
5
- export * from "./components/morpho-viewer-simul/index.js";
6
- export * from "./components/morpho-viewer-small-circuit/index.js";
7
- export * from "./gizmo/index.js";
8
- export { MorphologyCanvas } from "./morphology/morphology-canvas.js";
2
+ export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle, } from "@tolokoban/tgd";
3
+ export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
4
+ export * from "./components/morpho-viewer-octree";
5
+ export * from "./components/morpho-viewer-simul";
6
+ export * from "./components/morpho-viewer-small-circuit";
7
+ export * from "./components/morpho-viewer-somas-only";
8
+ export * from "./components/morpho-viewer-spinner";
9
+ export * from "./gizmo";
10
+ export { MorphologyCanvas } from "./morphology/morphology-canvas";
9
11
  export { version } from "./package.json";
10
- export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tree.js";
11
- export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree.js";
12
- export { CellNodeType } from "./types.js";
13
- export { useEventState, useEventValue } from "./utils.js";
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBO0FBSVosT0FBTyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxJQUFJLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFL0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3JFLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNsRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBIn0=
12
+ export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tree";
13
+ export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree";
14
+ export { CellNodeType } from "./types";
15
+ export { useEventState, useEventValue } from "./utils";
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBRWIsT0FBTyxFQUNMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsSUFBSSxpQkFBaUIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLFNBQVMsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQyJ9
@@ -1,4 +1,4 @@
1
- import { TgdEvent, TgdQuat } from "@tolokoban/tgd";
1
+ import { TgdQuat } from "@tolokoban/tgd";
2
2
  import { AbstractCanvas, type CanvasOptions } from "../abstract-canvas";
3
3
  import { type ColorsInterface } from "../colors";
4
4
  import { type CellNode } from "../parser/swc";
@@ -6,7 +6,7 @@ import { type ScalebarOptions } from "../scalebar";
6
6
  import { type ColoringType } from "../types";
7
7
  export declare class MorphologyCanvas extends AbstractCanvas {
8
8
  readonly colors: ColorsInterface;
9
- readonly eventColorsChange: TgdEvent<ColorsInterface>;
9
+ readonly eventColorsChange: any;
10
10
  private _customColorsForSection;
11
11
  private _customColorsForDistance;
12
12
  private _maxDendriteLength;
@@ -1 +1 @@
1
- {"version":3,"file":"morphology-canvas.d.ts","sourceRoot":"","sources":["../../src/morphology/morphology-canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,QAAQ,EAMR,OAAO,EAKV,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAe,EAAE,KAAK,eAAe,EAAe,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,eAAe,CAAA;AACvD,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AA2B1D,qBAAa,gBAAiB,SAAQ,cAAc;IAChD,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,SAAgB,iBAAiB,4BAAmC;IAEpE,OAAO,CAAC,uBAAuB,CAAyB;IACxD,OAAO,CAAC,wBAAwB,CAAyB;IAEzD,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,oBAAoB,CAAK;gBAErB,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM;IAehD,IAAI,sBAAsB,IAOS,MAAM,EAAE,GAAG,IAAI,CALjD;IAKD,IAAI,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAGjD;IAED,IAAI,uBAAuB,IAOS,MAAM,EAAE,GAAG,IAAI,CALlD;IAKD,IAAI,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAGlD;IAKD,IAAI,iBAAiB,WAEpB;IAED,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;IAIlB,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,OAAO;IAM3B,OAAO,CAAC,WAAW;IAOnB,IAAI,SAAS,IAIQ,MAAM,CAF1B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAQ1B;IAED,SAAgB,iBAAiB,GAAI,SAAS;QAC1C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvB,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;KACxB,UAMC;IAEF,SAAgB,WAAW,GAAI,iBAAiB,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAc,UA4B/E;IAEF,eAAe,CAAC,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;;;;;IAItD,IAAI,OAAO,IAGQ,YAAY,CAD9B;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAS9B;IAED,IAAI,UAAU,WAEb;IAED,IAAI,UAAU,CAAC,KAAK,QAAA,EASnB;IAED,IAAI,gBAAgB,WAEnB;IACD,IAAI,gBAAgB,CAAC,KAAK,QAAA,EASzB;IAED,IAAI,GAAG,IAGM,MAAM,GAAG,IAAI,CADzB;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAWzB;IAED,IAAI,KAAK,IAGQ,QAAQ,EAAE,CAD1B;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAM1B;IAED,SAAgB,KAAK,aAKnB;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAgBjC;IAEF,OAAO,CAAC,eAAe;IAWvB,SAAS,CAAC,IAAI;IAwCd,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAUhC;CACL"}
1
+ {"version":3,"file":"morphology-canvas.d.ts","sourceRoot":"","sources":["../../src/morphology/morphology-canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAQH,OAAO,EAKV,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAe,EAAE,KAAK,eAAe,EAAe,MAAM,WAAW,CAAA;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,eAAe,CAAA;AACvD,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AA2B1D,qBAAa,gBAAiB,SAAQ,cAAc;IAChD,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,SAAgB,iBAAiB,MAAmC;IAEpE,OAAO,CAAC,uBAAuB,CAAyB;IACxD,OAAO,CAAC,wBAAwB,CAAyB;IAEzD,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,oBAAoB,CAAK;gBAErB,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM;IAehD,IAAI,sBAAsB,IAOS,MAAM,EAAE,GAAG,IAAI,CALjD;IAKD,IAAI,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAGjD;IAED,IAAI,uBAAuB,IAOS,MAAM,EAAE,GAAG,IAAI,CALlD;IAKD,IAAI,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAGlD;IAKD,IAAI,iBAAiB,WAEpB;IAED,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;IAIlB,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,OAAO;IAM3B,OAAO,CAAC,WAAW;IAOnB,IAAI,SAAS,IAIQ,MAAM,CAF1B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAQ1B;IAED,SAAgB,iBAAiB,GAAI,SAAS;QAC1C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvB,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;KACxB,UAMC;IAEF,SAAgB,WAAW,GAAI,iBAAiB,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAc,UA4B/E;IAEF,eAAe,CAAC,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;;;;;IAItD,IAAI,OAAO,IAGQ,YAAY,CAD9B;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAS9B;IAED,IAAI,UAAU,WAEb;IAED,IAAI,UAAU,CAAC,KAAK,QAAA,EASnB;IAED,IAAI,gBAAgB,WAEnB;IACD,IAAI,gBAAgB,CAAC,KAAK,QAAA,EASzB;IAED,IAAI,GAAG,IAGM,MAAM,GAAG,IAAI,CADzB;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAWzB;IAED,IAAI,KAAK,IAGQ,QAAQ,EAAE,CAD1B;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAM1B;IAED,SAAgB,KAAK,aAKnB;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAgBjC;IAEF,OAAO,CAAC,eAAe;IAWvB,SAAS,CAAC,IAAI;IAwCd,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAUhC;CACL"}
@@ -1,11 +1,11 @@
1
1
  import { TgdEvent, TgdMat3, TgdPainterClear, TgdPainterDepth, TgdPainterLogic, TgdQuat, TgdVec3, tgdActionCreateCameraInterpolation, tgdEasingFunctionInOutCubic, tgdFullscreenTest, } from "@tolokoban/tgd";
2
- import { AbstractCanvas } from "../abstract-canvas.js";
3
- import Colors, { colorToRGBA } from "../colors.js";
4
- import { parseSwc } from "../parser/swc.js";
5
- import { computeScalebarAttributes } from "../scalebar.js";
6
- import { CellNodeType } from "../types.js";
7
- import { SwcPainter } from "./painter/index.js";
8
- import { CellNodes } from "./painter/nodes.js";
2
+ import { AbstractCanvas } from "../abstract-canvas";
3
+ import Colors, { colorToRGBA } from "../colors";
4
+ import { parseSwc } from "../parser/swc";
5
+ import { computeScalebarAttributes } from "../scalebar";
6
+ import { CellNodeType } from "../types";
7
+ import { SwcPainter } from "./painter";
8
+ import { CellNodes } from "./painter/nodes";
9
9
  export class MorphologyCanvas extends AbstractCanvas {
10
10
  constructor(options = {}) {
11
11
  super(Object.assign({ name: "MorphologyCanvas", cameraController: {
@@ -1,5 +1,5 @@
1
- import { CellNodeType } from "./../../types.js";
2
- import { Segments } from "./segments.js";
1
+ import { CellNodeType } from "@/types";
2
+ import { Segments } from "./segments";
3
3
  export function makeData(nodes) {
4
4
  const segmentsNeurites = new Segments(nodes);
5
5
  const somaNeurites = new Segments(nodes);
@@ -1,2 +1,2 @@
1
- export { SwcPainter } from "./painter.js";
1
+ export { SwcPainter } from "./painter";
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9ycGhvbG9neS9wYWludGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUMifQ==
@@ -1,4 +1,4 @@
1
- import { CellNode } from "../../parser/swc";
1
+ import { CellNode } from "@/parser/swc";
2
2
  import { TgdVec3 } from "@tolokoban/tgd";
3
3
  export interface Branch {
4
4
  node: CellNode;
@@ -1,4 +1,4 @@
1
- import { CellNodeType } from "./../../types.js";
1
+ import { CellNodeType } from "@/types";
2
2
  import { TgdVec3 } from "@tolokoban/tgd";
3
3
  export class CellNodes {
4
4
  constructor(nodes) {
@@ -1,5 +1,5 @@
1
1
  import { type TgdContext, TgdPainterGroup } from "@tolokoban/tgd";
2
- import type { ColorsInterface } from "../../colors";
2
+ import type { ColorsInterface } from "@/colors";
3
3
  import type { CellNodes } from "./nodes";
4
4
  export declare class SwcPainter extends TgdPainterGroup {
5
5
  readonly context: TgdContext;
@@ -1,6 +1,6 @@
1
1
  import { TgdMaterialDiffuse, TgdPainterGroup, TgdPainterSegments, TgdTexture2D, } from "@tolokoban/tgd";
2
- import { makeData } from "./factory.js";
3
- import { getDistancesTextureCanvas, getRegionsTextureCanvas } from "./textures.js";
2
+ import { makeData } from "./factory";
3
+ import { getDistancesTextureCanvas, getRegionsTextureCanvas } from "./textures";
4
4
  export class SwcPainter extends TgdPainterGroup {
5
5
  constructor(context, nodes) {
6
6
  super();