@cornerstonejs/core 0.30.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +5 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +55 -5
  3. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/StackViewport.d.ts +3 -1
  5. package/dist/cjs/RenderingEngine/StackViewport.js +53 -21
  6. package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
  7. package/dist/cjs/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +2 -248
  8. package/dist/cjs/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js.map +1 -1
  9. package/dist/cjs/enums/VOILUTFunctionType.d.ts +5 -0
  10. package/dist/cjs/enums/VOILUTFunctionType.js +9 -0
  11. package/dist/cjs/enums/VOILUTFunctionType.js.map +1 -0
  12. package/dist/cjs/enums/index.d.ts +2 -1
  13. package/dist/cjs/enums/index.js +3 -1
  14. package/dist/cjs/enums/index.js.map +1 -1
  15. package/dist/cjs/types/EventTypes.d.ts +2 -0
  16. package/dist/cjs/types/IImage.d.ts +1 -0
  17. package/dist/cjs/types/IVolumeViewport.d.ts +1 -1
  18. package/dist/cjs/types/Metadata.d.ts +1 -0
  19. package/dist/cjs/types/StackViewportProperties.d.ts +2 -0
  20. package/dist/cjs/types/VolumeViewportProperties.d.ts +2 -0
  21. package/dist/cjs/utilities/createLinearRGBTransferFunction.d.ts +3 -0
  22. package/dist/cjs/utilities/createLinearRGBTransferFunction.js +22 -0
  23. package/dist/cjs/utilities/createLinearRGBTransferFunction.js.map +1 -0
  24. package/dist/cjs/utilities/createSigmoidRGBTransferFunction.d.ts +3 -0
  25. package/dist/cjs/utilities/createSigmoidRGBTransferFunction.js +29 -0
  26. package/dist/cjs/utilities/createSigmoidRGBTransferFunction.js.map +1 -0
  27. package/dist/cjs/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +2 -0
  28. package/dist/cjs/utilities/getVoiFromSigmoidRGBTransferFunction.js +22 -0
  29. package/dist/cjs/utilities/getVoiFromSigmoidRGBTransferFunction.js.map +1 -0
  30. package/dist/cjs/utilities/index.d.ts +4 -1
  31. package/dist/cjs/utilities/index.js +7 -1
  32. package/dist/cjs/utilities/index.js.map +1 -1
  33. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +5 -1
  34. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +57 -7
  35. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  36. package/dist/esm/RenderingEngine/StackViewport.d.ts +3 -1
  37. package/dist/esm/RenderingEngine/StackViewport.js +54 -22
  38. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  39. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +2 -248
  40. package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js.map +1 -1
  41. package/dist/esm/enums/VOILUTFunctionType.d.ts +5 -0
  42. package/dist/esm/enums/VOILUTFunctionType.js +7 -0
  43. package/dist/esm/enums/VOILUTFunctionType.js.map +1 -0
  44. package/dist/esm/enums/index.d.ts +2 -1
  45. package/dist/esm/enums/index.js +2 -1
  46. package/dist/esm/enums/index.js.map +1 -1
  47. package/dist/esm/types/EventTypes.d.ts +2 -0
  48. package/dist/esm/types/IImage.d.ts +1 -0
  49. package/dist/esm/types/IVolumeViewport.d.ts +1 -1
  50. package/dist/esm/types/Metadata.d.ts +1 -0
  51. package/dist/esm/types/StackViewportProperties.d.ts +2 -0
  52. package/dist/esm/types/VolumeViewportProperties.d.ts +2 -0
  53. package/dist/esm/utilities/createLinearRGBTransferFunction.d.ts +3 -0
  54. package/dist/esm/utilities/createLinearRGBTransferFunction.js +16 -0
  55. package/dist/esm/utilities/createLinearRGBTransferFunction.js.map +1 -0
  56. package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +3 -0
  57. package/dist/esm/utilities/createSigmoidRGBTransferFunction.js +23 -0
  58. package/dist/esm/utilities/createSigmoidRGBTransferFunction.js.map +1 -0
  59. package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +2 -0
  60. package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.js +19 -0
  61. package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.js.map +1 -0
  62. package/dist/esm/utilities/index.d.ts +4 -1
  63. package/dist/esm/utilities/index.js +4 -1
  64. package/dist/esm/utilities/index.js.map +1 -1
  65. package/dist/umd/index.js +1 -1
  66. package/dist/umd/index.js.map +1 -1
  67. package/package.json +4 -4
@@ -1,4 +1,3 @@
1
- import { mat3, mat4, vec3 } from 'gl-matrix';
2
1
  import macro from '@kitware/vtk.js/macros';
3
2
  import vtkOpenGLVolumeMapper from '@kitware/vtk.js/Rendering/OpenGL/VolumeMapper';
4
3
  import { Filter } from '@kitware/vtk.js/Rendering/OpenGL/Texture/Constants';
@@ -146,260 +145,15 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
146
145
  }
147
146
  model.VBOBuildTime.modified();
148
147
  };
149
- publicAPI.setCameraShaderParameters = (cellBO, ren, actor) => {
150
- const program = cellBO.getProgram();
151
- const cam = model.openGLCamera.getRenderable();
152
- const crange = cam.getClippingRange();
153
- program.setUniformf('camThick', crange[1] - crange[0]);
154
- program.setUniformf('camNear', crange[0]);
155
- program.setUniformf('camFar', crange[1]);
156
- const keyMats = model.openGLCamera.getKeyMatrices(ren);
157
- const actMats = model.openGLVolume.getKeyMatrices();
158
- mat4.multiply(model.modelToView, keyMats.wcvc, actMats.mcwc);
159
- const bounds = model.currentInput.getBounds();
160
- const spc = model.currentInput.getSpacing();
161
- const dims = model.currentInput.getDimensions();
162
- const pos = new Float64Array(3);
163
- const dir = new Float64Array(3);
164
- let dcxmin = 1.0;
165
- let dcxmax = -1.0;
166
- let dcymin = 1.0;
167
- let dcymax = -1.0;
168
- for (let i = 0; i < 8; ++i) {
169
- vec3.set(pos, bounds[i % 2], bounds[2 + (Math.floor(i / 2) % 2)], bounds[4 + Math.floor(i / 4)]);
170
- vec3.transformMat4(pos, pos, model.modelToView);
171
- if (!cam.getParallelProjection()) {
172
- vec3.normalize(dir, pos);
173
- const t = -crange[0] / pos[2];
174
- vec3.scale(pos, dir, t);
175
- }
176
- vec3.transformMat4(pos, pos, keyMats.vcpc);
177
- dcxmin = Math.min(pos[0], dcxmin);
178
- dcxmax = Math.max(pos[0], dcxmax);
179
- dcymin = Math.min(pos[1], dcymin);
180
- dcymax = Math.max(pos[1], dcymax);
181
- }
182
- program.setUniformf('dcxmin', dcxmin);
183
- program.setUniformf('dcxmax', dcxmax);
184
- program.setUniformf('dcymin', dcymin);
185
- program.setUniformf('dcymax', dcymax);
186
- if (program.isUniformUsed('cameraParallel')) {
187
- program.setUniformi('cameraParallel', cam.getParallelProjection());
188
- }
189
- const ext = model.currentInput.getSpatialExtent();
190
- const vsize = new Float64Array(3);
191
- vec3.set(vsize, (ext[1] - ext[0]) * spc[0], (ext[3] - ext[2]) * spc[1], (ext[5] - ext[4]) * spc[2]);
192
- program.setUniform3f('vSpacing', spc[0], spc[1], spc[2]);
193
- vec3.set(pos, ext[0], ext[2], ext[4]);
194
- model.currentInput.indexToWorldVec3(pos, pos);
195
- vec3.transformMat4(pos, pos, model.modelToView);
196
- program.setUniform3f('vOriginVC', pos[0], pos[1], pos[2]);
197
- const i2wmat4 = model.currentInput.getIndexToWorld();
198
- mat4.multiply(model.idxToView, model.modelToView, i2wmat4);
199
- mat3.multiply(model.idxNormalMatrix, keyMats.normalMatrix, actMats.normalMatrix);
200
- mat3.multiply(model.idxNormalMatrix, model.idxNormalMatrix, model.currentInput.getDirection());
201
- const maxSamples = vec3.length(vsize) / model.renderable.getSampleDistance();
202
- if (maxSamples > model.renderable.getMaximumSamplesPerRay()) {
203
- vtkWarningMacro(`The number of steps required ${Math.ceil(maxSamples)} is larger than the
204
- specified maximum number of steps ${model.renderable.getMaximumSamplesPerRay()}.
205
- Please either change the
206
- volumeMapper sampleDistance or its maximum number of samples.`);
207
- }
208
- const vctoijk = new Float64Array(3);
209
- vec3.set(vctoijk, 1.0, 1.0, 1.0);
210
- vec3.divide(vctoijk, vctoijk, vsize);
211
- program.setUniform3f('vVCToIJK', vctoijk[0], vctoijk[1], vctoijk[2]);
212
- program.setUniform3i('volumeDimensions', dims[0], dims[1], dims[2]);
213
- if (!model._openGLRenderWindow.getWebgl2()) {
214
- const volInfo = model.scalarTexture.getVolumeInfo();
215
- program.setUniformf('texWidth', model.scalarTexture.getWidth());
216
- program.setUniformf('texHeight', model.scalarTexture.getHeight());
217
- program.setUniformi('xreps', volInfo.xreps);
218
- program.setUniformi('xstride', volInfo.xstride);
219
- program.setUniformi('ystride', volInfo.ystride);
220
- }
221
- const normal = new Float64Array(3);
222
- const pos2 = new Float64Array(3);
223
- for (let i = 0; i < 6; ++i) {
224
- switch (i) {
225
- case 1:
226
- vec3.set(normal, -1.0, 0.0, 0.0);
227
- vec3.set(pos2, ext[0], ext[2], ext[4]);
228
- break;
229
- case 2:
230
- vec3.set(normal, 0.0, 1.0, 0.0);
231
- vec3.set(pos2, ext[1], ext[3], ext[5]);
232
- break;
233
- case 3:
234
- vec3.set(normal, 0.0, -1.0, 0.0);
235
- vec3.set(pos2, ext[0], ext[2], ext[4]);
236
- break;
237
- case 4:
238
- vec3.set(normal, 0.0, 0.0, 1.0);
239
- vec3.set(pos2, ext[1], ext[3], ext[5]);
240
- break;
241
- case 5:
242
- vec3.set(normal, 0.0, 0.0, -1.0);
243
- vec3.set(pos2, ext[0], ext[2], ext[4]);
244
- break;
245
- case 0:
246
- default:
247
- vec3.set(normal, 1.0, 0.0, 0.0);
248
- vec3.set(pos2, ext[1], ext[3], ext[5]);
249
- break;
250
- }
251
- vec3.transformMat3(normal, normal, model.idxNormalMatrix);
252
- vec3.transformMat4(pos2, pos2, model.idxToView);
253
- const dist = -1.0 * vec3.dot(pos2, normal);
254
- program.setUniform3f(`vPlaneNormal${i}`, normal[0], normal[1], normal[2]);
255
- program.setUniformf(`vPlaneDistance${i}`, dist);
256
- if (actor.getProperty().getUseLabelOutline()) {
257
- const image = model.currentInput;
258
- const worldToIndex = image.getWorldToIndex();
259
- program.setUniformMatrix('vWCtoIDX', worldToIndex);
260
- const camera = ren.getActiveCamera();
261
- const [cRange0, cRange1] = camera.getClippingRange();
262
- const distance = camera.getDistance();
263
- camera.setClippingRange(distance, distance + 0.1);
264
- const labelOutlineKeyMats = model.openGLCamera.getKeyMatrices(ren);
265
- mat4.invert(model.projectionToWorld, labelOutlineKeyMats.wcpc);
266
- camera.setClippingRange(cRange0, cRange1);
267
- model.openGLCamera.getKeyMatrices(ren);
268
- program.setUniformMatrix('PCWCMatrix', model.projectionToWorld);
269
- const size = publicAPI.getRenderTargetSize();
270
- program.setUniformf('vpWidth', size[0]);
271
- program.setUniformf('vpHeight', size[1]);
272
- const offset = publicAPI.getRenderTargetOffset();
273
- program.setUniformf('vpOffsetX', offset[0] / size[0]);
274
- program.setUniformf('vpOffsetY', offset[1] / size[1]);
275
- }
276
- }
277
- mat4.invert(model.projectionToView, keyMats.vcpc);
278
- program.setUniformMatrix('PCVCMatrix', model.projectionToView);
279
- switch (model.lastLightComplexity) {
280
- default:
281
- case 0:
282
- break;
283
- case 1:
284
- case 2:
285
- case 3: {
286
- let lightNum = 0;
287
- const lightColor = [];
288
- ren.getLights().forEach((light) => {
289
- const status = light.getSwitch();
290
- if (status > 0) {
291
- const dColor = light.getColor();
292
- const intensity = light.getIntensity();
293
- lightColor[0] = dColor[0] * intensity;
294
- lightColor[1] = dColor[1] * intensity;
295
- lightColor[2] = dColor[2] * intensity;
296
- program.setUniform3fArray(`lightColor${lightNum}`, lightColor);
297
- const ldir = light.getDirection();
298
- vec3.set(normal, ldir[0], ldir[1], ldir[2]);
299
- vec3.transformMat3(normal, normal, keyMats.normalMatrix);
300
- program.setUniform3f(`lightDirectionVC${lightNum}`, normal[0], normal[1], normal[2]);
301
- const halfAngle = [
302
- -0.5 * normal[0],
303
- -0.5 * normal[1],
304
- -0.5 * (normal[2] - 1.0),
305
- ];
306
- program.setUniform3fArray(`lightHalfAngleVC${lightNum}`, halfAngle);
307
- lightNum++;
308
- }
309
- });
310
- }
311
- }
312
- let lightNum = 0;
313
- const lightColor = [];
314
- const lightDir = [];
315
- const halfAngle = [];
316
- ren.getLights().forEach((light) => {
317
- const status = light.getSwitch();
318
- if (status > 0) {
319
- const dColor = light.getColor();
320
- const intensity = light.getIntensity();
321
- lightColor[0 + lightNum * 3] = dColor[0] * intensity;
322
- lightColor[1 + lightNum * 3] = dColor[1] * intensity;
323
- lightColor[2 + lightNum * 3] = dColor[2] * intensity;
324
- const ldir = light.getDirection();
325
- vec3.set(normal, ldir[0], ldir[1], ldir[2]);
326
- vec3.transformMat3(normal, normal, keyMats.normalMatrix);
327
- vec3.normalize(normal, normal);
328
- lightDir[0 + lightNum * 3] = normal[0];
329
- lightDir[1 + lightNum * 3] = normal[1];
330
- lightDir[2 + lightNum * 3] = normal[2];
331
- halfAngle[0 + lightNum * 3] = -0.5 * normal[0];
332
- halfAngle[1 + lightNum * 3] = -0.5 * normal[1];
333
- halfAngle[2 + lightNum * 3] = -0.5 * (normal[2] - 1.0);
334
- lightNum++;
335
- }
336
- });
337
- program.setUniformi('twoSidedLighting', ren.getTwoSidedLighting());
338
- program.setUniformi('lightNum', lightNum);
339
- program.setUniform3fv('lightColor', lightColor);
340
- program.setUniform3fv('lightDirectionVC', lightDir);
341
- program.setUniform3fv('lightHalfAngleVC', halfAngle);
342
- if (model.lastLightComplexity === 3) {
343
- lightNum = 0;
344
- const lightPositionVC = [];
345
- const lightAttenuation = [];
346
- const lightConeAngle = [];
347
- const lightExponent = [];
348
- const lightPositional = [];
349
- ren.getLights().forEach((light) => {
350
- const status = light.getSwitch();
351
- if (status > 0) {
352
- const attenuation = light.getAttenuationValues();
353
- lightAttenuation[0 + lightNum * 3] = attenuation[0];
354
- lightAttenuation[1 + lightNum * 3] = attenuation[1];
355
- lightAttenuation[2 + lightNum * 3] = attenuation[2];
356
- lightExponent[lightNum] = light.getExponent();
357
- lightConeAngle[lightNum] = light.getConeAngle();
358
- lightPositional[lightNum] = light.getPositional();
359
- const lp = light.getTransformedPosition();
360
- vec3.transformMat4(lp, lp, model.modelToView);
361
- lightPositionVC[0 + lightNum * 3] = lp[0];
362
- lightPositionVC[1 + lightNum * 3] = lp[1];
363
- lightPositionVC[2 + lightNum * 3] = lp[2];
364
- lightNum += 1;
365
- }
366
- });
367
- program.setUniform3fv('lightPositionVC', lightPositionVC);
368
- program.setUniform3fv('lightAttenuation', lightAttenuation);
369
- program.setUniformfv('lightConeAngle', lightConeAngle);
370
- program.setUniformfv('lightExponent', lightExponent);
371
- program.setUniformiv('lightPositional', lightPositional);
372
- }
373
- if (model.renderable.getVolumetricScatteringBlending() > 0.0) {
374
- program.setUniformf('giReach', model.renderable.getGlobalIlluminationReach());
375
- program.setUniformf('volumetricScatteringBlending', model.renderable.getVolumetricScatteringBlending());
376
- program.setUniformf('volumeShadowSamplingDistFactor', model.renderable.getVolumeShadowSamplingDistFactor());
377
- program.setUniformf('anisotropy', model.renderable.getAnisotropy());
378
- program.setUniformf('anisotropy2', model.renderable.getAnisotropy() ** 2.0);
379
- }
380
- if (model.renderable.getVolumetricScatteringBlending() === 0.0 &&
381
- model.renderable.getLocalAmbientOcclusion() &&
382
- actor.getProperty().getAmbient() > 0.0) {
383
- const ks = model.renderable.getLAOKernelSize();
384
- program.setUniformi('kernelSize', ks);
385
- const kernelSample = [];
386
- for (let i = 0; i < ks; i++) {
387
- kernelSample[i * 2] = Math.random() * 0.5;
388
- kernelSample[i * 2 + 1] = Math.random() * 0.5;
389
- }
390
- program.setUniform2fv('kernelSample', kernelSample);
391
- program.setUniformi('kernelRadius', model.renderable.getLAOKernelRadius());
392
- }
393
- };
394
148
  publicAPI.getRenderTargetSize = () => {
395
149
  if (model._useSmallViewport) {
396
150
  return [model._smallViewportWidth, model._smallViewportHeight];
397
151
  }
398
- const { usize, vsize } = model.openGLRenderer.getTiledSizeAndOrigin();
152
+ const { usize, vsize } = model._openGLRenderer.getTiledSizeAndOrigin();
399
153
  return [usize, vsize];
400
154
  };
401
155
  publicAPI.getRenderTargetOffset = () => {
402
- const { lowerLeftU, lowerLeftV } = model.openGLRenderer.getTiledSizeAndOrigin();
156
+ const { lowerLeftU, lowerLeftV } = model._openGLRenderer.getTiledSizeAndOrigin();
403
157
  return [lowerLeftU, lowerLeftV];
404
158
  };
405
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vtkStreamingOpenGLVolumeMapper.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vtkStreamingOpenGLVolumeMapper.js","sourceRoot":"","sources":["../../../../src/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ declare enum VOILUTFunctionType {
2
+ LINEAR = "LINEAR",
3
+ SAMPLED_SIGMOID = "SIGMOID"
4
+ }
5
+ export default VOILUTFunctionType;
@@ -0,0 +1,7 @@
1
+ var VOILUTFunctionType;
2
+ (function (VOILUTFunctionType) {
3
+ VOILUTFunctionType["LINEAR"] = "LINEAR";
4
+ VOILUTFunctionType["SAMPLED_SIGMOID"] = "SIGMOID";
5
+ })(VOILUTFunctionType || (VOILUTFunctionType = {}));
6
+ export default VOILUTFunctionType;
7
+ //# sourceMappingURL=VOILUTFunctionType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VOILUTFunctionType.js","sourceRoot":"","sources":["../../../src/enums/VOILUTFunctionType.ts"],"names":[],"mappings":"AAGA,IAAK,kBAIJ;AAJD,WAAK,kBAAkB;IACrB,uCAAiB,CAAA;IACjB,iDAA2B,CAAA;AAE7B,CAAC,EAJI,kBAAkB,KAAlB,kBAAkB,QAItB;AAED,eAAe,kBAAkB,CAAC"}
@@ -7,4 +7,5 @@ import OrientationAxis from './OrientationAxis';
7
7
  import SharedArrayBufferModes from './SharedArrayBufferModes';
8
8
  import GeometryType from './GeometryType';
9
9
  import ContourType from './ContourType';
10
- export { Events, BlendModes, InterpolationType, RequestType, ViewportType, OrientationAxis, SharedArrayBufferModes, GeometryType, ContourType, };
10
+ import VOILUTFunctionType from './VOILUTFunctionType';
11
+ export { Events, BlendModes, InterpolationType, RequestType, ViewportType, OrientationAxis, SharedArrayBufferModes, GeometryType, ContourType, VOILUTFunctionType, };
@@ -7,5 +7,6 @@ import OrientationAxis from './OrientationAxis';
7
7
  import SharedArrayBufferModes from './SharedArrayBufferModes';
8
8
  import GeometryType from './GeometryType';
9
9
  import ContourType from './ContourType';
10
- export { Events, BlendModes, InterpolationType, RequestType, ViewportType, OrientationAxis, SharedArrayBufferModes, GeometryType, ContourType, };
10
+ import VOILUTFunctionType from './VOILUTFunctionType';
11
+ export { Events, BlendModes, InterpolationType, RequestType, ViewportType, OrientationAxis, SharedArrayBufferModes, GeometryType, ContourType, VOILUTFunctionType, };
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,OAAO,EACL,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EACL,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,CAAC"}
@@ -7,6 +7,7 @@ import type ICamera from './ICamera';
7
7
  import type IImage from './IImage';
8
8
  import type IImageVolume from './IImageVolume';
9
9
  import type { VOIRange } from './voi';
10
+ import type VOILUTFunctionType from '../enums/VOILUTFunctionType';
10
11
  declare type CameraModifiedEventDetail = {
11
12
  previousCamera: ICamera;
12
13
  camera: ICamera;
@@ -19,6 +20,7 @@ declare type VoiModifiedEventDetail = {
19
20
  viewportId: string;
20
21
  range: VOIRange;
21
22
  volumeId?: string;
23
+ VOILUTFunction?: VOILUTFunctionType;
22
24
  };
23
25
  declare type ElementDisabledEventDetail = {
24
26
  element: HTMLDivElement;
@@ -20,6 +20,7 @@ interface IImage {
20
20
  intercept: number;
21
21
  windowCenter: number[] | number;
22
22
  windowWidth: number[] | number;
23
+ voiLUTFunction: string;
23
24
  getPixelData: () => Array<number>;
24
25
  getCanvas: () => HTMLCanvasElement;
25
26
  rows: number;
@@ -9,7 +9,7 @@ import { VolumeViewportProperties } from '.';
9
9
  export default interface IVolumeViewport extends IViewport {
10
10
  useCPURendering: boolean;
11
11
  getFrameOfReferenceUID: () => string;
12
- getProperties: () => any;
12
+ getProperties: () => VolumeViewportProperties;
13
13
  canvasToWorld: (canvasPos: Point2) => Point3;
14
14
  worldToCanvas: (worldPos: Point3) => Point2;
15
15
  getCurrentImageIdIndex: () => number;
@@ -14,5 +14,6 @@ declare type Metadata = {
14
14
  Columns: number;
15
15
  Rows: number;
16
16
  voiLut: Array<VOI>;
17
+ VOILUTFunction: string;
17
18
  };
18
19
  export default Metadata;
@@ -1,7 +1,9 @@
1
1
  import InterpolationType from '../enums/InterpolationType';
2
+ import VOILUTFunctionType from '../enums/VOILUTFunctionType';
2
3
  import { VOIRange } from './voi';
3
4
  declare type StackViewportProperties = {
4
5
  voiRange?: VOIRange;
6
+ VOILUTFunction?: VOILUTFunctionType;
5
7
  invert?: boolean;
6
8
  interpolationType?: InterpolationType;
7
9
  rotation?: number;
@@ -1,5 +1,7 @@
1
1
  import { VOIRange } from './voi';
2
+ import VOILUTFunctionType from '../enums/VOILUTFunctionType';
2
3
  declare type VolumeViewportProperties = {
3
4
  voiRange?: VOIRange;
5
+ VOILUTFunction?: VOILUTFunctionType;
4
6
  };
5
7
  export default VolumeViewportProperties;
@@ -0,0 +1,3 @@
1
+ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
+ import { VOIRange } from '../types';
3
+ export default function createLinearRGBTransferFunction(voiRange: VOIRange): vtkColorTransferFunction;
@@ -0,0 +1,16 @@
1
+ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
+ export default function createLinearRGBTransferFunction(voiRange) {
3
+ const cfun = vtkColorTransferFunction.newInstance();
4
+ let lower = 0;
5
+ let upper = 1024;
6
+ if (voiRange &&
7
+ voiRange.lower !== undefined &&
8
+ voiRange.upper !== undefined) {
9
+ lower = voiRange.lower;
10
+ upper = voiRange.upper;
11
+ }
12
+ cfun.addRGBPoint(lower, 0.0, 0.0, 0.0);
13
+ cfun.addRGBPoint(upper, 1.0, 1.0, 1.0);
14
+ return cfun;
15
+ }
16
+ //# sourceMappingURL=createLinearRGBTransferFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLinearRGBTransferFunction.js","sourceRoot":"","sources":["../../../src/utilities/createLinearRGBTransferFunction.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,sDAAsD,CAAC;AAG5F,MAAM,CAAC,OAAO,UAAU,+BAA+B,CACrD,QAAkB;IAElB,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IACE,QAAQ;QACR,QAAQ,CAAC,KAAK,KAAK,SAAS;QAC5B,QAAQ,CAAC,KAAK,KAAK,SAAS,EAC5B;QACA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACvB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;KACxB;IACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
+ import { VOIRange } from '../types';
3
+ export default function createSigmoidRGBTransferFunction(voiRange: VOIRange, approximationNodes?: number): vtkColorTransferFunction;
@@ -0,0 +1,23 @@
1
+ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
+ import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
3
+ import { windowLevel as windowLevelUtil } from '.';
4
+ export default function createSigmoidRGBTransferFunction(voiRange, approximationNodes = 1024) {
5
+ const { windowWidth, windowCenter } = windowLevelUtil.toWindowLevel(voiRange.lower, voiRange.upper);
6
+ const sigmoid = (x, wc, ww) => {
7
+ return 1 / (1 + Math.exp((-4 * (x - wc)) / ww));
8
+ };
9
+ const logit = (y, wc, ww) => {
10
+ return wc - (ww / 4) * Math.log((1 - y) / y);
11
+ };
12
+ const range = [...Array(approximationNodes + 2).keys()]
13
+ .map((v) => v / (approximationNodes + 2))
14
+ .slice(1, -1);
15
+ const table = range.reduce((res, y) => {
16
+ const x = logit(y, windowCenter, windowWidth);
17
+ return res.concat(x, y, y, y, 0.5, 0.0);
18
+ }, []);
19
+ const cfun = vtkColorTransferFunction.newInstance();
20
+ cfun.buildFunctionFromArray(vtkDataArray.newInstance({ values: table, numberOfComponents: 6 }));
21
+ return cfun;
22
+ }
23
+ //# sourceMappingURL=createSigmoidRGBTransferFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSigmoidRGBTransferFunction.js","sourceRoot":"","sources":["../../../src/utilities/createSigmoidRGBTransferFunction.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,sDAAsD,CAAC;AAC5F,OAAO,YAAY,MAAM,uCAAuC,CAAC;AAEjE,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,GAAG,CAAC;AAoBnD,MAAM,CAAC,OAAO,UAAU,gCAAgC,CACtD,QAAkB,EAClB,kBAAkB,GAAG,IAAI;IAEzB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,aAAa,CACjE,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,KAAK,CACf,CAAC;IAIF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE;QACpD,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAQF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE;QAClD,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;IAGF,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;SACxC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,sBAAsB,CACzB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CACnE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
2
+ export default function getVoiFromSigmoidRGBTransferFunction(cfun: vtkColorTransferFunction): [number, number];
@@ -0,0 +1,19 @@
1
+ export default function getVoiFromSigmoidRGBTransferFunction(cfun) {
2
+ let cfunRange = [];
3
+ const [lower, upper] = cfun.getRange();
4
+ cfun.getTable(lower, upper, 1024, cfunRange);
5
+ cfunRange = cfunRange.filter((v, k) => k % 3 === 0);
6
+ const cfunDomain = [...Array(1024).keys()].map((v, k) => {
7
+ return lower + ((upper - lower) / (1024 - 1)) * k;
8
+ });
9
+ const y1 = cfunRange[256];
10
+ const logy1 = Math.log((1 - y1) / y1);
11
+ const x1 = cfunDomain[256];
12
+ const y2 = cfunRange[256 * 3];
13
+ const logy2 = Math.log((1 - y2) / y2);
14
+ const x2 = cfunDomain[256 * 3];
15
+ const ww = Math.round((4 * (x2 - x1)) / (logy1 - logy2));
16
+ const wc = Math.round(x1 + (ww * logy1) / 4);
17
+ return [Math.round(wc - ww / 2), Math.round(wc + ww / 2)];
18
+ }
19
+ //# sourceMappingURL=getVoiFromSigmoidRGBTransferFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVoiFromSigmoidRGBTransferFunction.js","sourceRoot":"","sources":["../../../src/utilities/getVoiFromSigmoidRGBTransferFunction.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAC1D,IAA8B;IAE9B,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtD,OAAO,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import csUtils from './invertRgbTransferFunction';
2
+ import createSigmoidRGBTransferFunction from './createSigmoidRGBTransferFunction';
3
+ import getVoiFromSigmoidRGBTransferFunction from './getVoiFromSigmoidRGBTransferFunction';
4
+ import createLinearRGBTransferFunction from './createLinearRGBTransferFunction';
2
5
  import scaleRgbTransferFunction from './scaleRgbTransferFunction';
3
6
  import triggerEvent from './triggerEvent';
4
7
  import uuidv4 from './uuidv4';
@@ -35,4 +38,4 @@ import hasNaNValues from './hasNaNValues';
35
38
  import applyPreset from './applyPreset';
36
39
  import * as planar from './planar';
37
40
  import * as windowLevel from './windowLevel';
38
- export { csUtils as invertRgbTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
41
+ export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
@@ -1,4 +1,7 @@
1
1
  import csUtils from './invertRgbTransferFunction';
2
+ import createSigmoidRGBTransferFunction from './createSigmoidRGBTransferFunction';
3
+ import getVoiFromSigmoidRGBTransferFunction from './getVoiFromSigmoidRGBTransferFunction';
4
+ import createLinearRGBTransferFunction from './createLinearRGBTransferFunction';
2
5
  import scaleRgbTransferFunction from './scaleRgbTransferFunction';
3
6
  import triggerEvent from './triggerEvent';
4
7
  import uuidv4 from './uuidv4';
@@ -35,5 +38,5 @@ import hasNaNValues from './hasNaNValues';
35
38
  import applyPreset from './applyPreset';
36
39
  import * as planar from './planar';
37
40
  import * as windowLevel from './windowLevel';
38
- export { csUtils as invertRgbTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
41
+ export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
39
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uCAAuC,MAAM,2CAA2C,CAAC;AAChG,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,sCAAsC,EACtC,MAAM,EACN,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,2BAA2B,EAC3B,oCAAoC,EACpC,qBAAqB,EACrB,qBAAqB,EACrB,uCAAuC,EACvC,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,kCAAkC,EAClC,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,EAC9B,YAAY,EACZ,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uCAAuC,MAAM,2CAA2C,CAAC;AAChG,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,gCAAgC,EAChC,oCAAoC,EACpC,+BAA+B,EAC/B,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,sCAAsC,EACtC,MAAM,EACN,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,2BAA2B,EAC3B,oCAAoC,EACpC,qBAAqB,EACrB,qBAAqB,EACrB,uCAAuC,EACvC,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,kCAAkC,EAClC,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,EAC9B,YAAY,EACZ,WAAW,GACZ,CAAC"}