@openbraininstitute/morphoviewer 0.30.0 → 0.31.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.
- package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.js +14 -9
- package/dist/components/morpho-viewer-small-circuit/morpho-viewer-small-circuit.module.css +10 -0
- package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts +4 -1
- package/dist/components/morpho-viewer-small-circuit/painter/camera.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/camera.js +12 -2
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +39 -8
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +292 -20
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +4 -4
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +2 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.js +3 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.d.ts +26 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.js +105 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.d.ts +11 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.js +7 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.d.ts +12 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.js +7 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +9 -2
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +76 -8
- package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.d.ts +6 -8
- package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.js +2 -1
- package/dist/components/morpho-viewer-small-circuit/types.d.ts +6 -2
- package/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +32 -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 +254 -13
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +5 -0
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.js +43 -6
- package/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.js +14 -9
- package/dist/components/morpho-viewer-somas-only/morpho-viewer-somas-only.module.css +10 -0
- package/dist/components/morpho-viewer-somas-only/types.d.ts +6 -2
- package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
- package/dist/components/signals.d.ts +6 -3
- package/dist/components/signals.d.ts.map +1 -1
- package/dist/components/signals.js +1 -1
- package/dist/components/types.d.ts +32 -0
- package/dist/components/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/package.json +2 -2
- package/dist/painters/overlay-interaction.d.ts +49 -0
- package/dist/painters/overlay-interaction.d.ts.map +1 -0
- package/dist/painters/overlay-interaction.js +432 -0
- package/dist/painters/overlay-surface.d.ts +18 -0
- package/dist/painters/overlay-surface.d.ts.map +1 -0
- package/dist/painters/overlay-surface.js +83 -0
- package/dist/painters/world-overlays.d.ts +25 -0
- package/dist/painters/world-overlays.d.ts.map +1 -0
- package/dist/painters/world-overlays.js +185 -0
- package/package.json +2 -2
- package/dist/components/snapshot.d.ts +0 -3
- package/dist/components/snapshot.d.ts.map +0 -1
- package/dist/components/snapshot.js +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export * from "./painter-cell";
|
|
2
|
-
|
|
2
|
+
export * from "./painter-cell-flat";
|
|
3
|
+
export * from "./painter-cell-id";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNtYWxsLWNpcmN1aXQvcGFpbnRlci9wYWludGVyLWNlbGwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUMifQ==
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ArrayNumber4, TgdLight, TgdMaterial, TgdTexture2D, TgdVec4 } from "@tolokoban/tgd";
|
|
2
|
+
export type MaterialDiffuseAlphaOptions = Partial<{
|
|
3
|
+
color: TgdVec4 | ArrayNumber4 | TgdTexture2D;
|
|
4
|
+
light: TgdLight;
|
|
5
|
+
ambient: TgdLight;
|
|
6
|
+
specularExponent: number;
|
|
7
|
+
specularIntensity: number;
|
|
8
|
+
lockLightsToCamera: boolean;
|
|
9
|
+
alphaCut: number;
|
|
10
|
+
opacity: number;
|
|
11
|
+
}>;
|
|
12
|
+
export declare class MaterialDiffuseAlpha extends TgdMaterial {
|
|
13
|
+
light: TgdLight;
|
|
14
|
+
ambient: TgdLight;
|
|
15
|
+
specularExponent: number;
|
|
16
|
+
specularIntensity: number;
|
|
17
|
+
alphaCut: number;
|
|
18
|
+
readonly texture: TgdTexture2D | null;
|
|
19
|
+
private _opacity;
|
|
20
|
+
private readonly lightColor;
|
|
21
|
+
private readonly ambientColor;
|
|
22
|
+
constructor(options?: MaterialDiffuseAlphaOptions);
|
|
23
|
+
get opacity(): number;
|
|
24
|
+
set opacity(opacity: number);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=material-diffuse-alpha.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-diffuse-alpha.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,QAAQ,EACR,WAAW,EACX,YAAY,EAEZ,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC;IAChD,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;IAC7C,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,QAAQ,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAI5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAMH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,QAAQ,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;gBAElC,OAAO,GAAE,2BAAgC;IA6FrD,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAE1B;CACF"}
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-diffuse-alpha.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { TgdLight, TgdMaterial, TgdTexture2D, TgdVec3, TgdVec4, } from "@tolokoban/tgd";
|
|
2
|
+
export class MaterialDiffuseAlpha extends TgdMaterial {
|
|
3
|
+
constructor(options = {}) {
|
|
4
|
+
var _a, _b, _c;
|
|
5
|
+
const alphaCut = (_a = options.alphaCut) !== null && _a !== void 0 ? _a : 0;
|
|
6
|
+
const colorOrTexture = options.color instanceof TgdTexture2D
|
|
7
|
+
? options.color
|
|
8
|
+
: new TgdVec4((_b = options.color) !== null && _b !== void 0 ? _b : DEFAULT_COLOR);
|
|
9
|
+
const hasTexture = colorOrTexture instanceof TgdTexture2D;
|
|
10
|
+
const uniforms = {
|
|
11
|
+
uniAlphaCut: "float",
|
|
12
|
+
uniOpacity: "float",
|
|
13
|
+
uniLight: "vec3",
|
|
14
|
+
uniLightDir: "vec3",
|
|
15
|
+
uniAmbient: "vec3",
|
|
16
|
+
uniSpecularExponent: "float",
|
|
17
|
+
uniSpecularIntensity: "float",
|
|
18
|
+
uniModelViewMatrix: "mat4",
|
|
19
|
+
};
|
|
20
|
+
const fragmentShaderCode = [
|
|
21
|
+
hasTexture
|
|
22
|
+
? "vec4 color = texture(uniTextureColor, varUV);"
|
|
23
|
+
: `vec4 color = vec4(${colorOrTexture.join(", ")});`,
|
|
24
|
+
"if (color.a < uniAlphaCut) discard;",
|
|
25
|
+
`vec3 normal = ${options.lockLightsToCamera ? "mat3(uniModelViewMatrix) * " : ""}normalize(varNormal);`,
|
|
26
|
+
"float light = 1.0 - dot(normal, uniLightDir);",
|
|
27
|
+
options.lockLightsToCamera ? "light = max(0.0, light - 1.0);" : "light *= .5;",
|
|
28
|
+
`vec3 reflection = ${options.lockLightsToCamera ? "" : "mat3(uniModelViewMatrix) * "}reflect(uniLightDir, normal);`,
|
|
29
|
+
"float spec = max(0.0, reflection.z);",
|
|
30
|
+
"spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;",
|
|
31
|
+
"color = vec4(",
|
|
32
|
+
" color.rgb * (",
|
|
33
|
+
" uniAmbient + uniLight * light",
|
|
34
|
+
" ) + vec3(spec),",
|
|
35
|
+
" uniOpacity",
|
|
36
|
+
");",
|
|
37
|
+
"return color;",
|
|
38
|
+
];
|
|
39
|
+
const varyings = {
|
|
40
|
+
varNormal: "vec3",
|
|
41
|
+
};
|
|
42
|
+
if (hasTexture) {
|
|
43
|
+
varyings.varUV = "vec2";
|
|
44
|
+
}
|
|
45
|
+
super({
|
|
46
|
+
uniforms,
|
|
47
|
+
textures: hasTexture
|
|
48
|
+
? {
|
|
49
|
+
uniTextureColor: colorOrTexture,
|
|
50
|
+
}
|
|
51
|
+
: {},
|
|
52
|
+
varyings,
|
|
53
|
+
vertexShaderCode: () => {
|
|
54
|
+
const code = [`varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`];
|
|
55
|
+
if (hasTexture) {
|
|
56
|
+
code.push(`varUV = ${this.attUV};`);
|
|
57
|
+
}
|
|
58
|
+
return code;
|
|
59
|
+
},
|
|
60
|
+
fragmentShaderCode,
|
|
61
|
+
setUniforms: ({ program }) => {
|
|
62
|
+
program.uniform1f("uniAlphaCut", this.alphaCut);
|
|
63
|
+
program.uniform1f("uniOpacity", this._opacity);
|
|
64
|
+
program.uniform3fv("uniLightDir", this.light.direction);
|
|
65
|
+
this.lightColor.from(this.light.color).scale(this.light.color.w);
|
|
66
|
+
program.uniform3fv("uniLight", this.lightColor);
|
|
67
|
+
this.ambientColor.from(this.ambient.color).scale(this.ambient.color.w);
|
|
68
|
+
program.uniform3fv("uniAmbient", this.ambientColor);
|
|
69
|
+
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
70
|
+
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
this.lightColor = new TgdVec3();
|
|
74
|
+
this.ambientColor = new TgdVec3();
|
|
75
|
+
this.light = new TgdLight({
|
|
76
|
+
direction: [-0.3, 0.3, -1],
|
|
77
|
+
});
|
|
78
|
+
this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
|
|
79
|
+
this.specularExponent = 20;
|
|
80
|
+
this.specularIntensity = 1;
|
|
81
|
+
this.alphaCut = alphaCut;
|
|
82
|
+
this._opacity = (_c = options.opacity) !== null && _c !== void 0 ? _c : 1;
|
|
83
|
+
this.texture = hasTexture ? colorOrTexture : null;
|
|
84
|
+
if (options.light) {
|
|
85
|
+
this.light = options.light;
|
|
86
|
+
}
|
|
87
|
+
if (options.ambient) {
|
|
88
|
+
this.ambient = options.ambient;
|
|
89
|
+
}
|
|
90
|
+
if (typeof options.specularExponent === "number") {
|
|
91
|
+
this.specularExponent = options.specularExponent;
|
|
92
|
+
}
|
|
93
|
+
if (typeof options.specularIntensity === "number") {
|
|
94
|
+
this.specularIntensity = options.specularIntensity;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
get opacity() {
|
|
98
|
+
return this._opacity;
|
|
99
|
+
}
|
|
100
|
+
set opacity(opacity) {
|
|
101
|
+
this._opacity = opacity;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZGlmZnVzZS1hbHBoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc21hbGwtY2lyY3VpdC9wYWludGVyL3BhaW50ZXItY2VsbC9tYXRlcmlhbC1kaWZmdXNlLWFscGhhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixPQUFPLEVBQ1AsT0FBTyxHQUNSLE1BQU0sZ0JBQWdCLENBQUM7QUFxQnhCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUFXO0lBV25ELFlBQVksVUFBdUMsRUFBRTs7UUFDbkQsTUFBTSxRQUFRLEdBQUcsTUFBQSxPQUFPLENBQUMsUUFBUSxtQ0FBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxjQUFjLEdBQ2xCLE9BQU8sQ0FBQyxLQUFLLFlBQVksWUFBWTtZQUNuQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDZixDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxhQUFhLENBQUMsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxjQUFjLFlBQVksWUFBWSxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHO1lBQ2YsV0FBVyxFQUFFLE9BQWdCO1lBQzdCLFVBQVUsRUFBRSxPQUFnQjtZQUM1QixRQUFRLEVBQUUsTUFBZTtZQUN6QixXQUFXLEVBQUUsTUFBZTtZQUM1QixVQUFVLEVBQUUsTUFBZTtZQUMzQixtQkFBbUIsRUFBRSxPQUFnQjtZQUNyQyxvQkFBb0IsRUFBRSxPQUFnQjtZQUN0QyxrQkFBa0IsRUFBRSxNQUFlO1NBQ3BDLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHO1lBQ3pCLFVBQVU7Z0JBQ1IsQ0FBQyxDQUFDLCtDQUErQztnQkFDakQsQ0FBQyxDQUFDLHFCQUFxQixjQUFjLENBQUMsSUFBSSxDQUFD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
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PainterCell } from "./painter-cell";
|
|
2
|
+
import type { TgdContext } from "@tolokoban/tgd";
|
|
3
|
+
import type { MorphoViewerSmallCircuitCell, MorphoViewerSmallCircuitCellData } from "../../types";
|
|
4
|
+
export interface PainterCellFlatOptions {
|
|
5
|
+
cell: MorphoViewerSmallCircuitCell;
|
|
6
|
+
loadCell(id: string): Promise<MorphoViewerSmallCircuitCellData | null>;
|
|
7
|
+
}
|
|
8
|
+
export declare class PainterCellFlat extends PainterCell {
|
|
9
|
+
constructor(context: TgdContext, options: PainterCellFlatOptions);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=painter-cell-flat.d.ts.map
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"painter-cell-flat.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-flat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAElG,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;CACxE;AAED,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB;CAMjE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PainterCell } from "./painter-cell";
|
|
2
|
+
export class PainterCellFlat extends PainterCell {
|
|
3
|
+
constructor(context, options) {
|
|
4
|
+
super(context, Object.assign(Object.assign({}, options), { matrerial: "flat" }));
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWZsYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb3JwaG8tdmlld2VyLXNtYWxsLWNpcmN1aXQvcGFpbnRlci9wYWludGVyLWNlbGwvcGFpbnRlci1jZWxsLWZsYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVTdDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUFDOUMsWUFBWSxPQUFtQixFQUFFLE9BQStCO1FBQzlELEtBQUssQ0FBQyxPQUFPLGtDQUNSLE9BQU8sS0FDVixTQUFTLEVBQUUsTUFBTSxJQUNqQixDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PainterCell } from "./painter-cell";
|
|
2
|
+
import type { TgdContext } from "@tolokoban/tgd";
|
|
3
|
+
import type { MorphoViewerSmallCircuitCell, MorphoViewerSmallCircuitCellData } from "../../types";
|
|
4
|
+
export interface PainterCellIdOptions {
|
|
5
|
+
id: number;
|
|
6
|
+
cell: MorphoViewerSmallCircuitCell;
|
|
7
|
+
loadCell(id: string): Promise<MorphoViewerSmallCircuitCellData | null>;
|
|
8
|
+
}
|
|
9
|
+
export declare class PainterCellId extends PainterCell {
|
|
10
|
+
constructor(context: TgdContext, options: PainterCellIdOptions);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=painter-cell-id.d.ts.map
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"painter-cell-id.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;CACxE;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB;CAM/D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PainterCell } from "./painter-cell";
|
|
2
|
+
export class PainterCellId extends PainterCell {
|
|
3
|
+
constructor(context, options) {
|
|
4
|
+
super(context, Object.assign(Object.assign({}, options), { matrerial: options.id }));
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvcGFpbnRlci1jZWxsL3BhaW50ZXItY2VsbC1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXN0MsTUFBTSxPQUFPLGFBQWMsU0FBUSxXQUFXO0lBQzVDLFlBQVksT0FBbUIsRUFBRSxPQUE2QjtRQUM1RCxLQUFLLENBQUMsT0FBTyxrQ0FDUixPQUFPLEtBQ1YsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQ3JCLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
import { TgdBoundingBox, type TgdContext, TgdPainterGroup } from "@tolokoban/tgd";
|
|
2
2
|
import type { MorphoViewerSmallCircuitCell, MorphoViewerSmallCircuitCellData } from "../../types";
|
|
3
3
|
export interface PainterCellOptions {
|
|
4
|
+
name?: string;
|
|
4
5
|
matrerial?: PainterCellMaterialName;
|
|
5
6
|
cell: MorphoViewerSmallCircuitCell;
|
|
6
7
|
loadCell(id: string): Promise<MorphoViewerSmallCircuitCellData | null>;
|
|
7
8
|
onCellLoaded?(bbox: TgdBoundingBox | null): void;
|
|
9
|
+
opacity?: number;
|
|
8
10
|
}
|
|
9
11
|
export type PainterCellMaterialName = "full" | "flat" | number;
|
|
10
12
|
export declare class PainterCell extends TgdPainterGroup {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
readonly context: TgdContext;
|
|
14
|
+
protected readonly options: PainterCellOptions;
|
|
15
|
+
private static ID;
|
|
13
16
|
private readonly material;
|
|
14
17
|
private _black;
|
|
15
18
|
private readonly texturePalette;
|
|
16
19
|
private readonly textureBlack;
|
|
17
20
|
private _isDeleted;
|
|
21
|
+
private _bbox;
|
|
18
22
|
constructor(context: TgdContext, options: PainterCellOptions);
|
|
23
|
+
get bbox(): Readonly<TgdBoundingBox>;
|
|
19
24
|
get isDeleted(): boolean;
|
|
20
25
|
private set isDeleted(value);
|
|
21
26
|
get black(): boolean;
|
|
22
27
|
set black(value: boolean);
|
|
28
|
+
get opacity(): number;
|
|
29
|
+
set opacity(opacity: number);
|
|
23
30
|
paint(time: number, delta: number): void;
|
|
24
31
|
private loadCell;
|
|
25
32
|
delete(): void;
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"painter-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"painter-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,KAAK,UAAU,EAQf,eAAe,EAOhB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,KAAK,EACV,4BAA4B,EAC5B,gCAAgC,EAEjC,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,IAAI,EAAE,4BAA4B,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAKvE,YAAY,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;IAEjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,qBAAa,WAAY,SAAQ,eAAe;aAW5B,OAAO,EAAE,UAAU;IACnC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB;IAXhD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAwB;gBAGnB,OAAO,EAAE,UAAU,EAChB,OAAO,EAAE,kBAAkB;IAmDhD,IAAI,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,CAEnC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IACD,OAAO,KAAK,SAAS,QAIpB;IAGD,IAAI,KAAK,IAGQ,OAAO,CADvB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAQvB;IAED,IAAI,OAAO,IAAI,MAAM,CAMpB;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAK1B;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;YAM1B,QAAQ;IAoCtB,MAAM,IAAI,IAAI;CAKf"}
|
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { TgdBoundingBox, TgdColor, TgdGeometrySphereIco, TgdLight,
|
|
2
|
+
import { TgdBoundingBox, TgdColor, TgdGeometrySphereIco, TgdLight, TgdMaterialFlat, TgdMaterialFlatTexture, TgdPainterGroup, TgdPainterMesh, TgdQuat, TgdTexture2D, TgdVec4, tgdCanvasCreatePalette, } from "@tolokoban/tgd";
|
|
3
|
+
import { MorphoViewerTreeItemType } from "./../../../morpho-viewer-simul";
|
|
3
4
|
import { int16ToVec3 } from "./../../../../utils";
|
|
4
5
|
import { createCellFromTree } from "./factory/tree";
|
|
6
|
+
import { MaterialDiffuseAlpha } from "./material-diffuse-alpha";
|
|
5
7
|
export class PainterCell extends TgdPainterGroup {
|
|
6
8
|
constructor(context, options) {
|
|
7
|
-
var _a;
|
|
9
|
+
var _a, _b, _c;
|
|
8
10
|
super({
|
|
9
|
-
name: `PainterCell / ${options.cell.id}`,
|
|
11
|
+
name: (_a = options.name) !== null && _a !== void 0 ? _a : `PainterCell / ${options.cell.id} #${PainterCell.ID++} [${typeof options.matrerial === "number" ? `ID: ${options.matrerial}` : options.matrerial}]`,
|
|
10
12
|
});
|
|
11
13
|
this.context = context;
|
|
12
14
|
this.options = options;
|
|
13
15
|
this._black = false;
|
|
14
16
|
this._isDeleted = false;
|
|
17
|
+
this._bbox = new TgdBoundingBox();
|
|
15
18
|
const { cell } = options;
|
|
19
|
+
const [x, y, z] = options.cell.center;
|
|
20
|
+
this.bbox.addSphere(x, y, z, cell.somaRadius * 5);
|
|
16
21
|
const texture = createPaletteTexture(context, cell.color);
|
|
17
22
|
this.texturePalette = texture;
|
|
18
|
-
this.textureBlack = new TgdTexture2D(context).
|
|
19
|
-
const materialType = (
|
|
23
|
+
this.textureBlack = new TgdTexture2D(context).fill("#000");
|
|
24
|
+
const materialType = (_b = options.matrerial) !== null && _b !== void 0 ? _b : "full";
|
|
20
25
|
switch (materialType) {
|
|
21
26
|
case "full":
|
|
22
|
-
this.material = new
|
|
27
|
+
this.material = new MaterialDiffuseAlpha({
|
|
23
28
|
color: texture,
|
|
24
29
|
lockLightsToCamera: true,
|
|
30
|
+
opacity: (_c = options.opacity) !== null && _c !== void 0 ? _c : 1,
|
|
25
31
|
ambient: new TgdLight({
|
|
26
32
|
color: [0.8, 0.8, 0.8, 0],
|
|
27
33
|
}),
|
|
@@ -49,6 +55,9 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
49
55
|
this.add(mesh);
|
|
50
56
|
this.loadCell();
|
|
51
57
|
}
|
|
58
|
+
get bbox() {
|
|
59
|
+
return this._bbox;
|
|
60
|
+
}
|
|
52
61
|
get isDeleted() {
|
|
53
62
|
return this._isDeleted || this.context.isDeleted;
|
|
54
63
|
}
|
|
@@ -69,6 +78,19 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
69
78
|
material.texture = value ? this.textureBlack : this.texturePalette;
|
|
70
79
|
}
|
|
71
80
|
}
|
|
81
|
+
get opacity() {
|
|
82
|
+
const { material } = this;
|
|
83
|
+
if (material instanceof MaterialDiffuseAlpha) {
|
|
84
|
+
return material.opacity;
|
|
85
|
+
}
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
set opacity(opacity) {
|
|
89
|
+
const { material } = this;
|
|
90
|
+
if (material instanceof MaterialDiffuseAlpha) {
|
|
91
|
+
material.opacity = opacity;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
72
94
|
paint(time, delta) {
|
|
73
95
|
if (this.context.isDeleted)
|
|
74
96
|
return;
|
|
@@ -87,9 +109,16 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
87
109
|
const quat = new TgdQuat(cell.orientation);
|
|
88
110
|
node.transfo.setPosition(x, y, z);
|
|
89
111
|
node.transfo.orientation = quat;
|
|
90
|
-
|
|
112
|
+
const [sx, sy, sz] = computeSomaCenter(data, node.transfo);
|
|
113
|
+
const transformedBBox = recenterBBox(applyTransfoToBBox(node.transfo, bbox), sx, sy, sz);
|
|
91
114
|
this.removeAll();
|
|
92
115
|
this.add(node);
|
|
116
|
+
if (transformedBBox) {
|
|
117
|
+
this._bbox = transformedBBox;
|
|
118
|
+
}
|
|
119
|
+
if (onCellLoaded) {
|
|
120
|
+
onCellLoaded(transformedBBox);
|
|
121
|
+
}
|
|
93
122
|
context.paint();
|
|
94
123
|
}
|
|
95
124
|
}
|
|
@@ -105,6 +134,7 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
105
134
|
this.isDeleted = true;
|
|
106
135
|
}
|
|
107
136
|
}
|
|
137
|
+
PainterCell.ID = 1;
|
|
108
138
|
function isCellAsTree(data) {
|
|
109
139
|
if (!data || data.type !== "tree")
|
|
110
140
|
return false;
|
|
@@ -172,4 +202,42 @@ function applyTransfoToBBox(transfo, bbox) {
|
|
|
172
202
|
}
|
|
173
203
|
return transformedBBox;
|
|
174
204
|
}
|
|
175
|
-
|
|
205
|
+
function recenterBBox(bbox, x, y, z) {
|
|
206
|
+
if (!bbox)
|
|
207
|
+
return null;
|
|
208
|
+
const sizeX = Math.max(Math.abs(x - bbox.min[0]), Math.abs(x - bbox.max[0]));
|
|
209
|
+
const sizeY = Math.max(Math.abs(y - bbox.min[1]), Math.abs(y - bbox.max[1]));
|
|
210
|
+
const sizeZ = Math.max(Math.abs(z - bbox.min[2]), Math.abs(z - bbox.max[2]));
|
|
211
|
+
bbox.addPoint(x - sizeX, y - sizeY, z - sizeZ);
|
|
212
|
+
bbox.addPoint(x + sizeX, y + sizeY, z + sizeZ);
|
|
213
|
+
return bbox;
|
|
214
|
+
}
|
|
215
|
+
function computeSomaCenter(data, transfo) {
|
|
216
|
+
let count = 0;
|
|
217
|
+
let x = 0;
|
|
218
|
+
let y = 0;
|
|
219
|
+
let z = 0;
|
|
220
|
+
const fringe = [...data.data.roots];
|
|
221
|
+
while (fringe.length > 0) {
|
|
222
|
+
const item = fringe.pop();
|
|
223
|
+
if (!item)
|
|
224
|
+
break;
|
|
225
|
+
if (item.type !== MorphoViewerTreeItemType.Soma)
|
|
226
|
+
continue;
|
|
227
|
+
x += item.x;
|
|
228
|
+
y += item.y;
|
|
229
|
+
z += item.z;
|
|
230
|
+
count++;
|
|
231
|
+
if (item.children)
|
|
232
|
+
fringe.push(...item.children);
|
|
233
|
+
}
|
|
234
|
+
if (count === 0)
|
|
235
|
+
return [0, 0, 0];
|
|
236
|
+
const center = new TgdVec4(x, y, z, 0).scale(1 / count);
|
|
237
|
+
center.w = 1;
|
|
238
|
+
if (transfo) {
|
|
239
|
+
center.applyMatrix(transfo.matrix);
|
|
240
|
+
}
|
|
241
|
+
return center;
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvcGFpbnRlci1jZWxsL3BhaW50ZXItY2VsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCxRQUFRLEVBRVIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFFUixlQUFlLEVBQ2Ysc0JBQXNCLEVBR3RCLGVBQWUsRUFDZixjQUFjLEVBQ2QsT0FBTyxFQUNQLFlBQVksRUFFWixPQUFPLEVBQ1Asc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUF5Qix3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUF3QmhFLE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBZTtJQVU5QyxZQUNrQixPQUFtQixFQUNoQixPQUEyQjs7UUFFOUMsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUNGLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQ1osaUJBQWlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRztTQUN0SixDQUFDLENBQUM7UUFQYSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBUnhDLFdBQU0sR0FBRyxLQUFL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
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { type TgdContext, TgdPainterGroup } from "@tolokoban/tgd";
|
|
2
|
+
export type MorphoViewerSynapseGroup = {
|
|
3
|
+
color: string;
|
|
4
|
+
coordinates: Float32Array | number[];
|
|
5
|
+
};
|
|
2
6
|
export declare class PainterSynapses extends TgdPainterGroup {
|
|
3
7
|
readonly context: TgdContext;
|
|
4
8
|
private readonly texture;
|
|
@@ -11,13 +15,7 @@ export declare class PainterSynapses extends TgdPainterGroup {
|
|
|
11
15
|
set radius(radius: number);
|
|
12
16
|
get minRadiusInPixels(): number;
|
|
13
17
|
set minRadiusInPixels(minRadiusInPixels: number);
|
|
14
|
-
get synapses():
|
|
15
|
-
|
|
16
|
-
color: string;
|
|
17
|
-
}>;
|
|
18
|
-
set synapses(synapses: Array<{
|
|
19
|
-
coordinates: number[] | Float32Array;
|
|
20
|
-
color: string;
|
|
21
|
-
}>);
|
|
18
|
+
get synapses(): MorphoViewerSynapseGroup[];
|
|
19
|
+
set synapses(synapses: MorphoViewerSynapseGroup[]);
|
|
22
20
|
}
|
|
23
21
|
//# sourceMappingURL=painter-synapses.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"painter-synapses.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AAExB,qBAAa,eAAgB,SAAQ,eAAe;aAOtB,OAAO,EAAE,UAAU;IAN/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"painter-synapses.d.ts","sourceRoot":"","sources":["../../../../../src/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,YAAY,GAAG,MAAM,EAAE,CAAC;CACtC,CAAC;AAMF,qBAAa,eAAgB,SAAQ,eAAe;aAOtB,OAAO,EAAE,UAAU;IAN/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,kBAAkB,CAAK;gBAEH,OAAO,EAAE,UAAU;IAU/C,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EASxB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IACD,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAS9C;IAED,IAAI,QAAQ,IAAI,wBAAwB,EAAE,CAEzC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,EAAE,EAgChD;CACF"}
|
package/dist/components/morpho-viewer-small-circuit/painter/painter-synapses/painter-synapses.js
CHANGED
|
@@ -48,6 +48,7 @@ export class PainterSynapses extends TgdPainterGroup {
|
|
|
48
48
|
return;
|
|
49
49
|
this._synapses = synapses;
|
|
50
50
|
this.removeAll();
|
|
51
|
+
this.painter = null;
|
|
51
52
|
if (synapses.length > 0) {
|
|
52
53
|
this.texture.loadBitmap(tgdCanvasCreatePalette(synapses.map((synapse) => synapse.color)));
|
|
53
54
|
const attXYZR = [];
|
|
@@ -76,4 +77,4 @@ export class PainterSynapses extends TgdPainterGroup {
|
|
|
76
77
|
this.context.paint();
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1zeW5hcHNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc21hbGwtY2lyY3VpdC9wYWludGVyL3BhaW50ZXItc3luYXBzZXMvcGFpbnRlci1zeW5hcHNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFXeEIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQU9sRCxZQUE0QixPQUFtQjtRQUM3QyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRFQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUx2QyxjQUFTLEdBQStCLEVBQUUsQ0FBQztRQUMzQyxZQUFPLEdBQWlDLElBQUksQ0FBQztRQUM3QyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQ3ZDLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsU0FBUztnQkFDcEIsU0FBUyxFQUFFLFNBQVM7YUFDckI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFjO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNO1lBQUUsT0FBTztRQUVwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsZ0JB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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ControlsLayoutProps } from "../controls-layout";
|
|
2
2
|
import type { MorphoViewerTree } from "../morpho-viewer-simul";
|
|
3
3
|
import type { MorphoViewerSignals } from "../signals";
|
|
4
|
-
import type { PropsForGizmo, PropsForScalebar } from "../types";
|
|
4
|
+
import type { MorphoViewerWorldOverlay, PropsForGizmo, PropsForOverlayInteraction, PropsForScalebar } from "../types";
|
|
5
5
|
export interface SectionColors {
|
|
6
6
|
soma: string;
|
|
7
7
|
axon: string;
|
|
@@ -21,16 +21,20 @@ export type MorphoViewerSmallCircuitCellData = {
|
|
|
21
21
|
type: "tree";
|
|
22
22
|
data: MorphoViewerTree;
|
|
23
23
|
};
|
|
24
|
-
export type MorphoViewerSmallCircuitProps = PropsForGizmo & PropsForScalebar & {
|
|
24
|
+
export type MorphoViewerSmallCircuitProps = PropsForGizmo & PropsForScalebar & PropsForOverlayInteraction & {
|
|
25
25
|
className?: string;
|
|
26
26
|
backgroundColor?: string;
|
|
27
27
|
circuit: MorphoViewerSmallCircuitCell[];
|
|
28
|
+
overlays?: MorphoViewerWorldOverlay[];
|
|
29
|
+
overlaysRadius?: number;
|
|
30
|
+
overlaysMinRadiusInPixels?: number;
|
|
28
31
|
synapses?: Array<{
|
|
29
32
|
color: string;
|
|
30
33
|
coordinates: Float32Array | number[];
|
|
31
34
|
}>;
|
|
32
35
|
synapsesRadius?: number;
|
|
33
36
|
synapsesMinRadiusInPixels?: number;
|
|
37
|
+
neuronOpacity?: number;
|
|
34
38
|
highlightedCellIds?: string[];
|
|
35
39
|
onCellHover?(cell: MorphoViewerSmallCircuitCell | undefined): void;
|
|
36
40
|
onCellClick?(cell: MorphoViewerSmallCircuitCell | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,aAAa,GACvD,gBAAgB,GAChB,0BAA0B,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,4BAA4B,EAAE,CAAC;IAMxC,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAEtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAKnC,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,YAAY,GAAG,MAAM,EAAE,CAAC;KACtC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAOnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAC;IACnE,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,UAAU,CAAC,IAAI,IAAI,CAAC;IAKpB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAOvE,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAM1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAQlB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import { TgdEvent, type TgdPainterGizmoOptions } from "@tolokoban/tgd";
|
|
2
|
-
import type {
|
|
2
|
+
import type { MorphoViewerSignalCameraResetOptions, MorphoViewerSignalSnapshotOptions } from "../../signals";
|
|
3
|
+
import type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay } from "../../types";
|
|
3
4
|
import type { MorphoViewerCellInfo, MorphoViewerSomasOnlyProps } from "../types";
|
|
4
5
|
declare class PainterManager {
|
|
5
6
|
readonly eventScalebar: TgdEvent<number>;
|
|
6
7
|
private _canvas;
|
|
8
|
+
private _overlayCanvas;
|
|
7
9
|
private _cellInfos;
|
|
8
10
|
private _backgroundColor;
|
|
9
11
|
private readonly parsedBackgroundColor;
|
|
10
12
|
private painterCellInfos;
|
|
13
|
+
private painterOverlays;
|
|
14
|
+
private readonly overlaySurface;
|
|
15
|
+
private overlayInteraction;
|
|
16
|
+
private _overlays;
|
|
17
|
+
private _overlaysRadius;
|
|
18
|
+
private _overlaysMinRadiusInPixels;
|
|
19
|
+
private _overlaysInteractive;
|
|
20
|
+
private _onOverlayTransform?;
|
|
21
|
+
private _highlightedOverlayId;
|
|
22
|
+
private _pinnedOverlayOrigin;
|
|
23
|
+
private _pinTimeout;
|
|
11
24
|
private state;
|
|
12
25
|
private painterClear;
|
|
13
26
|
private context;
|
|
@@ -17,6 +30,8 @@ declare class PainterManager {
|
|
|
17
30
|
private readonly painterGizmo;
|
|
18
31
|
private readonly adaptativeResolution;
|
|
19
32
|
private _somaRadius;
|
|
33
|
+
private _neuronOpacity;
|
|
34
|
+
private spacePerPixel;
|
|
20
35
|
private readonly cameraOrtho;
|
|
21
36
|
private readonly cameraPersp;
|
|
22
37
|
private _cameraType;
|
|
@@ -26,21 +41,34 @@ declare class PainterManager {
|
|
|
26
41
|
set gizmo(gizmo: TgdPainterGizmoOptions | boolean | null | undefined);
|
|
27
42
|
get somaRadius(): number;
|
|
28
43
|
set somaRadius(somaRadius: number);
|
|
44
|
+
get neuronOpacity(): number;
|
|
45
|
+
set neuronOpacity(neuronOpacity: number);
|
|
29
46
|
get canvas(): HTMLCanvasElement | null;
|
|
30
47
|
set canvas(canvas: HTMLCanvasElement | null);
|
|
48
|
+
get overlayCanvas(): HTMLCanvasElement | null;
|
|
49
|
+
set overlayCanvas(canvas: HTMLCanvasElement | null);
|
|
31
50
|
get backgroundColor(): string;
|
|
32
51
|
set backgroundColor(backgroundColor: string);
|
|
33
52
|
get cellInfos(): MorphoViewerCellInfo[];
|
|
34
53
|
set cellInfos(cellInfos: MorphoViewerCellInfo[]);
|
|
54
|
+
setOverlays(overlays: MorphoViewerWorldOverlay[] | undefined, overlaysRadius: number, overlaysMinRadiusInPixels: number): void;
|
|
55
|
+
setOverlayInteraction(interactive: boolean, onTransform?: (event: MorphoViewerOverlayTransformEvent) => void): void;
|
|
56
|
+
get highlightedOverlayId(): string | null;
|
|
57
|
+
set highlightedOverlayId(id: string | null | undefined);
|
|
58
|
+
private applyOverlays;
|
|
35
59
|
private recolorInPlace;
|
|
36
|
-
readonly cameraReset: () => void;
|
|
37
|
-
readonly
|
|
60
|
+
readonly cameraReset: (options?: MorphoViewerSignalCameraResetOptions) => void;
|
|
61
|
+
readonly snapshot: (options?: MorphoViewerSignalSnapshotOptions) => Promise<HTMLImageElement | null>;
|
|
38
62
|
private applyBBoxToCamera;
|
|
39
63
|
private initialize;
|
|
64
|
+
private bindOverlaySurface;
|
|
65
|
+
private readonly handleSpacePerPixel;
|
|
66
|
+
private pinOverlaysAfterDrag;
|
|
67
|
+
private clearPinnedOverlay;
|
|
40
68
|
private _cameraChangeTimeout;
|
|
41
69
|
private handleCameraChange;
|
|
42
70
|
private delete;
|
|
43
71
|
}
|
|
44
72
|
export type { PainterManager };
|
|
45
|
-
export declare function useManager({ cellInfos, somaRadius, gizmo, cameraType, backgroundColor, signals, }: MorphoViewerSomasOnlyProps): PainterManager;
|
|
73
|
+
export declare function useManager({ cellInfos, somaRadius, gizmo, cameraType, backgroundColor, overlays, overlaysRadius, overlaysMinRadiusInPixels, overlaysInteractive, onOverlayTransform, highlightedOverlayId, neuronOpacity, signals, }: MorphoViewerSomasOnlyProps): PainterManager;
|
|
46
74
|
//# sourceMappingURL=manager.d.ts.map
|