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
@@ -1,235 +1,235 @@
1
- export const common = `
2
- // TODO find a better place for these convenience defines
3
-
4
- #if defined(dRenderVariant_colorBlended) || defined(dRenderVariant_colorWboit) || defined(dRenderVariant_colorDpoit)
5
- #define dRenderVariant_color
6
- #endif
7
-
8
- #if defined(dColorType_instance) || defined(dColorType_group) || defined(dColorType_groupInstance) || defined(dColorType_vertex) || defined(dColorType_vertexInstance)
9
- #define dColorType_texture
10
- #endif
11
-
12
- #if defined(dColorType_volume) || defined(dColorType_volumeInstance)
13
- #define dColorType_grid
14
- #endif
15
-
16
- #if defined(dColorType_attribute) || defined(dColorType_texture) || defined(dColorType_grid)
17
- #define dColorType_varying
18
- #endif
19
-
20
- #if (defined(dRenderVariant_color) && defined(dColorMarker)) || defined(dRenderVariant_marking)
21
- #define dNeedsMarker
22
- #endif
23
-
24
- #if defined(dXrayShaded_on) || defined(dXrayShaded_inverted)
25
- #define dXrayShaded
26
- #endif
27
-
28
- #define MaskAll 0
29
- #define MaskOpaque 1
30
- #define MaskTransparent 2
31
-
32
- //
33
-
34
- #define PI 3.14159265
35
- #define RECIPROCAL_PI 0.31830988618
36
- #define EPSILON 1e-6
37
-
38
- #define saturate(a) clamp(a, 0.0, 1.0)
39
-
40
- #if __VERSION__ == 100
41
- #define round(x) floor((x) + 0.5)
42
- #endif
43
-
44
- float intDiv(const in float a, const in float b) { return float(int(a) / int(b)); }
45
- vec2 ivec2Div(const in vec2 a, const in vec2 b) { return vec2(ivec2(a) / ivec2(b)); }
46
- float intMod(const in float a, const in float b) { return a - b * float(int(a) / int(b)); }
47
- int imod(const in int a, const in int b) { return a - b * (a / b); }
48
-
49
- float pow2(const in float x) { return x * x; }
50
-
51
- vec3 packIntToRGB(in float value) {
52
- value = clamp(round(value), 0.0, 16777216.0 - 1.0) + 1.0;
53
- vec3 c = vec3(0.0);
54
- c.b = mod(value, 256.0);
55
- value = floor(value / 256.0);
56
- c.g = mod(value, 256.0);
57
- value = floor(value / 256.0);
58
- c.r = mod(value, 256.0);
59
- return c / 255.0;
60
- }
61
- float unpackRGBToInt(const in vec3 rgb) {
62
- return (floor(rgb.r * 255.0 + 0.5) * 256.0 * 256.0 + floor(rgb.g * 255.0 + 0.5) * 256.0 + floor(rgb.b * 255.0 + 0.5)) - 1.0;
63
- }
64
-
65
- vec2 packUnitIntervalToRG(const in float v) {
66
- vec2 enc;
67
- enc.xy = vec2(fract(v * 256.0), v);
68
- enc.y -= enc.x * (1.0 / 256.0);
69
- enc.xy *= 256.0 / 255.0;
70
-
71
- return enc;
72
- }
73
-
74
- float unpackRGToUnitInterval(const in vec2 enc) {
75
- return dot(enc, vec2(255.0 / (256.0 * 256.0), 255.0 / 256.0));
76
- }
77
-
78
- vec3 screenSpaceToViewSpace(const in vec3 ssPos, const in mat4 invProjection) {
79
- vec4 p = vec4(ssPos * 2.0 - 1.0, 1.0);
80
- p = invProjection * p;
81
- return p.xyz / p.w;
82
- }
83
-
84
- const float PackUpscale = 256.0 / 255.0; // fraction -> 0..1 (including 1)
85
- const float UnpackDownscale = 255.0 / 256.0; // 0..1 -> fraction (excluding 1)
86
- const vec3 PackFactors = vec3(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0);
87
- const vec4 UnpackFactors = UnpackDownscale / vec4(PackFactors, 1.0);
88
- const float ShiftRight8 = 1.0 / 256.0;
89
-
90
- vec4 packDepthToRGBA(const in float v) {
91
- vec4 r = vec4(fract(v * PackFactors), v);
92
- r.yzw -= r.xyz * ShiftRight8; // tidy overflow
93
- return r * PackUpscale;
94
- }
95
- float unpackRGBAToDepth(const in vec4 v) {
96
- return dot(v, UnpackFactors);
97
- }
98
-
99
- vec4 sRGBToLinear(const in vec4 c) {
100
- return vec4(mix(pow(c.rgb * 0.9478672986 + vec3(0.0521327014), vec3(2.4)), c.rgb * 0.0773993808, vec3(lessThanEqual(c.rgb, vec3(0.04045)))), c.a);
101
- }
102
- vec4 linearTosRGB(const in vec4 c) {
103
- return vec4(mix(pow(c.rgb, vec3(0.41666)) * 1.055 - vec3(0.055), c.rgb * 12.92, vec3(lessThanEqual(c.rgb, vec3(0.0031308)))), c.a);
104
- }
105
-
106
- float linearizeDepth(const in float depth, const in float near, const in float far) {
107
- return (2.0 * near) / (far + near - depth * (far - near));
108
- }
109
-
110
- float perspectiveDepthToViewZ(const in float invClipZ, const in float near, const in float far) {
111
- return (near * far) / ((far - near) * invClipZ - far);
112
- }
113
-
114
- float orthographicDepthToViewZ(const in float linearClipZ, const in float near, const in float far) {
115
- return linearClipZ * (near - far) - near;
116
- }
117
-
118
- float depthToViewZ(const in float isOrtho, const in float linearClipZ, const in float near, const in float far) {
119
- return isOrtho == 1.0 ? orthographicDepthToViewZ(linearClipZ, near, far) : perspectiveDepthToViewZ(linearClipZ, near, far);
120
- }
121
-
122
- #if __VERSION__ == 100
123
- // transpose
124
-
125
- float transpose(const in float m) {
126
- return m;
127
- }
128
-
129
- mat2 transpose2(const in mat2 m) {
130
- return mat2(
131
- m[0][0], m[1][0],
132
- m[0][1], m[1][1]
133
- );
134
- }
135
-
136
- mat3 transpose3(const in mat3 m) {
137
- return mat3(
138
- m[0][0], m[1][0], m[2][0],
139
- m[0][1], m[1][1], m[2][1],
140
- m[0][2], m[1][2], m[2][2]
141
- );
142
- }
143
-
144
- mat4 transpose4(const in mat4 m) {
145
- return mat4(
146
- m[0][0], m[1][0], m[2][0], m[3][0],
147
- m[0][1], m[1][1], m[2][1], m[3][1],
148
- m[0][2], m[1][2], m[2][2], m[3][2],
149
- m[0][3], m[1][3], m[2][3], m[3][3]
150
- );
151
- }
152
-
153
- // inverse
154
-
155
- float inverse(const in float m) {
156
- return 1.0 / m;
157
- }
158
-
159
- mat2 inverse2(const in mat2 m) {
160
- return mat2(m[1][1],-m[0][1],
161
- -m[1][0], m[0][0]) / (m[0][0]*m[1][1] - m[0][1]*m[1][0]);
162
- }
163
-
164
- mat3 inverse3(const in mat3 m) {
165
- float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];
166
- float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];
167
- float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];
168
-
169
- float b01 = a22 * a11 - a12 * a21;
170
- float b11 = -a22 * a10 + a12 * a20;
171
- float b21 = a21 * a10 - a11 * a20;
172
-
173
- float det = a00 * b01 + a01 * b11 + a02 * b21;
174
-
175
- return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),
176
- b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),
177
- b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;
178
- }
179
-
180
- mat4 inverse4(const in mat4 m) {
181
- float
182
- a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],
183
- a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],
184
- a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],
185
- a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],
186
-
187
- b00 = a00 * a11 - a01 * a10,
188
- b01 = a00 * a12 - a02 * a10,
189
- b02 = a00 * a13 - a03 * a10,
190
- b03 = a01 * a12 - a02 * a11,
191
- b04 = a01 * a13 - a03 * a11,
192
- b05 = a02 * a13 - a03 * a12,
193
- b06 = a20 * a31 - a21 * a30,
194
- b07 = a20 * a32 - a22 * a30,
195
- b08 = a20 * a33 - a23 * a30,
196
- b09 = a21 * a32 - a22 * a31,
197
- b10 = a21 * a33 - a23 * a31,
198
- b11 = a22 * a33 - a23 * a32,
199
-
200
- det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
201
-
202
- return mat4(
203
- a11 * b11 - a12 * b10 + a13 * b09,
204
- a02 * b10 - a01 * b11 - a03 * b09,
205
- a31 * b05 - a32 * b04 + a33 * b03,
206
- a22 * b04 - a21 * b05 - a23 * b03,
207
- a12 * b08 - a10 * b11 - a13 * b07,
208
- a00 * b11 - a02 * b08 + a03 * b07,
209
- a32 * b02 - a30 * b05 - a33 * b01,
210
- a20 * b05 - a22 * b02 + a23 * b01,
211
- a10 * b10 - a11 * b08 + a13 * b06,
212
- a01 * b08 - a00 * b10 - a03 * b06,
213
- a30 * b04 - a31 * b02 + a33 * b00,
214
- a21 * b02 - a20 * b04 - a23 * b00,
215
- a11 * b07 - a10 * b09 - a12 * b06,
216
- a00 * b09 - a01 * b07 + a02 * b06,
217
- a31 * b01 - a30 * b03 - a32 * b00,
218
- a20 * b03 - a21 * b01 + a22 * b00) / det;
219
- }
220
-
221
- #define isNaN(x) ((x) != (x))
222
- #define isInf(x) ((x) == (x) + 1.0)
223
- #else
224
- #define transpose2(m) transpose(m)
225
- #define transpose3(m) transpose(m)
226
- #define transpose4(m) transpose(m)
227
-
228
- #define inverse2(m) inverse(m)
229
- #define inverse3(m) inverse(m)
230
- #define inverse4(m) inverse(m)
231
-
232
- #define isNaN isnan
233
- #define isInf isinf
234
- #endif
1
+ export const common = `
2
+ // TODO find a better place for these convenience defines
3
+
4
+ #if defined(dRenderVariant_colorBlended) || defined(dRenderVariant_colorWboit) || defined(dRenderVariant_colorDpoit)
5
+ #define dRenderVariant_color
6
+ #endif
7
+
8
+ #if defined(dColorType_instance) || defined(dColorType_group) || defined(dColorType_groupInstance) || defined(dColorType_vertex) || defined(dColorType_vertexInstance)
9
+ #define dColorType_texture
10
+ #endif
11
+
12
+ #if defined(dColorType_volume) || defined(dColorType_volumeInstance)
13
+ #define dColorType_grid
14
+ #endif
15
+
16
+ #if defined(dColorType_attribute) || defined(dColorType_texture) || defined(dColorType_grid)
17
+ #define dColorType_varying
18
+ #endif
19
+
20
+ #if (defined(dRenderVariant_color) && defined(dColorMarker)) || defined(dRenderVariant_marking)
21
+ #define dNeedsMarker
22
+ #endif
23
+
24
+ #if defined(dXrayShaded_on) || defined(dXrayShaded_inverted)
25
+ #define dXrayShaded
26
+ #endif
27
+
28
+ #define MaskAll 0
29
+ #define MaskOpaque 1
30
+ #define MaskTransparent 2
31
+
32
+ //
33
+
34
+ #define PI 3.14159265
35
+ #define RECIPROCAL_PI 0.31830988618
36
+ #define EPSILON 1e-6
37
+
38
+ #define saturate(a) clamp(a, 0.0, 1.0)
39
+
40
+ #if __VERSION__ == 100
41
+ #define round(x) floor((x) + 0.5)
42
+ #endif
43
+
44
+ float intDiv(const in float a, const in float b) { return float(int(a) / int(b)); }
45
+ vec2 ivec2Div(const in vec2 a, const in vec2 b) { return vec2(ivec2(a) / ivec2(b)); }
46
+ float intMod(const in float a, const in float b) { return a - b * float(int(a) / int(b)); }
47
+ int imod(const in int a, const in int b) { return a - b * (a / b); }
48
+
49
+ float pow2(const in float x) { return x * x; }
50
+
51
+ vec3 packIntToRGB(in float value) {
52
+ value = clamp(round(value), 0.0, 16777216.0 - 1.0) + 1.0;
53
+ vec3 c = vec3(0.0);
54
+ c.b = mod(value, 256.0);
55
+ value = floor(value / 256.0);
56
+ c.g = mod(value, 256.0);
57
+ value = floor(value / 256.0);
58
+ c.r = mod(value, 256.0);
59
+ return c / 255.0;
60
+ }
61
+ float unpackRGBToInt(const in vec3 rgb) {
62
+ return (floor(rgb.r * 255.0 + 0.5) * 256.0 * 256.0 + floor(rgb.g * 255.0 + 0.5) * 256.0 + floor(rgb.b * 255.0 + 0.5)) - 1.0;
63
+ }
64
+
65
+ vec2 packUnitIntervalToRG(const in float v) {
66
+ vec2 enc;
67
+ enc.xy = vec2(fract(v * 256.0), v);
68
+ enc.y -= enc.x * (1.0 / 256.0);
69
+ enc.xy *= 256.0 / 255.0;
70
+
71
+ return enc;
72
+ }
73
+
74
+ float unpackRGToUnitInterval(const in vec2 enc) {
75
+ return dot(enc, vec2(255.0 / (256.0 * 256.0), 255.0 / 256.0));
76
+ }
77
+
78
+ vec3 screenSpaceToViewSpace(const in vec3 ssPos, const in mat4 invProjection) {
79
+ vec4 p = vec4(ssPos * 2.0 - 1.0, 1.0);
80
+ p = invProjection * p;
81
+ return p.xyz / p.w;
82
+ }
83
+
84
+ const float PackUpscale = 256.0 / 255.0; // fraction -> 0..1 (including 1)
85
+ const float UnpackDownscale = 255.0 / 256.0; // 0..1 -> fraction (excluding 1)
86
+ const vec3 PackFactors = vec3(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0);
87
+ const vec4 UnpackFactors = UnpackDownscale / vec4(PackFactors, 1.0);
88
+ const float ShiftRight8 = 1.0 / 256.0;
89
+
90
+ vec4 packDepthToRGBA(const in float v) {
91
+ vec4 r = vec4(fract(v * PackFactors), v);
92
+ r.yzw -= r.xyz * ShiftRight8; // tidy overflow
93
+ return r * PackUpscale;
94
+ }
95
+ float unpackRGBAToDepth(const in vec4 v) {
96
+ return dot(v, UnpackFactors);
97
+ }
98
+
99
+ vec4 sRGBToLinear(const in vec4 c) {
100
+ return vec4(mix(pow(c.rgb * 0.9478672986 + vec3(0.0521327014), vec3(2.4)), c.rgb * 0.0773993808, vec3(lessThanEqual(c.rgb, vec3(0.04045)))), c.a);
101
+ }
102
+ vec4 linearTosRGB(const in vec4 c) {
103
+ return vec4(mix(pow(c.rgb, vec3(0.41666)) * 1.055 - vec3(0.055), c.rgb * 12.92, vec3(lessThanEqual(c.rgb, vec3(0.0031308)))), c.a);
104
+ }
105
+
106
+ float linearizeDepth(const in float depth, const in float near, const in float far) {
107
+ return (2.0 * near) / (far + near - depth * (far - near));
108
+ }
109
+
110
+ float perspectiveDepthToViewZ(const in float invClipZ, const in float near, const in float far) {
111
+ return (near * far) / ((far - near) * invClipZ - far);
112
+ }
113
+
114
+ float orthographicDepthToViewZ(const in float linearClipZ, const in float near, const in float far) {
115
+ return linearClipZ * (near - far) - near;
116
+ }
117
+
118
+ float depthToViewZ(const in float isOrtho, const in float linearClipZ, const in float near, const in float far) {
119
+ return isOrtho == 1.0 ? orthographicDepthToViewZ(linearClipZ, near, far) : perspectiveDepthToViewZ(linearClipZ, near, far);
120
+ }
121
+
122
+ #if __VERSION__ == 100
123
+ // transpose
124
+
125
+ float transpose(const in float m) {
126
+ return m;
127
+ }
128
+
129
+ mat2 transpose2(const in mat2 m) {
130
+ return mat2(
131
+ m[0][0], m[1][0],
132
+ m[0][1], m[1][1]
133
+ );
134
+ }
135
+
136
+ mat3 transpose3(const in mat3 m) {
137
+ return mat3(
138
+ m[0][0], m[1][0], m[2][0],
139
+ m[0][1], m[1][1], m[2][1],
140
+ m[0][2], m[1][2], m[2][2]
141
+ );
142
+ }
143
+
144
+ mat4 transpose4(const in mat4 m) {
145
+ return mat4(
146
+ m[0][0], m[1][0], m[2][0], m[3][0],
147
+ m[0][1], m[1][1], m[2][1], m[3][1],
148
+ m[0][2], m[1][2], m[2][2], m[3][2],
149
+ m[0][3], m[1][3], m[2][3], m[3][3]
150
+ );
151
+ }
152
+
153
+ // inverse
154
+
155
+ float inverse(const in float m) {
156
+ return 1.0 / m;
157
+ }
158
+
159
+ mat2 inverse2(const in mat2 m) {
160
+ return mat2(m[1][1],-m[0][1],
161
+ -m[1][0], m[0][0]) / (m[0][0]*m[1][1] - m[0][1]*m[1][0]);
162
+ }
163
+
164
+ mat3 inverse3(const in mat3 m) {
165
+ float a00 = m[0][0], a01 = m[0][1], a02 = m[0][2];
166
+ float a10 = m[1][0], a11 = m[1][1], a12 = m[1][2];
167
+ float a20 = m[2][0], a21 = m[2][1], a22 = m[2][2];
168
+
169
+ float b01 = a22 * a11 - a12 * a21;
170
+ float b11 = -a22 * a10 + a12 * a20;
171
+ float b21 = a21 * a10 - a11 * a20;
172
+
173
+ float det = a00 * b01 + a01 * b11 + a02 * b21;
174
+
175
+ return mat3(b01, (-a22 * a01 + a02 * a21), (a12 * a01 - a02 * a11),
176
+ b11, (a22 * a00 - a02 * a20), (-a12 * a00 + a02 * a10),
177
+ b21, (-a21 * a00 + a01 * a20), (a11 * a00 - a01 * a10)) / det;
178
+ }
179
+
180
+ mat4 inverse4(const in mat4 m) {
181
+ float
182
+ a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],
183
+ a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],
184
+ a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],
185
+ a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],
186
+
187
+ b00 = a00 * a11 - a01 * a10,
188
+ b01 = a00 * a12 - a02 * a10,
189
+ b02 = a00 * a13 - a03 * a10,
190
+ b03 = a01 * a12 - a02 * a11,
191
+ b04 = a01 * a13 - a03 * a11,
192
+ b05 = a02 * a13 - a03 * a12,
193
+ b06 = a20 * a31 - a21 * a30,
194
+ b07 = a20 * a32 - a22 * a30,
195
+ b08 = a20 * a33 - a23 * a30,
196
+ b09 = a21 * a32 - a22 * a31,
197
+ b10 = a21 * a33 - a23 * a31,
198
+ b11 = a22 * a33 - a23 * a32,
199
+
200
+ det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
201
+
202
+ return mat4(
203
+ a11 * b11 - a12 * b10 + a13 * b09,
204
+ a02 * b10 - a01 * b11 - a03 * b09,
205
+ a31 * b05 - a32 * b04 + a33 * b03,
206
+ a22 * b04 - a21 * b05 - a23 * b03,
207
+ a12 * b08 - a10 * b11 - a13 * b07,
208
+ a00 * b11 - a02 * b08 + a03 * b07,
209
+ a32 * b02 - a30 * b05 - a33 * b01,
210
+ a20 * b05 - a22 * b02 + a23 * b01,
211
+ a10 * b10 - a11 * b08 + a13 * b06,
212
+ a01 * b08 - a00 * b10 - a03 * b06,
213
+ a30 * b04 - a31 * b02 + a33 * b00,
214
+ a21 * b02 - a20 * b04 - a23 * b00,
215
+ a11 * b07 - a10 * b09 - a12 * b06,
216
+ a00 * b09 - a01 * b07 + a02 * b06,
217
+ a31 * b01 - a30 * b03 - a32 * b00,
218
+ a20 * b03 - a21 * b01 + a22 * b00) / det;
219
+ }
220
+
221
+ #define isNaN(x) ((x) != (x))
222
+ #define isInf(x) ((x) == (x) + 1.0)
223
+ #else
224
+ #define transpose2(m) transpose(m)
225
+ #define transpose3(m) transpose(m)
226
+ #define transpose4(m) transpose(m)
227
+
228
+ #define inverse2(m) inverse(m)
229
+ #define inverse3(m) inverse(m)
230
+ #define inverse4(m) inverse(m)
231
+
232
+ #define isNaN isnan
233
+ #define isInf isinf
234
+ #endif
235
235
  `;
@@ -3,66 +3,66 @@
3
3
  *
4
4
  * @author Gianluca Tomasello <giagitom@gmail.com>
5
5
  */
6
- export const dpoit_write = `
7
- #if defined(dRenderVariant_colorDpoit)
8
- if (uRenderMask == MaskOpaque) {
9
- if (preFogAlpha < 1.0) {
10
- discard;
11
- }
12
- } else if (uRenderMask == MaskTransparent) {
13
- vec2 coords = gl_FragCoord.xy / uDrawingBufferSize;
14
- if (preFogAlpha != 1.0 && fragmentDepth < getDepth(coords)) {
15
- #ifdef dTransparentBackfaces_off
16
- if (interior) discard;
17
- #endif
18
-
19
- // adapted from https://github.com/tsherif/webgl2examples
20
- // The MIT License, Copyright 2017 Tarek Sherif, Shuai Shao
21
-
22
- vec2 lastDepth = texture2D(tDpoitDepth, coords).rg;
23
- vec4 lastFrontColor = texture2D(tDpoitFrontColor, coords);
24
-
25
- vec4 fragColor = gl_FragColor;
26
-
27
- // depth value always increases
28
- // so we can use MAX blend equation
29
- gl_FragData[2].rg = vec2(-MAX_DPOIT_DEPTH);
30
-
31
- // front color always increases
32
- // so we can use MAX blend equation
33
- gl_FragColor = lastFrontColor;
34
-
35
- // back color is separately blend afterwards each pass
36
- gl_FragData[1] = vec4(0.0);
37
-
38
- float nearestDepth = -lastDepth.x;
39
- float furthestDepth = lastDepth.y;
40
- float alphaMultiplier = 1.0 - lastFrontColor.a;
41
-
42
- if (fragmentDepth < nearestDepth || fragmentDepth > furthestDepth) {
43
- // Skip this depth since it's been peeled.
44
- return;
45
- }
46
-
47
- if (fragmentDepth > nearestDepth && fragmentDepth < furthestDepth) {
48
- // This needs to be peeled.
49
- // The ones remaining after MAX blended for
50
- // all need-to-peel will be peeled next pass.
51
- gl_FragData[2].rg = vec2(-fragmentDepth, fragmentDepth);
52
- return;
53
- }
54
-
55
- // write to back and front color buffer
56
- if (fragmentDepth == nearestDepth) {
57
- gl_FragColor.rgb += fragColor.rgb * fragColor.a * alphaMultiplier;
58
- gl_FragColor.a = 1.0 - alphaMultiplier * (1.0 - fragColor.a);
59
- } else {
60
- gl_FragData[1] += fragColor;
61
- }
62
-
63
- } else {
64
- discard;
65
- }
66
- }
67
- #endif
6
+ export const dpoit_write = `
7
+ #if defined(dRenderVariant_colorDpoit)
8
+ if (uRenderMask == MaskOpaque) {
9
+ if (preFogAlpha < 1.0) {
10
+ discard;
11
+ }
12
+ } else if (uRenderMask == MaskTransparent) {
13
+ vec2 coords = gl_FragCoord.xy / uDrawingBufferSize;
14
+ if (preFogAlpha != 1.0 && fragmentDepth < getDepth(coords)) {
15
+ #ifdef dTransparentBackfaces_off
16
+ if (interior) discard;
17
+ #endif
18
+
19
+ // adapted from https://github.com/tsherif/webgl2examples
20
+ // The MIT License, Copyright 2017 Tarek Sherif, Shuai Shao
21
+
22
+ vec2 lastDepth = texture2D(tDpoitDepth, coords).rg;
23
+ vec4 lastFrontColor = texture2D(tDpoitFrontColor, coords);
24
+
25
+ vec4 fragColor = gl_FragColor;
26
+
27
+ // depth value always increases
28
+ // so we can use MAX blend equation
29
+ gl_FragData[2].rg = vec2(-MAX_DPOIT_DEPTH);
30
+
31
+ // front color always increases
32
+ // so we can use MAX blend equation
33
+ gl_FragColor = lastFrontColor;
34
+
35
+ // back color is separately blend afterwards each pass
36
+ gl_FragData[1] = vec4(0.0);
37
+
38
+ float nearestDepth = -lastDepth.x;
39
+ float furthestDepth = lastDepth.y;
40
+ float alphaMultiplier = 1.0 - lastFrontColor.a;
41
+
42
+ if (fragmentDepth < nearestDepth || fragmentDepth > furthestDepth) {
43
+ // Skip this depth since it's been peeled.
44
+ return;
45
+ }
46
+
47
+ if (fragmentDepth > nearestDepth && fragmentDepth < furthestDepth) {
48
+ // This needs to be peeled.
49
+ // The ones remaining after MAX blended for
50
+ // all need-to-peel will be peeled next pass.
51
+ gl_FragData[2].rg = vec2(-fragmentDepth, fragmentDepth);
52
+ return;
53
+ }
54
+
55
+ // write to back and front color buffer
56
+ if (fragmentDepth == nearestDepth) {
57
+ gl_FragColor.rgb += fragColor.rgb * fragColor.a * alphaMultiplier;
58
+ gl_FragColor.a = 1.0 - alphaMultiplier * (1.0 - fragColor.a);
59
+ } else {
60
+ gl_FragData[1] += fragColor;
61
+ }
62
+
63
+ } else {
64
+ discard;
65
+ }
66
+ }
67
+ #endif
68
68
  `;