@kitware/vtk.js 21.1.3 → 21.2.1

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 (36) hide show
  1. package/Common/Transform/LandmarkTransform.d.ts +1 -1
  2. package/Filters/General/ImageCropFilter.js +3 -4
  3. package/Filters/Sources/Arrow2DSource.d.ts +14 -13
  4. package/Filters/Sources/ArrowSource.d.ts +9 -8
  5. package/Filters/Sources/CircleSource.d.ts +15 -14
  6. package/Filters/Sources/ConeSource.d.ts +18 -17
  7. package/Filters/Sources/CubeSource.d.ts +19 -19
  8. package/Filters/Sources/Cursor3D.d.ts +19 -16
  9. package/Filters/Sources/CylinderSource.d.ts +15 -14
  10. package/Filters/Sources/LineSource.d.ts +1 -1
  11. package/Filters/Sources/PlaneSource.d.ts +29 -28
  12. package/Filters/Sources/PointSource.d.ts +9 -8
  13. package/Filters/Sources/SphereSource.d.ts +9 -8
  14. package/IO/Core/ImageStream/DefaultProtocol.d.ts +25 -0
  15. package/IO/Core/ImageStream/ViewStream.d.ts +256 -0
  16. package/IO/Core/WSLinkClient.d.ts +29 -6
  17. package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +7 -3
  18. package/Rendering/Core/AbstractMapper.js +1 -0
  19. package/Rendering/Core/Light.d.ts +277 -234
  20. package/Rendering/Core/Property.d.ts +43 -43
  21. package/Rendering/Core/Property2D.d.ts +21 -5
  22. package/Rendering/Core/RenderWindowInteractor.js +7 -7
  23. package/Rendering/Core/Volume.d.ts +9 -0
  24. package/Rendering/Misc/RemoteView.d.ts +199 -0
  25. package/Rendering/OpenGL/ImageMapper.js +1 -1
  26. package/Rendering/OpenGL/PolyDataMapper.js +5 -17
  27. package/Rendering/OpenGL/RenderWindow.js +190 -106
  28. package/Rendering/OpenGL/ShaderProgram.js +0 -12
  29. package/_virtual/rollup-plugin-web-worker-loader__helper__browser__createInlineWorkerFactory.js +17 -0
  30. package/_virtual/rollup-plugin-web-worker-loader__helper__funcToSource.js +18 -0
  31. package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +698 -2
  32. package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +274 -2
  33. package/interfaces.d.ts +66 -24
  34. package/package.json +2 -2
  35. package/types.d.ts +4 -1
  36. package/_virtual/rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -31
@@ -1,6 +1,702 @@
1
- import { c as createBase64WorkerFactory } from '../../../../rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js';
1
+ import { c as createInlineWorkerFactory } from '../../../../rollup-plugin-web-worker-loader__helper__browser__createInlineWorkerFactory.js';
2
2
 
3
- var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKF90b0NvbnN1bWFibGVBcnJheSwgX3NsaWNlZFRvQXJyYXksIHJlZ2lzdGVyV2Vid29ya2VyLCBnbE1hdHJpeCkgewogICd1c2Ugc3RyaWN0JzsKCiAgZnVuY3Rpb24gX2ludGVyb3BEZWZhdWx0TGVnYWN5IChlKSB7IHJldHVybiBlICYmIHR5cGVvZiBlID09PSAnb2JqZWN0JyAmJiAnZGVmYXVsdCcgaW4gZSA/IGUgOiB7ICdkZWZhdWx0JzogZSB9OyB9CgogIHZhciBfdG9Db25zdW1hYmxlQXJyYXlfX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX2ludGVyb3BEZWZhdWx0TGVnYWN5KF90b0NvbnN1bWFibGVBcnJheSk7CiAgdmFyIF9zbGljZWRUb0FycmF5X19kZWZhdWx0ID0gLyojX19QVVJFX18qL19pbnRlcm9wRGVmYXVsdExlZ2FjeShfc2xpY2VkVG9BcnJheSk7CiAgdmFyIHJlZ2lzdGVyV2Vid29ya2VyX19kZWZhdWx0ID0gLyojX19QVVJFX18qL19pbnRlcm9wRGVmYXVsdExlZ2FjeShyZWdpc3RlcldlYndvcmtlcik7CgogIHZhciBTbGljaW5nTW9kZSA9IHsKICAgIE5PTkU6IC0xLAogICAgSTogMCwKICAgIEo6IDEsCiAgICBLOiAyLAogICAgWDogMywKICAgIFk6IDQsCiAgICBaOiA1CiAgfTsKCiAgdmFyIGdsb2JhbHMgPSB7CiAgICAvLyBzaW5nbGUtY29tcG9uZW50IGxhYmVsbWFwCiAgICBidWZmZXI6IG51bGwsCiAgICBkaW1lbnNpb25zOiBbMCwgMCwgMF0sCiAgICBwcmV2UG9pbnQ6IG51bGwsCiAgICBzbGljaW5nTW9kZTogbnVsbCAvLyAyRCBvciAzRCBwYWludGluZwoKICB9OyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBmdW5jdGlvbiBoYW5kbGVQYWludFJlY3RhbmdsZShfcmVmKSB7CiAgICB2YXIgcG9pbnQxID0gX3JlZi5wb2ludDEsCiAgICAgICAgcG9pbnQyID0gX3JlZi5wb2ludDI7CgogICAgdmFyIF9wb2ludCA9IF9zbGljZWRUb0FycmF5X19kZWZhdWx0WydkZWZhdWx0J10ocG9pbnQxLCAzKSwKICAgICAgICB4MSA9IF9wb2ludFswXSwKICAgICAgICB5MSA9IF9wb2ludFsxXSwKICAgICAgICB6MSA9IF9wb2ludFsyXTsKCiAgICB2YXIgX3BvaW50MiA9IF9zbGljZWRUb0FycmF5X19kZWZhdWx0WydkZWZhdWx0J10ocG9pbnQyLCAzKSwKICAgICAgICB4MiA9IF9wb2ludDJbMF0sCiAgICAgICAgeTIgPSBfcG9pbnQyWzFdLAogICAgICAgIHoyID0gX3BvaW50MlsyXTsKCiAgICB2YXIgeHN0YXJ0ID0gTWF0aC5tYXgoTWF0aC5taW4oeDEsIHgyKSwgMCk7CiAgICB2YXIgeGVuZCA9IE1hdGgubWluKE1hdGgubWF4KHgxLCB4MiksIGdsb2JhbHMuZGltZW5zaW9uc1swXSAtIDEpOwoKICAgIGlmICh4c3RhcnQgPD0geGVuZCkgewogICAgICB2YXIgeXN0YXJ0ID0gTWF0aC5tYXgoTWF0aC5taW4oeTEsIHkyKSwgMCk7CiAgICAgIHZhciB5ZW5kID0gTWF0aC5taW4oTWF0aC5tYXgoeTEsIHkyKSwgZ2xvYmFscy5kaW1lbnNpb25zWzFdIC0gMSk7CiAgICAgIHZhciB6c3RhcnQgPSBNYXRoLm1heChNYXRoLm1pbih6MSwgejIpLCAwKTsKICAgICAgdmFyIHplbmQgPSBNYXRoLm1pbihNYXRoLm1heCh6MSwgejIpLCBnbG9iYWxzLmRpbWVuc2lvbnNbMl0gLSAxKTsKICAgICAgdmFyIGpTdHJpZGUgPSBnbG9iYWxzLmRpbWVuc2lvbnNbMF07CiAgICAgIHZhciBrU3RyaWRlID0gZ2xvYmFscy5kaW1lbnNpb25zWzBdICogZ2xvYmFscy5kaW1lbnNpb25zWzFdOwoKICAgICAgZm9yICh2YXIgayA9IHpzdGFydDsgayA8PSB6ZW5kOyBrKyspIHsKICAgICAgICBmb3IgKHZhciBqID0geXN0YXJ0OyBqIDw9IHllbmQ7IGorKykgewogICAgICAgICAgdmFyIGluZGV4ID0gaiAqIGpTdHJpZGUgKyBrICoga1N0cmlkZTsKICAgICAgICAgIGdsb2JhbHMuYnVmZmVyLmZpbGwoMSwgaW5kZXggKyB4c3RhcnQsIGluZGV4ICsgeGVuZCArIDEpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0gLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAvLyBjZW50ZXIgYW5kIHNjYWxlMyBhcmUgaW4gSUpLIGNvb3JkaW5hdGVzCgoKICBmdW5jdGlvbiBoYW5kbGVQYWludEVsbGlwc2UoX3JlZjIpIHsKICAgIHZhciBjZW50ZXIgPSBfcmVmMi5jZW50ZXIsCiAgICAgICAgc2NhbGUzID0gX3JlZjIuc2NhbGUzOwoKICAgIHZhciByYWRpdXMzID0gX3RvQ29uc3VtYWJsZUFycmF5X19kZWZhdWx0WydkZWZhdWx0J10oc2NhbGUzKTsKCiAgICB2YXIgaW5kZXhDZW50ZXIgPSBjZW50ZXIubWFwKGZ1bmN0aW9uICh2YWwpIHsKICAgICAgcmV0dXJuIE1hdGgucm91bmQodmFsKTsKICAgIH0pOwogICAgdmFyIHNsaWNlQXhpcyA9IC0xOwoKICAgIGlmIChnbG9iYWxzLnNsaWNpbmdNb2RlICE9IG51bGwgJiYgZ2xvYmFscy5zbGljaW5nTW9kZSAhPT0gU2xpY2luZ01vZGUuTk9ORSkgewogICAgICBzbGljZUF4aXMgPSBnbG9iYWxzLnNsaWNpbmdNb2RlICUgMzsKICAgIH0KCiAgICB2YXIgeVN0cmlkZSA9IGdsb2JhbHMuZGltZW5zaW9uc1swXTsKICAgIHZhciB6U3RyaWRlID0gZ2xvYmFscy5kaW1lbnNpb25zWzBdICogZ2xvYmFscy5kaW1lbnNpb25zWzFdOwoKICAgIHZhciBfaW5kZXhDZW50ZXIgPSBfc2xpY2VkVG9BcnJheV9fZGVmYXVsdFsnZGVmYXVsdCddKGluZGV4Q2VudGVyLCAzKSwKICAgICAgICB4bWluID0gX2luZGV4Q2VudGVyWzBdLAogICAgICAgIHltaW4gPSBfaW5kZXhDZW50ZXJbMV0sCiAgICAgICAgem1pbiA9IF9pbmRleENlbnRlclsyXTsKCiAgICB2YXIgX2luZGV4Q2VudGVyMiA9IF9zbGljZWRUb0FycmF5X19kZWZhdWx0WydkZWZhdWx0J10oaW5kZXhDZW50ZXIsIDMpLAogICAgICAgIHhtYXggPSBfaW5kZXhDZW50ZXIyWzBdLAogICAgICAgIHltYXggPSBfaW5kZXhDZW50ZXIyWzFdLAogICAgICAgIHptYXggPSBfaW5kZXhDZW50ZXIyWzJdOwoKICAgIGlmIChzbGljZUF4aXMgIT09IDIpIHsKICAgICAgem1pbiA9IE1hdGgucm91bmQoTWF0aC5tYXgoaW5kZXhDZW50ZXJbMl0gLSByYWRpdXMzWzJdLCAwKSk7CiAgICAgIHptYXggPSBNYXRoLnJvdW5kKE1hdGgubWluKGluZGV4Q2VudGVyWzJdICsgcmFkaXVzM1syXSwgZ2xvYmFscy5kaW1lbnNpb25zWzJdIC0gMSkpOwogICAgfQoKICAgIGZvciAodmFyIHogPSB6bWluOyB6IDw9IHptYXg7IHorKykgewogICAgICB2YXIgZHogPSAwOwoKICAgICAgaWYgKHNsaWNlQXhpcyAhPT0gMikgewogICAgICAgIGR6ID0gKGluZGV4Q2VudGVyWzJdIC0geikgLyByYWRpdXMzWzJdOwogICAgICB9CgogICAgICB2YXIgZHpTcXVhcmVkID0gZHogKiBkejsKCiAgICAgIGlmIChkelNxdWFyZWQgPD0gMSkgewogICAgICAgIHZhciBheSA9IHJhZGl1czNbMV0gKiBNYXRoLnNxcnQoMSAtIGR6U3F1YXJlZCk7CgogICAgICAgIGlmIChzbGljZUF4aXMgIT09IDEpIHsKICAgICAgICAgIHltaW4gPSBNYXRoLnJvdW5kKE1hdGgubWF4KGluZGV4Q2VudGVyWzFdIC0gYXksIDApKTsKICAgICAgICAgIHltYXggPSBNYXRoLnJvdW5kKE1hdGgubWluKGluZGV4Q2VudGVyWzFdICsgYXksIGdsb2JhbHMuZGltZW5zaW9uc1sxXSAtIDEpKTsKICAgICAgICB9CgogICAgICAgIGZvciAodmFyIHkgPSB5bWluOyB5IDw9IHltYXg7IHkrKykgewogICAgICAgICAgdmFyIGR5ID0gMDsKCiAgICAgICAgICBpZiAoc2xpY2VBeGlzICE9PSAxKSB7CiAgICAgICAgICAgIGR5ID0gKGluZGV4Q2VudGVyWzFdIC0geSkgLyByYWRpdXMzWzFdOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBkeVNxdWFyZWQgPSBkeSAqIGR5OwoKICAgICAgICAgIGlmIChkeVNxdWFyZWQgKyBkelNxdWFyZWQgPD0gMSkgewogICAgICAgICAgICBpZiAoc2xpY2VBeGlzICE9PSAwKSB7CiAgICAgICAgICAgICAgdmFyIGF4ID0gcmFkaXVzM1swXSAqIE1hdGguc3FydCgxIC0gZHlTcXVhcmVkIC0gZHpTcXVhcmVkKTsKICAgICAgICAgICAgICB4bWluID0gTWF0aC5yb3VuZChNYXRoLm1heChpbmRleENlbnRlclswXSAtIGF4LCAwKSk7CiAgICAgICAgICAgICAgeG1heCA9IE1hdGgucm91bmQoTWF0aC5taW4oaW5kZXhDZW50ZXJbMF0gKyBheCwgZ2xvYmFscy5kaW1lbnNpb25zWzBdIC0gMSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoeG1pbiA8PSB4bWF4KSB7CiAgICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHlTdHJpZGUgKyB6ICogelN0cmlkZTsKICAgICAgICAgICAgICBnbG9iYWxzLmJ1ZmZlci5maWxsKDEsIGluZGV4ICsgeG1pbiwgaW5kZXggKyB4bWF4ICsgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKICBmdW5jdGlvbiBoYW5kbGVQYWludChfcmVmMykgewogICAgdmFyIHBvaW50ID0gX3JlZjMucG9pbnQsCiAgICAgICAgcmFkaXVzID0gX3JlZjMucmFkaXVzOwoKICAgIGlmICghZ2xvYmFscy5wcmV2UG9pbnQpIHsKICAgICAgZ2xvYmFscy5wcmV2UG9pbnQgPSBwb2ludDsKICAgIH0gLy8gRERBIHBhcmFtcwoKCiAgICB2YXIgZGVsdGEgPSBbcG9pbnRbMF0gLSBnbG9iYWxzLnByZXZQb2ludFswXSwgcG9pbnRbMV0gLSBnbG9iYWxzLnByZXZQb2ludFsxXSwgcG9pbnRbMl0gLSBnbG9iYWxzLnByZXZQb2ludFsyXV07CiAgICB2YXIgaW5jID0gWzEsIDEsIDFdOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgIGlmIChkZWx0YVtpXSA8IDApIHsKICAgICAgICBkZWx0YVtpXSA9IC1kZWx0YVtpXTsKICAgICAgICBpbmNbaV0gPSAtMTsKICAgICAgfQogICAgfQoKICAgIHZhciBzdGVwID0gTWF0aC5tYXguYXBwbHkoTWF0aCwgZGVsdGEpOyAvLyBEREEKCiAgICB2YXIgdGhyZXNoID0gW3N0ZXAsIHN0ZXAsIHN0ZXBdOwoKICAgIHZhciBwdCA9IF90b0NvbnN1bWFibGVBcnJheV9fZGVmYXVsdFsnZGVmYXVsdCddKGdsb2JhbHMucHJldlBvaW50KTsKCiAgICBmb3IgKHZhciBzID0gMDsgcyA8PSBzdGVwOyBzKyspIHsKICAgICAgaGFuZGxlUGFpbnRFbGxpcHNlKHsKICAgICAgICBjZW50ZXI6IHB0LAogICAgICAgIHNjYWxlMzogcmFkaXVzCiAgICAgIH0pOwoKICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDM7IGlpKyspIHsKICAgICAgICB0aHJlc2hbaWldIC09IGRlbHRhW2lpXTsKCiAgICAgICAgaWYgKHRocmVzaFtpaV0gPD0gMCkgewogICAgICAgICAgdGhyZXNoW2lpXSArPSBzdGVwOwogICAgICAgICAgcHRbaWldICs9IGluY1tpaV07CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgZ2xvYmFscy5wcmV2UG9pbnQgPSBwb2ludDsKICB9IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKICBmdW5jdGlvbiBoYW5kbGVQYWludFRyaWFuZ2xlcyhfcmVmNCkgewogICAgdmFyIHRyaWFuZ2xlTGlzdCA9IF9yZWY0LnRyaWFuZ2xlTGlzdDsKICAgIC8vIGRlYnVnZ2VyOwogICAgdmFyIHRyaWFuZ2xlQ291bnQgPSBNYXRoLmZsb29yKHRyaWFuZ2xlTGlzdC5sZW5ndGggLyA5KTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyaWFuZ2xlQ291bnQ7IGkrKykgewogICAgICB2YXIgcG9pbnQwID0gdHJpYW5nbGVMaXN0LnN1YmFycmF5KDkgKiBpICsgMCwgOSAqIGkgKyAzKTsKICAgICAgdmFyIHBvaW50MSA9IHRyaWFuZ2xlTGlzdC5zdWJhcnJheSg5ICogaSArIDMsIDkgKiBpICsgNik7CiAgICAgIHZhciBwb2ludDIgPSB0cmlhbmdsZUxpc3Quc3ViYXJyYXkoOSAqIGkgKyA2LCA5ICogaSArIDkpOwogICAgICB2YXIgdjEgPSBbMCwgMCwgMF07CiAgICAgIHZhciB2MiA9IFswLCAwLCAwXTsKICAgICAgZ2xNYXRyaXgudmVjMy5zdWJ0cmFjdCh2MSwgcG9pbnQxLCBwb2ludDApOwogICAgICBnbE1hdHJpeC52ZWMzLnN1YnRyYWN0KHYyLCBwb2ludDIsIHBvaW50MCk7CiAgICAgIHZhciBzdGVwMSA9IFswLCAwLCAwXTsKICAgICAgdmFyIG51bVN0ZXAxID0gMiAqIE1hdGgubWF4KE1hdGguYWJzKHYxWzBdKSwgTWF0aC5hYnModjFbMV0pLCBNYXRoLmFicyh2MVsyXSkpOwogICAgICBnbE1hdHJpeC52ZWMzLnNjYWxlKHN0ZXAxLCB2MSwgMSAvIG51bVN0ZXAxKTsKICAgICAgdmFyIHN0ZXAyID0gWzAsIDAsIDBdOwogICAgICB2YXIgbnVtU3RlcDIgPSAyICogTWF0aC5tYXgoTWF0aC5hYnModjJbMF0pLCBNYXRoLmFicyh2MlsxXSksIE1hdGguYWJzKHYyWzJdKSk7CiAgICAgIGdsTWF0cml4LnZlYzMuc2NhbGUoc3RlcDIsIHYyLCAxIC8gbnVtU3RlcDIpOwogICAgICB2YXIgalN0cmlkZSA9IGdsb2JhbHMuZGltZW5zaW9uc1swXTsKICAgICAgdmFyIGtTdHJpZGUgPSBnbG9iYWxzLmRpbWVuc2lvbnNbMF0gKiBnbG9iYWxzLmRpbWVuc2lvbnNbMV07CgogICAgICBmb3IgKHZhciB1ID0gMDsgdSA8PSBudW1TdGVwMSArIDE7IHUrKykgewogICAgICAgIHZhciBtYXhWID0gbnVtU3RlcDIgLSB1ICogKG51bVN0ZXAyIC8gbnVtU3RlcDEpOwoKICAgICAgICBmb3IgKHZhciB2ID0gMDsgdiA8PSBtYXhWICsgMTsgdisrKSB7CiAgICAgICAgICB2YXIgcG9pbnQgPSBfdG9Db25zdW1hYmxlQXJyYXlfX2RlZmF1bHRbJ2RlZmF1bHQnXShwb2ludDApOwoKICAgICAgICAgIGdsTWF0cml4LnZlYzMuc2NhbGVBbmRBZGQocG9pbnQsIHBvaW50LCBzdGVwMSwgdSk7CiAgICAgICAgICBnbE1hdHJpeC52ZWMzLnNjYWxlQW5kQWRkKHBvaW50LCBwb2ludCwgc3RlcDIsIHYpOwogICAgICAgICAgcG9pbnRbMF0gPSBNYXRoLnJvdW5kKHBvaW50WzBdKTsKICAgICAgICAgIHBvaW50WzFdID0gTWF0aC5yb3VuZChwb2ludFsxXSk7CiAgICAgICAgICBwb2ludFsyXSA9IE1hdGgucm91bmQocG9pbnRbMl0pOwoKICAgICAgICAgIGlmIChwb2ludFswXSA+PSAwICYmIHBvaW50WzBdIDwgZ2xvYmFscy5kaW1lbnNpb25zWzBdICYmIHBvaW50WzFdID49IDAgJiYgcG9pbnRbMV0gPCBnbG9iYWxzLmRpbWVuc2lvbnNbMV0gJiYgcG9pbnRbMl0gPj0gMCAmJiBwb2ludFsyXSA8IGdsb2JhbHMuZGltZW5zaW9uc1syXSkgewogICAgICAgICAgICBnbG9iYWxzLmJ1ZmZlcltwb2ludFswXSArIGpTdHJpZGUgKiBwb2ludFsxXSArIGtTdHJpZGUgKiBwb2ludFsyXV0gPSAxOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0gLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgogIHJlZ2lzdGVyV2Vid29ya2VyX19kZWZhdWx0WydkZWZhdWx0J10oKS5vcGVyYXRpb24oJ3N0YXJ0JywgZnVuY3Rpb24gKF9yZWY1KSB7CiAgICB2YXIgYnVmZmVyVHlwZSA9IF9yZWY1LmJ1ZmZlclR5cGUsCiAgICAgICAgZGltZW5zaW9ucyA9IF9yZWY1LmRpbWVuc2lvbnMsCiAgICAgICAgc2xpY2luZ01vZGUgPSBfcmVmNS5zbGljaW5nTW9kZTsKCiAgICBpZiAoIWdsb2JhbHMuYnVmZmVyKSB7CiAgICAgIHZhciBidWZmZXJTaXplID0gZGltZW5zaW9uc1swXSAqIGRpbWVuc2lvbnNbMV0gKiBkaW1lbnNpb25zWzJdOwogICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8KCiAgICAgIGdsb2JhbHMuYnVmZmVyID0gbmV3IHNlbGZbYnVmZmVyVHlwZV0oYnVmZmVyU2l6ZSk7CiAgICAgIGdsb2JhbHMuZGltZW5zaW9ucyA9IGRpbWVuc2lvbnM7CiAgICAgIGdsb2JhbHMucHJldlBvaW50ID0gbnVsbDsKICAgICAgZ2xvYmFscy5zbGljaW5nTW9kZSA9IHNsaWNpbmdNb2RlOwogICAgfQogIH0pLm9wZXJhdGlvbigncGFpbnQnLCBoYW5kbGVQYWludCkub3BlcmF0aW9uKCdwYWludFJlY3RhbmdsZScsIGhhbmRsZVBhaW50UmVjdGFuZ2xlKS5vcGVyYXRpb24oJ3BhaW50RWxsaXBzZScsIGhhbmRsZVBhaW50RWxsaXBzZSkub3BlcmF0aW9uKCdwYWludFRyaWFuZ2xlcycsIGhhbmRsZVBhaW50VHJpYW5nbGVzKS5vcGVyYXRpb24oJ2VuZCcsIGZ1bmN0aW9uICgpIHsKICAgIHZhciByZXNwb25zZSA9IG5ldyByZWdpc3RlcldlYndvcmtlcl9fZGVmYXVsdFsnZGVmYXVsdCddLlRyYW5zZmVyYWJsZVJlc3BvbnNlKGdsb2JhbHMuYnVmZmVyLmJ1ZmZlciwgW2dsb2JhbHMuYnVmZmVyLmJ1ZmZlcl0pOwogICAgZ2xvYmFscy5idWZmZXIgPSBudWxsOwogICAgcmV0dXJuIHJlc3BvbnNlOwogIH0pOwoKfShfdG9Db25zdW1hYmxlQXJyYXksIF9zbGljZWRUb0FycmF5LCByZWdpc3RlcldlYndvcmtlciwgZ2xNYXRyaXgpKTsKCg==', null, false);
3
+ var WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {
4
+ (function () {
5
+ '__worker_loader_strict__';
6
+
7
+ function _arrayLikeToArray(arr, len) {
8
+ if (len == null || len > arr.length) len = arr.length;
9
+
10
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
11
+ arr2[i] = arr[i];
12
+ }
13
+
14
+ return arr2;
15
+ }
16
+
17
+ function _arrayWithoutHoles(arr) {
18
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
19
+ }
20
+
21
+ function _iterableToArray(iter) {
22
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
23
+ }
24
+
25
+ function _unsupportedIterableToArray(o, minLen) {
26
+ if (!o) return;
27
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
28
+ var n = Object.prototype.toString.call(o).slice(8, -1);
29
+ if (n === "Object" && o.constructor) n = o.constructor.name;
30
+ if (n === "Map" || n === "Set") return Array.from(o);
31
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
32
+ }
33
+
34
+ function _nonIterableSpread() {
35
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
36
+ }
37
+
38
+ function _toConsumableArray$1(arr) {
39
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
40
+ }
41
+
42
+ function _arrayWithHoles(arr) {
43
+ if (Array.isArray(arr)) return arr;
44
+ }
45
+
46
+ function _iterableToArrayLimit(arr, i) {
47
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
48
+
49
+ if (_i == null) return;
50
+ var _arr = [];
51
+ var _n = true;
52
+ var _d = false;
53
+
54
+ var _s, _e;
55
+
56
+ try {
57
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
58
+ _arr.push(_s.value);
59
+
60
+ if (i && _arr.length === i) break;
61
+ }
62
+ } catch (err) {
63
+ _d = true;
64
+ _e = err;
65
+ } finally {
66
+ try {
67
+ if (!_n && _i["return"] != null) _i["return"]();
68
+ } finally {
69
+ if (_d) throw _e;
70
+ }
71
+ }
72
+
73
+ return _arr;
74
+ }
75
+
76
+ function _nonIterableRest() {
77
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
78
+ }
79
+
80
+ function _slicedToArray(arr, i) {
81
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
82
+ }
83
+
84
+ var register = {exports: {}};
85
+
86
+ var _createClass$1 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
87
+
88
+ function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
89
+
90
+ var TinyEmitter$1 = function () {
91
+ function TinyEmitter() {
92
+ _classCallCheck$1(this, TinyEmitter);
93
+
94
+ Object.defineProperty(this, '__listeners', {
95
+ value: {},
96
+ enumerable: false,
97
+ writable: false
98
+ });
99
+ }
100
+
101
+ _createClass$1(TinyEmitter, [{
102
+ key: 'emit',
103
+ value: function emit(eventName) {
104
+ if (!this.__listeners[eventName]) return this;
105
+
106
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
107
+ args[_key - 1] = arguments[_key];
108
+ }
109
+
110
+ var _iteratorNormalCompletion = true;
111
+ var _didIteratorError = false;
112
+ var _iteratorError = undefined;
113
+
114
+ try {
115
+ for (var _iterator = this.__listeners[eventName][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
116
+ var handler = _step.value;
117
+
118
+ handler.apply(undefined, args);
119
+ }
120
+ } catch (err) {
121
+ _didIteratorError = true;
122
+ _iteratorError = err;
123
+ } finally {
124
+ try {
125
+ if (!_iteratorNormalCompletion && _iterator.return) {
126
+ _iterator.return();
127
+ }
128
+ } finally {
129
+ if (_didIteratorError) {
130
+ throw _iteratorError;
131
+ }
132
+ }
133
+ }
134
+
135
+ return this;
136
+ }
137
+ }, {
138
+ key: 'once',
139
+ value: function once(eventName, handler) {
140
+ var _this = this;
141
+
142
+ var once = function once() {
143
+ _this.off(eventName, once);
144
+ handler.apply(undefined, arguments);
145
+ };
146
+
147
+ return this.on(eventName, once);
148
+ }
149
+ }, {
150
+ key: 'on',
151
+ value: function on(eventName, handler) {
152
+ if (!this.__listeners[eventName]) this.__listeners[eventName] = [];
153
+
154
+ this.__listeners[eventName].push(handler);
155
+
156
+ return this;
157
+ }
158
+ }, {
159
+ key: 'off',
160
+ value: function off(eventName, handler) {
161
+ if (handler) this.__listeners[eventName] = this.__listeners[eventName].filter(function (h) {
162
+ return h !== handler;
163
+ });else this.__listeners[eventName] = [];
164
+
165
+ return this;
166
+ }
167
+ }]);
168
+
169
+ return TinyEmitter;
170
+ }();
171
+
172
+ var tinyEmitter = TinyEmitter$1;
173
+
174
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
175
+
176
+ var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
177
+
178
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
179
+
180
+ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
181
+
182
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
183
+
184
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
185
+
186
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
187
+
188
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
189
+
190
+ var TinyEmitter = tinyEmitter;
191
+
192
+ var MESSAGE_RESULT = 0;
193
+ var MESSAGE_EVENT = 1;
194
+
195
+ var RESULT_ERROR = 0;
196
+ var RESULT_SUCCESS = 1;
197
+
198
+ var DEFAULT_HANDLER = 'main';
199
+
200
+ var isPromise = function isPromise(o) {
201
+ return (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object' && o !== null && typeof o.then === 'function' && typeof o.catch === 'function';
202
+ };
203
+
204
+ function RegisterPromise(fn) {
205
+ var handlers = _defineProperty({}, DEFAULT_HANDLER, fn);
206
+ var sendPostMessage = self.postMessage.bind(self);
207
+
208
+ var server = new (function (_TinyEmitter) {
209
+ _inherits(WorkerRegister, _TinyEmitter);
210
+
211
+ function WorkerRegister() {
212
+ _classCallCheck(this, WorkerRegister);
213
+
214
+ return _possibleConstructorReturn(this, (WorkerRegister.__proto__ || Object.getPrototypeOf(WorkerRegister)).apply(this, arguments));
215
+ }
216
+
217
+ _createClass(WorkerRegister, [{
218
+ key: 'emit',
219
+ value: function emit(eventName) {
220
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
221
+ args[_key - 1] = arguments[_key];
222
+ }
223
+
224
+ if (args.length == 1 && args[0] instanceof TransferableResponse) {
225
+ sendPostMessage({ eventName: eventName, args: args }, args[0].transferable);
226
+ } else {
227
+ sendPostMessage({ eventName: eventName, args: args });
228
+ }
229
+ return this;
230
+ }
231
+ }, {
232
+ key: 'emitLocally',
233
+ value: function emitLocally(eventName) {
234
+ var _get2;
235
+
236
+ for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
237
+ args[_key2 - 1] = arguments[_key2];
238
+ }
239
+
240
+ (_get2 = _get(WorkerRegister.prototype.__proto__ || Object.getPrototypeOf(WorkerRegister.prototype), 'emit', this)).call.apply(_get2, [this, eventName].concat(args));
241
+ }
242
+ }, {
243
+ key: 'operation',
244
+ value: function operation(name, handler) {
245
+ handlers[name] = handler;
246
+ return this;
247
+ }
248
+ }]);
249
+
250
+ return WorkerRegister;
251
+ }(TinyEmitter))();
252
+
253
+ var run = function run(messageId, payload, handlerName) {
254
+
255
+ var onSuccess = function onSuccess(result) {
256
+ if (result && result instanceof TransferableResponse) {
257
+ sendResult(messageId, RESULT_SUCCESS, result.payload, result.transferable);
258
+ } else {
259
+ sendResult(messageId, RESULT_SUCCESS, result);
260
+ }
261
+ };
262
+
263
+ var onError = function onError(e) {
264
+ sendResult(messageId, RESULT_ERROR, {
265
+ message: e.message,
266
+ stack: e.stack
267
+ });
268
+ };
269
+
270
+ try {
271
+ var result = runFn(messageId, payload, handlerName);
272
+ if (isPromise(result)) {
273
+ result.then(onSuccess).catch(onError);
274
+ } else {
275
+ onSuccess(result);
276
+ }
277
+ } catch (e) {
278
+ onError(e);
279
+ }
280
+ };
281
+
282
+ var runFn = function runFn(messageId, payload, handlerName) {
283
+ var handler = handlers[handlerName || DEFAULT_HANDLER];
284
+ if (!handler) throw new Error('Not found handler for this request');
285
+
286
+ return handler(payload, sendEvent.bind(null, messageId));
287
+ };
288
+
289
+ var sendResult = function sendResult(messageId, success, payload) {
290
+ var transferable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
291
+
292
+ sendPostMessage([MESSAGE_RESULT, messageId, success, payload], transferable);
293
+ };
294
+
295
+ var sendEvent = function sendEvent(messageId, eventName, payload) {
296
+ if (!eventName) throw new Error('eventName is required');
297
+
298
+ if (typeof eventName !== 'string') throw new Error('eventName should be string');
299
+
300
+ sendPostMessage([MESSAGE_EVENT, messageId, eventName, payload]);
301
+ };
302
+
303
+ self.addEventListener('message', function (_ref) {
304
+ var data = _ref.data;
305
+
306
+ if (Array.isArray(data)) {
307
+ run.apply(undefined, _toConsumableArray(data));
308
+ } else if (data && data.eventName) {
309
+ server.emitLocally.apply(server, [data.eventName].concat(_toConsumableArray(data.args)));
310
+ }
311
+ });
312
+
313
+ return server;
314
+ }
315
+
316
+ var TransferableResponse = function TransferableResponse(payload, transferable) {
317
+ _classCallCheck(this, TransferableResponse);
318
+
319
+ this.payload = payload;
320
+ this.transferable = transferable;
321
+ };
322
+
323
+ register.exports = RegisterPromise;
324
+ register.exports.TransferableResponse = TransferableResponse;
325
+
326
+ var registerWebworker = register.exports;
327
+
328
+ var SlicingMode = {
329
+ NONE: -1,
330
+ I: 0,
331
+ J: 1,
332
+ K: 2,
333
+ X: 3,
334
+ Y: 4,
335
+ Z: 5
336
+ };
337
+
338
+ /**
339
+ * Common utilities
340
+ * @module glMatrix
341
+ */
342
+ var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;
343
+ if (!Math.hypot) Math.hypot = function () {
344
+ var y = 0,
345
+ i = arguments.length;
346
+
347
+ while (i--) {
348
+ y += arguments[i] * arguments[i];
349
+ }
350
+
351
+ return Math.sqrt(y);
352
+ };
353
+
354
+ /**
355
+ * 3 Dimensional Vector
356
+ * @module vec3
357
+ */
358
+
359
+ /**
360
+ * Creates a new, empty vec3
361
+ *
362
+ * @returns {vec3} a new 3D vector
363
+ */
364
+
365
+ function create() {
366
+ var out = new ARRAY_TYPE(3);
367
+
368
+ if (ARRAY_TYPE != Float32Array) {
369
+ out[0] = 0;
370
+ out[1] = 0;
371
+ out[2] = 0;
372
+ }
373
+
374
+ return out;
375
+ }
376
+ /**
377
+ * Subtracts vector b from vector a
378
+ *
379
+ * @param {vec3} out the receiving vector
380
+ * @param {ReadonlyVec3} a the first operand
381
+ * @param {ReadonlyVec3} b the second operand
382
+ * @returns {vec3} out
383
+ */
384
+
385
+ function subtract(out, a, b) {
386
+ out[0] = a[0] - b[0];
387
+ out[1] = a[1] - b[1];
388
+ out[2] = a[2] - b[2];
389
+ return out;
390
+ }
391
+ /**
392
+ * Scales a vec3 by a scalar number
393
+ *
394
+ * @param {vec3} out the receiving vector
395
+ * @param {ReadonlyVec3} a the vector to scale
396
+ * @param {Number} b amount to scale the vector by
397
+ * @returns {vec3} out
398
+ */
399
+
400
+ function scale(out, a, b) {
401
+ out[0] = a[0] * b;
402
+ out[1] = a[1] * b;
403
+ out[2] = a[2] * b;
404
+ return out;
405
+ }
406
+ /**
407
+ * Adds two vec3's after scaling the second operand by a scalar value
408
+ *
409
+ * @param {vec3} out the receiving vector
410
+ * @param {ReadonlyVec3} a the first operand
411
+ * @param {ReadonlyVec3} b the second operand
412
+ * @param {Number} scale the amount to scale b by before adding
413
+ * @returns {vec3} out
414
+ */
415
+
416
+ function scaleAndAdd(out, a, b, scale) {
417
+ out[0] = a[0] + b[0] * scale;
418
+ out[1] = a[1] + b[1] * scale;
419
+ out[2] = a[2] + b[2] * scale;
420
+ return out;
421
+ }
422
+ /**
423
+ * Perform some operation over an array of vec3s.
424
+ *
425
+ * @param {Array} a the array of vectors to iterate over
426
+ * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed
427
+ * @param {Number} offset Number of elements to skip at the beginning of the array
428
+ * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array
429
+ * @param {Function} fn Function to call for each vector in the array
430
+ * @param {Object} [arg] additional argument to pass to fn
431
+ * @returns {Array} a
432
+ * @function
433
+ */
434
+
435
+ (function () {
436
+ var vec = create();
437
+ return function (a, stride, offset, count, fn, arg) {
438
+ var i, l;
439
+
440
+ if (!stride) {
441
+ stride = 3;
442
+ }
443
+
444
+ if (!offset) {
445
+ offset = 0;
446
+ }
447
+
448
+ if (count) {
449
+ l = Math.min(count * stride + offset, a.length);
450
+ } else {
451
+ l = a.length;
452
+ }
453
+
454
+ for (i = offset; i < l; i += stride) {
455
+ vec[0] = a[i];
456
+ vec[1] = a[i + 1];
457
+ vec[2] = a[i + 2];
458
+ fn(vec, vec, arg);
459
+ a[i] = vec[0];
460
+ a[i + 1] = vec[1];
461
+ a[i + 2] = vec[2];
462
+ }
463
+
464
+ return a;
465
+ };
466
+ })();
467
+
468
+ var globals = {
469
+ // single-component labelmap
470
+ buffer: null,
471
+ dimensions: [0, 0, 0],
472
+ prevPoint: null,
473
+ slicingMode: null // 2D or 3D painting
474
+
475
+ }; // --------------------------------------------------------------------------
476
+
477
+ function handlePaintRectangle(_ref) {
478
+ var point1 = _ref.point1,
479
+ point2 = _ref.point2;
480
+
481
+ var _point = _slicedToArray(point1, 3),
482
+ x1 = _point[0],
483
+ y1 = _point[1],
484
+ z1 = _point[2];
485
+
486
+ var _point2 = _slicedToArray(point2, 3),
487
+ x2 = _point2[0],
488
+ y2 = _point2[1],
489
+ z2 = _point2[2];
490
+
491
+ var xstart = Math.max(Math.min(x1, x2), 0);
492
+ var xend = Math.min(Math.max(x1, x2), globals.dimensions[0] - 1);
493
+
494
+ if (xstart <= xend) {
495
+ var ystart = Math.max(Math.min(y1, y2), 0);
496
+ var yend = Math.min(Math.max(y1, y2), globals.dimensions[1] - 1);
497
+ var zstart = Math.max(Math.min(z1, z2), 0);
498
+ var zend = Math.min(Math.max(z1, z2), globals.dimensions[2] - 1);
499
+ var jStride = globals.dimensions[0];
500
+ var kStride = globals.dimensions[0] * globals.dimensions[1];
501
+
502
+ for (var k = zstart; k <= zend; k++) {
503
+ for (var j = ystart; j <= yend; j++) {
504
+ var index = j * jStride + k * kStride;
505
+ globals.buffer.fill(1, index + xstart, index + xend + 1);
506
+ }
507
+ }
508
+ }
509
+ } // --------------------------------------------------------------------------
510
+ // center and scale3 are in IJK coordinates
511
+
512
+
513
+ function handlePaintEllipse(_ref2) {
514
+ var center = _ref2.center,
515
+ scale3 = _ref2.scale3;
516
+
517
+ var radius3 = _toConsumableArray$1(scale3);
518
+
519
+ var indexCenter = center.map(function (val) {
520
+ return Math.round(val);
521
+ });
522
+ var sliceAxis = -1;
523
+
524
+ if (globals.slicingMode != null && globals.slicingMode !== SlicingMode.NONE) {
525
+ sliceAxis = globals.slicingMode % 3;
526
+ }
527
+
528
+ var yStride = globals.dimensions[0];
529
+ var zStride = globals.dimensions[0] * globals.dimensions[1];
530
+
531
+ var _indexCenter = _slicedToArray(indexCenter, 3),
532
+ xmin = _indexCenter[0],
533
+ ymin = _indexCenter[1],
534
+ zmin = _indexCenter[2];
535
+
536
+ var _indexCenter2 = _slicedToArray(indexCenter, 3),
537
+ xmax = _indexCenter2[0],
538
+ ymax = _indexCenter2[1],
539
+ zmax = _indexCenter2[2];
540
+
541
+ if (sliceAxis !== 2) {
542
+ zmin = Math.round(Math.max(indexCenter[2] - radius3[2], 0));
543
+ zmax = Math.round(Math.min(indexCenter[2] + radius3[2], globals.dimensions[2] - 1));
544
+ }
545
+
546
+ for (var z = zmin; z <= zmax; z++) {
547
+ var dz = 0;
548
+
549
+ if (sliceAxis !== 2) {
550
+ dz = (indexCenter[2] - z) / radius3[2];
551
+ }
552
+
553
+ var dzSquared = dz * dz;
554
+
555
+ if (dzSquared <= 1) {
556
+ var ay = radius3[1] * Math.sqrt(1 - dzSquared);
557
+
558
+ if (sliceAxis !== 1) {
559
+ ymin = Math.round(Math.max(indexCenter[1] - ay, 0));
560
+ ymax = Math.round(Math.min(indexCenter[1] + ay, globals.dimensions[1] - 1));
561
+ }
562
+
563
+ for (var y = ymin; y <= ymax; y++) {
564
+ var dy = 0;
565
+
566
+ if (sliceAxis !== 1) {
567
+ dy = (indexCenter[1] - y) / radius3[1];
568
+ }
569
+
570
+ var dySquared = dy * dy;
571
+
572
+ if (dySquared + dzSquared <= 1) {
573
+ if (sliceAxis !== 0) {
574
+ var ax = radius3[0] * Math.sqrt(1 - dySquared - dzSquared);
575
+ xmin = Math.round(Math.max(indexCenter[0] - ax, 0));
576
+ xmax = Math.round(Math.min(indexCenter[0] + ax, globals.dimensions[0] - 1));
577
+ }
578
+
579
+ if (xmin <= xmax) {
580
+ var index = y * yStride + z * zStride;
581
+ globals.buffer.fill(1, index + xmin, index + xmax + 1);
582
+ }
583
+ }
584
+ }
585
+ }
586
+ }
587
+ } // --------------------------------------------------------------------------
588
+
589
+
590
+ function handlePaint(_ref3) {
591
+ var point = _ref3.point,
592
+ radius = _ref3.radius;
593
+
594
+ if (!globals.prevPoint) {
595
+ globals.prevPoint = point;
596
+ } // DDA params
597
+
598
+
599
+ var delta = [point[0] - globals.prevPoint[0], point[1] - globals.prevPoint[1], point[2] - globals.prevPoint[2]];
600
+ var inc = [1, 1, 1];
601
+
602
+ for (var i = 0; i < 3; i++) {
603
+ if (delta[i] < 0) {
604
+ delta[i] = -delta[i];
605
+ inc[i] = -1;
606
+ }
607
+ }
608
+
609
+ var step = Math.max.apply(Math, delta); // DDA
610
+
611
+ var thresh = [step, step, step];
612
+
613
+ var pt = _toConsumableArray$1(globals.prevPoint);
614
+
615
+ for (var s = 0; s <= step; s++) {
616
+ handlePaintEllipse({
617
+ center: pt,
618
+ scale3: radius
619
+ });
620
+
621
+ for (var ii = 0; ii < 3; ii++) {
622
+ thresh[ii] -= delta[ii];
623
+
624
+ if (thresh[ii] <= 0) {
625
+ thresh[ii] += step;
626
+ pt[ii] += inc[ii];
627
+ }
628
+ }
629
+ }
630
+
631
+ globals.prevPoint = point;
632
+ } // --------------------------------------------------------------------------
633
+
634
+
635
+ function handlePaintTriangles(_ref4) {
636
+ var triangleList = _ref4.triangleList;
637
+ // debugger;
638
+ var triangleCount = Math.floor(triangleList.length / 9);
639
+
640
+ for (var i = 0; i < triangleCount; i++) {
641
+ var point0 = triangleList.subarray(9 * i + 0, 9 * i + 3);
642
+ var point1 = triangleList.subarray(9 * i + 3, 9 * i + 6);
643
+ var point2 = triangleList.subarray(9 * i + 6, 9 * i + 9);
644
+ var v1 = [0, 0, 0];
645
+ var v2 = [0, 0, 0];
646
+ subtract(v1, point1, point0);
647
+ subtract(v2, point2, point0);
648
+ var step1 = [0, 0, 0];
649
+ var numStep1 = 2 * Math.max(Math.abs(v1[0]), Math.abs(v1[1]), Math.abs(v1[2]));
650
+ scale(step1, v1, 1 / numStep1);
651
+ var step2 = [0, 0, 0];
652
+ var numStep2 = 2 * Math.max(Math.abs(v2[0]), Math.abs(v2[1]), Math.abs(v2[2]));
653
+ scale(step2, v2, 1 / numStep2);
654
+ var jStride = globals.dimensions[0];
655
+ var kStride = globals.dimensions[0] * globals.dimensions[1];
656
+
657
+ for (var u = 0; u <= numStep1 + 1; u++) {
658
+ var maxV = numStep2 - u * (numStep2 / numStep1);
659
+
660
+ for (var v = 0; v <= maxV + 1; v++) {
661
+ var point = _toConsumableArray$1(point0);
662
+
663
+ scaleAndAdd(point, point, step1, u);
664
+ scaleAndAdd(point, point, step2, v);
665
+ point[0] = Math.round(point[0]);
666
+ point[1] = Math.round(point[1]);
667
+ point[2] = Math.round(point[2]);
668
+
669
+ if (point[0] >= 0 && point[0] < globals.dimensions[0] && point[1] >= 0 && point[1] < globals.dimensions[1] && point[2] >= 0 && point[2] < globals.dimensions[2]) {
670
+ globals.buffer[point[0] + jStride * point[1] + kStride * point[2]] = 1;
671
+ }
672
+ }
673
+ }
674
+ }
675
+ } // --------------------------------------------------------------------------
676
+
677
+
678
+ registerWebworker().operation('start', function (_ref5) {
679
+ var bufferType = _ref5.bufferType,
680
+ dimensions = _ref5.dimensions,
681
+ slicingMode = _ref5.slicingMode;
682
+
683
+ if (!globals.buffer) {
684
+ var bufferSize = dimensions[0] * dimensions[1] * dimensions[2];
685
+ /* eslint-disable-next-line */
686
+
687
+ globals.buffer = new self[bufferType](bufferSize);
688
+ globals.dimensions = dimensions;
689
+ globals.prevPoint = null;
690
+ globals.slicingMode = slicingMode;
691
+ }
692
+ }).operation('paint', handlePaint).operation('paintRectangle', handlePaintRectangle).operation('paintEllipse', handlePaintEllipse).operation('paintTriangles', handlePaintTriangles).operation('end', function () {
693
+ var response = new registerWebworker.TransferableResponse(globals.buffer.buffer, [globals.buffer.buffer]);
694
+ globals.buffer = null;
695
+ return response;
696
+ });
697
+
698
+ }());
699
+ }, null);
4
700
  /* eslint-enable */
5
701
 
6
702
  export { WorkerFactory as W };