molstar 4.2.0 → 4.3.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 (339) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +197 -197
  3. package/build/viewer/embedded.html +52 -52
  4. package/build/viewer/index.html +129 -129
  5. package/build/viewer/molstar.js +1 -1
  6. package/build/viewer/molstar.js.LICENSE.txt +9 -0
  7. package/lib/apps/docking-viewer/index.html +36 -36
  8. package/lib/apps/mesoscale-explorer/index.html +100 -100
  9. package/lib/apps/mesoscale-explorer/style.scss +33 -33
  10. package/lib/apps/viewer/app.d.ts +2 -1
  11. package/lib/apps/viewer/app.js +2 -1
  12. package/lib/apps/viewer/embedded.html +52 -52
  13. package/lib/apps/viewer/index.html +129 -129
  14. package/lib/cli/chem-comp-dict/create-ions.js +9 -9
  15. package/lib/cli/chem-comp-dict/create-saccharides.js +9 -9
  16. package/lib/cli/cifschema/util/generate.js +12 -12
  17. package/lib/cli/lipid-params/index.js +9 -9
  18. package/lib/commonjs/apps/viewer/app.d.ts +2 -1
  19. package/lib/commonjs/apps/viewer/app.js +1 -0
  20. package/lib/commonjs/cli/chem-comp-dict/create-ions.js +9 -9
  21. package/lib/commonjs/cli/chem-comp-dict/create-saccharides.js +9 -9
  22. package/lib/commonjs/cli/cifschema/util/generate.js +12 -12
  23. package/lib/commonjs/cli/lipid-params/index.js +9 -9
  24. package/lib/commonjs/examples/alpha-orbitals/example-data.js +160 -160
  25. package/lib/commonjs/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
  26. package/lib/commonjs/extensions/assembly-symmetry/prop.js +24 -24
  27. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.js +5 -5
  28. package/lib/commonjs/extensions/dnatco/ntc-tube/behavior.js +5 -5
  29. package/lib/commonjs/extensions/geo-export/usdz-exporter.js +41 -41
  30. package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +1 -0
  31. package/lib/commonjs/extensions/mp4-export/encoder.js +1 -1
  32. package/lib/commonjs/extensions/mvs/components/annotation-label/representation.d.ts +0 -2
  33. package/lib/commonjs/extensions/mvs/components/custom-label/representation.d.ts +2 -2
  34. package/lib/commonjs/extensions/mvs/tree/mvs/mvs-builder.d.ts +8 -2
  35. package/lib/commonjs/extensions/sb-ncbr/index.d.ts +8 -0
  36. package/lib/commonjs/extensions/sb-ncbr/index.js +14 -1
  37. package/lib/commonjs/extensions/sb-ncbr/tunnels/actions.d.ts +20 -0
  38. package/lib/commonjs/extensions/sb-ncbr/tunnels/actions.js +89 -0
  39. package/lib/commonjs/extensions/sb-ncbr/tunnels/algorithm.d.ts +26 -0
  40. package/lib/commonjs/extensions/sb-ncbr/tunnels/algorithm.js +474 -0
  41. package/lib/commonjs/extensions/sb-ncbr/tunnels/behavior.d.ts +40 -0
  42. package/lib/commonjs/extensions/sb-ncbr/tunnels/behavior.js +96 -0
  43. package/lib/commonjs/extensions/sb-ncbr/tunnels/data-model.d.ts +146 -0
  44. package/lib/commonjs/extensions/sb-ncbr/tunnels/data-model.js +28 -0
  45. package/lib/commonjs/extensions/sb-ncbr/tunnels/examples.d.ts +12 -0
  46. package/lib/commonjs/extensions/sb-ncbr/tunnels/examples.js +54 -0
  47. package/lib/commonjs/extensions/sb-ncbr/tunnels/props.d.ts +19 -0
  48. package/lib/commonjs/extensions/sb-ncbr/tunnels/props.js +26 -0
  49. package/lib/commonjs/extensions/sb-ncbr/tunnels/representation.d.ts +29 -0
  50. package/lib/commonjs/extensions/sb-ncbr/tunnels/representation.js +99 -0
  51. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +17 -0
  52. package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
  53. package/lib/commonjs/mol-canvas3d/passes/dof.d.ts +34 -0
  54. package/lib/commonjs/mol-canvas3d/passes/dof.js +167 -0
  55. package/lib/commonjs/mol-canvas3d/passes/draw.d.ts +2 -0
  56. package/lib/commonjs/mol-canvas3d/passes/draw.js +31 -8
  57. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +8 -0
  58. package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +8 -0
  59. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
  60. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  61. package/lib/commonjs/mol-gl/shader/background.frag.js +95 -95
  62. package/lib/commonjs/mol-gl/shader/background.vert.js +11 -11
  63. package/lib/commonjs/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
  64. package/lib/commonjs/mol-gl/shader/bloom/blur.frag.js +28 -28
  65. package/lib/commonjs/mol-gl/shader/bloom/composite.frag.js +33 -33
  66. package/lib/commonjs/mol-gl/shader/bloom/luminosity.frag.js +52 -52
  67. package/lib/commonjs/mol-gl/shader/cas.frag.js +144 -144
  68. package/lib/commonjs/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
  69. package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
  70. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +77 -77
  71. package/lib/commonjs/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
  72. package/lib/commonjs/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
  73. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -140
  74. package/lib/commonjs/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
  75. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
  76. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -112
  77. package/lib/commonjs/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
  78. package/lib/commonjs/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
  79. package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
  80. package/lib/commonjs/mol-gl/shader/chunks/check-transparency.glsl.js +16 -16
  81. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
  82. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
  83. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -60
  84. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -122
  85. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
  86. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -150
  87. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
  88. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +234 -234
  89. package/lib/commonjs/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
  90. package/lib/commonjs/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
  91. package/lib/commonjs/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
  92. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
  93. package/lib/commonjs/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
  94. package/lib/commonjs/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
  95. package/lib/commonjs/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
  96. package/lib/commonjs/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
  97. package/lib/commonjs/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
  98. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
  99. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
  100. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
  101. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
  102. package/lib/commonjs/mol-gl/shader/compose.frag.js +12 -12
  103. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
  104. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
  105. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
  106. package/lib/commonjs/mol-gl/shader/copy.frag.js +11 -11
  107. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +266 -266
  108. package/lib/commonjs/mol-gl/shader/cylinders.vert.js +89 -89
  109. package/lib/commonjs/mol-gl/shader/depth-merge.frag.js +23 -23
  110. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +362 -362
  111. package/lib/commonjs/mol-gl/shader/direct-volume.vert.js +41 -41
  112. package/lib/commonjs/mol-gl/shader/dof.frag.d.ts +7 -0
  113. package/lib/commonjs/mol-gl/shader/dof.frag.js +122 -0
  114. package/lib/commonjs/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
  115. package/lib/commonjs/mol-gl/shader/evaluate-wboit.frag.js +17 -17
  116. package/lib/commonjs/mol-gl/shader/fxaa.frag.js +228 -228
  117. package/lib/commonjs/mol-gl/shader/gaussian-density.frag.js +49 -49
  118. package/lib/commonjs/mol-gl/shader/gaussian-density.vert.js +27 -27
  119. package/lib/commonjs/mol-gl/shader/hi-z.frag.js +18 -18
  120. package/lib/commonjs/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
  121. package/lib/commonjs/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
  122. package/lib/commonjs/mol-gl/shader/image.frag.js +169 -169
  123. package/lib/commonjs/mol-gl/shader/image.vert.js +21 -21
  124. package/lib/commonjs/mol-gl/shader/lines.frag.js +42 -42
  125. package/lib/commonjs/mol-gl/shader/lines.vert.js +117 -117
  126. package/lib/commonjs/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
  127. package/lib/commonjs/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
  128. package/lib/commonjs/mol-gl/shader/marking/edge.frag.js +28 -28
  129. package/lib/commonjs/mol-gl/shader/marking/overlay.frag.js +26 -26
  130. package/lib/commonjs/mol-gl/shader/mesh.frag.js +65 -65
  131. package/lib/commonjs/mol-gl/shader/mesh.vert.js +49 -49
  132. package/lib/commonjs/mol-gl/shader/outlines.frag.js +95 -95
  133. package/lib/commonjs/mol-gl/shader/points.frag.js +59 -59
  134. package/lib/commonjs/mol-gl/shader/points.vert.js +38 -38
  135. package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +150 -150
  136. package/lib/commonjs/mol-gl/shader/quad.vert.js +10 -10
  137. package/lib/commonjs/mol-gl/shader/shadows.frag.js +123 -123
  138. package/lib/commonjs/mol-gl/shader/smaa/blend.frag.js +56 -56
  139. package/lib/commonjs/mol-gl/shader/smaa/blend.vert.js +25 -25
  140. package/lib/commonjs/mol-gl/shader/smaa/edges.frag.js +66 -66
  141. package/lib/commonjs/mol-gl/shader/smaa/edges.vert.js +26 -26
  142. package/lib/commonjs/mol-gl/shader/smaa/weights.frag.js +206 -206
  143. package/lib/commonjs/mol-gl/shader/smaa/weights.vert.js +32 -32
  144. package/lib/commonjs/mol-gl/shader/spheres.frag.js +148 -148
  145. package/lib/commonjs/mol-gl/shader/spheres.vert.js +132 -132
  146. package/lib/commonjs/mol-gl/shader/ssao-blur.frag.js +97 -97
  147. package/lib/commonjs/mol-gl/shader/ssao.frag.js +211 -211
  148. package/lib/commonjs/mol-gl/shader/text.frag.js +85 -85
  149. package/lib/commonjs/mol-gl/shader/text.vert.js +85 -85
  150. package/lib/commonjs/mol-gl/shader/util/grid3d-template.frag.js +46 -46
  151. package/lib/commonjs/mol-gl/shader-code.js +15 -15
  152. package/lib/commonjs/mol-gl/webgl/compat.js +12 -12
  153. package/lib/commonjs/mol-gl/webgl/context.js +1 -0
  154. package/lib/commonjs/mol-gl/webgl/timer.d.ts +1 -1
  155. package/lib/commonjs/mol-gl/webgl/timer.js +8 -1
  156. package/lib/commonjs/mol-math/linear-algebra/3d/minimize-rmsd.js +2 -1
  157. package/lib/commonjs/mol-plugin/animation-loop.d.ts +1 -0
  158. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +6 -6
  159. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +1 -1
  160. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +3 -3
  161. package/lib/commonjs/mol-plugin-state/animation/built-in/state-snapshots.js +7 -3
  162. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +3 -0
  163. package/lib/commonjs/servers/common/swagger-ui/indexTemplate.js +66 -66
  164. package/lib/commonjs/servers/volume/config.js +5 -5
  165. package/lib/examples/alpha-orbitals/example-data.js +160 -160
  166. package/lib/examples/alpha-orbitals/index.html +72 -72
  167. package/lib/examples/basic-wrapper/index.html +137 -137
  168. package/lib/examples/lighting/index.html +88 -88
  169. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  170. package/lib/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
  171. package/lib/extensions/assembly-symmetry/prop.js +24 -24
  172. package/lib/extensions/dnatco/confal-pyramids/behavior.js +5 -5
  173. package/lib/extensions/dnatco/ntc-tube/behavior.js +5 -5
  174. package/lib/extensions/geo-export/usdz-exporter.js +41 -41
  175. package/lib/extensions/meshes/mesh-extension.d.ts +1 -0
  176. package/lib/extensions/mp4-export/encoder.js +1 -1
  177. package/lib/extensions/mvs/components/annotation-label/representation.d.ts +0 -2
  178. package/lib/extensions/mvs/components/custom-label/representation.d.ts +2 -2
  179. package/lib/extensions/mvs/tree/mvs/mvs-builder.d.ts +8 -2
  180. package/lib/extensions/sb-ncbr/index.d.ts +8 -0
  181. package/lib/extensions/sb-ncbr/index.js +8 -0
  182. package/lib/extensions/sb-ncbr/tunnels/actions.d.ts +20 -0
  183. package/lib/extensions/sb-ncbr/tunnels/actions.js +86 -0
  184. package/lib/extensions/sb-ncbr/tunnels/algorithm.d.ts +26 -0
  185. package/lib/extensions/sb-ncbr/tunnels/algorithm.js +469 -0
  186. package/lib/extensions/sb-ncbr/tunnels/behavior.d.ts +40 -0
  187. package/lib/extensions/sb-ncbr/tunnels/behavior.js +92 -0
  188. package/lib/extensions/sb-ncbr/tunnels/data-model.d.ts +146 -0
  189. package/lib/extensions/sb-ncbr/tunnels/data-model.js +23 -0
  190. package/lib/extensions/sb-ncbr/tunnels/examples.d.ts +12 -0
  191. package/lib/extensions/sb-ncbr/tunnels/examples.js +49 -0
  192. package/lib/extensions/sb-ncbr/tunnels/props.d.ts +19 -0
  193. package/lib/extensions/sb-ncbr/tunnels/props.js +22 -0
  194. package/lib/extensions/sb-ncbr/tunnels/representation.d.ts +29 -0
  195. package/lib/extensions/sb-ncbr/tunnels/representation.js +96 -0
  196. package/lib/mol-canvas3d/canvas3d.d.ts +17 -0
  197. package/lib/mol-canvas3d/canvas3d.js +4 -0
  198. package/lib/mol-canvas3d/passes/dof.d.ts +34 -0
  199. package/lib/mol-canvas3d/passes/dof.js +163 -0
  200. package/lib/mol-canvas3d/passes/draw.d.ts +2 -0
  201. package/lib/mol-canvas3d/passes/draw.js +31 -8
  202. package/lib/mol-canvas3d/passes/image.d.ts +8 -0
  203. package/lib/mol-canvas3d/passes/postprocessing.d.ts +8 -0
  204. package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
  205. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  206. package/lib/mol-gl/shader/background.frag.js +95 -95
  207. package/lib/mol-gl/shader/background.vert.js +11 -11
  208. package/lib/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
  209. package/lib/mol-gl/shader/bloom/blur.frag.js +28 -28
  210. package/lib/mol-gl/shader/bloom/composite.frag.js +33 -33
  211. package/lib/mol-gl/shader/bloom/luminosity.frag.js +52 -52
  212. package/lib/mol-gl/shader/cas.frag.js +144 -144
  213. package/lib/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
  214. package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
  215. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +77 -77
  216. package/lib/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
  217. package/lib/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
  218. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -140
  219. package/lib/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
  220. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
  221. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -112
  222. package/lib/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
  223. package/lib/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
  224. package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
  225. package/lib/mol-gl/shader/chunks/check-transparency.glsl.js +16 -16
  226. package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
  227. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
  228. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -60
  229. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -122
  230. package/lib/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
  231. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -150
  232. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
  233. package/lib/mol-gl/shader/chunks/common.glsl.js +234 -234
  234. package/lib/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
  235. package/lib/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
  236. package/lib/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
  237. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
  238. package/lib/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
  239. package/lib/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
  240. package/lib/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
  241. package/lib/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
  242. package/lib/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
  243. package/lib/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
  244. package/lib/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
  245. package/lib/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
  246. package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
  247. package/lib/mol-gl/shader/compose.frag.js +12 -12
  248. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
  249. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
  250. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
  251. package/lib/mol-gl/shader/copy.frag.js +11 -11
  252. package/lib/mol-gl/shader/cylinders.frag.js +266 -266
  253. package/lib/mol-gl/shader/cylinders.vert.js +89 -89
  254. package/lib/mol-gl/shader/depth-merge.frag.js +23 -23
  255. package/lib/mol-gl/shader/direct-volume.frag.js +362 -362
  256. package/lib/mol-gl/shader/direct-volume.vert.js +41 -41
  257. package/lib/mol-gl/shader/dof.frag.d.ts +7 -0
  258. package/lib/mol-gl/shader/dof.frag.js +119 -0
  259. package/lib/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
  260. package/lib/mol-gl/shader/evaluate-wboit.frag.js +17 -17
  261. package/lib/mol-gl/shader/fxaa.frag.js +228 -228
  262. package/lib/mol-gl/shader/gaussian-density.frag.js +49 -49
  263. package/lib/mol-gl/shader/gaussian-density.vert.js +27 -27
  264. package/lib/mol-gl/shader/hi-z.frag.js +18 -18
  265. package/lib/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
  266. package/lib/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
  267. package/lib/mol-gl/shader/image.frag.js +169 -169
  268. package/lib/mol-gl/shader/image.vert.js +21 -21
  269. package/lib/mol-gl/shader/lines.frag.js +42 -42
  270. package/lib/mol-gl/shader/lines.vert.js +117 -117
  271. package/lib/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
  272. package/lib/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
  273. package/lib/mol-gl/shader/marking/edge.frag.js +28 -28
  274. package/lib/mol-gl/shader/marking/overlay.frag.js +26 -26
  275. package/lib/mol-gl/shader/mesh.frag.js +65 -65
  276. package/lib/mol-gl/shader/mesh.vert.js +49 -49
  277. package/lib/mol-gl/shader/outlines.frag.js +95 -95
  278. package/lib/mol-gl/shader/points.frag.js +59 -59
  279. package/lib/mol-gl/shader/points.vert.js +38 -38
  280. package/lib/mol-gl/shader/postprocessing.frag.js +150 -150
  281. package/lib/mol-gl/shader/quad.vert.js +10 -10
  282. package/lib/mol-gl/shader/shadows.frag.js +123 -123
  283. package/lib/mol-gl/shader/smaa/blend.frag.js +56 -56
  284. package/lib/mol-gl/shader/smaa/blend.vert.js +25 -25
  285. package/lib/mol-gl/shader/smaa/edges.frag.js +66 -66
  286. package/lib/mol-gl/shader/smaa/edges.vert.js +26 -26
  287. package/lib/mol-gl/shader/smaa/weights.frag.js +206 -206
  288. package/lib/mol-gl/shader/smaa/weights.vert.js +32 -32
  289. package/lib/mol-gl/shader/spheres.frag.js +148 -148
  290. package/lib/mol-gl/shader/spheres.vert.js +132 -132
  291. package/lib/mol-gl/shader/ssao-blur.frag.js +97 -97
  292. package/lib/mol-gl/shader/ssao.frag.js +211 -211
  293. package/lib/mol-gl/shader/text.frag.js +85 -85
  294. package/lib/mol-gl/shader/text.vert.js +85 -85
  295. package/lib/mol-gl/shader/util/grid3d-template.frag.js +46 -46
  296. package/lib/mol-gl/shader-code.js +15 -15
  297. package/lib/mol-gl/webgl/compat.js +12 -12
  298. package/lib/mol-gl/webgl/context.js +1 -0
  299. package/lib/mol-gl/webgl/timer.d.ts +1 -1
  300. package/lib/mol-gl/webgl/timer.js +8 -1
  301. package/lib/mol-math/linear-algebra/3d/minimize-rmsd.js +2 -1
  302. package/lib/mol-plugin/animation-loop.d.ts +1 -0
  303. package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +6 -6
  304. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +1 -1
  305. package/lib/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +3 -3
  306. package/lib/mol-plugin/version.js +2 -2
  307. package/lib/mol-plugin-state/animation/built-in/state-snapshots.js +7 -3
  308. package/lib/mol-plugin-ui/skin/base/base.scss +37 -37
  309. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  310. package/lib/mol-plugin-ui/skin/base/components/controls.scss +445 -445
  311. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  312. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  313. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  314. package/lib/mol-plugin-ui/skin/base/components/misc.scss +663 -663
  315. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  316. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  317. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  318. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  319. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  320. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +194 -194
  321. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  322. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  323. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  324. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  325. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  326. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  327. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  328. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  329. package/lib/mol-plugin-ui/skin/base/variables.scss +88 -88
  330. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  331. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  332. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  333. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  334. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  335. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  336. package/lib/mol-plugin-ui/viewport/simple-settings.js +3 -0
  337. package/lib/servers/common/swagger-ui/indexTemplate.js +66 -66
  338. package/lib/servers/volume/config.js +5 -5
  339. package/package.json +196 -195
@@ -3,88 +3,88 @@
3
3
  *
4
4
  * @author David Sehnal <david.sehnal@gmail.com>
5
5
  */
6
- export const rgba_to_float = `
7
- // rgbaToFloat adapted from https://github.com/ihmeuw/glsl-rgba-to-float
8
- // BSD 3-Clause License
9
- //
10
- // Copyright (c) 2019, Institute for Health Metrics and Evaluation All rights reserved.
11
- // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12
- // - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
13
- // - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
14
- // - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
15
- //
16
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17
- // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
- // IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
19
- // OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
20
- // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
21
- // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
22
- // OF THE POSSIBILITY OF SUCH DAMAGE.
23
-
24
- ivec4 floatsToBytes(vec4 inputFloats, bool littleEndian) {
25
- ivec4 bytes = ivec4(inputFloats * 255.0);
26
- return (
27
- littleEndian
28
- ? bytes.abgr
29
- : bytes
30
- );
31
- }
32
-
33
- // Break the four bytes down into an array of 32 bits.
34
- void bytesToBits(const in ivec4 bytes, out bool bits[32]) {
35
- for (int channelIndex = 0; channelIndex < 4; ++channelIndex) {
36
- float acc = float(bytes[channelIndex]);
37
- for (int indexInByte = 7; indexInByte >= 0; --indexInByte) {
38
- float powerOfTwo = exp2(float(indexInByte));
39
- bool bit = acc >= powerOfTwo;
40
- bits[channelIndex * 8 + (7 - indexInByte)] = bit;
41
- acc = mod(acc, powerOfTwo);
42
- }
43
- }
44
- }
45
-
46
- // Compute the exponent of the 32-bit float.
47
- float getExponent(bool bits[32]) {
48
- const int startIndex = 1;
49
- const int bitStringLength = 8;
50
- const int endBeforeIndex = startIndex + bitStringLength;
51
- float acc = 0.0;
52
- int pow2 = bitStringLength - 1;
53
- for (int bitIndex = startIndex; bitIndex < endBeforeIndex; ++bitIndex) {
54
- acc += float(bits[bitIndex]) * exp2(float(pow2--));
55
- }
56
- return acc;
57
- }
58
-
59
- // Compute the mantissa of the 32-bit float.
60
- float getMantissa(bool bits[32], bool subnormal) {
61
- const int startIndex = 9;
62
- const int bitStringLength = 23;
63
- const int endBeforeIndex = startIndex + bitStringLength;
64
- // Leading/implicit/hidden bit convention:
65
- // If the number is not subnormal (with exponent 0), we add a leading 1 digit.
66
- float acc = float(!subnormal) * exp2(float(bitStringLength));
67
- int pow2 = bitStringLength - 1;
68
- for (int bitIndex = startIndex; bitIndex < endBeforeIndex; ++bitIndex) {
69
- acc += float(bits[bitIndex]) * exp2(float(pow2--));
70
- }
71
- return acc;
72
- }
73
-
74
- // Parse the float from its 32 bits.
75
- float bitsToFloat(bool bits[32]) {
76
- float signBit = float(bits[0]) * -2.0 + 1.0;
77
- float exponent = getExponent(bits);
78
- bool subnormal = abs(exponent - 0.0) < 0.01;
79
- float mantissa = getMantissa(bits, subnormal);
80
- float exponentBias = 127.0;
81
- return signBit * mantissa * exp2(exponent - exponentBias - 23.0);
82
- }
83
-
84
- float rgbaToFloat(vec4 texelRGBA, bool littleEndian) {
85
- ivec4 rgbaBytes = floatsToBytes(texelRGBA, littleEndian);
86
- bool bits[32];
87
- bytesToBits(rgbaBytes, bits);
88
- return bitsToFloat(bits);
89
- }
6
+ export const rgba_to_float = `
7
+ // rgbaToFloat adapted from https://github.com/ihmeuw/glsl-rgba-to-float
8
+ // BSD 3-Clause License
9
+ //
10
+ // Copyright (c) 2019, Institute for Health Metrics and Evaluation All rights reserved.
11
+ // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12
+ // - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
13
+ // - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
14
+ // - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
15
+ //
16
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17
+ // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
+ // IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
19
+ // OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
20
+ // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
21
+ // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
22
+ // OF THE POSSIBILITY OF SUCH DAMAGE.
23
+
24
+ ivec4 floatsToBytes(vec4 inputFloats, bool littleEndian) {
25
+ ivec4 bytes = ivec4(inputFloats * 255.0);
26
+ return (
27
+ littleEndian
28
+ ? bytes.abgr
29
+ : bytes
30
+ );
31
+ }
32
+
33
+ // Break the four bytes down into an array of 32 bits.
34
+ void bytesToBits(const in ivec4 bytes, out bool bits[32]) {
35
+ for (int channelIndex = 0; channelIndex < 4; ++channelIndex) {
36
+ float acc = float(bytes[channelIndex]);
37
+ for (int indexInByte = 7; indexInByte >= 0; --indexInByte) {
38
+ float powerOfTwo = exp2(float(indexInByte));
39
+ bool bit = acc >= powerOfTwo;
40
+ bits[channelIndex * 8 + (7 - indexInByte)] = bit;
41
+ acc = mod(acc, powerOfTwo);
42
+ }
43
+ }
44
+ }
45
+
46
+ // Compute the exponent of the 32-bit float.
47
+ float getExponent(bool bits[32]) {
48
+ const int startIndex = 1;
49
+ const int bitStringLength = 8;
50
+ const int endBeforeIndex = startIndex + bitStringLength;
51
+ float acc = 0.0;
52
+ int pow2 = bitStringLength - 1;
53
+ for (int bitIndex = startIndex; bitIndex < endBeforeIndex; ++bitIndex) {
54
+ acc += float(bits[bitIndex]) * exp2(float(pow2--));
55
+ }
56
+ return acc;
57
+ }
58
+
59
+ // Compute the mantissa of the 32-bit float.
60
+ float getMantissa(bool bits[32], bool subnormal) {
61
+ const int startIndex = 9;
62
+ const int bitStringLength = 23;
63
+ const int endBeforeIndex = startIndex + bitStringLength;
64
+ // Leading/implicit/hidden bit convention:
65
+ // If the number is not subnormal (with exponent 0), we add a leading 1 digit.
66
+ float acc = float(!subnormal) * exp2(float(bitStringLength));
67
+ int pow2 = bitStringLength - 1;
68
+ for (int bitIndex = startIndex; bitIndex < endBeforeIndex; ++bitIndex) {
69
+ acc += float(bits[bitIndex]) * exp2(float(pow2--));
70
+ }
71
+ return acc;
72
+ }
73
+
74
+ // Parse the float from its 32 bits.
75
+ float bitsToFloat(bool bits[32]) {
76
+ float signBit = float(bits[0]) * -2.0 + 1.0;
77
+ float exponent = getExponent(bits);
78
+ bool subnormal = abs(exponent - 0.0) < 0.01;
79
+ float mantissa = getMantissa(bits, subnormal);
80
+ float exponentBias = 127.0;
81
+ return signBit * mantissa * exp2(exponent - exponentBias - 23.0);
82
+ }
83
+
84
+ float rgbaToFloat(vec4 texelRGBA, bool littleEndian) {
85
+ ivec4 rgbaBytes = floatsToBytes(texelRGBA, littleEndian);
86
+ bool bits[32];
87
+ bytesToBits(rgbaBytes, bits);
88
+ return bitsToFloat(bits);
89
+ }
90
90
  `;
@@ -1,12 +1,12 @@
1
- export const size_vert_params = `
2
- #if defined(dSizeType_uniform)
3
- uniform float uSize;
4
- #elif defined(dSizeType_attribute)
5
- attribute float aSize;
6
- #elif defined(dSizeType_instance) || defined(dSizeType_group) || defined(dSizeType_groupInstance)
7
- uniform vec2 uSizeTexDim;
8
- uniform sampler2D tSize;
9
- #endif
10
-
11
- uniform float uSizeFactor;
1
+ export const size_vert_params = `
2
+ #if defined(dSizeType_uniform)
3
+ uniform float uSize;
4
+ #elif defined(dSizeType_attribute)
5
+ attribute float aSize;
6
+ #elif defined(dSizeType_instance) || defined(dSizeType_group) || defined(dSizeType_groupInstance)
7
+ uniform vec2 uSizeTexDim;
8
+ uniform sampler2D tSize;
9
+ #endif
10
+
11
+ uniform float uSizeFactor;
12
12
  `;
@@ -3,27 +3,27 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const texture3d_from_1d_trilinear = `
7
- vec4 texture3dFrom1dTrilinear(const in sampler2D tex, const in vec3 pos, const in vec3 gridDim, const in vec2 texDim, const in float offset) {
8
- float gdYZ = gridDim.z * gridDim.y;
9
- float gdZ = gridDim.z;
10
- vec3 p0 = floor(pos * gridDim);
11
- vec3 p1 = ceil(pos * gridDim);
12
- vec3 pd = (pos * gridDim - p0) / (p1 - p0);
13
- vec4 s000 = readFromTexture(tex, offset + p0.z + p0.y * gdZ + p0.x * gdYZ, texDim);
14
- vec4 s100 = readFromTexture(tex, offset + p0.z + p0.y * gdZ + p1.x * gdYZ, texDim);
15
- vec4 s001 = readFromTexture(tex, offset + p1.z + p0.y * gdZ + p0.x * gdYZ, texDim);
16
- vec4 s101 = readFromTexture(tex, offset + p1.z + p0.y * gdZ + p1.x * gdYZ, texDim);
17
- vec4 s010 = readFromTexture(tex, offset + p0.z + p1.y * gdZ + p0.x * gdYZ, texDim);
18
- vec4 s110 = readFromTexture(tex, offset + p0.z + p1.y * gdZ + p1.x * gdYZ, texDim);
19
- vec4 s011 = readFromTexture(tex, offset + p1.z + p1.y * gdZ + p0.x * gdYZ, texDim);
20
- vec4 s111 = readFromTexture(tex, offset + p1.z + p1.y * gdZ + p1.x * gdYZ, texDim);
21
- vec4 s00 = mix(s000, s100, pd.x);
22
- vec4 s01 = mix(s001, s101, pd.x);
23
- vec4 s10 = mix(s010, s110, pd.x);
24
- vec4 s11 = mix(s011, s111, pd.x);
25
- vec4 s0 = mix(s00, s10, pd.y);
26
- vec4 s1 = mix(s01, s11, pd.y);
27
- return mix(s0, s1, pd.z);
28
- }
6
+ export const texture3d_from_1d_trilinear = `
7
+ vec4 texture3dFrom1dTrilinear(const in sampler2D tex, const in vec3 pos, const in vec3 gridDim, const in vec2 texDim, const in float offset) {
8
+ float gdYZ = gridDim.z * gridDim.y;
9
+ float gdZ = gridDim.z;
10
+ vec3 p0 = floor(pos * gridDim);
11
+ vec3 p1 = ceil(pos * gridDim);
12
+ vec3 pd = (pos * gridDim - p0) / (p1 - p0);
13
+ vec4 s000 = readFromTexture(tex, offset + p0.z + p0.y * gdZ + p0.x * gdYZ, texDim);
14
+ vec4 s100 = readFromTexture(tex, offset + p0.z + p0.y * gdZ + p1.x * gdYZ, texDim);
15
+ vec4 s001 = readFromTexture(tex, offset + p1.z + p0.y * gdZ + p0.x * gdYZ, texDim);
16
+ vec4 s101 = readFromTexture(tex, offset + p1.z + p0.y * gdZ + p1.x * gdYZ, texDim);
17
+ vec4 s010 = readFromTexture(tex, offset + p0.z + p1.y * gdZ + p0.x * gdYZ, texDim);
18
+ vec4 s110 = readFromTexture(tex, offset + p0.z + p1.y * gdZ + p1.x * gdYZ, texDim);
19
+ vec4 s011 = readFromTexture(tex, offset + p1.z + p1.y * gdZ + p0.x * gdYZ, texDim);
20
+ vec4 s111 = readFromTexture(tex, offset + p1.z + p1.y * gdZ + p1.x * gdYZ, texDim);
21
+ vec4 s00 = mix(s000, s100, pd.x);
22
+ vec4 s01 = mix(s001, s101, pd.x);
23
+ vec4 s10 = mix(s010, s110, pd.x);
24
+ vec4 s11 = mix(s011, s111, pd.x);
25
+ vec4 s0 = mix(s00, s10, pd.y);
26
+ vec4 s1 = mix(s01, s11, pd.y);
27
+ return mix(s0, s1, pd.z);
28
+ }
29
29
  `;
@@ -4,21 +4,21 @@
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author Michael Krone <michael.krone@uni-tuebingen.de>
6
6
  */
7
- export const texture3d_from_2d_linear = `
8
- vec4 texture3dFrom2dLinear(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
9
- float zSlice0 = floor(pos.z * gridDim.z);
10
- float column0 = intMod(zSlice0 * gridDim.x, texDim.x) / gridDim.x;
11
- float row0 = floor(intDiv(zSlice0 * gridDim.x, texDim.x));
12
- vec2 coord0 = (vec2(column0 * gridDim.x, row0 * gridDim.y) + (pos.xy * gridDim.xy)) / texDim;
13
- vec4 color0 = texture2D(tex, coord0);
14
-
15
- float zSlice1 = zSlice0 + 1.0;
16
- float column1 = intMod(zSlice1 * gridDim.x, texDim.x) / gridDim.x;
17
- float row1 = floor(intDiv(zSlice1 * gridDim.x, texDim.x));
18
- vec2 coord1 = (vec2(column1 * gridDim.x, row1 * gridDim.y) + (pos.xy * gridDim.xy)) / texDim;
19
- vec4 color1 = texture2D(tex, coord1);
20
-
21
- float delta0 = abs((pos.z * gridDim.z) - zSlice0);
22
- return mix(color0, color1, delta0);
23
- }
7
+ export const texture3d_from_2d_linear = `
8
+ vec4 texture3dFrom2dLinear(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
9
+ float zSlice0 = floor(pos.z * gridDim.z);
10
+ float column0 = intMod(zSlice0 * gridDim.x, texDim.x) / gridDim.x;
11
+ float row0 = floor(intDiv(zSlice0 * gridDim.x, texDim.x));
12
+ vec2 coord0 = (vec2(column0 * gridDim.x, row0 * gridDim.y) + (pos.xy * gridDim.xy)) / texDim;
13
+ vec4 color0 = texture2D(tex, coord0);
14
+
15
+ float zSlice1 = zSlice0 + 1.0;
16
+ float column1 = intMod(zSlice1 * gridDim.x, texDim.x) / gridDim.x;
17
+ float row1 = floor(intDiv(zSlice1 * gridDim.x, texDim.x));
18
+ vec2 coord1 = (vec2(column1 * gridDim.x, row1 * gridDim.y) + (pos.xy * gridDim.xy)) / texDim;
19
+ vec4 color1 = texture2D(tex, coord1);
20
+
21
+ float delta0 = abs((pos.z * gridDim.z) - zSlice0);
22
+ return mix(color0, color1, delta0);
23
+ }
24
24
  `;
@@ -4,12 +4,12 @@
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author Michael Krone <michael.krone@uni-tuebingen.de>
6
6
  */
7
- export const texture3d_from_2d_nearest = `
8
- vec4 texture3dFrom2dNearest(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
9
- float zSlice = floor(pos.z * gridDim.z + 0.5); // round to nearest z-slice
10
- float column = intMod(zSlice * gridDim.x, texDim.x) / gridDim.x;
11
- float row = floor(intDiv(zSlice * gridDim.x, texDim.x));
12
- vec2 coord = (vec2(column * gridDim.x, row * gridDim.y) + (pos.xy * gridDim.xy)) / texDim;
13
- return texture2D(tex, coord);
14
- }
7
+ export const texture3d_from_2d_nearest = `
8
+ vec4 texture3dFrom2dNearest(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
9
+ float zSlice = floor(pos.z * gridDim.z + 0.5); // round to nearest z-slice
10
+ float column = intMod(zSlice * gridDim.x, texDim.x) / gridDim.x;
11
+ float row = floor(intDiv(zSlice * gridDim.x, texDim.x));
12
+ vec2 coord = (vec2(column * gridDim.x, row * gridDim.y) + (pos.xy * gridDim.xy)) / texDim;
13
+ return texture2D(tex, coord);
14
+ }
15
15
  `;
@@ -4,29 +4,29 @@
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
6
6
  */
7
- export const wboit_write = `
8
- #if defined(dRenderVariant_colorWboit)
9
- if (uRenderMask == MaskOpaque) {
10
- if (preFogAlpha < 1.0) {
11
- discard;
12
- }
13
- } else if (uRenderMask == MaskTransparent) {
14
- if (preFogAlpha != 1.0 && fragmentDepth < getDepth(gl_FragCoord.xy / uDrawingBufferSize)) {
15
- #ifdef dTransparentBackfaces_off
16
- if (interior) discard;
17
- #endif
18
- float alpha = gl_FragColor.a;
19
- float wboitWeight = alpha * clamp(pow(1.0 - fragmentDepth, 2.0), 0.01, 1.0);
20
- gl_FragColor = vec4(gl_FragColor.rgb * alpha * wboitWeight, alpha);
21
- // extra alpha is to handle pre-multiplied alpha
22
- #ifndef dGeometryType_directVolume
23
- gl_FragData[1] = vec4((uTransparentBackground ? alpha : 1.0) * alpha * wboitWeight);
24
- #else
25
- gl_FragData[1] = vec4(alpha * alpha * wboitWeight);
26
- #endif
27
- } else {
28
- discard;
29
- }
30
- }
31
- #endif
7
+ export const wboit_write = `
8
+ #if defined(dRenderVariant_colorWboit)
9
+ if (uRenderMask == MaskOpaque) {
10
+ if (preFogAlpha < 1.0) {
11
+ discard;
12
+ }
13
+ } else if (uRenderMask == MaskTransparent) {
14
+ if (preFogAlpha != 1.0 && fragmentDepth < getDepth(gl_FragCoord.xy / uDrawingBufferSize)) {
15
+ #ifdef dTransparentBackfaces_off
16
+ if (interior) discard;
17
+ #endif
18
+ float alpha = gl_FragColor.a;
19
+ float wboitWeight = alpha * clamp(pow(1.0 - fragmentDepth, 2.0), 0.01, 1.0);
20
+ gl_FragColor = vec4(gl_FragColor.rgb * alpha * wboitWeight, alpha);
21
+ // extra alpha is to handle pre-multiplied alpha
22
+ #ifndef dGeometryType_directVolume
23
+ gl_FragData[1] = vec4((uTransparentBackground ? alpha : 1.0) * alpha * wboitWeight);
24
+ #else
25
+ gl_FragData[1] = vec4(alpha * alpha * wboitWeight);
26
+ #endif
27
+ } else {
28
+ discard;
29
+ }
30
+ }
31
+ #endif
32
32
  `;
@@ -1,13 +1,13 @@
1
- export const compose_frag = `
2
- precision highp float;
3
- precision highp sampler2D;
4
-
5
- uniform sampler2D tColor;
6
- uniform vec2 uTexSize;
7
- uniform float uWeight;
8
-
9
- void main() {
10
- vec2 coords = gl_FragCoord.xy / uTexSize;
11
- gl_FragColor = texture2D(tColor, coords) * uWeight;
12
- }
1
+ export const compose_frag = `
2
+ precision highp float;
3
+ precision highp sampler2D;
4
+
5
+ uniform sampler2D tColor;
6
+ uniform vec2 uTexSize;
7
+ uniform float uWeight;
8
+
9
+ void main() {
10
+ vec2 coords = gl_FragCoord.xy / uTexSize;
11
+ gl_FragColor = texture2D(tColor, coords) * uWeight;
12
+ }
13
13
  `;
@@ -3,27 +3,27 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const accumulate_frag = `
7
- precision highp float;
8
-
9
- varying vec3 vPosition;
10
- varying vec4 vColor;
11
-
12
- uniform float uCurrentSlice;
13
- uniform float uCurrentX;
14
- uniform float uCurrentY;
15
- uniform float uResolution;
16
-
17
- const float p = 2.0;
18
-
19
- void main() {
20
- vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;
21
- vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);
22
- float dist = distance(fragPos, vPosition);
23
- if (dist > p) discard;
24
-
25
- float f = p - dist;
26
- gl_FragColor = vColor * f;
27
- gl_FragData[1] = vec4(f);
28
- }
6
+ export const accumulate_frag = `
7
+ precision highp float;
8
+
9
+ varying vec3 vPosition;
10
+ varying vec4 vColor;
11
+
12
+ uniform float uCurrentSlice;
13
+ uniform float uCurrentX;
14
+ uniform float uCurrentY;
15
+ uniform float uResolution;
16
+
17
+ const float p = 2.0;
18
+
19
+ void main() {
20
+ vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;
21
+ vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);
22
+ float dist = distance(fragPos, vPosition);
23
+ if (dist > p) discard;
24
+
25
+ float f = p - dist;
26
+ gl_FragColor = vColor * f;
27
+ gl_FragData[1] = vec4(f);
28
+ }
29
29
  `;
@@ -3,47 +3,47 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const accumulate_vert = `
7
- precision highp float;
8
-
9
- #include common
10
- #include read_from_texture
11
-
12
- uniform int uGroupCount;
13
-
14
- attribute float aSample;
15
- #define SampleID int(aSample)
16
-
17
- attribute mat4 aTransform;
18
- attribute float aInstance;
19
-
20
- uniform vec2 uGeoTexDim;
21
- uniform sampler2D tPosition;
22
- uniform sampler2D tGroup;
23
-
24
- uniform vec2 uColorTexDim;
25
- uniform sampler2D tColor;
26
-
27
- varying vec3 vPosition;
28
- varying vec4 vColor;
29
-
30
- uniform vec3 uBboxSize;
31
- uniform vec3 uBboxMin;
32
- uniform float uResolution;
33
-
34
- void main() {
35
- vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;
36
- float group = unpackRGBToInt(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);
37
-
38
- position = (aTransform * vec4(position, 1.0)).xyz;
39
- gl_PointSize = 7.0;
40
- vPosition = (position - uBboxMin) / uResolution;
41
- gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);
42
-
43
- #if defined(dColorType_group)
44
- vColor = readFromTexture(tColor, group, uColorTexDim);
45
- #elif defined(dColorType_groupInstance)
46
- vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim);
47
- #endif
48
- }
6
+ export const accumulate_vert = `
7
+ precision highp float;
8
+
9
+ #include common
10
+ #include read_from_texture
11
+
12
+ uniform int uGroupCount;
13
+
14
+ attribute float aSample;
15
+ #define SampleID int(aSample)
16
+
17
+ attribute mat4 aTransform;
18
+ attribute float aInstance;
19
+
20
+ uniform vec2 uGeoTexDim;
21
+ uniform sampler2D tPosition;
22
+ uniform sampler2D tGroup;
23
+
24
+ uniform vec2 uColorTexDim;
25
+ uniform sampler2D tColor;
26
+
27
+ varying vec3 vPosition;
28
+ varying vec4 vColor;
29
+
30
+ uniform vec3 uBboxSize;
31
+ uniform vec3 uBboxMin;
32
+ uniform float uResolution;
33
+
34
+ void main() {
35
+ vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;
36
+ float group = unpackRGBToInt(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);
37
+
38
+ position = (aTransform * vec4(position, 1.0)).xyz;
39
+ gl_PointSize = 7.0;
40
+ vPosition = (position - uBboxMin) / uResolution;
41
+ gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);
42
+
43
+ #if defined(dColorType_group)
44
+ vColor = readFromTexture(tColor, group, uColorTexDim);
45
+ #elif defined(dColorType_groupInstance)
46
+ vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim);
47
+ #endif
48
+ }
49
49
  `;
@@ -3,19 +3,19 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const normalize_frag = `
7
- precision highp float;
8
- precision highp sampler2D;
9
-
10
- uniform sampler2D tColor;
11
- uniform sampler2D tCount;
12
- uniform vec2 uTexSize;
13
-
14
- void main(void) {
15
- vec2 coords = gl_FragCoord.xy / uTexSize;
16
- vec4 color = texture2D(tColor, coords);
17
- float count = texture2D(tCount, coords).r;
18
-
19
- gl_FragColor = color / count;
20
- }
6
+ export const normalize_frag = `
7
+ precision highp float;
8
+ precision highp sampler2D;
9
+
10
+ uniform sampler2D tColor;
11
+ uniform sampler2D tCount;
12
+ uniform vec2 uTexSize;
13
+
14
+ void main(void) {
15
+ vec2 coords = gl_FragCoord.xy / uTexSize;
16
+ vec4 color = texture2D(tColor, coords);
17
+ float count = texture2D(tCount, coords).r;
18
+
19
+ gl_FragColor = color / count;
20
+ }
21
21
  `;
@@ -1,12 +1,12 @@
1
- export const copy_frag = `
2
- precision highp float;
3
- precision highp sampler2D;
4
-
5
- uniform sampler2D tColor;
6
- uniform vec2 uTexSize;
7
-
8
- void main() {
9
- vec2 coords = gl_FragCoord.xy / uTexSize;
10
- gl_FragColor = texture2D(tColor, coords);
11
- }
1
+ export const copy_frag = `
2
+ precision highp float;
3
+ precision highp sampler2D;
4
+
5
+ uniform sampler2D tColor;
6
+ uniform vec2 uTexSize;
7
+
8
+ void main() {
9
+ vec2 coords = gl_FragCoord.xy / uTexSize;
10
+ gl_FragColor = texture2D(tColor, coords);
11
+ }
12
12
  `;