@vitessce/spatial-accelerated 3.8.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/LICENSE +21 -0
- package/dist/index.js +52925 -0
- package/dist-tsc/SpatialWrapper.d.ts +2 -0
- package/dist-tsc/SpatialWrapper.d.ts.map +1 -0
- package/dist-tsc/SpatialWrapper.js +45 -0
- package/dist-tsc/VolumeDataManager.d.ts +170 -0
- package/dist-tsc/VolumeDataManager.d.ts.map +1 -0
- package/dist-tsc/VolumeDataManager.js +1273 -0
- package/dist-tsc/VolumeDataManager.test.d.ts +2 -0
- package/dist-tsc/VolumeDataManager.test.d.ts.map +1 -0
- package/dist-tsc/VolumeDataManager.test.js +164 -0
- package/dist-tsc/VolumeRenderManager.d.ts +265 -0
- package/dist-tsc/VolumeRenderManager.d.ts.map +1 -0
- package/dist-tsc/VolumeRenderManager.js +396 -0
- package/dist-tsc/VolumeShader.d.ts +262 -0
- package/dist-tsc/VolumeShader.d.ts.map +1 -0
- package/dist-tsc/VolumeShader.js +73 -0
- package/dist-tsc/VolumeView.d.ts +2 -0
- package/dist-tsc/VolumeView.d.ts.map +1 -0
- package/dist-tsc/VolumeView.js +521 -0
- package/dist-tsc/index.d.ts +2 -0
- package/dist-tsc/index.d.ts.map +1 -0
- package/dist-tsc/index.js +1 -0
- package/dist-tsc/shaders/GaussianFragmentShader.d.ts +2 -0
- package/dist-tsc/shaders/GaussianFragmentShader.d.ts.map +1 -0
- package/dist-tsc/shaders/GaussianFragmentShader.js +242 -0
- package/dist-tsc/shaders/GaussianVertexShader.d.ts +2 -0
- package/dist-tsc/shaders/GaussianVertexShader.d.ts.map +1 -0
- package/dist-tsc/shaders/GaussianVertexShader.js +51 -0
- package/dist-tsc/shaders/VolumeFragmentShader.d.ts +2 -0
- package/dist-tsc/shaders/VolumeFragmentShader.d.ts.map +1 -0
- package/dist-tsc/shaders/VolumeFragmentShader.js +1817 -0
- package/dist-tsc/shaders/VolumeVertexShader.d.ts +2 -0
- package/dist-tsc/shaders/VolumeVertexShader.d.ts.map +1 -0
- package/dist-tsc/shaders/VolumeVertexShader.js +110 -0
- package/package.json +63 -0
- package/src/SpatialWrapper.js +60 -0
- package/src/VolumeDataManager.js +1515 -0
- package/src/VolumeDataManager.test.js +180 -0
- package/src/VolumeRenderManager.js +589 -0
- package/src/VolumeShader.js +74 -0
- package/src/VolumeView.js +651 -0
- package/src/index.js +1 -0
- package/src/shaders/GaussianFragmentShader.js +243 -0
- package/src/shaders/GaussianVertexShader.js +52 -0
- package/src/shaders/VolumeFragmentShader.js +1818 -0
- package/src/shaders/VolumeVertexShader.js +111 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VolumeDataManager.test.d.ts","sourceRoot":"","sources":["../src/VolumeDataManager.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { _initMRMCPT, _resolutionStatsToBrickLayout, _packPT, _ptToZarr, _requestBufferToRequestObjects, } from './VolumeDataManager.js';
|
|
3
|
+
describe('spatial-accelerated data utils', () => {
|
|
4
|
+
describe('initialization of page table and brick cache', () => {
|
|
5
|
+
it('Can compute brick layout per resolution', () => {
|
|
6
|
+
// TODO: also add test for calculation of brick layout from zarr metadata
|
|
7
|
+
const multiResolutionStats = [
|
|
8
|
+
{
|
|
9
|
+
height: 3181,
|
|
10
|
+
width: 4045,
|
|
11
|
+
depth: 194,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
height: 1590,
|
|
15
|
+
width: 2022,
|
|
16
|
+
depth: 194,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
height: 795,
|
|
20
|
+
width: 1011,
|
|
21
|
+
depth: 194,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
height: 398,
|
|
25
|
+
width: 506,
|
|
26
|
+
depth: 194,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
height: 199,
|
|
30
|
+
width: 253,
|
|
31
|
+
depth: 194,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
height: 99,
|
|
35
|
+
width: 126,
|
|
36
|
+
depth: 97,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
height: 50,
|
|
40
|
+
width: 63,
|
|
41
|
+
depth: 48,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
height: 25,
|
|
45
|
+
width: 32,
|
|
46
|
+
depth: 24,
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
const zarrStoreBrickLayout = [
|
|
50
|
+
[7, 100, 127],
|
|
51
|
+
[7, 50, 64],
|
|
52
|
+
[7, 25, 32],
|
|
53
|
+
[7, 13, 16],
|
|
54
|
+
[7, 7, 8],
|
|
55
|
+
[4, 4, 4],
|
|
56
|
+
[2, 2, 2],
|
|
57
|
+
[1, 1, 1],
|
|
58
|
+
];
|
|
59
|
+
const result = _resolutionStatsToBrickLayout(multiResolutionStats);
|
|
60
|
+
expect(result).toEqual(zarrStoreBrickLayout);
|
|
61
|
+
});
|
|
62
|
+
it('Initializes page table based on data extent', () => {
|
|
63
|
+
const zarrStoreBrickLayout = [
|
|
64
|
+
[7, 100, 127],
|
|
65
|
+
[7, 50, 64],
|
|
66
|
+
[7, 25, 32],
|
|
67
|
+
[7, 13, 16],
|
|
68
|
+
[7, 7, 8],
|
|
69
|
+
[4, 4, 4],
|
|
70
|
+
[2, 2, 2],
|
|
71
|
+
[1, 1, 1],
|
|
72
|
+
];
|
|
73
|
+
const channelsZarrMappingsLength = 7;
|
|
74
|
+
const { PT, ptTHREE, bcTHREE } = _initMRMCPT(zarrStoreBrickLayout, channelsZarrMappingsLength);
|
|
75
|
+
expect(PT).toEqual({
|
|
76
|
+
channelOffsets: [
|
|
77
|
+
[0, 0, 1],
|
|
78
|
+
[0, 1, 0],
|
|
79
|
+
[0, 1, 1],
|
|
80
|
+
[1, 0, 0],
|
|
81
|
+
[1, 0, 1],
|
|
82
|
+
[1, 1, 0],
|
|
83
|
+
[1, 1, 1],
|
|
84
|
+
],
|
|
85
|
+
anchors: [
|
|
86
|
+
[0, 0, 36],
|
|
87
|
+
[64, 53, 29],
|
|
88
|
+
[32, 28, 22],
|
|
89
|
+
[16, 15, 15],
|
|
90
|
+
[8, 8, 8],
|
|
91
|
+
[4, 4, 4],
|
|
92
|
+
[2, 2, 2],
|
|
93
|
+
[1, 1, 1],
|
|
94
|
+
],
|
|
95
|
+
offsets: [],
|
|
96
|
+
xExtent: 128,
|
|
97
|
+
yExtent: 103,
|
|
98
|
+
zExtent: 36,
|
|
99
|
+
z0Extent: 7,
|
|
100
|
+
zTotal: 85,
|
|
101
|
+
lowestDataRes: 7,
|
|
102
|
+
});
|
|
103
|
+
expect(ptTHREE.isTexture).toEqual(true);
|
|
104
|
+
expect(ptTHREE.source.data.width).toEqual(128);
|
|
105
|
+
expect(ptTHREE.source.data.height).toEqual(103);
|
|
106
|
+
expect(ptTHREE.source.data.depth).toEqual(85);
|
|
107
|
+
expect(ptTHREE.source.data.data).toBeInstanceOf(Uint32Array);
|
|
108
|
+
expect(ptTHREE.source.data.data.length).toEqual(1120640);
|
|
109
|
+
expect(bcTHREE.isTexture).toEqual(true);
|
|
110
|
+
expect(bcTHREE.source.data.width).toEqual(2048);
|
|
111
|
+
expect(bcTHREE.source.data.height).toEqual(2048);
|
|
112
|
+
expect(bcTHREE.source.data.depth).toEqual(128);
|
|
113
|
+
expect(bcTHREE.source.data.data).toBeInstanceOf(Uint8Array);
|
|
114
|
+
expect(bcTHREE.source.data.data.length).toEqual(536870912);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
describe('_packPT packs page table properties for a brick', () => {
|
|
118
|
+
it('correctly packs the properties', () => {
|
|
119
|
+
expect(_packPT(0, 80, 1, 0, 0)).toEqual(3223847936);
|
|
120
|
+
expect(_packPT(0, 56, 2, 0, 0)).toEqual(3223062528);
|
|
121
|
+
expect(_packPT(0, 0, 27, 0, 0)).toEqual(3221253120);
|
|
122
|
+
expect(_packPT(0, 111, 61, 0, 0)).toEqual(3224892416);
|
|
123
|
+
expect(_packPT(0, 3, 14, 1, 0)).toEqual(3221305360);
|
|
124
|
+
expect(_packPT(0, 41, 60, 1, 0)).toEqual(3222597648);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('_ptToZarr returns channel, res., xyz coordinates for a page table coord.', () => {
|
|
128
|
+
it('correctly converts page table coordinates to image pyramid chunk keys', () => {
|
|
129
|
+
const ptInfo = {
|
|
130
|
+
PT_zExtent: 36,
|
|
131
|
+
PT_z0Extent: 7,
|
|
132
|
+
PT_anchors: [
|
|
133
|
+
[0, 0, 36],
|
|
134
|
+
[64, 53, 29],
|
|
135
|
+
[32, 28, 22],
|
|
136
|
+
[16, 15, 15],
|
|
137
|
+
[8, 8, 8],
|
|
138
|
+
[4, 4, 4],
|
|
139
|
+
[2, 2, 2],
|
|
140
|
+
[1, 1, 1],
|
|
141
|
+
],
|
|
142
|
+
};
|
|
143
|
+
expect(_ptToZarr(4, 1, 13, ptInfo)).toEqual({ channel: 0, resolution: 4, x: 4, y: 1, z: 5 });
|
|
144
|
+
expect(_ptToZarr(7, 1, 14, ptInfo)).toEqual({ channel: 0, resolution: 4, x: 7, y: 1, z: 6 });
|
|
145
|
+
expect(_ptToZarr(2, 1, 4, ptInfo)).toEqual({ channel: 0, resolution: 5, x: 2, y: 1, z: 0 });
|
|
146
|
+
expect(_ptToZarr(0, 4, 14, ptInfo)).toEqual({ channel: 0, resolution: 4, x: 0, y: 4, z: 6 });
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe('_requestBufferToRequestObjects', () => {
|
|
150
|
+
it('correctly converts a buffer to request objects', () => {
|
|
151
|
+
const buffer = new Uint8Array([
|
|
152
|
+
0, 0, 0, 0,
|
|
153
|
+
0, 0, 0, 0,
|
|
154
|
+
0, 128, 16, 13,
|
|
155
|
+
0, 0, 0, 0,
|
|
156
|
+
]);
|
|
157
|
+
const k = 40;
|
|
158
|
+
const { requests: result } = _requestBufferToRequestObjects(buffer, k);
|
|
159
|
+
expect(result).toEqual([
|
|
160
|
+
{ x: 2, y: 1, z: 13 },
|
|
161
|
+
]);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
});
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages the volume rendering state, shader setup, and uniform management
|
|
3
|
+
* Serves as a replacement for many functions from three-utils.js
|
|
4
|
+
*/
|
|
5
|
+
export class VolumeRenderManager {
|
|
6
|
+
uniforms: any;
|
|
7
|
+
shader: {
|
|
8
|
+
uniforms: {
|
|
9
|
+
u_size: {
|
|
10
|
+
value: import("three").Vector3;
|
|
11
|
+
};
|
|
12
|
+
clim0: {
|
|
13
|
+
value: Vector2;
|
|
14
|
+
};
|
|
15
|
+
clim1: {
|
|
16
|
+
value: Vector2;
|
|
17
|
+
};
|
|
18
|
+
clim2: {
|
|
19
|
+
value: Vector2;
|
|
20
|
+
};
|
|
21
|
+
clim3: {
|
|
22
|
+
value: Vector2;
|
|
23
|
+
};
|
|
24
|
+
clim4: {
|
|
25
|
+
value: Vector2;
|
|
26
|
+
};
|
|
27
|
+
clim5: {
|
|
28
|
+
value: Vector2;
|
|
29
|
+
};
|
|
30
|
+
clim6: {
|
|
31
|
+
value: Vector2;
|
|
32
|
+
};
|
|
33
|
+
clim7: {
|
|
34
|
+
value: Vector2;
|
|
35
|
+
};
|
|
36
|
+
xClip: {
|
|
37
|
+
value: Vector2;
|
|
38
|
+
};
|
|
39
|
+
yClip: {
|
|
40
|
+
value: Vector2;
|
|
41
|
+
};
|
|
42
|
+
zClip: {
|
|
43
|
+
value: Vector2;
|
|
44
|
+
};
|
|
45
|
+
u_window_size: {
|
|
46
|
+
value: Vector2;
|
|
47
|
+
};
|
|
48
|
+
u_vol_scale: {
|
|
49
|
+
value: import("three").Vector3;
|
|
50
|
+
};
|
|
51
|
+
u_renderstyle: {
|
|
52
|
+
value: number;
|
|
53
|
+
};
|
|
54
|
+
brickCacheTex: {
|
|
55
|
+
type: string;
|
|
56
|
+
value: null;
|
|
57
|
+
};
|
|
58
|
+
pageTableTex: {
|
|
59
|
+
type: string;
|
|
60
|
+
value: null;
|
|
61
|
+
};
|
|
62
|
+
color0: {
|
|
63
|
+
value: import("three").Vector4;
|
|
64
|
+
};
|
|
65
|
+
color1: {
|
|
66
|
+
value: import("three").Vector4;
|
|
67
|
+
};
|
|
68
|
+
color2: {
|
|
69
|
+
value: import("three").Vector4;
|
|
70
|
+
};
|
|
71
|
+
color3: {
|
|
72
|
+
value: import("three").Vector4;
|
|
73
|
+
};
|
|
74
|
+
color4: {
|
|
75
|
+
value: import("three").Vector4;
|
|
76
|
+
};
|
|
77
|
+
color5: {
|
|
78
|
+
value: import("three").Vector4;
|
|
79
|
+
};
|
|
80
|
+
color6: {
|
|
81
|
+
value: import("three").Vector4;
|
|
82
|
+
};
|
|
83
|
+
channelMapping: {
|
|
84
|
+
value: number[];
|
|
85
|
+
};
|
|
86
|
+
resGlobal: {
|
|
87
|
+
value: Vector2;
|
|
88
|
+
};
|
|
89
|
+
res0: {
|
|
90
|
+
value: Vector2;
|
|
91
|
+
};
|
|
92
|
+
res1: {
|
|
93
|
+
value: Vector2;
|
|
94
|
+
};
|
|
95
|
+
res2: {
|
|
96
|
+
value: Vector2;
|
|
97
|
+
};
|
|
98
|
+
res3: {
|
|
99
|
+
value: Vector2;
|
|
100
|
+
};
|
|
101
|
+
res4: {
|
|
102
|
+
value: Vector2;
|
|
103
|
+
};
|
|
104
|
+
res5: {
|
|
105
|
+
value: Vector2;
|
|
106
|
+
};
|
|
107
|
+
res6: {
|
|
108
|
+
value: Vector2;
|
|
109
|
+
};
|
|
110
|
+
maxChannels: {
|
|
111
|
+
value: number;
|
|
112
|
+
};
|
|
113
|
+
lodFactor: {
|
|
114
|
+
value: number;
|
|
115
|
+
};
|
|
116
|
+
near: {
|
|
117
|
+
value: number;
|
|
118
|
+
};
|
|
119
|
+
far: {
|
|
120
|
+
value: number;
|
|
121
|
+
};
|
|
122
|
+
opacity: {
|
|
123
|
+
value: number;
|
|
124
|
+
};
|
|
125
|
+
volumeCount: {
|
|
126
|
+
value: number;
|
|
127
|
+
};
|
|
128
|
+
boxSize: {
|
|
129
|
+
value: import("three").Vector3;
|
|
130
|
+
};
|
|
131
|
+
renderRes: {
|
|
132
|
+
value: number;
|
|
133
|
+
};
|
|
134
|
+
voxelExtents: {
|
|
135
|
+
value: import("three").Vector3;
|
|
136
|
+
};
|
|
137
|
+
anchor0: {
|
|
138
|
+
value: import("three").Vector3;
|
|
139
|
+
};
|
|
140
|
+
anchor1: {
|
|
141
|
+
value: import("three").Vector3;
|
|
142
|
+
};
|
|
143
|
+
anchor2: {
|
|
144
|
+
value: import("three").Vector3;
|
|
145
|
+
};
|
|
146
|
+
anchor3: {
|
|
147
|
+
value: import("three").Vector3;
|
|
148
|
+
};
|
|
149
|
+
anchor4: {
|
|
150
|
+
value: import("three").Vector3;
|
|
151
|
+
};
|
|
152
|
+
anchor5: {
|
|
153
|
+
value: import("three").Vector3;
|
|
154
|
+
};
|
|
155
|
+
anchor6: {
|
|
156
|
+
value: import("three").Vector3;
|
|
157
|
+
};
|
|
158
|
+
anchor7: {
|
|
159
|
+
value: import("three").Vector3;
|
|
160
|
+
};
|
|
161
|
+
anchor8: {
|
|
162
|
+
value: import("three").Vector3;
|
|
163
|
+
};
|
|
164
|
+
anchor9: {
|
|
165
|
+
value: import("three").Vector3;
|
|
166
|
+
};
|
|
167
|
+
scale0: {
|
|
168
|
+
value: import("three").Vector3;
|
|
169
|
+
};
|
|
170
|
+
scale1: {
|
|
171
|
+
value: import("three").Vector3;
|
|
172
|
+
};
|
|
173
|
+
scale2: {
|
|
174
|
+
value: import("three").Vector3;
|
|
175
|
+
};
|
|
176
|
+
scale3: {
|
|
177
|
+
value: import("three").Vector3;
|
|
178
|
+
};
|
|
179
|
+
scale4: {
|
|
180
|
+
value: import("three").Vector3;
|
|
181
|
+
};
|
|
182
|
+
scale5: {
|
|
183
|
+
value: import("three").Vector3;
|
|
184
|
+
};
|
|
185
|
+
scale6: {
|
|
186
|
+
value: import("three").Vector3;
|
|
187
|
+
};
|
|
188
|
+
scale7: {
|
|
189
|
+
value: import("three").Vector3;
|
|
190
|
+
};
|
|
191
|
+
scale8: {
|
|
192
|
+
value: import("three").Vector3;
|
|
193
|
+
};
|
|
194
|
+
scale9: {
|
|
195
|
+
value: import("three").Vector3;
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
vertexShader: string;
|
|
199
|
+
fragmentShader: string;
|
|
200
|
+
} | null;
|
|
201
|
+
meshScale: number[];
|
|
202
|
+
geometrySize: number[];
|
|
203
|
+
boxSize: number[];
|
|
204
|
+
zarrInit: boolean;
|
|
205
|
+
channelsVisible: any[];
|
|
206
|
+
channelTargetC: any[];
|
|
207
|
+
zarrStoreNumResolutions: any;
|
|
208
|
+
channelMaxResolutionIndex: any[];
|
|
209
|
+
colors: any[];
|
|
210
|
+
contrastLimits: any[];
|
|
211
|
+
layerTransparency: number;
|
|
212
|
+
xSlice: Vector2;
|
|
213
|
+
ySlice: Vector2;
|
|
214
|
+
zSlice: Vector2;
|
|
215
|
+
originalScale: number[];
|
|
216
|
+
physicalDimensions: number[];
|
|
217
|
+
maxResolution: number[];
|
|
218
|
+
maxRange: number;
|
|
219
|
+
maxRangeSet: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Initialize shader and uniform objects
|
|
222
|
+
*/
|
|
223
|
+
initializeShader(): void;
|
|
224
|
+
/**
|
|
225
|
+
* Extract rendering settings from coordination props
|
|
226
|
+
* @param {Object} props - Component props
|
|
227
|
+
* @returns {Object} Extracted rendering settings
|
|
228
|
+
*/
|
|
229
|
+
extractRenderingSettingsFromProps(props: Object): Object;
|
|
230
|
+
/**
|
|
231
|
+
* Update the render settings from the given props
|
|
232
|
+
* @param {Object} props - Component props
|
|
233
|
+
* @returns {boolean} True if settings were successfully updated
|
|
234
|
+
*/
|
|
235
|
+
updateFromProps(props: Object): boolean;
|
|
236
|
+
renderingMode: any;
|
|
237
|
+
/**
|
|
238
|
+
* Update the rendering based on the current volume data from the data manager
|
|
239
|
+
* @param {object} volumeDataManagerProps - Params derived from the volume data manager
|
|
240
|
+
* @returns {Object|null} Updated rendering settings or null if rendering is not possible
|
|
241
|
+
*/
|
|
242
|
+
updateRendering({ zarrStoreShapes, originalScaleXYZ, physicalDimensionsXYZ, maxResolutionXYZ, boxDimensionsXYZ, normalizedScaleXYZ, bcTHREE, ptTHREE, }: object): Object | null;
|
|
243
|
+
normalizedScale: any;
|
|
244
|
+
/**
|
|
245
|
+
* Update shader uniforms with current rendering values
|
|
246
|
+
* @param {Array} textures - List of 3D textures
|
|
247
|
+
* @param {Object} dimensions - Dimensions object
|
|
248
|
+
* @param {number} renderstyle - Rendering mode value
|
|
249
|
+
* @param {Array} contrastLimits - List of contrast limits for each channel
|
|
250
|
+
* @param {Array} colors - List of colors for each channel
|
|
251
|
+
* @param {number} layerTransparency - Overall transparency value
|
|
252
|
+
* @param {Vector2} xSlice - X clipping plane
|
|
253
|
+
* @param {Vector2} ySlice - Y clipping plane
|
|
254
|
+
* @param {Vector2} zSlice - Z clipping plane
|
|
255
|
+
*/
|
|
256
|
+
updateUniforms(textures: any[], dimensions: Object, renderstyle: number, contrastLimits: any[], colors: any[], layerTransparency: number, xSlice: Vector2, ySlice: Vector2, zSlice: Vector2, brickCacheTexture: any, pageTableTexture: any): void;
|
|
257
|
+
/**
|
|
258
|
+
* Sets the processing render target
|
|
259
|
+
* @param {WebGLMultipleRenderTargets} mrt - Multiple render targets object with 3 attachments
|
|
260
|
+
*/
|
|
261
|
+
setChannelMapping(channelMapping: any): void;
|
|
262
|
+
setZarrUniforms(zarrStore: any, PT: any): void;
|
|
263
|
+
}
|
|
264
|
+
import { Vector2 } from 'three';
|
|
265
|
+
//# sourceMappingURL=VolumeRenderManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VolumeRenderManager.d.ts","sourceRoot":"","sources":["../src/VolumeRenderManager.js"],"names":[],"mappings":"AA4BA;;;GAGG;AACH;IAII,cAAoB;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAkB;IAClB,oBAA0B;IAC1B,uBAA6B;IAC7B,kBAAwB;IACxB,kBAAqB;IAGrB,uBAAyB;IACzB,sBAAwB;IACxB,6BAAmC;IACnC,iCAAmC;IACnC,cAAgB;IAChB,sBAAwB;IACxB,0BAA4B;IAC5B,gBAAqC;IACrC,gBAAqC;IACrC,gBAAqC;IACrC,wBAA8B;IAC9B,6BAAmC;IACnC,wBAA8B;IAE9B,iBAAmB;IACnB,qBAAwB;IAS1B;;OAEG;IACH,yBAIC;IAED;;;;OAIG;IACH,yCAHW,MAAM,GACJ,MAAM,CAqIlB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACJ,OAAO,CAsBnB;IAPC,mBAA2C;IAS7C;;;;OAIG;IACH,yJAHW,MAAM,GACJ,MAAM,GAAC,IAAI,CAsIvB;IAzCG,qBAAyC;IA2C7C;;;;;;;;;;;OAWG;IACH,4CATW,MAAM,eACN,MAAM,2DAGN,MAAM,UACN,OAAO,UACP,OAAO,UACP,OAAO,uDA4HjB;IAED;;;OAGG;IAQH,6CAIC;IAKD,+CAkDC;CACF;wBAxkBM,OAAO"}
|