@openbraininstitute/morphoviewer 0.34.0 → 0.35.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/painter/manager.d.ts +19 -2
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +136 -13
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/index.d.ts +1 -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 +2 -1
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-flat-texture-intensity.d.ts +11 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-flat-texture-intensity.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/material-flat-texture-intensity.js +32 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +2 -4
- 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 +10 -14
- package/dist/components/morpho-viewer-small-circuit/types.d.ts +2 -1
- package/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +17 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.js +120 -2
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +1 -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 +12 -6
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts +27 -0
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts.map +1 -0
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.js +131 -0
- package/dist/components/morpho-viewer-somas-only/types.d.ts +2 -1
- package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/package.json +1 -1
- package/dist/spikes/index.d.ts +3 -0
- package/dist/spikes/index.d.ts.map +1 -0
- package/dist/spikes/index.js +2 -0
- package/dist/spikes/spiking-circuit.d.ts +30 -0
- package/dist/spikes/spiking-circuit.d.ts.map +1 -0
- package/dist/spikes/spiking-circuit.js +159 -0
- package/dist/spikes/types.d.ts +16 -0
- package/dist/spikes/types.d.ts.map +1 -0
- package/dist/spikes/types.js +2 -0
- package/package.json +1 -1
|
@@ -1 +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,
|
|
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,EAGhB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAerD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,SAAQ,eAAe;aASjC,OAAO,EAAE,UAAU;IARrC,SAAgB,IAAI,EAAE,cAAc,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,QAAQ,CAAS;gBAGP,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,uBAAuB;IAkClC,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAKhC;IAGD,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC;IAIpC,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAO1B;IAED,MAAM,IAAI,IAAI;CAIf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { TgdBoundingBox, TgdPainterGroup,
|
|
1
|
+
import { TgdBoundingBox, TgdPainterGroup, TgdTexture2D, tgdCanvasCreatePalette, } from "@tolokoban/tgd";
|
|
2
2
|
import { computeAmbientOcclusion } from "./ambient-occlusion";
|
|
3
|
+
import { PainterSomaCloud } from "./painter-soma-cloud";
|
|
3
4
|
const RADIUS = 15;
|
|
4
5
|
const PALETTE_AO_ROWS = 32;
|
|
5
6
|
const DEFAULT_PALETTE_COLORS = [
|
|
@@ -23,10 +24,12 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
23
24
|
},
|
|
24
25
|
}).loadBitmap(createPaletteBitmap(paletteColors, opacity));
|
|
25
26
|
const uvs = (_b = middleLuminance(painterPointsCloudOptions.dataUV)) !== null && _b !== void 0 ? _b : new Float32Array(2 * options.cellInfos.length);
|
|
26
|
-
const painterPointsCloud = new
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const painterPointsCloud = new PainterSomaCloud(context, {
|
|
28
|
+
dataPoint: painterPointsCloudOptions.dataPoint,
|
|
29
|
+
dataUV: computeAmbientOcclusion(bbox, 10 * RADIUS, painterPointsCloudOptions.dataPoint, uvs),
|
|
30
|
+
texture: texturePalette,
|
|
31
|
+
radiusMultiplier: options.somaRadius,
|
|
32
|
+
});
|
|
30
33
|
super({
|
|
31
34
|
name: "PainterCellInfos",
|
|
32
35
|
children: [painterPointsCloud],
|
|
@@ -47,6 +50,9 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
47
50
|
this.painterPointsCloud.radiusMultiplier = somaRadius;
|
|
48
51
|
this.context.paint();
|
|
49
52
|
}
|
|
53
|
+
setGlow(glow) {
|
|
54
|
+
this.painterPointsCloud.setGlow(glow);
|
|
55
|
+
}
|
|
50
56
|
get opacity() {
|
|
51
57
|
return this._opacity;
|
|
52
58
|
}
|
|
@@ -191,4 +197,4 @@ function middleLuminance(dataUV) {
|
|
|
191
197
|
}
|
|
192
198
|
return dataUV;
|
|
193
199
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLHFCQUFxQixFQUVyQixZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBSWxCLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUczQixNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFTRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQVFuRCxZQUNrQixPQUFtQixFQUNuQyxPQUFnQzs7UUFFaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQUEsT0FBTyxDQUFDLE9BQU8sbUNBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLEtBQUssRUFBRSxlQUFlO2dCQUN0QixLQUFLLEVBQUUsZUFBZTtnQkFDdEIsS0FBSyxFQUFFLGVBQWU7YUFDdkI7U0FDRixDQUFDLENB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
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLFlBQVksRUFDWixzQkFBc0IsR0FDdkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU14RCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFJbEIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBRzNCLE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixxQkFBcUI7Q0FDdEIsQ0FBQztBQVNGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBUW5ELFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDL0MsTUFBTSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEtBQUssRUFBRSxlQUFlO2dCQUN0QixL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
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TgdPainter } from "@tolokoban/tgd";
|
|
2
|
+
import type { TgdContext, TgdTexture2D } from "@tolokoban/tgd";
|
|
3
|
+
export interface PainterSomaCloudOptions {
|
|
4
|
+
dataPoint: Float32Array;
|
|
5
|
+
dataUV: Float32Array;
|
|
6
|
+
texture: TgdTexture2D;
|
|
7
|
+
radiusMultiplier?: number;
|
|
8
|
+
glowColor?: [number, number, number];
|
|
9
|
+
glowSwell?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class PainterSomaCloud extends TgdPainter {
|
|
12
|
+
readonly context: TgdContext;
|
|
13
|
+
readonly count: number;
|
|
14
|
+
radiusMultiplier: number;
|
|
15
|
+
private readonly texture;
|
|
16
|
+
private readonly glowColor;
|
|
17
|
+
private readonly glowSwell;
|
|
18
|
+
private readonly program;
|
|
19
|
+
private readonly vao;
|
|
20
|
+
private readonly glowBufferIndex;
|
|
21
|
+
private glowWarned;
|
|
22
|
+
constructor(context: TgdContext, options: PainterSomaCloudOptions);
|
|
23
|
+
setGlow(glow: Readonly<Float32Array>): void;
|
|
24
|
+
paint(): void;
|
|
25
|
+
delete(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=painter-soma-cloud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"painter-soma-cloud.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-somas-only/manager/painter-soma-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAMX,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAc/D,MAAM,WAAW,uBAAuB;IAEtC,SAAS,EAAE,YAAY,CAAC;IAExB,MAAM,EAAE,YAAY,CAAC;IAErB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,qBAAa,gBAAiB,SAAQ,UAAU;aAc5B,OAAO,EAAE,UAAU;IAbrC,SAAgB,KAAK,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,UAAU,CAAS;gBAGT,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,uBAAuB;IAyClC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC;IAwBpC,KAAK;IAcL,MAAM;CAIP"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { TgdDataset, TgdPainter, TgdPainterPointsCloud, TgdProgram, TgdShaderFragment, TgdShaderVertex, TgdVertexArray, } from "@tolokoban/tgd";
|
|
2
|
+
const DEFAULT_GLOW_COLOR = [1, 0.85, 0.4];
|
|
3
|
+
const DEFAULT_GLOW_SWELL = 0.6;
|
|
4
|
+
export class PainterSomaCloud extends TgdPainter {
|
|
5
|
+
constructor(context, options) {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
super("PainterSomaCloud");
|
|
8
|
+
this.context = context;
|
|
9
|
+
this.glowWarned = false;
|
|
10
|
+
this.texture = options.texture;
|
|
11
|
+
this.radiusMultiplier = (_a = options.radiusMultiplier) !== null && _a !== void 0 ? _a : 1;
|
|
12
|
+
this.glowColor = (_b = options.glowColor) !== null && _b !== void 0 ? _b : DEFAULT_GLOW_COLOR;
|
|
13
|
+
this.glowSwell = (_c = options.glowSwell) !== null && _c !== void 0 ? _c : DEFAULT_GLOW_SWELL;
|
|
14
|
+
this.count = options.dataUV.length >> 1;
|
|
15
|
+
const instances = new TgdDataset({ attPoint: "vec4", attUV: "vec2" }, { divisor: 1 });
|
|
16
|
+
instances.set("attPoint", options.dataPoint);
|
|
17
|
+
instances.set("attUV", options.dataUV);
|
|
18
|
+
const glow = new TgdDataset({ attGlow: "float" }, {
|
|
19
|
+
divisor: 1,
|
|
20
|
+
usage: "DYNAMIC_DRAW",
|
|
21
|
+
data: new ArrayBuffer(this.count * Float32Array.BYTES_PER_ELEMENT),
|
|
22
|
+
});
|
|
23
|
+
const billboards = new TgdDataset({ attPointCoord: "vec2" });
|
|
24
|
+
billboards.set("attPointCoord", new Float32Array([-1, -1, +1, -1, +1, +1, -1, +1]));
|
|
25
|
+
const datasets = [instances, glow, billboards];
|
|
26
|
+
this.glowBufferIndex = datasets.indexOf(glow);
|
|
27
|
+
this.program = createProgram(context, this.glowColor, this.glowSwell);
|
|
28
|
+
this.vao = new TgdVertexArray(context.gl, this.program, datasets);
|
|
29
|
+
}
|
|
30
|
+
setGlow(glow) {
|
|
31
|
+
const buffer = this.vao.getBuffer(this.glowBufferIndex);
|
|
32
|
+
if (!buffer || glow.length !== this.count) {
|
|
33
|
+
if (!this.glowWarned) {
|
|
34
|
+
this.glowWarned = true;
|
|
35
|
+
console.warn("PainterSomaCloud: no spike will be visible.", buffer
|
|
36
|
+
? `Expected ${this.count} intensities, one per soma, but got ${glow.length}.`
|
|
37
|
+
: "The glow buffer is missing from the vertex array.");
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const { gl } = this.context;
|
|
42
|
+
buffer.bind();
|
|
43
|
+
gl.bufferSubData(gl.ARRAY_BUFFER, 0, glow);
|
|
44
|
+
}
|
|
45
|
+
paint() {
|
|
46
|
+
const { context, program, vao, texture, count, radiusMultiplier } = this;
|
|
47
|
+
const { gl, camera } = context;
|
|
48
|
+
program.use();
|
|
49
|
+
texture.activate(0, program, "uniTexture");
|
|
50
|
+
program.uniform1f("uniRadiusMultiplier", radiusMultiplier);
|
|
51
|
+
program.uniform2f("uniAspectRatio", context.aspectRatioInverse, 1);
|
|
52
|
+
program.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
53
|
+
program.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
54
|
+
vao.bind();
|
|
55
|
+
gl.drawArraysInstanced(gl.TRIANGLE_FAN, 0, 4, count);
|
|
56
|
+
vao.unbind();
|
|
57
|
+
}
|
|
58
|
+
delete() {
|
|
59
|
+
this.program.delete();
|
|
60
|
+
this.vao.delete();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function createProgram(context, glowColor, glowSwell) {
|
|
64
|
+
const [red, green, blue] = glowColor;
|
|
65
|
+
const vert = new TgdShaderVertex({
|
|
66
|
+
uniforms: {
|
|
67
|
+
uniTexture: "sampler2D",
|
|
68
|
+
uniAspectRatio: "vec2",
|
|
69
|
+
uniRadiusMultiplier: "float",
|
|
70
|
+
uniModelViewMatrix: "mat4",
|
|
71
|
+
uniProjectionMatrix: "mat4",
|
|
72
|
+
},
|
|
73
|
+
attributes: {
|
|
74
|
+
attPoint: "vec4",
|
|
75
|
+
attUV: "vec2",
|
|
76
|
+
attGlow: "float",
|
|
77
|
+
attPointCoord: "vec2",
|
|
78
|
+
},
|
|
79
|
+
varying: {
|
|
80
|
+
varColor: "vec4",
|
|
81
|
+
varPointCoord: "vec2",
|
|
82
|
+
varDepth: "float",
|
|
83
|
+
varGlow: "float",
|
|
84
|
+
},
|
|
85
|
+
mainCode: [
|
|
86
|
+
"varColor = texture(uniTexture, attUV);",
|
|
87
|
+
"varGlow = attGlow;",
|
|
88
|
+
`float radius = attPoint.w * uniRadiusMultiplier * (1.0 + attGlow * ${glowSwell.toFixed(6)});`,
|
|
89
|
+
"vec4 point = uniModelViewMatrix * vec4(attPoint.xyz, 1.0);",
|
|
90
|
+
"gl_Position = uniProjectionMatrix * point;",
|
|
91
|
+
"vec4 depth = point + vec4(0, 0, radius, 0);",
|
|
92
|
+
"vec4 screenDepth = uniProjectionMatrix * depth;",
|
|
93
|
+
"varDepth = (gl_Position.z - screenDepth.z) * .5;",
|
|
94
|
+
"vec4 shift = point + vec4(radius, radius, 0, 0);",
|
|
95
|
+
"vec4 screenShift = uniProjectionMatrix * shift;",
|
|
96
|
+
"float pointSize = abs(screenShift.y - gl_Position.y);",
|
|
97
|
+
"gl_Position.xy += attPointCoord * pointSize * uniAspectRatio;",
|
|
98
|
+
"varPointCoord = attPointCoord;",
|
|
99
|
+
],
|
|
100
|
+
}).code;
|
|
101
|
+
const frag = new TgdShaderFragment({
|
|
102
|
+
varying: {
|
|
103
|
+
varColor: "vec4",
|
|
104
|
+
varPointCoord: "vec2",
|
|
105
|
+
varDepth: "float",
|
|
106
|
+
varGlow: "float",
|
|
107
|
+
},
|
|
108
|
+
outputs: { FragColor: "vec4" },
|
|
109
|
+
functions: {
|
|
110
|
+
render: [
|
|
111
|
+
"vec4 render(vec4 color) {",
|
|
112
|
+
TgdPainterPointsCloud.fragCodeSphere({
|
|
113
|
+
enableSpecular: true,
|
|
114
|
+
specularExponent: 50,
|
|
115
|
+
specularIntensity: 0.33,
|
|
116
|
+
shadowIntensity: 0.5,
|
|
117
|
+
shadowThickness: 1,
|
|
118
|
+
light: 1,
|
|
119
|
+
}),
|
|
120
|
+
"}",
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
mainCode: [
|
|
124
|
+
"vec4 lit = render(varColor);",
|
|
125
|
+
`vec3 glow = varGlow * vec3(${red.toFixed(6)}, ${green.toFixed(6)}, ${blue.toFixed(6)});`,
|
|
126
|
+
"FragColor = vec4(lit.rgb + glow, mix(lit.a, 1.0, varGlow));",
|
|
127
|
+
],
|
|
128
|
+
}).code;
|
|
129
|
+
return new TgdProgram(context.gl, { vert, frag });
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1zb21hLWNsb3VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1zb21hLWNsb3VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUt4QixNQUFNLGtCQUFrQixHQUE2QixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFTcEUsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUE4Qi9CLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBYTlDLFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUhWLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFIN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU96QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQUEsT0FBTyxDQUFDLGdCQUFnQixtQ0FBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLGtCQUFrQixDQUFDO1FBQ3pELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxtQ0FBSSxrQkFBa0IsQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUV4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUs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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ArrayNumber3 } from "@tolokoban/tgd";
|
|
2
|
+
import type { PropsForSpikeReplay } from "../../spikes";
|
|
2
3
|
import type { ControlsLayoutProps } from "../controls-layout";
|
|
3
4
|
import type { MorphoViewerSignals } from "../signals";
|
|
4
5
|
import type { MorphoViewerWorldOverlay, PropsForGizmo, PropsForOverlayInteraction, PropsForScalebar } from "../types";
|
|
@@ -7,7 +8,7 @@ export interface MorphoViewerCellInfo {
|
|
|
7
8
|
position: ArrayNumber3;
|
|
8
9
|
color?: string;
|
|
9
10
|
}
|
|
10
|
-
export type MorphoViewerSomasOnlyProps = PropsForGizmo & PropsForScalebar & PropsForOverlayInteraction & {
|
|
11
|
+
export type MorphoViewerSomasOnlyProps = PropsForGizmo & PropsForScalebar & PropsForOverlayInteraction & PropsForSpikeReplay & {
|
|
11
12
|
className?: string;
|
|
12
13
|
somaRadius?: number;
|
|
13
14
|
cellInfos: MorphoViewerCellInfo[];
|
|
@@ -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;
|
|
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;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,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,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IAevB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,aAAa,GACpD,gBAAgB,GAChB,0BAA0B,GAC1B,mBAAmB,GAAG;IACpB,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;IAK5C,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAEtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAOnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAQvB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,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
|
@@ -7,6 +7,7 @@ export * from "./components/morpho-viewer-small-circuit";
|
|
|
7
7
|
export * from "./components/morpho-viewer-somas-only";
|
|
8
8
|
export * from "./components/morpho-viewer-spinner";
|
|
9
9
|
export { MorphoViewerSignals } from "./components/signals";
|
|
10
|
+
export { DEFAULT_SPIKE_AFTERGLOW_IN_SECONDS, DEFAULT_SPIKE_SPEED } from "./spikes";
|
|
10
11
|
export * from "./gizmo";
|
|
11
12
|
export { MorphologyCanvas } from "./morphology/morphology-canvas";
|
|
12
13
|
export { version } from "./package.json";
|
|
@@ -15,6 +16,7 @@ export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree";
|
|
|
15
16
|
export { CellNodeType } from "./types";
|
|
16
17
|
export { useEventState, useEventValue } from "./utils";
|
|
17
18
|
export type { CanvasOptions } from "./abstract-canvas";
|
|
19
|
+
export type { MorphoViewerSpikes, PropsForSpikeReplay } from "./spikes";
|
|
18
20
|
export type { ColorsInterface } from "./colors";
|
|
19
21
|
export type { MorphoViewerSignalSnapshotOptions as MorphoViewerSnapshotOptions } from "./components/signals";
|
|
20
22
|
export type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay, PropsForGizmo, PropsForScalebar, ScalebarConfig, ScalebarLabelsConfig, ScalebarOrientation, ScalebarPinsConfig, ScalebarPlacement, ScalebarSide, ScalebarWhen, } from "./components/types";
|
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,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,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,iCAAiC,IAAI,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAC7G,YAAY,EACV,iCAAiC,EACjC,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,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,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACnF,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,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,iCAAiC,IAAI,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAC7G,YAAY,EACV,iCAAiC,EACjC,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export * from "./components/morpho-viewer-small-circuit";
|
|
|
8
8
|
export * from "./components/morpho-viewer-somas-only";
|
|
9
9
|
export * from "./components/morpho-viewer-spinner";
|
|
10
10
|
export { MorphoViewerSignals } from "./components/signals";
|
|
11
|
+
export { DEFAULT_SPIKE_AFTERGLOW_IN_SECONDS, DEFAULT_SPIKE_SPEED } from "./spikes";
|
|
11
12
|
export * from "./gizmo";
|
|
12
13
|
export { MorphologyCanvas } from "./morphology/morphology-canvas";
|
|
13
14
|
export { version } from "./package.json";
|
|
@@ -15,4 +16,4 @@ export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tre
|
|
|
15
16
|
export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree";
|
|
16
17
|
export { CellNodeType } from "./types";
|
|
17
18
|
export { useEventState, useEventValue } from "./utils";
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBRWIsT0FBTyxFQUNMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFFBQVEsSUFBSSxpQkFBaUIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRixjQUFjLFNBQVMsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQyJ9
|
package/dist/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spikes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { DEFAULT_SPIKE_AFTERGLOW_IN_SECONDS, DEFAULT_SPIKE_SPEED, SpikingCircuit, } from "./spiking-circuit";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3Bpa2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixNQUFNLG1CQUFtQixDQUFDIn0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { MorphoViewerSpikes } from "./types";
|
|
2
|
+
export declare const DEFAULT_SPIKE_SPEED = 100;
|
|
3
|
+
export declare const DEFAULT_SPIKE_AFTERGLOW_IN_SECONDS = 0.35;
|
|
4
|
+
export declare class SpikingCircuit {
|
|
5
|
+
private spikes;
|
|
6
|
+
private _glow;
|
|
7
|
+
private _timeInMs;
|
|
8
|
+
private _playing;
|
|
9
|
+
private _speed;
|
|
10
|
+
private _afterglowInSeconds;
|
|
11
|
+
private lastTickInMs;
|
|
12
|
+
get glow(): Readonly<Float32Array>;
|
|
13
|
+
get timeMinInMs(): number;
|
|
14
|
+
get timeMaxInMs(): number;
|
|
15
|
+
get timeInMs(): number;
|
|
16
|
+
set timeInMs(timeInMs: number);
|
|
17
|
+
get playing(): boolean;
|
|
18
|
+
set playing(playing: boolean);
|
|
19
|
+
get speed(): number;
|
|
20
|
+
set speed(speed: number);
|
|
21
|
+
get afterglowInSeconds(): number;
|
|
22
|
+
set afterglowInSeconds(afterglowInSeconds: number);
|
|
23
|
+
setSpikes(spikes: MorphoViewerSpikes | null, cellCount: number): void;
|
|
24
|
+
setCellCount(cellCount: number): void;
|
|
25
|
+
advance(): boolean;
|
|
26
|
+
private get tauInMs();
|
|
27
|
+
private get glowWindowInMs();
|
|
28
|
+
private computeGlow;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=spiking-circuit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spiking-circuit.d.ts","sourceRoot":"","sources":["../../src/spikes/spiking-circuit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAGvC,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAmDvD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,YAAY,CAAK;IAGzB,IAAI,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,CAEjC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAM5B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAU3B;IAGD,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAOtB;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IACD,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,EAKhD;IASD,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM;IAU9D,YAAY,CAAC,SAAS,EAAE,MAAM;IAa9B,OAAO,IAAI,OAAO;IA0BlB,OAAO,KAAK,OAAO,GAElB;IAGD,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,CAAC,WAAW;CAqBpB"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
export const DEFAULT_SPIKE_SPEED = 100;
|
|
2
|
+
export const DEFAULT_SPIKE_AFTERGLOW_IN_SECONDS = 0.35;
|
|
3
|
+
const GLOW_CUTOFF_IN_TAUS = 5;
|
|
4
|
+
const MAX_FRAME_IN_MS = 250;
|
|
5
|
+
const NOMINAL_FRAME_IN_MS = 1000 / 60;
|
|
6
|
+
export class SpikingCircuit {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.spikes = null;
|
|
9
|
+
this._glow = new Float32Array(0);
|
|
10
|
+
this._timeInMs = 0;
|
|
11
|
+
this._playing = false;
|
|
12
|
+
this._speed = DEFAULT_SPIKE_SPEED;
|
|
13
|
+
this._afterglowInSeconds = DEFAULT_SPIKE_AFTERGLOW_IN_SECONDS;
|
|
14
|
+
this.lastTickInMs = 0;
|
|
15
|
+
}
|
|
16
|
+
get glow() {
|
|
17
|
+
return this._glow;
|
|
18
|
+
}
|
|
19
|
+
get timeMinInMs() {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
return (_b = (_a = this.spikes) === null || _a === void 0 ? void 0 : _a.timeMinInMs) !== null && _b !== void 0 ? _b : 0;
|
|
22
|
+
}
|
|
23
|
+
get timeMaxInMs() {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
return (_b = (_a = this.spikes) === null || _a === void 0 ? void 0 : _a.timeMaxInMs) !== null && _b !== void 0 ? _b : 0;
|
|
26
|
+
}
|
|
27
|
+
get timeInMs() {
|
|
28
|
+
return this._timeInMs;
|
|
29
|
+
}
|
|
30
|
+
set timeInMs(timeInMs) {
|
|
31
|
+
const clamped = clamp(timeInMs, this.timeMinInMs, this.timeMaxInMs);
|
|
32
|
+
if (clamped === this._timeInMs)
|
|
33
|
+
return;
|
|
34
|
+
this._timeInMs = clamped;
|
|
35
|
+
this.computeGlow();
|
|
36
|
+
}
|
|
37
|
+
get playing() {
|
|
38
|
+
return this._playing;
|
|
39
|
+
}
|
|
40
|
+
set playing(playing) {
|
|
41
|
+
if (this._playing === playing)
|
|
42
|
+
return;
|
|
43
|
+
if (playing && this._timeInMs >= this.timeMaxInMs) {
|
|
44
|
+
this._timeInMs = this.timeMinInMs;
|
|
45
|
+
this.computeGlow();
|
|
46
|
+
}
|
|
47
|
+
this._playing = playing;
|
|
48
|
+
this.lastTickInMs = now();
|
|
49
|
+
}
|
|
50
|
+
get speed() {
|
|
51
|
+
return this._speed;
|
|
52
|
+
}
|
|
53
|
+
set speed(speed) {
|
|
54
|
+
if (this._speed === speed)
|
|
55
|
+
return;
|
|
56
|
+
this._speed = speed;
|
|
57
|
+
this.computeGlow();
|
|
58
|
+
}
|
|
59
|
+
get afterglowInSeconds() {
|
|
60
|
+
return this._afterglowInSeconds;
|
|
61
|
+
}
|
|
62
|
+
set afterglowInSeconds(afterglowInSeconds) {
|
|
63
|
+
if (this._afterglowInSeconds === afterglowInSeconds)
|
|
64
|
+
return;
|
|
65
|
+
this._afterglowInSeconds = afterglowInSeconds;
|
|
66
|
+
this.computeGlow();
|
|
67
|
+
}
|
|
68
|
+
setSpikes(spikes, cellCount) {
|
|
69
|
+
if (spikes)
|
|
70
|
+
warnIfUnsorted(spikes.times);
|
|
71
|
+
this.spikes = spikes;
|
|
72
|
+
if (this._glow.length !== cellCount)
|
|
73
|
+
this._glow = new Float32Array(cellCount);
|
|
74
|
+
this._timeInMs = this.timeMinInMs;
|
|
75
|
+
this._playing = false;
|
|
76
|
+
this.computeGlow();
|
|
77
|
+
}
|
|
78
|
+
setCellCount(cellCount) {
|
|
79
|
+
if (this._glow.length === cellCount)
|
|
80
|
+
return;
|
|
81
|
+
this._glow = new Float32Array(cellCount);
|
|
82
|
+
this.computeGlow();
|
|
83
|
+
}
|
|
84
|
+
advance() {
|
|
85
|
+
const wallClock = now();
|
|
86
|
+
const deltaInMs = Math.min(wallClock - this.lastTickInMs, MAX_FRAME_IN_MS);
|
|
87
|
+
this.lastTickInMs = wallClock;
|
|
88
|
+
if (!this._playing || deltaInMs <= 0)
|
|
89
|
+
return false;
|
|
90
|
+
const stepInMs = Math.min((deltaInMs / 1000) * this._speed, Math.max(this.glowWindowInMs, (NOMINAL_FRAME_IN_MS / 1000) * this._speed));
|
|
91
|
+
const timeInMs = this._timeInMs + stepInMs;
|
|
92
|
+
if (timeInMs >= this.timeMaxInMs) {
|
|
93
|
+
this._timeInMs = this.timeMaxInMs;
|
|
94
|
+
this._playing = false;
|
|
95
|
+
this.computeGlow();
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
this._timeInMs = timeInMs;
|
|
99
|
+
this.computeGlow();
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
get tauInMs() {
|
|
103
|
+
return Math.max(this._afterglowInSeconds * this._speed, Number.MIN_VALUE);
|
|
104
|
+
}
|
|
105
|
+
get glowWindowInMs() {
|
|
106
|
+
return GLOW_CUTOFF_IN_TAUS * this.tauInMs;
|
|
107
|
+
}
|
|
108
|
+
computeGlow() {
|
|
109
|
+
const glow = this._glow;
|
|
110
|
+
glow.fill(0);
|
|
111
|
+
const { spikes } = this;
|
|
112
|
+
if (!spikes || glow.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
const { cellIndices, times } = spikes;
|
|
115
|
+
const tauInMs = this.tauInMs;
|
|
116
|
+
const t = this._timeInMs;
|
|
117
|
+
const oldest = t - this.glowWindowInMs;
|
|
118
|
+
for (let i = upperBound(times, t) - 1; i >= 0; i--) {
|
|
119
|
+
const spikeTime = times[i];
|
|
120
|
+
if (spikeTime < oldest)
|
|
121
|
+
break;
|
|
122
|
+
const cellIndex = cellIndices[i];
|
|
123
|
+
if (cellIndex >= glow.length)
|
|
124
|
+
continue;
|
|
125
|
+
const intensity = Math.exp((spikeTime - t) / tauInMs);
|
|
126
|
+
if (intensity > glow[cellIndex])
|
|
127
|
+
glow[cellIndex] = intensity;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function upperBound(values, value) {
|
|
132
|
+
let low = 0;
|
|
133
|
+
let high = values.length;
|
|
134
|
+
while (low < high) {
|
|
135
|
+
const mid = (low + high) >>> 1;
|
|
136
|
+
if (values[mid] <= value)
|
|
137
|
+
low = mid + 1;
|
|
138
|
+
else
|
|
139
|
+
high = mid;
|
|
140
|
+
}
|
|
141
|
+
return low;
|
|
142
|
+
}
|
|
143
|
+
function clamp(value, min, max) {
|
|
144
|
+
if (Number.isNaN(value))
|
|
145
|
+
return min;
|
|
146
|
+
return Math.min(max, Math.max(min, value));
|
|
147
|
+
}
|
|
148
|
+
function warnIfUnsorted(times) {
|
|
149
|
+
for (let i = 1; i < times.length; i++) {
|
|
150
|
+
if (times[i] >= times[i - 1])
|
|
151
|
+
continue;
|
|
152
|
+
console.warn(`Spike times must be ascending, but times[${i}] (${times[i]}) is before times[${i - 1}] (${times[i - 1]}). Cells will light up at the wrong moments.`);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function now() {
|
|
157
|
+
return typeof performance === "undefined" ? Date.now() : performance.now();
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpa2luZy1jaXJjdWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwaWtlcy9zcGlraW5nLWNpcmN1aXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBR3ZDLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksQ0FBQztBQU92RCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQVU5QixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFXNUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBdUJ0QyxNQUFNLE9BQU8sY0FBYztJQUEzQjtRQUNVLFdBQU0sR0FBOEIsSUFBSSxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsbUJBQW1CLENBQUM7UUFDN0Isd0JBQW1CLEdBQUcsa0NBQWtDLENBQUM7UUFDekQsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFzSjNCLENBQUM7SUFuSkMsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVc7O1FBQ2IsT0FBTyxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxtQ0FBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksV0FBVzs7UUFDYixPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLG1DQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFnQjtRQUMzQixNQUFNLE9B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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface MorphoViewerSpikes {
|
|
2
|
+
cellIndices: Uint32Array;
|
|
3
|
+
times: Float32Array;
|
|
4
|
+
timeMinInMs: number;
|
|
5
|
+
timeMaxInMs: number;
|
|
6
|
+
}
|
|
7
|
+
export interface PropsForSpikeReplay {
|
|
8
|
+
spikes?: MorphoViewerSpikes;
|
|
9
|
+
spikeTime?: number;
|
|
10
|
+
onSpikeTimeChange?(timeInMs: number): void;
|
|
11
|
+
spikePlaying?: boolean;
|
|
12
|
+
onSpikePlayingChange?(playing: boolean): void;
|
|
13
|
+
spikeSpeed?: number;
|
|
14
|
+
spikeAfterglowInSeconds?: number;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/spikes/types.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IASjC,WAAW,EAAE,WAAW,CAAC;IAQzB,KAAK,EAAE,YAAY,CAAC;IAEpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AASD,MAAM,WAAW,mBAAmB;IASlC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAW5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAQnB,iBAAiB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,oBAAoB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAK9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAapB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC"}
|