@openbraininstitute/morphoviewer 0.35.2 → 0.37.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/behaviors/framing.d.ts +10 -0
- package/dist/behaviors/framing.d.ts.map +1 -0
- package/dist/behaviors/framing.js +19 -0
- package/dist/behaviors/index.d.ts +2 -0
- package/dist/behaviors/index.d.ts.map +1 -1
- package/dist/behaviors/index.js +3 -1
- package/dist/behaviors/tap-guard.d.ts +17 -0
- package/dist/behaviors/tap-guard.d.ts.map +1 -0
- package/dist/behaviors/tap-guard.js +60 -0
- package/dist/components/morpho-viewer-small-circuit/painter/cached-cell-loader.d.ts +6 -0
- package/dist/components/morpho-viewer-small-circuit/painter/cached-cell-loader.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/cached-cell-loader.js +12 -0
- package/dist/components/morpho-viewer-small-circuit/painter/dedupe-by-id.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/dedupe-by-id.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/dedupe-by-id.js +14 -0
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts +6 -4
- package/dist/components/morpho-viewer-small-circuit/painter/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/manager.js +156 -83
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts +8 -1
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/offscreen-painter.js +57 -21
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.d.ts.map +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/offscreen-painter/segment-offscreen-painter.js +28 -6
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell/painter-cell.d.ts +3 -0
- 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 +42 -28
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/index.d.ts +5 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/index.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/index.js +4 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas-id.d.ts +12 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas-id.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas-id.js +79 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas.d.ts +19 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/painter-cell-somas.js +55 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/soma-cloud-data.d.ts +9 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/soma-cloud-data.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/painter-cell-somas/soma-cloud-data.js +34 -0
- package/dist/components/morpho-viewer-small-circuit/painter/same-cell.d.ts +3 -0
- package/dist/components/morpho-viewer-small-circuit/painter/same-cell.d.ts.map +1 -0
- package/dist/components/morpho-viewer-small-circuit/painter/same-cell.js +15 -0
- package/dist/components/morpho-viewer-small-circuit/types.d.ts +1 -0
- package/dist/components/morpho-viewer-small-circuit/types.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts +19 -4
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/ambient-occlusion.js +43 -19
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts +26 -5
- package/dist/components/morpho-viewer-somas-only/manager/manager.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/manager.js +196 -49
- package/dist/components/morpho-viewer-somas-only/manager/painter-cell-infos.d.ts +15 -3
- 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 +214 -86
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts +4 -2
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.d.ts.map +1 -1
- package/dist/components/morpho-viewer-somas-only/manager/painter-soma-cloud.js +33 -22
- package/dist/components/morpho-viewer-somas-only/manager/soma-picker.d.ts +15 -0
- package/dist/components/morpho-viewer-somas-only/manager/soma-picker.d.ts.map +1 -0
- package/dist/components/morpho-viewer-somas-only/manager/soma-picker.js +184 -0
- package/dist/components/morpho-viewer-somas-only/types.d.ts +8 -1
- package/dist/components/morpho-viewer-somas-only/types.d.ts.map +1 -1
- package/dist/morphology-picking/index.d.ts +1 -0
- package/dist/morphology-picking/index.d.ts.map +1 -1
- package/dist/morphology-picking/index.js +2 -1
- package/dist/morphology-picking/pick-color-codec.d.ts +4 -0
- package/dist/morphology-picking/pick-color-codec.d.ts.map +1 -0
- package/dist/morphology-picking/pick-color-codec.js +14 -0
- package/dist/package.json +1 -1
- package/dist/painters/overlay-interaction.d.ts +2 -0
- package/dist/painters/overlay-interaction.d.ts.map +1 -1
- package/dist/painters/overlay-interaction.js +11 -1
- package/dist/utils.d.ts +0 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -19
- package/package.json +1 -1
- package/dist/components/morpho-viewer-small-circuit/painter/still-pointer.d.ts +0 -9
- package/dist/components/morpho-viewer-small-circuit/painter/still-pointer.d.ts.map +0 -1
- package/dist/components/morpho-viewer-small-circuit/painter/still-pointer.js +0 -9
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/rays.d.ts +0 -3
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/rays.d.ts.map +0 -1
- package/dist/components/morpho-viewer-somas-only/manager/ambient-occlusion/rays.js +0 -24
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { TgdBoundingBox, TgdPainterGroup, TgdTexture2D
|
|
2
|
-
import {
|
|
1
|
+
import { TgdBoundingBox, TgdPainterGroup, TgdTexture2D } from "@tolokoban/tgd";
|
|
2
|
+
import { AmbientOcclusionComputation } from "./ambient-occlusion";
|
|
3
3
|
import { PainterSomaCloud } from "./painter-soma-cloud";
|
|
4
4
|
const RADIUS = 15;
|
|
5
5
|
const PALETTE_AO_ROWS = 32;
|
|
6
|
+
const AO_CHUNK_SIZE = 10000;
|
|
7
|
+
const AO_MIN_BUDGET_MS = 3;
|
|
8
|
+
const AO_FALLBACK_SLICE_MS = 8;
|
|
6
9
|
const DEFAULT_PALETTE_COLORS = [
|
|
7
10
|
"hsl(200, 100%, 80%)",
|
|
8
11
|
"hsl(200, 100%, 50%)",
|
|
@@ -12,8 +15,14 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
12
15
|
constructor(context, options) {
|
|
13
16
|
var _a, _b;
|
|
14
17
|
const bbox = new TgdBoundingBox();
|
|
15
|
-
const
|
|
16
|
-
|
|
18
|
+
const dataPoint = options.positions
|
|
19
|
+
? packPositions(options.positions)
|
|
20
|
+
: parsePositions((_a = options.cellInfos) !== null && _a !== void 0 ? _a : []);
|
|
21
|
+
addSomaBounds(dataPoint, bbox, RADIUS);
|
|
22
|
+
const count = dataPoint.length >> 2;
|
|
23
|
+
const dataUV = new Float32Array(2 * count).fill(0.5);
|
|
24
|
+
const paletteColors = writeColumns(dataUV, options.colors);
|
|
25
|
+
const opacity = clamp01((_b = options.opacity) !== null && _b !== void 0 ? _b : 1);
|
|
17
26
|
const texturePalette = new TgdTexture2D(context, {
|
|
18
27
|
params: {
|
|
19
28
|
magFilter: "LINEAR",
|
|
@@ -23,10 +32,9 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
23
32
|
wrapT: "CLAMP_TO_EDGE",
|
|
24
33
|
},
|
|
25
34
|
}).loadBitmap(createPaletteBitmap(paletteColors, opacity));
|
|
26
|
-
const uvs = (_b = middleLuminance(painterPointsCloudOptions.dataUV)) !== null && _b !== void 0 ? _b : new Float32Array(2 * options.cellInfos.length);
|
|
27
35
|
const painterPointsCloud = new PainterSomaCloud(context, {
|
|
28
|
-
dataPoint
|
|
29
|
-
dataUV
|
|
36
|
+
dataPoint,
|
|
37
|
+
dataUV,
|
|
30
38
|
texture: texturePalette,
|
|
31
39
|
radiusMultiplier: options.somaRadius,
|
|
32
40
|
});
|
|
@@ -35,11 +43,31 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
35
43
|
children: [painterPointsCloud],
|
|
36
44
|
});
|
|
37
45
|
this.context = context;
|
|
46
|
+
this.cancelAmbientOcclusion = null;
|
|
38
47
|
this.painterPointsCloud = painterPointsCloud;
|
|
39
48
|
this.texturePalette = texturePalette;
|
|
49
|
+
this.count = count;
|
|
50
|
+
this.dataUV = dataUV;
|
|
40
51
|
this.paletteColors = paletteColors;
|
|
41
52
|
this._opacity = opacity;
|
|
53
|
+
this.dataPoint = dataPoint;
|
|
42
54
|
this.bbox = bbox;
|
|
55
|
+
this.scheduleAmbientOcclusion(new AmbientOcclusionComputation(bbox, 10 * RADIUS, dataPoint));
|
|
56
|
+
}
|
|
57
|
+
bboxOf(hidden) {
|
|
58
|
+
if (!hidden || hidden.length !== this.count)
|
|
59
|
+
return this.bbox;
|
|
60
|
+
const bbox = new TgdBoundingBox();
|
|
61
|
+
return addSomaBounds(this.dataPoint, bbox, this.somaRadius, hidden) ? bbox : this.bbox;
|
|
62
|
+
}
|
|
63
|
+
recolor(colors) {
|
|
64
|
+
if (colors && colors.palette.length > 0 && colors.columnByCell.length !== this.count) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
this.paletteColors = writeColumns(this.dataUV, colors);
|
|
68
|
+
this.texturePalette.loadBitmap(createPaletteBitmap(this.paletteColors, this._opacity));
|
|
69
|
+
this.painterPointsCloud.setUV(this.dataUV);
|
|
70
|
+
return true;
|
|
43
71
|
}
|
|
44
72
|
get somaRadius() {
|
|
45
73
|
return this.painterPointsCloud.radiusMultiplier;
|
|
@@ -64,34 +92,71 @@ export class PainterCellInfos extends TgdPainterGroup {
|
|
|
64
92
|
this.texturePalette.loadBitmap(createPaletteBitmap(this.paletteColors, next));
|
|
65
93
|
this.context.paint();
|
|
66
94
|
}
|
|
95
|
+
scheduleAmbientOcclusion(computation) {
|
|
96
|
+
if (computation.done)
|
|
97
|
+
return;
|
|
98
|
+
const runSlice = (timeRemaining) => {
|
|
99
|
+
this.cancelAmbientOcclusion = null;
|
|
100
|
+
let done = computation.advance(AO_CHUNK_SIZE);
|
|
101
|
+
while (!done && timeRemaining() > AO_MIN_BUDGET_MS) {
|
|
102
|
+
done = computation.advance(AO_CHUNK_SIZE);
|
|
103
|
+
}
|
|
104
|
+
if (!done) {
|
|
105
|
+
schedule();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
computation.writeInto(this.dataUV);
|
|
109
|
+
this.painterPointsCloud.setUV(this.dataUV);
|
|
110
|
+
this.context.paint();
|
|
111
|
+
};
|
|
112
|
+
const schedule = () => {
|
|
113
|
+
if (typeof requestIdleCallback === "function") {
|
|
114
|
+
const handle = requestIdleCallback((deadline) => runSlice(() => deadline.timeRemaining()));
|
|
115
|
+
this.cancelAmbientOcclusion = () => cancelIdleCallback(handle);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const handle = setTimeout(() => {
|
|
119
|
+
const start = performance.now();
|
|
120
|
+
runSlice(() => AO_FALLBACK_SLICE_MS - (performance.now() - start));
|
|
121
|
+
}, 0);
|
|
122
|
+
this.cancelAmbientOcclusion = () => clearTimeout(handle);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
schedule();
|
|
126
|
+
}
|
|
67
127
|
delete() {
|
|
128
|
+
var _a;
|
|
129
|
+
(_a = this.cancelAmbientOcclusion) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
130
|
+
this.cancelAmbientOcclusion = null;
|
|
68
131
|
this.texturePalette.delete();
|
|
69
132
|
super.delete();
|
|
70
133
|
}
|
|
71
134
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
135
|
+
function packPositions(positions) {
|
|
136
|
+
const count = Math.floor(positions.length / 3);
|
|
137
|
+
const dataPoint = new Float32Array(4 * count);
|
|
138
|
+
for (let soma = 0; soma < count; soma++) {
|
|
139
|
+
dataPoint[soma * 4] = positions[soma * 3];
|
|
140
|
+
dataPoint[soma * 4 + 1] = positions[soma * 3 + 1];
|
|
141
|
+
dataPoint[soma * 4 + 2] = positions[soma * 3 + 2];
|
|
142
|
+
dataPoint[soma * 4 + 3] = 1;
|
|
143
|
+
}
|
|
144
|
+
return dataPoint;
|
|
145
|
+
}
|
|
146
|
+
function parsePositions(cellInfos) {
|
|
147
|
+
const dataPoint = new Float32Array(4 * cellInfos.length);
|
|
148
|
+
let index = 0;
|
|
149
|
+
for (const { position } of cellInfos) {
|
|
150
|
+
dataPoint[index++] = position[0];
|
|
151
|
+
dataPoint[index++] = position[1];
|
|
152
|
+
dataPoint[index++] = position[2];
|
|
153
|
+
dataPoint[index++] = 1;
|
|
154
|
+
}
|
|
155
|
+
return dataPoint;
|
|
156
|
+
}
|
|
157
|
+
function addSomaBounds(dataPoint, bbox, radius, hidden) {
|
|
158
|
+
const somas = dataPoint.length >> 2;
|
|
159
|
+
let count = 0;
|
|
95
160
|
let centerX = 0;
|
|
96
161
|
let centerY = 0;
|
|
97
162
|
let centerZ = 0;
|
|
@@ -101,51 +166,113 @@ function parseCellInfos(cellInfos, bbox) {
|
|
|
101
166
|
let maxX = Number.NEGATIVE_INFINITY;
|
|
102
167
|
let maxY = Number.NEGATIVE_INFINITY;
|
|
103
168
|
let maxZ = Number.NEGATIVE_INFINITY;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
else if (uncoloredColumn >= 0) {
|
|
122
|
-
u = columnU(uncoloredColumn);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
u = columnU(0);
|
|
126
|
-
}
|
|
169
|
+
if (hidden) {
|
|
170
|
+
for (let soma = 0; soma < somas; soma++) {
|
|
171
|
+
if (hidden[soma] === 1)
|
|
172
|
+
continue;
|
|
173
|
+
const x = dataPoint[soma * 4];
|
|
174
|
+
const y = dataPoint[soma * 4 + 1];
|
|
175
|
+
const z = dataPoint[soma * 4 + 2];
|
|
176
|
+
count++;
|
|
177
|
+
centerX += x;
|
|
178
|
+
centerY += y;
|
|
179
|
+
centerZ += z;
|
|
180
|
+
minX = Math.min(minX, x);
|
|
181
|
+
minY = Math.min(minY, y);
|
|
182
|
+
minZ = Math.min(minZ, z);
|
|
183
|
+
maxX = Math.max(maxX, x);
|
|
184
|
+
maxY = Math.max(maxY, y);
|
|
185
|
+
maxZ = Math.max(maxZ, z);
|
|
127
186
|
}
|
|
128
|
-
dataUV.push(u, 0.5);
|
|
129
187
|
}
|
|
130
|
-
|
|
188
|
+
else {
|
|
189
|
+
count = somas;
|
|
190
|
+
for (let soma = 0; soma < somas; soma++) {
|
|
191
|
+
const x = dataPoint[soma * 4];
|
|
192
|
+
const y = dataPoint[soma * 4 + 1];
|
|
193
|
+
const z = dataPoint[soma * 4 + 2];
|
|
194
|
+
centerX += x;
|
|
195
|
+
centerY += y;
|
|
196
|
+
centerZ += z;
|
|
197
|
+
minX = Math.min(minX, x);
|
|
198
|
+
minY = Math.min(minY, y);
|
|
199
|
+
minZ = Math.min(minZ, z);
|
|
200
|
+
maxX = Math.max(maxX, x);
|
|
201
|
+
maxY = Math.max(maxY, y);
|
|
202
|
+
maxZ = Math.max(maxZ, z);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (count === 0)
|
|
206
|
+
return false;
|
|
207
|
+
const invCount = 1 / count;
|
|
131
208
|
centerX *= invCount;
|
|
132
209
|
centerY *= invCount;
|
|
133
210
|
centerZ *= invCount;
|
|
134
211
|
const radiusX = Math.max(Math.abs(maxX - centerX), Math.abs(centerX - minX));
|
|
135
212
|
const radiusY = Math.max(Math.abs(maxY - centerY), Math.abs(centerY - minY));
|
|
136
213
|
const radiusZ = Math.max(Math.abs(maxZ - centerZ), Math.abs(centerZ - minZ));
|
|
137
|
-
bbox.addSphere(centerX + radiusX, centerY + radiusY, centerZ + radiusZ,
|
|
138
|
-
bbox.addSphere(centerX - radiusX, centerY - radiusY, centerZ - radiusZ,
|
|
139
|
-
|
|
140
|
-
dataPoint: new Float32Array(dataPoint),
|
|
141
|
-
dataUV: new Float32Array(dataUV),
|
|
142
|
-
};
|
|
143
|
-
return {
|
|
144
|
-
paletteColors: hasColors ? paletteColors : null,
|
|
145
|
-
painterPointsCloudOptions: options,
|
|
146
|
-
};
|
|
214
|
+
bbox.addSphere(centerX + radiusX, centerY + radiusY, centerZ + radiusZ, radius);
|
|
215
|
+
bbox.addSphere(centerX - radiusX, centerY - radiusY, centerZ - radiusZ, radius);
|
|
216
|
+
return true;
|
|
147
217
|
}
|
|
148
|
-
function
|
|
218
|
+
function columnForCell(colors, cell) {
|
|
219
|
+
const column = cell < colors.columnByCell.length ? colors.columnByCell[cell] : 0;
|
|
220
|
+
return Math.min(column, colors.palette.length - 1);
|
|
221
|
+
}
|
|
222
|
+
function writeColumns(dataUV, colors) {
|
|
223
|
+
if (!colors || colors.palette.length === 0)
|
|
224
|
+
return null;
|
|
225
|
+
const { palette } = colors;
|
|
226
|
+
const width = palette.length;
|
|
227
|
+
const count = dataUV.length >> 1;
|
|
228
|
+
for (let cell = 0; cell < count; cell++) {
|
|
229
|
+
dataUV[cell * 2] = (columnForCell(colors, cell) + 0.5) / width;
|
|
230
|
+
}
|
|
231
|
+
return palette;
|
|
232
|
+
}
|
|
233
|
+
export function paletteHidesColumns(colors) {
|
|
234
|
+
var _a;
|
|
235
|
+
return (_a = colors === null || colors === void 0 ? void 0 : colors.palette.includes(false)) !== null && _a !== void 0 ? _a : false;
|
|
236
|
+
}
|
|
237
|
+
export function fillHiddenSomaMask(colors, into) {
|
|
238
|
+
const { palette } = colors;
|
|
239
|
+
const count = into.length;
|
|
240
|
+
let hides = false;
|
|
241
|
+
for (let cell = 0; cell < count; cell++) {
|
|
242
|
+
const undrawn = palette[columnForCell(colors, cell)] === false;
|
|
243
|
+
into[cell] = undrawn ? 1 : 0;
|
|
244
|
+
hides || (hides = undrawn);
|
|
245
|
+
}
|
|
246
|
+
return hides;
|
|
247
|
+
}
|
|
248
|
+
export function cellPaletteFromCellInfos(cellInfos) {
|
|
249
|
+
var _a;
|
|
250
|
+
const columnByColor = new Map();
|
|
251
|
+
const palette = [];
|
|
252
|
+
let hasUncolored = false;
|
|
253
|
+
for (const { color } of cellInfos) {
|
|
254
|
+
if (color === undefined) {
|
|
255
|
+
hasUncolored = true;
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
if (columnByColor.has(color))
|
|
259
|
+
continue;
|
|
260
|
+
columnByColor.set(color, palette.length);
|
|
261
|
+
palette.push(color);
|
|
262
|
+
}
|
|
263
|
+
if (palette.length === 0)
|
|
264
|
+
return null;
|
|
265
|
+
const uncoloredColumn = hasUncolored ? palette.length : 0;
|
|
266
|
+
if (hasUncolored)
|
|
267
|
+
palette.push(null);
|
|
268
|
+
const columnByCell = new Uint16Array(cellInfos.length);
|
|
269
|
+
let cell = 0;
|
|
270
|
+
for (const { color } of cellInfos) {
|
|
271
|
+
columnByCell[cell++] = color === undefined ? uncoloredColumn : ((_a = columnByColor.get(color)) !== null && _a !== void 0 ? _a : 0);
|
|
272
|
+
}
|
|
273
|
+
return { palette, columnByCell };
|
|
274
|
+
}
|
|
275
|
+
function createPalette(colors, rows) {
|
|
149
276
|
const width = colors.length;
|
|
150
277
|
const canvas = document.createElement("canvas");
|
|
151
278
|
canvas.width = width;
|
|
@@ -153,22 +280,29 @@ function createCategoricalPalette(colors, rows) {
|
|
|
153
280
|
const ctx = canvas.getContext("2d");
|
|
154
281
|
if (!ctx)
|
|
155
282
|
return canvas;
|
|
156
|
-
for (let x = 0; x < width; x++) {
|
|
157
|
-
ctx.fillStyle = colors[x];
|
|
158
|
-
ctx.fillRect(x, 0, 1, rows);
|
|
159
|
-
}
|
|
160
283
|
const shade = ctx.createLinearGradient(0, 0, 0, rows);
|
|
161
284
|
shade.addColorStop(0, "rgba(0, 0, 0, 0)");
|
|
162
285
|
shade.addColorStop(1, "rgba(0, 0, 0, 0.55)");
|
|
163
|
-
ctx.
|
|
164
|
-
|
|
286
|
+
const ramp = ctx.createLinearGradient(0, 0, 0, rows);
|
|
287
|
+
const lastStop = DEFAULT_PALETTE_COLORS.length - 1;
|
|
288
|
+
for (let stop = 0; stop <= lastStop; stop++) {
|
|
289
|
+
ramp.addColorStop(stop / lastStop, DEFAULT_PALETTE_COLORS[stop]);
|
|
290
|
+
}
|
|
291
|
+
for (let x = 0; x < width; x++) {
|
|
292
|
+
const color = colors[x];
|
|
293
|
+
if (color === false)
|
|
294
|
+
continue;
|
|
295
|
+
ctx.fillStyle = color !== null && color !== void 0 ? color : ramp;
|
|
296
|
+
ctx.fillRect(x, 0, 1, rows);
|
|
297
|
+
if (color === null)
|
|
298
|
+
continue;
|
|
299
|
+
ctx.fillStyle = shade;
|
|
300
|
+
ctx.fillRect(x, 0, 1, rows);
|
|
301
|
+
}
|
|
165
302
|
return canvas;
|
|
166
303
|
}
|
|
167
304
|
function createPaletteBitmap(paletteColors, opacity) {
|
|
168
|
-
|
|
169
|
-
? createCategoricalPalette(paletteColors, PALETTE_AO_ROWS)
|
|
170
|
-
: tgdCanvasCreatePalette(DEFAULT_PALETTE_COLORS, 1);
|
|
171
|
-
return applyCanvasOpacity(canvas, opacity);
|
|
305
|
+
return applyCanvasOpacity(createPalette(paletteColors !== null && paletteColors !== void 0 ? paletteColors : [null], PALETTE_AO_ROWS), opacity);
|
|
172
306
|
}
|
|
173
307
|
function applyCanvasOpacity(canvas, opacity) {
|
|
174
308
|
if (opacity >= 1)
|
|
@@ -177,8 +311,10 @@ function applyCanvasOpacity(canvas, opacity) {
|
|
|
177
311
|
if (!ctx)
|
|
178
312
|
return canvas;
|
|
179
313
|
const image = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
|
180
|
-
const alpha = Math.round(clamp01(opacity) * 255);
|
|
314
|
+
const alpha = Math.max(1, Math.round(clamp01(opacity) * 255));
|
|
181
315
|
for (let i = 3; i < image.data.length; i += 4) {
|
|
316
|
+
if (image.data[i] === 0)
|
|
317
|
+
continue;
|
|
182
318
|
image.data[i] = alpha;
|
|
183
319
|
}
|
|
184
320
|
ctx.putImageData(image, 0, 0);
|
|
@@ -189,12 +325,4 @@ function clamp01(value) {
|
|
|
189
325
|
return 1;
|
|
190
326
|
return Math.min(1, Math.max(0, value));
|
|
191
327
|
}
|
|
192
|
-
function middleLuminance(dataUV) {
|
|
193
|
-
if (!dataUV)
|
|
194
|
-
return;
|
|
195
|
-
for (let i = 1; i < dataUV.length; i += 2) {
|
|
196
|
-
dataUV[i] = 0.5;
|
|
197
|
-
}
|
|
198
|
-
return dataUV;
|
|
199
|
-
}
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsZUFBZSxFQUNmLFlBQVksRUFDWixzQkFBc0IsR0FDdkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU14RCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFJbEIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBRzNCLE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixxQkFBcUI7Q0FDdEIsQ0FBQztBQVNGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBUW5ELFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDL0MsTUFBTSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEtBQUssRUFBRSxlQUFlO2dCQUN0QixL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
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1jZWxsLWluZm9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1jZWxsLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQW1CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVN4RCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFJbEIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBRzNCLE1BQU0sYUFBYSxHQUFHLEtBQU0sQ0FBQztBQUU3QixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUUzQixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQUcvQixNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFpQkYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUF1Qm5ELFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTO1lBQ2pDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNsQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQUEsT0FBTyxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFD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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TgdPainter } from "@tolokoban/tgd";
|
|
2
2
|
import type { TgdContext, TgdTexture2D } from "@tolokoban/tgd";
|
|
3
3
|
export interface PainterSomaCloudOptions {
|
|
4
|
-
dataPoint: Float32Array
|
|
5
|
-
dataUV: Float32Array
|
|
4
|
+
dataPoint: Float32Array<ArrayBuffer>;
|
|
5
|
+
dataUV: Float32Array<ArrayBuffer>;
|
|
6
6
|
texture: TgdTexture2D;
|
|
7
7
|
radiusMultiplier?: number;
|
|
8
8
|
glowColor?: [number, number, number];
|
|
@@ -17,9 +17,11 @@ export declare class PainterSomaCloud extends TgdPainter {
|
|
|
17
17
|
private readonly glowSwell;
|
|
18
18
|
private readonly program;
|
|
19
19
|
private readonly vao;
|
|
20
|
+
private readonly uvBufferIndex;
|
|
20
21
|
private readonly glowBufferIndex;
|
|
21
22
|
private glowWarned;
|
|
22
23
|
constructor(context: TgdContext, options: PainterSomaCloudOptions);
|
|
24
|
+
setUV(dataUV: Readonly<Float32Array>): void;
|
|
23
25
|
setGlow(glow: Readonly<Float32Array>): void;
|
|
24
26
|
paint(): void;
|
|
25
27
|
delete(): void;
|
|
@@ -1 +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;
|
|
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;AAuC/D,MAAM,WAAW,uBAAuB;IAOtC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAErC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAElC,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;aAe5B,OAAO,EAAE,UAAU;IAdrC,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,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,UAAU,CAAS;gBAGT,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,uBAAuB;IAqDlC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC;IAgBpC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC;IAwBpC,KAAK;IAcL,MAAM;CAIP"}
|
|
@@ -7,6 +7,7 @@ const GLOW_RIM_START = 0.9;
|
|
|
7
7
|
const GLOW_RIM_COLOR = [0.3, 0.26, 0.2];
|
|
8
8
|
const GLOW_BIAS = 0.4;
|
|
9
9
|
const DEFAULT_GLOW_SWELL = 0.7;
|
|
10
|
+
const HIDDEN_ALPHA = 0.5 / 255;
|
|
10
11
|
export class PainterSomaCloud extends TgdPainter {
|
|
11
12
|
constructor(context, options) {
|
|
12
13
|
var _a, _b, _c;
|
|
@@ -18,9 +19,8 @@ export class PainterSomaCloud extends TgdPainter {
|
|
|
18
19
|
this.glowColor = (_b = options.glowColor) !== null && _b !== void 0 ? _b : DEFAULT_GLOW_COLOR;
|
|
19
20
|
this.glowSwell = (_c = options.glowSwell) !== null && _c !== void 0 ? _c : DEFAULT_GLOW_SWELL;
|
|
20
21
|
this.count = options.dataUV.length >> 1;
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
instances.set("attUV", options.dataUV);
|
|
22
|
+
const points = new TgdDataset({ attPoint: "vec4" }, { divisor: 1, data: options.dataPoint.buffer });
|
|
23
|
+
const uv = new TgdDataset({ attUV: "vec2" }, { divisor: 1, usage: "DYNAMIC_DRAW", data: options.dataUV.buffer });
|
|
24
24
|
const glow = new TgdDataset({ attGlow: "float" }, {
|
|
25
25
|
divisor: 1,
|
|
26
26
|
usage: "DYNAMIC_DRAW",
|
|
@@ -28,11 +28,20 @@ export class PainterSomaCloud extends TgdPainter {
|
|
|
28
28
|
});
|
|
29
29
|
const billboards = new TgdDataset({ attPointCoord: "vec2" });
|
|
30
30
|
billboards.set("attPointCoord", new Float32Array([-1, -1, +1, -1, +1, +1, -1, +1]));
|
|
31
|
-
const datasets = [
|
|
31
|
+
const datasets = [points, uv, glow, billboards];
|
|
32
|
+
this.uvBufferIndex = datasets.indexOf(uv);
|
|
32
33
|
this.glowBufferIndex = datasets.indexOf(glow);
|
|
33
34
|
this.program = createProgram(context, this.glowColor, this.glowSwell);
|
|
34
35
|
this.vao = new TgdVertexArray(context.gl, this.program, datasets);
|
|
35
36
|
}
|
|
37
|
+
setUV(dataUV) {
|
|
38
|
+
const buffer = this.vao.getBuffer(this.uvBufferIndex);
|
|
39
|
+
if (!buffer)
|
|
40
|
+
return;
|
|
41
|
+
const { gl } = this.context;
|
|
42
|
+
buffer.bind();
|
|
43
|
+
gl.bufferSubData(gl.ARRAY_BUFFER, 0, dataUV);
|
|
44
|
+
}
|
|
36
45
|
setGlow(glow) {
|
|
37
46
|
const buffer = this.vao.getBuffer(this.glowBufferIndex);
|
|
38
47
|
if (!buffer || glow.length !== this.count) {
|
|
@@ -85,19 +94,16 @@ function createProgram(context, glowColor, glowSwell) {
|
|
|
85
94
|
varying: {
|
|
86
95
|
varColor: "vec4",
|
|
87
96
|
varPointCoord: "vec2",
|
|
88
|
-
varDepth: "float",
|
|
89
97
|
varGlow: "float",
|
|
90
98
|
},
|
|
91
99
|
mainCode: [
|
|
92
100
|
"varColor = texture(uniTexture, attUV);",
|
|
101
|
+
`if (varColor.a < ${HIDDEN_ALPHA.toFixed(8)}) { gl_Position = vec4(2.0, 2.0, 2.0, 1.0); return; }`,
|
|
93
102
|
`float glow = pow(attGlow, ${GLOW_BIAS.toFixed(6)});`,
|
|
94
103
|
"varGlow = glow;",
|
|
95
104
|
`float radius = attPoint.w * uniRadiusMultiplier * (1.0 + glow * ${glowSwell.toFixed(6)});`,
|
|
96
105
|
"vec4 point = uniModelViewMatrix * vec4(attPoint.xyz, 1.0);",
|
|
97
106
|
"gl_Position = uniProjectionMatrix * point;",
|
|
98
|
-
"vec4 depth = point + vec4(0, 0, radius, 0);",
|
|
99
|
-
"vec4 screenDepth = uniProjectionMatrix * depth;",
|
|
100
|
-
"varDepth = (gl_Position.z - screenDepth.z) * .5;",
|
|
101
107
|
"vec4 shift = point + vec4(radius, radius, 0, 0);",
|
|
102
108
|
"vec4 screenShift = uniProjectionMatrix * shift;",
|
|
103
109
|
"float pointSize = abs(screenShift.y - gl_Position.y);",
|
|
@@ -109,23 +115,11 @@ function createProgram(context, glowColor, glowSwell) {
|
|
|
109
115
|
varying: {
|
|
110
116
|
varColor: "vec4",
|
|
111
117
|
varPointCoord: "vec2",
|
|
112
|
-
varDepth: "float",
|
|
113
118
|
varGlow: "float",
|
|
114
119
|
},
|
|
115
120
|
outputs: { FragColor: "vec4" },
|
|
116
121
|
functions: {
|
|
117
|
-
render: [
|
|
118
|
-
"vec4 render(vec4 color) {",
|
|
119
|
-
TgdPainterPointsCloud.fragCodeSphere({
|
|
120
|
-
enableSpecular: true,
|
|
121
|
-
specularExponent: 50,
|
|
122
|
-
specularIntensity: 0.33,
|
|
123
|
-
shadowIntensity: 0.5,
|
|
124
|
-
shadowThickness: 1,
|
|
125
|
-
light: 1,
|
|
126
|
-
}),
|
|
127
|
-
"}",
|
|
128
|
-
],
|
|
122
|
+
render: ["vec4 render(vec4 color) {", sphereShadingWithoutDepthWrite(), "}"],
|
|
129
123
|
},
|
|
130
124
|
mainCode: [
|
|
131
125
|
`vec3 glowColor = vec3(${red.toFixed(6)}, ${green.toFixed(6)}, ${blue.toFixed(6)});`,
|
|
@@ -140,4 +134,21 @@ function createProgram(context, glowColor, glowSwell) {
|
|
|
140
134
|
}).code;
|
|
141
135
|
return new TgdProgram(context.gl, { vert, frag });
|
|
142
136
|
}
|
|
143
|
-
|
|
137
|
+
function sphereShadingWithoutDepthWrite() {
|
|
138
|
+
const shading = TgdPainterPointsCloud.fragCodeSphere({
|
|
139
|
+
enableSpecular: true,
|
|
140
|
+
specularExponent: 50,
|
|
141
|
+
specularIntensity: 0.33,
|
|
142
|
+
shadowIntensity: 0.5,
|
|
143
|
+
shadowThickness: 1,
|
|
144
|
+
light: 1,
|
|
145
|
+
depthPrecision: "high",
|
|
146
|
+
});
|
|
147
|
+
const statements = Array.isArray(shading) ? shading : [shading];
|
|
148
|
+
const kept = statements.filter((statement) => typeof statement === "string" && !statement.includes("gl_FragDepth"));
|
|
149
|
+
if (kept.length === statements.length) {
|
|
150
|
+
console.error("PainterSomaCloud: no gl_FragDepth write found in tgd's fragCodeSphere — the soma cloud is now fill-rate bound. Check whether tgd gained an option to drop it.");
|
|
151
|
+
}
|
|
152
|
+
return kept;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci1zb21hLWNsb3VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9ycGhvLXZpZXdlci1zb21hcy1vbmx5L21hbmFnZXIvcGFpbnRlci1zb21hLWNsb3VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQWF4QixNQUFNLGtCQUFrQixHQUE2QixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFckUsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBRXZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUV6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFFMUIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRTNCLE1BQU0sY0FBYyxHQUE2QixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFbEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBTXRCLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBUS9CLE1BQU0sWUFBWSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFtQy9CLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBYzlDLFlBQ2tCLE9BQW1CLEVBQ25DLE9BQWdDOztRQUVoQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUhWLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFIN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU96QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQUEsT0FBTyxDQUFDLGdCQUFnQixtQ0FBSSxDQUFDLENB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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TgdContext } from "@tolokoban/tgd";
|
|
2
|
+
export declare class SomaPicker {
|
|
3
|
+
private readonly onscreenContext;
|
|
4
|
+
private readonly offscreenCanvas;
|
|
5
|
+
private readonly context;
|
|
6
|
+
private readonly painter;
|
|
7
|
+
private pending;
|
|
8
|
+
private isDeleted;
|
|
9
|
+
constructor(onscreenContext: TgdContext, positions: Float32Array);
|
|
10
|
+
setHidden(hidden: Readonly<Float32Array> | null): void;
|
|
11
|
+
pick(xClip: number, yClip: number, radiusMultiplier: number, searchRadiusInPixels: number): Promise<number | null>;
|
|
12
|
+
private readIndexNear;
|
|
13
|
+
delete(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=soma-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soma-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/morpho-viewer-somas-only/manager/soma-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EASX,MAAM,gBAAgB,CAAC;AAoBxB,qBAAa,UAAU;IAgBnB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAflC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAS7C,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,SAAS,CAAS;gBAGP,eAAe,EAAE,UAAU,EAE5C,SAAS,EAAE,YAAY;IAyBzB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAc/C,IAAI,CACF,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4CzB,OAAO,CAAC,aAAa;IA8BrB,MAAM;CAOP"}
|