@openbraininstitute/morphoviewer 0.24.24 → 0.25.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/README.md +9 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts.map +1 -1
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js +23 -6
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +3 -0
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts.map +1 -1
- package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js +54 -20
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts +11 -3
- package/lib/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/lib/dist/index.d.ts +5 -5
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +3 -3
- package/lib/dist/package.json +2 -2
- package/lib/dist/tools/morphology-to-tree.d.ts +1 -1
- package/lib/dist/tools/morphology-to-tree.d.ts.map +1 -1
- package/lib/dist/tools/morphology-to-tree.js +1 -1
- package/lib/dist/tools/swc-to-tree.d.ts +3 -0
- package/lib/dist/tools/swc-to-tree.d.ts.map +1 -0
- package/lib/dist/tools/swc-to-tree.js +52 -0
- package/lib/dist/types.d.ts +1 -0
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,15 @@ Copyright (c) 2025 Open Brain Institute
|
|
|
32
32
|
|
|
33
33
|
## Release notes
|
|
34
34
|
|
|
35
|
+
### v0.25.0
|
|
36
|
+
|
|
37
|
+
- Add **section-based coloring** to `MorphoViewerSmallCircuit`
|
|
38
|
+
- Cell `color` prop now accepts a `SectionColors` object with per-section colors (soma, axon, myelin, apicalDendrite, basalDendrite, unknown)
|
|
39
|
+
- Uses a texture palette for rendering distinct colors per morphology section type
|
|
40
|
+
- Add `Myelin` entry to `CellNodeType` enum
|
|
41
|
+
- Add new `morphoViewerConvertSwcIntoTree` utility function for converting SWC file content into a `MorphoViewerTree` structure
|
|
42
|
+
- Export `morphoViewerConvertSwcIntoTree` from the library entry point
|
|
43
|
+
|
|
35
44
|
### v0.24.24
|
|
36
45
|
|
|
37
46
|
- Improve Octree misalignment tester (`tst/`) with margin-based bounding box comparison to handle float precision errors
|
package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,cAAc,EACd,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,cAAc,EAGjB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACH,KAAK,gBAAgB,EAGxB,MAAM,kCAAkC,CAAA;AAEzC,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAmChD"}
|
package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/factory/tree.js
CHANGED
|
@@ -37,18 +37,35 @@ export function createCellFromTree(context, material, tree, forSelection) {
|
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
function fillSegments(parent, item, segmentsSoma, segmentsNeurites) {
|
|
40
|
-
var _a;
|
|
40
|
+
var _a, _b;
|
|
41
|
+
const u1 = computeCoordU(item.type);
|
|
42
|
+
const v1 = 0;
|
|
43
|
+
const uv1 = [u1, v1];
|
|
44
|
+
const u0 = computeCoordU((_a = parent === null || parent === void 0 ? void 0 : parent.type) !== null && _a !== void 0 ? _a : u1);
|
|
45
|
+
const v0 = v1;
|
|
46
|
+
const uv0 = [u0, v0];
|
|
41
47
|
if (!parent) {
|
|
42
|
-
segmentsSoma.add([item.x, item.y, item.z, item.radius], [item.x, item.y, item.z, item.radius]);
|
|
48
|
+
segmentsSoma.add([item.x, item.y, item.z, item.radius], [item.x, item.y, item.z, item.radius], uv1, uv1);
|
|
43
49
|
}
|
|
44
50
|
else if (item.type === MorphoViewerTreeItemType.Soma) {
|
|
45
|
-
segmentsSoma.add([parent.x, parent.y, parent.z, parent.radius], [item.x, item.y, item.z, item.radius]);
|
|
51
|
+
segmentsSoma.add([parent.x, parent.y, parent.z, parent.radius], [item.x, item.y, item.z, item.radius], uv0, uv1);
|
|
46
52
|
}
|
|
47
53
|
else {
|
|
48
|
-
segmentsNeurites.add([parent.x, parent.y, parent.z, parent.radius], [item.x, item.y, item.z, item.radius]);
|
|
54
|
+
segmentsNeurites.add([parent.x, parent.y, parent.z, parent.radius], [item.x, item.y, item.z, item.radius], uv0, uv1);
|
|
49
55
|
}
|
|
50
|
-
for (const child of (
|
|
56
|
+
for (const child of (_b = item.children) !== null && _b !== void 0 ? _b : []) {
|
|
51
57
|
fillSegments(item, child, segmentsSoma, segmentsNeurites);
|
|
52
58
|
}
|
|
53
59
|
}
|
|
54
|
-
|
|
60
|
+
function computeCoordU(type) {
|
|
61
|
+
const types = [
|
|
62
|
+
MorphoViewerTreeItemType.Soma,
|
|
63
|
+
MorphoViewerTreeItemType.Axon,
|
|
64
|
+
MorphoViewerTreeItemType.BasalDendrite,
|
|
65
|
+
MorphoViewerTreeItemType.ApicalDendrite,
|
|
66
|
+
MorphoViewerTreeItemType.Myelin,
|
|
67
|
+
MorphoViewerTreeItemType.Unknown,
|
|
68
|
+
];
|
|
69
|
+
return (types.indexOf(type) + .5) / types.length;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vcnBoby12aWV3ZXItc21hbGwtY2lyY3VpdC9wYWludGVyL3BhaW50ZXItY2VsbC9mYWN0b3J5L3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGNBQWMsRUFHZCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUN6QixNQUFNLGdCQUFnQixDQUFBO0FBRXZCLE9BQU8sRUFHSCx3QkFBd0IsR0FDM0IsTUFBTSxrQ0FBa0MsQ0FBQTtBQUV6QyxNQUFNLFVBQVUsa0JBQWtCLENBQzlCLE9BQW1CLEVBQ25CLFFBQXFCLEVBQ3JCLElBQXNCLEVBQ3RCLFlBQXFCO0lBRXJCLE1BQU0sWUFBWSxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQTtJQUNqRCxNQUFNLGdCQUFnQixHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQTtJQUNyRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQUNqQyxLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FB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
|
package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts
CHANGED
|
@@ -12,9 +12,12 @@ export declare class PainterCell extends TgdPainterGroup {
|
|
|
12
12
|
private readonly options;
|
|
13
13
|
private readonly material;
|
|
14
14
|
private _black;
|
|
15
|
+
private readonly texturePalette;
|
|
16
|
+
private readonly textureBlack;
|
|
15
17
|
constructor(context: TgdContext, options: PainterCellOptions);
|
|
16
18
|
get black(): boolean;
|
|
17
19
|
set black(value: boolean);
|
|
18
20
|
private loadCell;
|
|
21
|
+
delete(): void;
|
|
19
22
|
}
|
|
20
23
|
//# sourceMappingURL=painter-cell.d.ts.map
|
package/lib/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,
|
|
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,EAEH,cAAc,EAEd,KAAK,UAAU,EAQf,eAAe,EAQlB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,4BAA4B,EAAE,gCAAgC,EAAiB,MAAM,aAAa,CAAA;AAEhH,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,uBAAuB,CAAA;IACnC,IAAI,EAAE,4BAA4B,CAAA;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;IAKtE,YAAY,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE9D,qBAAa,WAAY,SAAQ,eAAe;IAOxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;gBAGtB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,kBAAkB;IA2ChD,IAAI,KAAK,IAGQ,OAAO,CADvB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAUvB;YAEa,QAAQ;IA6BtB,MAAM,IAAI,IAAI;CAIjB"}
|
package/lib/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { TgdBoundingBox, TgdColor, TgdGeometrySphereIco, TgdLight, TgdMaterialDiffuse, TgdMaterialFlat,
|
|
2
|
+
import { TgdBoundingBox, TgdColor, TgdGeometrySphereIco, TgdLight, TgdMaterialDiffuse, TgdMaterialFlat, TgdMaterialFlatTexture, TgdPainterGroup, TgdPainterMesh, TgdQuat, TgdTexture2D, TgdVec4, tgdCanvasCreateFill, tgdCanvasCreatePalette, } from "@tolokoban/tgd";
|
|
3
3
|
import { int16ToVec3 } from "./../../../../utils.js";
|
|
4
4
|
import { createCellFromTree } from "./factory/tree.js";
|
|
5
5
|
export class PainterCell extends TgdPainterGroup {
|
|
@@ -17,12 +17,14 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
17
17
|
radius: cell.somaRadius,
|
|
18
18
|
subdivisions: 2,
|
|
19
19
|
});
|
|
20
|
-
const
|
|
20
|
+
const texture = createPaletteTexture(context, cell.color);
|
|
21
|
+
this.texturePalette = texture;
|
|
22
|
+
this.textureBlack = new TgdTexture2D(context).loadBitmap(tgdCanvasCreateFill(1, 1, "#000"));
|
|
21
23
|
const materialType = (_a = options.matrerial) !== null && _a !== void 0 ? _a : "full";
|
|
22
24
|
switch (materialType) {
|
|
23
25
|
case "full":
|
|
24
26
|
this.material = new TgdMaterialDiffuse({
|
|
25
|
-
color,
|
|
27
|
+
color: texture,
|
|
26
28
|
lockLightsToCamera: true,
|
|
27
29
|
ambient: new TgdLight({
|
|
28
30
|
color: [0.8, 0.8, 0.8, 0],
|
|
@@ -30,7 +32,7 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
30
32
|
});
|
|
31
33
|
break;
|
|
32
34
|
case "flat":
|
|
33
|
-
this.material = new
|
|
35
|
+
this.material = new TgdMaterialFlatTexture({ texture });
|
|
34
36
|
break;
|
|
35
37
|
default:
|
|
36
38
|
this.material = new TgdMaterialFlat({
|
|
@@ -49,15 +51,14 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
49
51
|
return this._black;
|
|
50
52
|
}
|
|
51
53
|
set black(value) {
|
|
52
|
-
var _a;
|
|
53
54
|
if (this._black === value)
|
|
54
55
|
return;
|
|
55
56
|
this._black = value;
|
|
56
57
|
const { material } = this;
|
|
57
|
-
if (material instanceof
|
|
58
|
-
material.
|
|
59
|
-
?
|
|
60
|
-
:
|
|
58
|
+
if (material instanceof TgdMaterialFlatTexture) {
|
|
59
|
+
material.texture = value
|
|
60
|
+
? this.textureBlack
|
|
61
|
+
: this.texturePalette;
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
loadCell() {
|
|
@@ -85,24 +86,57 @@ export class PainterCell extends TgdPainterGroup {
|
|
|
85
86
|
}
|
|
86
87
|
});
|
|
87
88
|
}
|
|
89
|
+
delete() {
|
|
90
|
+
this.texturePalette.delete();
|
|
91
|
+
this.textureBlack.delete();
|
|
92
|
+
}
|
|
88
93
|
}
|
|
89
94
|
function isCellAsTree(data) {
|
|
90
95
|
if (!data || data.type !== "tree")
|
|
91
96
|
return false;
|
|
92
97
|
return true;
|
|
93
98
|
}
|
|
94
|
-
function
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
function createPaletteTexture(context, color) {
|
|
100
|
+
const colors = resolveColorsPerSection(color);
|
|
101
|
+
const canvas = tgdCanvasCreatePalette([
|
|
102
|
+
colors.soma,
|
|
103
|
+
colors.axon,
|
|
104
|
+
colors.basalDendrite,
|
|
105
|
+
colors.apicalDendrite,
|
|
106
|
+
colors.myelin,
|
|
107
|
+
colors.unknown
|
|
108
|
+
]);
|
|
109
|
+
const texture = new TgdTexture2D(context, {
|
|
110
|
+
params: {
|
|
111
|
+
minFilter: "NEAREST",
|
|
112
|
+
magFilter: "NEAREST"
|
|
113
|
+
}
|
|
114
|
+
}).loadBitmap(canvas);
|
|
115
|
+
return texture;
|
|
116
|
+
}
|
|
117
|
+
function resolveColorsPerSection(color) {
|
|
118
|
+
if (!color) {
|
|
119
|
+
const randomColor = TgdColor.fromHSL(Math.random(), .8, 0.5).toString();
|
|
120
|
+
return {
|
|
121
|
+
apicalDendrite: randomColor,
|
|
122
|
+
axon: randomColor,
|
|
123
|
+
basalDendrite: randomColor,
|
|
124
|
+
myelin: randomColor,
|
|
125
|
+
soma: randomColor,
|
|
126
|
+
unknown: randomColor,
|
|
127
|
+
};
|
|
101
128
|
}
|
|
102
|
-
|
|
103
|
-
|
|
129
|
+
if (typeof color === "string") {
|
|
130
|
+
return {
|
|
131
|
+
apicalDendrite: color,
|
|
132
|
+
axon: color,
|
|
133
|
+
basalDendrite: color,
|
|
134
|
+
myelin: color,
|
|
135
|
+
soma: color,
|
|
136
|
+
unknown: color,
|
|
137
|
+
};
|
|
104
138
|
}
|
|
105
|
-
return
|
|
139
|
+
return color;
|
|
106
140
|
}
|
|
107
141
|
function applyTransfoToBBox(transfo, bbox) {
|
|
108
142
|
const { matrix } = transfo;
|
|
@@ -124,4 +158,4 @@ function applyTransfoToBBox(transfo, bbox) {
|
|
|
124
158
|
}
|
|
125
159
|
return transformedBBox;
|
|
126
160
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zbWFsbC1jaXJjdWl0L3BhaW50ZXIvcGFpbnRlci1jZWxsL3BhaW50ZXItY2VsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGNBQWMsRUFDZCxRQUFRLEVBRVIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFFUixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHNCQUFzQixFQUV0QixlQUFlLEVBQ2YsY0FBYyxFQUNkLE9BQU8sRUFDUCxZQUFZLEVBRVosT0FBTyxFQUNQLG1CQUFtQixFQUNuQixzQkFBc0IsR0FDekIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRXJDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBa0JuRCxNQUFNLE9BQU8sV0FBWSxTQUFRLGVBQWU7SUFNNUMsWUFDcUIsT0FBbUIsRUFDbkIsT0FBMkI7O1FBRTVDLEtBQUssQ0FBQztZQUNGLElBQUksRUFBRSxRQUFRLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1NBQ2xDLENBQUMsQ0FBQTtRQUxlLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFOeEMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVduQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQW9CLENBQUM7WUFDdEMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN2QixZQUFZLEVBQUUsQ0FBQztTQUNsQixDQUFDLENBQUE7UUFDRixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFBO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUMzRixNQUFNLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLE1BQU0sQ0FBQTtRQUNoRCxRQUFRLFlBQVksRUFBRSxDQUFDO1lBQ25CLEtBQUssTUFBTTtnQkFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksa0JBQWtCLENBQUM7b0JBQ25DLEtBQUssRUFBRSxPQUFPO29CQUNkLGtCQUFrQixFQUFFLElBQUk7b0JBQ3hCLE9BQU8sRUFBRSxJQUFJLFFBQVEsQ0FBQzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO3FCQUM1QixDQUFDO2lCQUNMLENBQUMsQ0FBQTtnQkFDRixNQUFLO1lBQ1QsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7Z0JBQ3ZELE1BQUs7WUFDVDtnQkFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFDO29CQUNoQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNDLENBQUMsQ0FBQTtnQkFDRixNQUFLO1FBQ2IsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUNyQyxRQUFRO1lBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUdELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUN0QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSztZQUFFLE9BQU07UUFFakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUN6QixJQUFJLFFBQVEsWUFBWSxzQkFBc0IsRUFBRSxDQUFDO1lBQzdDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSztnQkFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQTtRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVhLFFBQVE7O1lBQ2xCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFBO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7WUFFckQsSUFBSSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ2pDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3JCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLENBQ3JDLE9BQU8sRUFDUCxRQUFRLEVBQ1IsSUFBSSxDQUFDLElBQUksRUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FDN0MsQ0FBQTtvQkFDRCxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO29CQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7b0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtvQkFDL0IsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtvQkFDdEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO29CQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNkLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtnQkFDbkIsQ0FBQztZQUNMLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFDeEQsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFHLElBQUksQ0FBQyxDQUFBO1lBQ3hCLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQzlCLENBQUM7Q0FDSjtBQUVELFNBQVMsWUFBWSxDQUNqQixJQUE2QztJQUU3QyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBRS9DLE9BQU8sSUFBSSxDQUFBO0FBQ2YsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsT0FBbUIsRUFBRSxLQUE0QztJQUMzRixNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QyxNQUFNLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQztRQUNsQyxNQUFNLENBQUMsSUFBSTtRQUNYLE1BQU0sQ0FBQyxJQUFJO1FBQ1gsTUFBTSxDQUFDLGFBQWE7UUFDcEIsTUFBTSxDQUFDLGNBQWM7UUFDckIsTUFBTSxDQUFDLE1BQU07UUFDYixNQUFNLENBQUMsT0FBTztLQUNqQixDQUFDLENBQUE7SUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7UUFDdEMsTUFBTSxFQUFFO1lBQ0osU0FBUyxFQUFFLFNBQVM7WUFDcEIsU0FBUyxFQUFFLFNBQVM7U0FDdkI7S0FDSixDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JCLE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLEtBQTRDO0lBQ3pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNULE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUN2RSxPQUFPO1lBQ0gsY0FBYyxFQUFFLFdBQVc7WUFDM0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsYUFBYSxFQUFFLFdBQVc7WUFDMUIsTUFBTSxFQUFFLFdBQVc7WUFDbkIsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLFdBQVc7U0FDdkIsQ0FBQTtJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE9BQU87WUFDSCxjQUFjLEVBQUUsS0FBSztZQUNyQixJQUFJLEVBQUUsS0FBSztZQUNYLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFBO0lBQ0wsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFBO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE9BQW1CLEVBQUUsSUFBb0I7SUFDakUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUMxQixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO0lBQzdCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7SUFDN0IsTUFBTSxNQUFNLEdBQWM7UUFDdEIsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUIsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUIsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7SUFDNUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUM3QixlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFBO0FBQzFCLENBQUMifQ==
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import { ControlsLayoutProps } from "../controls-layout
|
|
2
|
-
import { PropsForGizmo, PropsForScalebar } from "../types";
|
|
1
|
+
import type { ControlsLayoutProps } from "../controls-layout";
|
|
3
2
|
import type { MorphoViewerTree } from "../morpho-viewer-simul";
|
|
3
|
+
import type { PropsForGizmo, PropsForScalebar } from "../types";
|
|
4
|
+
export interface SectionColors {
|
|
5
|
+
soma: string;
|
|
6
|
+
axon: string;
|
|
7
|
+
myelin: string;
|
|
8
|
+
apicalDendrite: string;
|
|
9
|
+
basalDendrite: string;
|
|
10
|
+
unknown: string;
|
|
11
|
+
}
|
|
4
12
|
export interface MorphoViewerSmallCircuitCell {
|
|
5
13
|
id: string;
|
|
6
14
|
center: [x: number, y: number, z: number];
|
|
7
15
|
orientation: [x: number, y: number, z: number, w: number];
|
|
8
16
|
somaRadius: number;
|
|
9
|
-
color?: string;
|
|
17
|
+
color?: string | SectionColors;
|
|
10
18
|
}
|
|
11
19
|
export type MorphoViewerSmallCircuitCellData = {
|
|
12
20
|
type: "tree";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/morpho-viewer-small-circuit/types.ts"],"names":[],"mappings":"
|
|
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,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE/D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,4BAA4B;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IACzC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IACzD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CACjC;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,gBAAgB,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,aAAa,GAAG,gBAAgB,GAAG;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,4BAA4B,EAAE,CAAA;IAIvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAA;IAClE,WAAW,CAAC,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,GAAG,IAAI,CAAA;IAClE,OAAO,CAAC,IAAI,IAAI,CAAA;IAChB,UAAU,CAAC,IAAI,IAAI,CAAA;IAKnB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;IAOtE,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;CAC5C,CAAA"}
|
package/lib/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export { TgdCamera, TgdCameraOrthographic, TgdColor, tgdFullscreenToggle } from "@tolokoban/tgd";
|
|
2
|
-
export type { CanvasOptions } from "./abstract-canvas";
|
|
3
|
-
export type { ColorsInterface } from "./colors";
|
|
1
|
+
export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle } from "@tolokoban/tgd";
|
|
4
2
|
export { colorContrast, colorLuminance, colorToRGBA } from "./colors";
|
|
5
3
|
export * from "./components/morpho-viewer-octree";
|
|
6
4
|
export * from "./components/morpho-viewer-simul";
|
|
@@ -9,8 +7,10 @@ export * from "./gizmo";
|
|
|
9
7
|
export { MorphologyCanvas } from "./morphology/morphology-canvas";
|
|
10
8
|
export { version } from "./package.json";
|
|
11
9
|
export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tree";
|
|
12
|
-
export
|
|
10
|
+
export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree";
|
|
13
11
|
export { CellNodeType } from "./types";
|
|
14
|
-
export { TgdEvent as MorphoViewerEvent } from "@tolokoban/tgd";
|
|
15
12
|
export { useEventState, useEventValue } from "./utils";
|
|
13
|
+
export type { CanvasOptions } from "./abstract-canvas";
|
|
14
|
+
export type { ColorsInterface } from "./colors";
|
|
15
|
+
export type { ColoringType } from "./types";
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,IAAI,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAE/H,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACrE,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA;AAChD,cAAc,0CAA0C,CAAA;AACxD,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAA;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEtD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA"}
|
package/lib/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { TgdCamera, TgdCameraOrthographic, TgdColor, tgdFullscreenToggle } from "@tolokoban/tgd";
|
|
2
|
+
export { TgdCamera, TgdCameraOrthographic, TgdColor, TgdEvent as MorphoViewerEvent, tgdFullscreenToggle } from "@tolokoban/tgd";
|
|
3
3
|
export { colorContrast, colorLuminance, colorToRGBA } from "./colors.js";
|
|
4
4
|
export * from "./components/morpho-viewer-octree/index.js";
|
|
5
5
|
export * from "./components/morpho-viewer-simul/index.js";
|
|
@@ -8,7 +8,7 @@ export * from "./gizmo/index.js";
|
|
|
8
8
|
export { MorphologyCanvas } from "./morphology/morphology-canvas.js";
|
|
9
9
|
export { version } from "./package.json";
|
|
10
10
|
export { morphoViewerConvertMorphologyIntoTree } from "./tools/morphology-to-tree.js";
|
|
11
|
+
export { morphoViewerConvertSwcIntoTree } from "./tools/swc-to-tree.js";
|
|
11
12
|
export { CellNodeType } from "./types.js";
|
|
12
|
-
export { TgdEvent as MorphoViewerEvent } from "@tolokoban/tgd";
|
|
13
13
|
export { useEventState, useEventValue } from "./utils.js";
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBO0FBSVosT0FBTyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxJQUFJLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFL0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3JFLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNsRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBIn0=
|
package/lib/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openbraininstitute/morphoviewer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
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",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"url": "https://github.com/openbraininstitute/morphoviewer/issues"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@tolokoban/tgd": "^2.0.
|
|
44
|
+
"@tolokoban/tgd": "^2.0.133",
|
|
45
45
|
"fflate": "^0.8.2",
|
|
46
46
|
"tslib": "^2.8.1"
|
|
47
47
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Morphology } from "../components/morpho-viewer-simul/types/private";
|
|
2
1
|
import { type MorphoViewerTree } from "../components/morpho-viewer-simul/types/public";
|
|
2
|
+
import type { Morphology } from "../components/morpho-viewer-simul/types/private";
|
|
3
3
|
export declare function morphoViewerConvertMorphologyIntoTree(morphology: Morphology, cellId: string): MorphoViewerTree;
|
|
4
4
|
//# sourceMappingURL=morphology-to-tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morphology-to-tree.d.ts","sourceRoot":"","sources":["../../src/tools/morphology-to-tree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"morphology-to-tree.d.ts","sourceRoot":"","sources":["../../src/tools/morphology-to-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gBAAgB,EAGxB,MAAM,+CAA+C,CAAA;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAA;AAOhF,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,GACf,gBAAgB,CA+DlB"}
|
|
@@ -86,4 +86,4 @@ function key3D([x, y, z]) {
|
|
|
86
86
|
function isAcceptedSectionName(sectionName) {
|
|
87
87
|
return sectionName.charAt(sectionName.length - 1) === "]";
|
|
88
88
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ycGhvbG9neS10by10cmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL21vcnBob2xvZ3ktdG8tdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsd0JBQXdCLEdBQzNCLE1BQU0sK0NBQStDLENBQUE7QUFVdEQsTUFBTSxVQUFVLHFDQUFxQyxDQUNqRCxVQUFzQixFQUN0QixNQUFjO0lBRWQsTUFBTSxJQUFJLEdBQXFCO1FBQzNCLE1BQU07UUFDTixLQUFLLEVBQUUsRUFBRTtLQUNaLENBQUE7SUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQTtJQUMzQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQzFFLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFBO0lBQzlCLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNyQyxJQUFJLElBQUksS0FBSyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuRCxrQkFBa0IsR0FBRyxJQUFJLENBQUE7UUFDN0IsQ0FBQztRQUNELEtBQUssSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDckUsTUFBTSxLQUFLLEdBQWlCO2dCQUN4QixPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQy9CLENBQUE7WUFDRCxN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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swc-to-tree.d.ts","sourceRoot":"","sources":["../../src/tools/swc-to-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gBAAgB,EAGxB,MAAM,+CAA+C,CAAA;AAEtD,wBAAgB,8BAA8B,CAC1C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACf,gBAAgB,CAiClB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { MorphoViewerTreeItemType, } from "./../components/morpho-viewer-simul/types/public.js";
|
|
2
|
+
export function morphoViewerConvertSwcIntoTree(swc, cellId) {
|
|
3
|
+
const tree = {
|
|
4
|
+
cellId,
|
|
5
|
+
roots: [],
|
|
6
|
+
};
|
|
7
|
+
const lines = swc
|
|
8
|
+
.split('\n')
|
|
9
|
+
.map((line) => line.trim())
|
|
10
|
+
.filter((line) => !line.startsWith('#'))
|
|
11
|
+
.map((line) => line.split(/[ \t]+/g).map(parseFloat))
|
|
12
|
+
.filter((items) => items.length >= 7);
|
|
13
|
+
const parents = new Map();
|
|
14
|
+
for (const [index, type, x, y, z, radius, parent] of lines) {
|
|
15
|
+
const item = {
|
|
16
|
+
distanceFromSoma: 0,
|
|
17
|
+
sectionId: `${index}`,
|
|
18
|
+
segmentId: `${index}.1`,
|
|
19
|
+
type: resolveSwcType(type),
|
|
20
|
+
x,
|
|
21
|
+
y,
|
|
22
|
+
z,
|
|
23
|
+
radius,
|
|
24
|
+
};
|
|
25
|
+
const parentItem = parents.get(parent);
|
|
26
|
+
if (parentItem) {
|
|
27
|
+
if (!parentItem.children)
|
|
28
|
+
parentItem.children = [];
|
|
29
|
+
parentItem.children.push(item);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
tree.roots.push(item);
|
|
33
|
+
}
|
|
34
|
+
parents.set(index, item);
|
|
35
|
+
}
|
|
36
|
+
return tree;
|
|
37
|
+
}
|
|
38
|
+
function resolveSwcType(type) {
|
|
39
|
+
switch (type) {
|
|
40
|
+
case 1:
|
|
41
|
+
return MorphoViewerTreeItemType.Soma;
|
|
42
|
+
case 2:
|
|
43
|
+
return MorphoViewerTreeItemType.Axon;
|
|
44
|
+
case 3:
|
|
45
|
+
return MorphoViewerTreeItemType.BasalDendrite;
|
|
46
|
+
case 4:
|
|
47
|
+
return MorphoViewerTreeItemType.ApicalDendrite;
|
|
48
|
+
default:
|
|
49
|
+
return MorphoViewerTreeItemType.Unknown;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3djLXRvLXRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvc3djLXRvLXRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHdCQUF3QixHQUMzQixNQUFNLCtDQUErQyxDQUFBO0FBRXRELE1BQU0sVUFBVSw4QkFBOEIsQ0FDMUMsR0FBVyxFQUNYLE1BQWM7SUFFZCxNQUFNLElBQUksR0FBcUI7UUFDM0IsTUFBTTtRQUNOLEtBQUssRUFBRSxFQUFFO0tBQ1osQ0FBQTtJQUNELE1BQU0sS0FBSyxHQUFHLEdBQUc7U0FDWixLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ1gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUE7SUFDdkQsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQXlCO1lBQy9CLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsU0FBUyxFQUFFLEdBQUcsS0FBSyxFQUFFO1lBQ3JCLFNBQVMsRUFBRSxHQUFHLEtBQUssSUFBSTtZQUN2QixJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQztZQUMxQixDQUFDO1lBQ0QsQ0FBQztZQUNELENBQUM7WUFDRCxNQUFNO1NBQ1QsQ0FBQTtRQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtnQkFBRSxVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtZQUNsRCxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDZixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNoQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ1gsS0FBSyxDQUFDO1lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUE7UUFDeEMsS0FBSyxDQUFDO1lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUE7UUFDeEMsS0FBSyxDQUFDO1lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxhQUFhLENBQUE7UUFDakQsS0FBSyxDQUFDO1lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxjQUFjLENBQUE7UUFDbEQ7WUFDSSxPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBQTtJQUMvQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
package/lib/dist/types.d.ts
CHANGED
package/lib/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAA;AAEjD,oBAAY,YAAY;IACpB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,aAAa,IAAI;IACjB,cAAc,IAAI;IAClB,MAAM,IAAI;IACV,OAAO,MAAM;CAChB"}
|
package/lib/dist/types.js
CHANGED
|
@@ -4,6 +4,7 @@ export var CellNodeType;
|
|
|
4
4
|
CellNodeType[CellNodeType["Axon"] = 2] = "Axon";
|
|
5
5
|
CellNodeType[CellNodeType["BasalDendrite"] = 3] = "BasalDendrite";
|
|
6
6
|
CellNodeType[CellNodeType["ApicalDendrite"] = 4] = "ApicalDendrite";
|
|
7
|
+
CellNodeType[CellNodeType["Myelin"] = 5] = "Myelin";
|
|
7
8
|
CellNodeType[CellNodeType["Unknown"] = 666] = "Unknown";
|
|
8
9
|
})(CellNodeType || (CellNodeType = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksWUFPWDtBQVBELFdBQVksWUFBWTtJQUNwQiwrQ0FBUSxDQUFBO0lBQ1IsK0NBQVEsQ0FBQTtJQUNSLGlFQUFpQixDQUFBO0lBQ2pCLG1FQUFrQixDQUFBO0lBQ2xCLG1EQUFVLENBQUE7SUFDVix1REFBYSxDQUFBO0FBQ2pCLENBQUMsRUFQVyxZQUFZLEtBQVosWUFBWSxRQU92QiJ9
|