@openbraininstitute/morphoviewer 0.27.0 → 0.27.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/button-reset-camera/button-reset-camera.js +3 -3
- package/dist/components/controls-layout/controls-layout.js +9 -9
- package/dist/components/icons/3d.d.ts +1 -1
- package/dist/components/icons/3d.d.ts.map +1 -1
- package/dist/components/icons/3d.js +2 -2
- package/dist/components/icons/center.d.ts +1 -1
- package/dist/components/icons/center.d.ts.map +1 -1
- package/dist/components/icons/center.js +2 -2
- package/dist/components/icons/close.d.ts +1 -1
- package/dist/components/icons/close.d.ts.map +1 -1
- package/dist/components/icons/close.js +2 -2
- package/dist/components/icons/copy.d.ts +1 -1
- package/dist/components/icons/copy.d.ts.map +1 -1
- package/dist/components/icons/copy.js +2 -2
- package/dist/components/icons/dendrogram-circular.d.ts +1 -1
- package/dist/components/icons/dendrogram-circular.d.ts.map +1 -1
- package/dist/components/icons/dendrogram-circular.js +2 -2
- package/dist/components/icons/dendrogram-straight.d.ts +1 -1
- package/dist/components/icons/dendrogram-straight.d.ts.map +1 -1
- package/dist/components/icons/dendrogram-straight.js +2 -2
- package/dist/components/icons/fullscreen.d.ts +1 -1
- package/dist/components/icons/fullscreen.d.ts.map +1 -1
- package/dist/components/icons/fullscreen.js +4 -4
- package/dist/components/icons/index.d.ts +15 -0
- package/dist/components/icons/index.d.ts.map +1 -0
- package/dist/components/icons/index.js +15 -0
- package/dist/components/icons/minimize.d.ts +1 -1
- package/dist/components/icons/minimize.d.ts.map +1 -1
- package/dist/components/icons/minimize.js +2 -2
- package/dist/components/icons/orthographic.d.ts +8 -0
- package/dist/components/icons/orthographic.d.ts.map +1 -0
- package/dist/components/icons/orthographic.js +5 -0
- package/dist/components/icons/pause.d.ts +1 -1
- package/dist/components/icons/pause.d.ts.map +1 -1
- package/dist/components/icons/pause.js +2 -2
- package/dist/components/icons/perspective.d.ts +8 -0
- package/dist/components/icons/perspective.d.ts.map +1 -0
- package/dist/components/icons/perspective.js +5 -0
- package/dist/components/icons/play.d.ts +1 -1
- package/dist/components/icons/play.d.ts.map +1 -1
- package/dist/components/icons/play.js +2 -2
- package/dist/components/icons/zoom-in.d.ts +1 -1
- package/dist/components/icons/zoom-in.d.ts.map +1 -1
- package/dist/components/icons/zoom-in.js +2 -2
- package/dist/components/icons/zoom-out.d.ts +1 -1
- package/dist/components/icons/zoom-out.d.ts.map +1 -1
- package/dist/components/icons/zoom-out.js +2 -2
- package/dist/components/morpho-viewer-octree/morpho-viewer-octree.js +4 -4
- package/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/components/ModeSelector/ModeSelector.js +4 -4
- package/dist/components/morpho-viewer-simul/components/add-recording-dialog/add-recording-dialog.js +3 -3
- package/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/components/spiking-controller/play-button/play-button.js +4 -4
- package/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/components/zoom-slider/zoom-slider.js +5 -5
- package/dist/components/morpho-viewer-simul/morpho-viewer-simul.js +6 -6
- package/dist/components/morpho-viewer-simul/painter/manager.d.ts +2 -2
- package/dist/components/morpho-viewer-simul/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/painter/manager.js +1 -1
- package/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts +1 -1
- package/dist/components/morpho-viewer-simul/painter/painters/painter.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/painter/painters/painter.js +3 -3
- package/dist/components/morpho-viewer-simul/painter/painters/synapses.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/painter/painters/synapses.js +9 -3
- package/dist/components/morpho-viewer-simul/painter/transition.d.ts.map +1 -1
- package/dist/components/morpho-viewer-simul/painter/transition.js +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +2 -8
- package/dist/components/morpho-viewer-somas-only/manager/adaptative-resolution.d.ts +20 -0
- package/dist/components/morpho-viewer-somas-only/manager/adaptative-resolution.d.ts.map +1 -0
- package/dist/components/morpho-viewer-somas-only/manager/adaptative-resolution.js +87 -0
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.js +1 -5
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +8 -4
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.js +47 -33
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.js +3 -3
- package/dist/components/morpho-viewer-somas-only/types.d.ts +1 -0
- package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/package.json +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type TgdContext } from "@tolokoban/tgd";
|
|
2
|
+
export declare class AdpatativeResolution {
|
|
3
|
+
private _context;
|
|
4
|
+
private isLowRes;
|
|
5
|
+
private wasLowRes;
|
|
6
|
+
private lastTime;
|
|
7
|
+
private _resolution;
|
|
8
|
+
private countSlowFrame;
|
|
9
|
+
private readonly logic;
|
|
10
|
+
constructor();
|
|
11
|
+
get context(): TgdContext | null;
|
|
12
|
+
set context(context: TgdContext | null);
|
|
13
|
+
reset(): void;
|
|
14
|
+
readonly highRes: () => void;
|
|
15
|
+
readonly lowRes: () => void;
|
|
16
|
+
private get resolution();
|
|
17
|
+
private set resolution(value);
|
|
18
|
+
private readonly computeResolution;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=adaptative-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptative-resolution.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-somas-only/manager/adaptative-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AAElE,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;;IAMxC,IAAI,OAAO,IAAI,UAAU,GAAG,IAAI,CAE/B;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EASrC;IAED,KAAK;IAML,QAAQ,CAAC,OAAO,aASd;IAEF,QAAQ,CAAC,MAAM,aASb;IAEF,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAMrB;IAED,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAuBhC;CACH"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { TgdPainterLogic } from "@tolokoban/tgd";
|
|
2
|
+
export class AdpatativeResolution {
|
|
3
|
+
constructor() {
|
|
4
|
+
this._context = null;
|
|
5
|
+
this.isLowRes = false;
|
|
6
|
+
this.wasLowRes = false;
|
|
7
|
+
this.lastTime = -1;
|
|
8
|
+
this._resolution = 1;
|
|
9
|
+
this.countSlowFrame = 0;
|
|
10
|
+
this.highRes = () => {
|
|
11
|
+
const { context } = this;
|
|
12
|
+
if (!context)
|
|
13
|
+
return;
|
|
14
|
+
if (context.resolution === 1)
|
|
15
|
+
return;
|
|
16
|
+
context.resolution = 1;
|
|
17
|
+
this.isLowRes = false;
|
|
18
|
+
context.paint();
|
|
19
|
+
};
|
|
20
|
+
this.lowRes = () => {
|
|
21
|
+
const { context } = this;
|
|
22
|
+
if (!context)
|
|
23
|
+
return;
|
|
24
|
+
if (context.resolution !== 1)
|
|
25
|
+
return;
|
|
26
|
+
context.resolution = this.resolution;
|
|
27
|
+
this.isLowRes = true;
|
|
28
|
+
context.paint();
|
|
29
|
+
};
|
|
30
|
+
this.computeResolution = () => {
|
|
31
|
+
const { wasLowRes, isLowRes, context } = this;
|
|
32
|
+
if (!context)
|
|
33
|
+
return;
|
|
34
|
+
this.wasLowRes = isLowRes;
|
|
35
|
+
const minFPS = 30;
|
|
36
|
+
const { fps } = context;
|
|
37
|
+
if (isLowRes && wasLowRes) {
|
|
38
|
+
if (fps < minFPS) {
|
|
39
|
+
this.countSlowFrame++;
|
|
40
|
+
if (this.countSlowFrame > 1) {
|
|
41
|
+
const curPixelsCount = Math.pow(this.resolution, 2);
|
|
42
|
+
const nxtPixelsCount = (curPixelsCount * fps) / minFPS;
|
|
43
|
+
this.resolution = Math.sqrt(nxtPixelsCount);
|
|
44
|
+
this.countSlowFrame = 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.countSlowFrame = 0;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.countSlowFrame = 0;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
this.logic = new TgdPainterLogic(this.computeResolution, { name: "AdpatativeResolution" });
|
|
56
|
+
}
|
|
57
|
+
get context() {
|
|
58
|
+
return this._context;
|
|
59
|
+
}
|
|
60
|
+
set context(context) {
|
|
61
|
+
if (this._context === context)
|
|
62
|
+
return;
|
|
63
|
+
if (this._context) {
|
|
64
|
+
this._context.remove(this.logic);
|
|
65
|
+
}
|
|
66
|
+
this._context = context;
|
|
67
|
+
this.reset();
|
|
68
|
+
context === null || context === void 0 ? void 0 : context.addFirst(this.logic);
|
|
69
|
+
}
|
|
70
|
+
reset() {
|
|
71
|
+
this.resolution = 1;
|
|
72
|
+
this.isLowRes = false;
|
|
73
|
+
this.wasLowRes = false;
|
|
74
|
+
}
|
|
75
|
+
get resolution() {
|
|
76
|
+
return this._resolution;
|
|
77
|
+
}
|
|
78
|
+
set resolution(resolution) {
|
|
79
|
+
if (this._resolution === resolution)
|
|
80
|
+
return;
|
|
81
|
+
this._resolution = resolution;
|
|
82
|
+
const { context } = this;
|
|
83
|
+
if (context)
|
|
84
|
+
context.resolution = resolution;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhdGl2ZS1yZXNvbHV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvYWRhcHRhdGl2ZS1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQjtRQVJRLGFBQVEsR0FBc0IsSUFBSSxDQUFDO1FBQ25DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQTJCbEIsWUFBTyxHQUFHLEdBQUcsRUFBRTtZQUN0QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFFckIsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUVyQyxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDO1FBRU8sV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNyQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFFckIsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUVyQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-occlusion.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE;IAAE,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,EAC9C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,EACjB,SAAS,SAAM,GACd,YAAY,
|
|
1
|
+
{"version":3,"file":"ambient-occlusion.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE;IAAE,GAAG,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,EAC9C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,EACjB,SAAS,SAAM,GACd,YAAY,CA+Cd"}
|
package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { Proximity } from "./proximity";
|
|
2
|
-
import { getUniformlyDistributedRays } from "./rays";
|
|
3
2
|
export function computeAmbientOcclusion(bbox, radius, points, uvs, intensity = 0.5) {
|
|
4
3
|
if (bbox.min[0] > bbox.max[0]) {
|
|
5
4
|
console.log("Skip computation for empty bounding boxes.");
|
|
6
5
|
return uvs;
|
|
7
6
|
}
|
|
8
|
-
const rays = getUniformlyDistributedRays();
|
|
9
|
-
console.log("🐞 [ambient-occlusion@19] rays =", rays);
|
|
10
7
|
const proximity = new Proximity(points, bbox, radius);
|
|
11
8
|
const radiusSquare = radius * radius;
|
|
12
|
-
const invRadiusSquare = 1 / radiusSquare;
|
|
13
9
|
let indexUV = 1;
|
|
14
10
|
let maxAO = 0;
|
|
15
11
|
for (let pointIndex = 0; pointIndex < points.length; pointIndex += 4) {
|
|
@@ -25,4 +21,4 @@ export function computeAmbientOcclusion(bbox, radius, points, uvs, intensity = 0
|
|
|
25
21
|
}
|
|
26
22
|
return uvs;
|
|
27
23
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1iaWVudC1vY2NsdXNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNvbWFzLW9ubHkvbWFuYWdlci9hbWJpZW50LW9jY2x1c2lvbi9hbWJpZW50LW9jY2x1c2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBS3hDLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsSUFBOEMsRUFDOUMsTUFBYyxFQUNkLE1BQW9CLEVBQ3BCLEdBQWlCLEVBQ2pCLFNBQVMsR0FBRyxHQUFHO0lBRWYsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUU5QixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDMUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBR0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxNQUFNLFlBQVksR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBRXJDLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxLQUFLLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLFNBQVMsQ0FBQyxlQUFlLENBQ3ZCLFVBQVUsRUFDVixDQUFDLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxVQUFrQixFQUFFLEVBQUUsQ0FDckUsQ0FBQyxPQUFPLElBQUksWUFBWSxHQUFHLFVBQVUsQ0FBQyxDQUN6QyxDQUFDO1FBbUJGLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIn0=
|
|
@@ -10,8 +10,13 @@ declare class PainterManager {
|
|
|
10
10
|
private bbox;
|
|
11
11
|
private scalebarCleanup;
|
|
12
12
|
private readonly painterGizmo;
|
|
13
|
-
private
|
|
13
|
+
private readonly adaptativeResolution;
|
|
14
14
|
private _somaRadius;
|
|
15
|
+
private readonly cameraOrtho;
|
|
16
|
+
private readonly cameraPersp;
|
|
17
|
+
private _cameraType;
|
|
18
|
+
get cameraType(): "orthographic" | "perspective";
|
|
19
|
+
set cameraType(cameraType: "orthographic" | "perspective");
|
|
15
20
|
get gizmo(): TgdPainterGizmoOptions | boolean | null | undefined;
|
|
16
21
|
set gizmo(gizmo: TgdPainterGizmoOptions | boolean | null | undefined);
|
|
17
22
|
get somaRadius(): number;
|
|
@@ -21,13 +26,12 @@ declare class PainterManager {
|
|
|
21
26
|
get cellInfos(): MorphoViewerCellInfo[];
|
|
22
27
|
set cellInfos(cellInfos: MorphoViewerCellInfo[]);
|
|
23
28
|
readonly cameraReset: () => void;
|
|
24
|
-
private
|
|
25
|
-
private readonly lowRes;
|
|
29
|
+
private applyBBoxToCamera;
|
|
26
30
|
private initialize;
|
|
27
31
|
private _cameraChangeTimeout;
|
|
28
32
|
private handleCameraChange;
|
|
29
33
|
private delete;
|
|
30
34
|
}
|
|
31
35
|
export type { PainterManager };
|
|
32
|
-
export declare function useManager({ cellInfos, somaRadius, gizmo, }: MorphoViewerSomasOnlyProps): PainterManager;
|
|
36
|
+
export declare function useManager({ cellInfos, somaRadius, gizmo, cameraType, }: MorphoViewerSomasOnlyProps): PainterManager;
|
|
33
37
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-somas-only/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,QAAQ,EAER,KAAK,sBAAsB,EAG5B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-somas-only/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,QAAQ,EAER,KAAK,sBAAsB,EAG5B,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEjF,cAAM,cAAc;IAIlB,SAAgB,aAAa,mBAA0B;IAEvD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8B;IACnE,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsD;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;IACjF,OAAO,CAAC,WAAW,CAAkD;IAErE,IAAI,UAAU,IAAI,cAAc,GAAG,aAAa,CAE/C;IACD,IAAI,UAAU,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa,EAUxD;IAED,IAAI,KAAK,IAGQ,sBAAsB,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CADnE;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAEnE;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAShC;IAED,IAAI,MAAM,IAAI,iBAAiB,GAAG,IAAI,CAErC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAM1C;IAED,IAAI,SAAS,IAAI,oBAAoB,EAAE,CAEtC;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,oBAAoB,EAAE,EAS9C;IAED,QAAQ,CAAC,WAAW,aA6BlB;IAEF,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,UAAU;IAmDlB,OAAO,CAAC,oBAAoB,CAAM;IAElC,OAAO,CAAC,kBAAkB,CAUxB;IAEF,OAAO,CAAC,MAAM;CAaf;AAED,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,UAAU,EACV,KAAK,EACL,UAAU,GACX,EAAE,0BAA0B,GAAG,cAAc,CAiB7C"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TgdBoundingBox, TgdCameraOrthographic, TgdContext, TgdControllerCameraOrbit, TgdEvent, TgdPainterClear, TgdPainterState, tgdActionCreateCameraInterpolation, } from "@tolokoban/tgd";
|
|
1
|
+
import { TgdBoundingBox, TgdCameraOrthographic, TgdCameraPerspective, TgdContext, TgdControllerCameraOrbit, TgdEvent, TgdPainterClear, TgdPainterState, tgdActionCreateCameraInterpolation, } from "@tolokoban/tgd";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { watchSpacePerPixel } from "./../../../behaviors";
|
|
4
4
|
import { PainterGizmo } from "./../../../painters/gizmo";
|
|
5
|
+
import { AdpatativeResolution } from "./adaptative-resolution";
|
|
5
6
|
import { PainterCellInfos } from "./painter-cell-infos";
|
|
6
7
|
class PainterManager {
|
|
7
8
|
constructor() {
|
|
@@ -14,8 +15,11 @@ class PainterManager {
|
|
|
14
15
|
this.bbox = new TgdBoundingBox();
|
|
15
16
|
this.scalebarCleanup = null;
|
|
16
17
|
this.painterGizmo = new PainterGizmo();
|
|
17
|
-
this.
|
|
18
|
+
this.adaptativeResolution = new AdpatativeResolution();
|
|
18
19
|
this._somaRadius = 1;
|
|
20
|
+
this.cameraOrtho = new TgdCameraOrthographic({ name: "CameraOrtho" });
|
|
21
|
+
this.cameraPersp = new TgdCameraPerspective({ name: "CameraPersp" });
|
|
22
|
+
this._cameraType = "orthographic";
|
|
19
23
|
this.cameraReset = () => {
|
|
20
24
|
const { context, bbox } = this;
|
|
21
25
|
if (!context)
|
|
@@ -38,27 +42,9 @@ class PainterManager {
|
|
|
38
42
|
context.animSchedule({
|
|
39
43
|
duration: 0.5,
|
|
40
44
|
action: tgdActionCreateCameraInterpolation(context.camera, state),
|
|
41
|
-
onEnd: this.highRes,
|
|
45
|
+
onEnd: this.adaptativeResolution.highRes,
|
|
42
46
|
});
|
|
43
|
-
this.lowRes();
|
|
44
|
-
};
|
|
45
|
-
this.highRes = () => {
|
|
46
|
-
const { context } = this;
|
|
47
|
-
if (!context)
|
|
48
|
-
return;
|
|
49
|
-
if (context.resolution === 1)
|
|
50
|
-
return;
|
|
51
|
-
context.resolution = 1;
|
|
52
|
-
context.paint();
|
|
53
|
-
};
|
|
54
|
-
this.lowRes = () => {
|
|
55
|
-
const { context } = this;
|
|
56
|
-
if (!context)
|
|
57
|
-
return;
|
|
58
|
-
if (context.resolution !== 1)
|
|
59
|
-
return;
|
|
60
|
-
context.resolution = this.resolutionForMovement;
|
|
61
|
-
context.paint();
|
|
47
|
+
this.adaptativeResolution.lowRes();
|
|
62
48
|
};
|
|
63
49
|
this._cameraChangeTimeout = -1;
|
|
64
50
|
this.handleCameraChange = () => {
|
|
@@ -66,10 +52,24 @@ class PainterManager {
|
|
|
66
52
|
if (!context)
|
|
67
53
|
return;
|
|
68
54
|
globalThis.clearTimeout(this._cameraChangeTimeout);
|
|
69
|
-
this._cameraChangeTimeout = globalThis.setTimeout(this.highRes, 50);
|
|
70
|
-
this.lowRes();
|
|
55
|
+
this._cameraChangeTimeout = globalThis.setTimeout(this.adaptativeResolution.highRes, 50);
|
|
56
|
+
this.adaptativeResolution.lowRes();
|
|
71
57
|
};
|
|
72
58
|
}
|
|
59
|
+
get cameraType() {
|
|
60
|
+
return this._cameraType;
|
|
61
|
+
}
|
|
62
|
+
set cameraType(cameraType) {
|
|
63
|
+
if (this._cameraType === cameraType)
|
|
64
|
+
return;
|
|
65
|
+
this._cameraType = cameraType;
|
|
66
|
+
const { context } = this;
|
|
67
|
+
if (context) {
|
|
68
|
+
context.camera = cameraType === "orthographic" ? this.cameraOrtho : this.cameraPersp;
|
|
69
|
+
this.applyBBoxToCamera();
|
|
70
|
+
context.paint();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
73
|
get gizmo() {
|
|
74
74
|
return this.painterGizmo.options;
|
|
75
75
|
}
|
|
@@ -87,6 +87,7 @@ class PainterManager {
|
|
|
87
87
|
if (painterCellInfos) {
|
|
88
88
|
painterCellInfos.somaRadius = somaRadius;
|
|
89
89
|
}
|
|
90
|
+
this.adaptativeResolution.reset();
|
|
90
91
|
}
|
|
91
92
|
get canvas() {
|
|
92
93
|
return this._canvas;
|
|
@@ -112,6 +113,19 @@ class PainterManager {
|
|
|
112
113
|
}
|
|
113
114
|
this.initialize();
|
|
114
115
|
}
|
|
116
|
+
applyBBoxToCamera() {
|
|
117
|
+
const { bbox, context } = this;
|
|
118
|
+
if (!context)
|
|
119
|
+
return;
|
|
120
|
+
context.execBeforeNextPaint(() => {
|
|
121
|
+
const { camera } = context;
|
|
122
|
+
camera.screenWidth = context.width;
|
|
123
|
+
camera.screenHeight = context.height;
|
|
124
|
+
camera.transfo.position = bbox.center;
|
|
125
|
+
camera.fitBoundingBox(bbox);
|
|
126
|
+
});
|
|
127
|
+
context.paint();
|
|
128
|
+
}
|
|
115
129
|
initialize() {
|
|
116
130
|
if (this.context) {
|
|
117
131
|
return;
|
|
@@ -120,7 +134,6 @@ class PainterManager {
|
|
|
120
134
|
if (!canvas || !cellInfos) {
|
|
121
135
|
return;
|
|
122
136
|
}
|
|
123
|
-
this.resolutionForMovement = Math.sqrt(Math.min(1, 250000 / this._cellInfos.length));
|
|
124
137
|
const context = new TgdContext(canvas, {
|
|
125
138
|
alpha: false,
|
|
126
139
|
antialias: true,
|
|
@@ -128,6 +141,7 @@ class PainterManager {
|
|
|
128
141
|
resolution: 1,
|
|
129
142
|
});
|
|
130
143
|
this.context = context;
|
|
144
|
+
this.adaptativeResolution.context = context;
|
|
131
145
|
this.scalebarCleanup = watchSpacePerPixel(context, this.eventScalebar);
|
|
132
146
|
const clear = new TgdPainterClear(context, {
|
|
133
147
|
color: [0, 0, 0, 1],
|
|
@@ -144,15 +158,11 @@ class PainterManager {
|
|
|
144
158
|
});
|
|
145
159
|
this.painterGizmo.context = context;
|
|
146
160
|
context.add(clear, state, this.painterGizmo);
|
|
147
|
-
const camera = new TgdCameraOrthographic();
|
|
148
161
|
const { bbox } = painterCellInfos;
|
|
149
162
|
this.bbox = bbox;
|
|
150
|
-
camera.
|
|
151
|
-
const [width, height, depth] = bbox.size;
|
|
152
|
-
camera.fitSpaceAtTarget(width, height);
|
|
153
|
-
camera.near = 1;
|
|
154
|
-
camera.far = Math.max(camera.transfo.distance, Math.max(width, height, depth)) * 2;
|
|
163
|
+
const camera = this.cameraType === "orthographic" ? this.cameraOrtho : this.cameraPersp;
|
|
155
164
|
context.camera = camera;
|
|
165
|
+
this.applyBBoxToCamera();
|
|
156
166
|
this.orbit = new TgdControllerCameraOrbit(context, {
|
|
157
167
|
inertiaOrbit: 1000,
|
|
158
168
|
inertiaPanning: 1000,
|
|
@@ -164,6 +174,7 @@ class PainterManager {
|
|
|
164
174
|
}
|
|
165
175
|
delete() {
|
|
166
176
|
var _a, _b;
|
|
177
|
+
this.adaptativeResolution.context = null;
|
|
167
178
|
if (!this.context) {
|
|
168
179
|
return;
|
|
169
180
|
}
|
|
@@ -174,7 +185,7 @@ class PainterManager {
|
|
|
174
185
|
this.context = null;
|
|
175
186
|
}
|
|
176
187
|
}
|
|
177
|
-
export function useManager({ cellInfos, somaRadius, gizmo, }) {
|
|
188
|
+
export function useManager({ cellInfos, somaRadius, gizmo, cameraType, }) {
|
|
178
189
|
const refManager = React.useRef(null);
|
|
179
190
|
if (!refManager.current)
|
|
180
191
|
refManager.current = new PainterManager();
|
|
@@ -182,6 +193,9 @@ export function useManager({ cellInfos, somaRadius, gizmo, }) {
|
|
|
182
193
|
React.useEffect(() => {
|
|
183
194
|
manager.cellInfos = cellInfos;
|
|
184
195
|
}, [cellInfos, manager]);
|
|
196
|
+
React.useEffect(() => {
|
|
197
|
+
manager.cameraType = cameraType !== null && cameraType !== void 0 ? cameraType : "orthographic";
|
|
198
|
+
}, [cameraType, manager]);
|
|
185
199
|
React.useEffect(() => {
|
|
186
200
|
manager.somaRadius = somaRadius !== null && somaRadius !== void 0 ? somaRadius : DEFAULT_SOMA_RADIUS;
|
|
187
201
|
}, [somaRadius, manager]);
|
|
@@ -191,4 +205,4 @@ export function useManager({ cellInfos, somaRadius, gizmo, }) {
|
|
|
191
205
|
return refManager.current;
|
|
192
206
|
}
|
|
193
207
|
const DEFAULT_SOMA_RADIUS = 12;
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc29tYXMtb25seS9tYW5hZ2VyL21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLFVBQVUsRUFDVix3QkFBd0IsRUFDeEIsUUFBUSxFQUNSLGVBQWUsRUFFZixlQUFlLEVBQ2Ysa0NBQWtDLEdBQ25DLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsTUFBTSxjQUFjO0lBQXBCO1FBSWtCLGtCQUFhLEdBQUcsSUFBSSxRQUFRLEVBQVUsQ0FBQztRQUUvQyxZQUFPLEdBQTZCLElBQUksQ0FBQztRQUN6QyxlQUFVLEdBQTJCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO1FBQ2pELFlBQU8sR0FBc0IsSUFBSSxDQUFDO1FBQ2xDLFVBQUssR0FBb0MsSUFBSSxDQUFDO1FBQzlDLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzVCLG9CQUFlLEdBQXdCLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQzNELGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsZ0JBQVcsR0FBRyxJQUFJLHFCQUFxQixDQUFDLEVBQUUs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
|
|
@@ -16,7 +16,7 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
16
16
|
const bbox = new TgdBoundingBox();
|
|
17
17
|
const painterPointsCloudOptions = parseCellInfos(options.cellInfos, bbox);
|
|
18
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,
|
|
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
20
|
enableSpecular: true,
|
|
21
21
|
specularExponent: 50,
|
|
22
22
|
}), radiusMultiplier: options.somaRadius }));
|
|
@@ -67,7 +67,7 @@ function parseCellInfos(cellInfos, bbox) {
|
|
|
67
67
|
maxY = Math.max(maxY, y);
|
|
68
68
|
maxZ = Math.max(maxZ, z);
|
|
69
69
|
dataPoint.push(x, y, z, 1);
|
|
70
|
-
dataUV.push(
|
|
70
|
+
dataUV.push(0.5, 0.5);
|
|
71
71
|
}
|
|
72
72
|
const invCount = 1 / cellInfos.length;
|
|
73
73
|
centerX *= invCount;
|
|
@@ -92,4 +92,4 @@ function middleLuminance(dataUV) {
|
|
|
92
92
|
}
|
|
93
93
|
return dataUV;
|
|
94
94
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLHFCQUFxQixFQUVyQixZQUFZLEVBRVosc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBT2xCLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBTW5ELFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDL0MsTUFBTSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEtBQUssRUFBRSxlQUFlO2dCQUN0QixLQUFLLEVBQUUsZUFBZTthQUN2QjtTQUNGLENBQUMsQ0FBQyxVQUFVLENBQ1gsc0JBQXNCLENBQ3BCLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsRUFDckUsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbEMsTUFBTSx5QkFBeUIsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLEdBQUcsR0FDUCxNQUFBLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsbUNBQ2pELElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsU0FB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
|
|
@@ -9,6 +9,7 @@ export type MorphoViewerSomasOnlyProps = PropsForGizmo & PropsForScalebar & {
|
|
|
9
9
|
className?: string;
|
|
10
10
|
somaRadius?: number;
|
|
11
11
|
cellInfos: MorphoViewerCellInfo[];
|
|
12
|
+
cameraType?: "orthographic" | "perspective";
|
|
12
13
|
onClose?(): void;
|
|
13
14
|
onMinimize?(): void;
|
|
14
15
|
controls?: ControlsLayoutProps["content"];
|
|
@@ -1 +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,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,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"}
|
|
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,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;IAC5C,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle, } from "@tolokoban/tgd";
|
|
2
2
|
export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
|
|
3
|
+
export * from "./components/icons";
|
|
3
4
|
export * from "./components/morpho-viewer-octree";
|
|
4
5
|
export * from "./components/morpho-viewer-simul";
|
|
5
6
|
export * from "./components/morpho-viewer-small-circuit";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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,oBAAoB,CAAC;AACnC,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/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle, } from "@tolokoban/tgd";
|
|
3
3
|
export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
|
|
4
|
+
export * from "./components/icons";
|
|
4
5
|
export * from "./components/morpho-viewer-octree";
|
|
5
6
|
export * from "./components/morpho-viewer-simul";
|
|
6
7
|
export * from "./components/morpho-viewer-small-circuit";
|
|
@@ -13,4 +14,4 @@ export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tre
|
|
|
13
14
|
export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree";
|
|
14
15
|
export { CellNodeType } from "./types";
|
|
15
16
|
export { useEventState, useEventValue } from "./utils";
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBRWIsT0FBTyxFQUNMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsSUFBSSxpQkFBaUIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsU0FBUyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDIn0=
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openbraininstitute/morphoviewer",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.2",
|
|
4
4
|
"description": "Class to display SWC files in 3D on a canvas",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"url": "https://github.com/openbraininstitute/morphoviewer/issues"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@tolokoban/tgd": "^2.0.
|
|
45
|
+
"@tolokoban/tgd": "^2.0.145",
|
|
46
46
|
"fflate": "^0.8.3",
|
|
47
47
|
"tslib": "^2.8.1"
|
|
48
48
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openbraininstitute/morphoviewer",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.2",
|
|
4
4
|
"description": "Class to display SWC files in 3D on a canvas",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"url": "https://github.com/openbraininstitute/morphoviewer/issues"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@tolokoban/tgd": "^2.0.
|
|
45
|
+
"@tolokoban/tgd": "^2.0.147",
|
|
46
46
|
"fflate": "^0.8.3",
|
|
47
47
|
"tslib": "^2.8.1"
|
|
48
48
|
},
|