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,32 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.edge_frag = void 0;
4
- exports.edge_frag = `
5
- precision highp float;
6
- precision highp sampler2D;
7
-
8
- uniform sampler2D tMaskTexture;
9
- uniform vec2 uTexSizeInv;
10
-
11
- void main() {
12
- vec2 coords = gl_FragCoord.xy * uTexSizeInv;
13
- vec4 offset = vec4(float(dEdgeScale), 0.0, 0.0, float(dEdgeScale)) * vec4(uTexSizeInv, uTexSizeInv);
14
- vec4 c0 = texture2D(tMaskTexture, coords);
15
- vec4 c1 = texture2D(tMaskTexture, coords + offset.xy);
16
- vec4 c2 = texture2D(tMaskTexture, coords - offset.xy);
17
- vec4 c3 = texture2D(tMaskTexture, coords + offset.yw);
18
- vec4 c4 = texture2D(tMaskTexture, coords - offset.yw);
19
- float diff1 = (c1.r - c2.r) * 0.5;
20
- float diff2 = (c3.r - c4.r) * 0.5;
21
- float d = length(vec2(diff1, diff2));
22
- if (d <= 0.0)
23
- discard;
24
- float a1 = min(c1.g, c2.g);
25
- float a2 = min(c3.g, c4.g);
26
- float visibility = min(a1, a2) > 0.001 ? 1.0 : 0.0;
27
- float mask = c0.r;
28
- float marker = min(c1.b, min(c2.b, min(c3.b, c4.b)));
29
- float fogAlpha = min(c1.a, min(c2.a, min(c3.a, c4.a)));
30
- gl_FragColor = vec4(visibility, mask, marker, fogAlpha);
31
- }
4
+ exports.edge_frag = `
5
+ precision highp float;
6
+ precision highp sampler2D;
7
+
8
+ uniform sampler2D tMaskTexture;
9
+ uniform vec2 uTexSizeInv;
10
+
11
+ void main() {
12
+ vec2 coords = gl_FragCoord.xy * uTexSizeInv;
13
+ vec4 offset = vec4(float(dEdgeScale), 0.0, 0.0, float(dEdgeScale)) * vec4(uTexSizeInv, uTexSizeInv);
14
+ vec4 c0 = texture2D(tMaskTexture, coords);
15
+ vec4 c1 = texture2D(tMaskTexture, coords + offset.xy);
16
+ vec4 c2 = texture2D(tMaskTexture, coords - offset.xy);
17
+ vec4 c3 = texture2D(tMaskTexture, coords + offset.yw);
18
+ vec4 c4 = texture2D(tMaskTexture, coords - offset.yw);
19
+ float diff1 = (c1.r - c2.r) * 0.5;
20
+ float diff2 = (c3.r - c4.r) * 0.5;
21
+ float d = length(vec2(diff1, diff2));
22
+ if (d <= 0.0)
23
+ discard;
24
+ float a1 = min(c1.g, c2.g);
25
+ float a2 = min(c3.g, c4.g);
26
+ float visibility = min(a1, a2) > 0.001 ? 1.0 : 0.0;
27
+ float mask = c0.r;
28
+ float marker = min(c1.b, min(c2.b, min(c3.b, c4.b)));
29
+ float fogAlpha = min(c1.a, min(c2.a, min(c3.a, c4.a)));
30
+ gl_FragColor = vec4(visibility, mask, marker, fogAlpha);
31
+ }
32
32
  `;
@@ -1,30 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.overlay_frag = void 0;
4
- exports.overlay_frag = `
5
- precision highp float;
6
- precision highp sampler2D;
7
-
8
- uniform vec2 uTexSizeInv;
9
- uniform sampler2D tEdgeTexture;
10
- uniform vec3 uHighlightEdgeColor;
11
- uniform vec3 uSelectEdgeColor;
12
- uniform float uHighlightEdgeStrength;
13
- uniform float uSelectEdgeStrength;
14
- uniform float uGhostEdgeStrength;
15
- uniform float uInnerEdgeFactor;
16
-
17
- void main() {
18
- vec2 coords = gl_FragCoord.xy * uTexSizeInv;
19
- vec4 edgeValue = texture2D(tEdgeTexture, coords);
20
- if (edgeValue.a > 0.0) {
21
- vec3 edgeColor = edgeValue.b == 1.0 ? uHighlightEdgeColor : uSelectEdgeColor;
22
- gl_FragColor.rgb = edgeValue.g > 0.0 ? edgeColor : edgeColor * uInnerEdgeFactor;
23
- gl_FragColor.a = (edgeValue.r == 1.0 ? uGhostEdgeStrength : 1.0) * edgeValue.a;
24
- float edgeStrength = edgeValue.b == 1.0 ? uHighlightEdgeStrength : uSelectEdgeStrength;
25
- gl_FragColor.a *= edgeStrength;
26
- } else {
27
- gl_FragColor = vec4(0.0);
28
- }
29
- }
4
+ exports.overlay_frag = `
5
+ precision highp float;
6
+ precision highp sampler2D;
7
+
8
+ uniform vec2 uTexSizeInv;
9
+ uniform sampler2D tEdgeTexture;
10
+ uniform vec3 uHighlightEdgeColor;
11
+ uniform vec3 uSelectEdgeColor;
12
+ uniform float uHighlightEdgeStrength;
13
+ uniform float uSelectEdgeStrength;
14
+ uniform float uGhostEdgeStrength;
15
+ uniform float uInnerEdgeFactor;
16
+
17
+ void main() {
18
+ vec2 coords = gl_FragCoord.xy * uTexSizeInv;
19
+ vec4 edgeValue = texture2D(tEdgeTexture, coords);
20
+ if (edgeValue.a > 0.0) {
21
+ vec3 edgeColor = edgeValue.b == 1.0 ? uHighlightEdgeColor : uSelectEdgeColor;
22
+ gl_FragColor.rgb = edgeValue.g > 0.0 ? edgeColor : edgeColor * uInnerEdgeFactor;
23
+ gl_FragColor.a = (edgeValue.r == 1.0 ? uGhostEdgeStrength : 1.0) * edgeValue.a;
24
+ float edgeStrength = edgeValue.b == 1.0 ? uHighlightEdgeStrength : uSelectEdgeStrength;
25
+ gl_FragColor.a *= edgeStrength;
26
+ } else {
27
+ gl_FragColor = vec4(0.0);
28
+ }
29
+ }
30
30
  `;
@@ -6,69 +6,69 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.mesh_frag = void 0;
9
- exports.mesh_frag = `
10
- precision highp float;
11
- precision highp int;
12
-
13
- #define bumpEnabled
14
-
15
- #include common
16
- #include common_frag_params
17
- #include color_frag_params
18
- #include light_frag_params
19
- #include normal_frag_params
20
- #include common_clip
21
-
22
- void main() {
23
- #include fade_lod
24
- #include clip_pixel
25
-
26
- // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)
27
- vec3 fdx = dFdx(vViewPosition);
28
- vec3 fdy = dFdy(vViewPosition);
29
- vec3 faceNormal = normalize(cross(fdx,fdy));
30
- bool frontFacing = dot(vNormal, faceNormal) > 0.0;
31
-
32
- #if defined(dFlipSided)
33
- interior = frontFacing;
34
- #else
35
- interior = !frontFacing;
36
- #endif
37
-
38
- float fragmentDepth = gl_FragCoord.z;
39
- #include assign_material_color
40
- #include check_transparency
41
-
42
- #if defined(dRenderVariant_pick)
43
- #include check_picking_alpha
44
- #ifdef requiredDrawBuffers
45
- gl_FragColor = vObject;
46
- gl_FragData[1] = vInstance;
47
- gl_FragData[2] = vGroup;
48
- gl_FragData[3] = packDepthToRGBA(fragmentDepth);
49
- #else
50
- gl_FragColor = vColor;
51
- #endif
52
- #elif defined(dRenderVariant_depth)
53
- gl_FragColor = material;
54
- #elif defined(dRenderVariant_marking)
55
- gl_FragColor = material;
56
- #elif defined(dRenderVariant_emissive)
57
- gl_FragColor = material;
58
- #elif defined(dRenderVariant_color)
59
- #if defined(dFlatShaded)
60
- vec3 normal = -faceNormal;
61
- #else
62
- vec3 normal = -normalize(vNormal);
63
- if (uDoubleSided) normal *= float(frontFacing) * 2.0 - 1.0;
64
- #endif
65
- #include apply_light_color
66
-
67
- #include apply_interior_color
68
- #include apply_marker_color
69
- #include apply_fog
70
- #include wboit_write
71
- #include dpoit_write
72
- #endif
73
- }
9
+ exports.mesh_frag = `
10
+ precision highp float;
11
+ precision highp int;
12
+
13
+ #define bumpEnabled
14
+
15
+ #include common
16
+ #include common_frag_params
17
+ #include color_frag_params
18
+ #include light_frag_params
19
+ #include normal_frag_params
20
+ #include common_clip
21
+
22
+ void main() {
23
+ #include fade_lod
24
+ #include clip_pixel
25
+
26
+ // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)
27
+ vec3 fdx = dFdx(vViewPosition);
28
+ vec3 fdy = dFdy(vViewPosition);
29
+ vec3 faceNormal = normalize(cross(fdx,fdy));
30
+ bool frontFacing = dot(vNormal, faceNormal) > 0.0;
31
+
32
+ #if defined(dFlipSided)
33
+ interior = frontFacing;
34
+ #else
35
+ interior = !frontFacing;
36
+ #endif
37
+
38
+ float fragmentDepth = gl_FragCoord.z;
39
+ #include assign_material_color
40
+ #include check_transparency
41
+
42
+ #if defined(dRenderVariant_pick)
43
+ #include check_picking_alpha
44
+ #ifdef requiredDrawBuffers
45
+ gl_FragColor = vObject;
46
+ gl_FragData[1] = vInstance;
47
+ gl_FragData[2] = vGroup;
48
+ gl_FragData[3] = packDepthToRGBA(fragmentDepth);
49
+ #else
50
+ gl_FragColor = vColor;
51
+ #endif
52
+ #elif defined(dRenderVariant_depth)
53
+ gl_FragColor = material;
54
+ #elif defined(dRenderVariant_marking)
55
+ gl_FragColor = material;
56
+ #elif defined(dRenderVariant_emissive)
57
+ gl_FragColor = material;
58
+ #elif defined(dRenderVariant_color)
59
+ #if defined(dFlatShaded)
60
+ vec3 normal = -faceNormal;
61
+ #else
62
+ vec3 normal = -normalize(vNormal);
63
+ if (uDoubleSided) normal *= float(frontFacing) * 2.0 - 1.0;
64
+ #endif
65
+ #include apply_light_color
66
+
67
+ #include apply_interior_color
68
+ #include apply_marker_color
69
+ #include apply_fog
70
+ #include wboit_write
71
+ #include dpoit_write
72
+ #endif
73
+ }
74
74
  `;
@@ -6,53 +6,53 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.mesh_vert = void 0;
9
- exports.mesh_vert = `
10
- precision highp float;
11
- precision highp int;
12
- precision highp sampler2D;
13
-
14
- #include common
15
- #include read_from_texture
16
- #include common_vert_params
17
- #include color_vert_params
18
- #include common_clip
19
- #include texture3d_from_2d_linear
20
-
21
- #ifdef dGeometryType_textureMesh
22
- uniform vec2 uGeoTexDim;
23
- uniform sampler2D tPosition;
24
- uniform sampler2D tGroup;
25
- uniform sampler2D tNormal;
26
- #else
27
- attribute vec3 aPosition;
28
- attribute float aGroup;
29
- attribute vec3 aNormal;
30
- #endif
31
- attribute mat4 aTransform;
32
- attribute float aInstance;
33
-
34
- varying vec3 vNormal;
35
-
36
- void main(){
37
- #include assign_group
38
- #include assign_marker_varying
39
- #include assign_clipping_varying
40
- #include assign_position
41
- #include assign_color_varying
42
- #include clip_instance
43
-
44
- #ifdef dGeometryType_textureMesh
45
- vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;
46
- #else
47
- vec3 normal = aNormal;
48
- #endif
49
- mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));
50
- vec3 transformedNormal = normalize(normalMatrix * normalize(normal));
51
- #if defined(dFlipSided)
52
- if (!uDoubleSided) { // TODO checking uDoubleSided should not be required, ASR
53
- transformedNormal = -transformedNormal;
54
- }
55
- #endif
56
- vNormal = transformedNormal;
57
- }
9
+ exports.mesh_vert = `
10
+ precision highp float;
11
+ precision highp int;
12
+ precision highp sampler2D;
13
+
14
+ #include common
15
+ #include read_from_texture
16
+ #include common_vert_params
17
+ #include color_vert_params
18
+ #include common_clip
19
+ #include texture3d_from_2d_linear
20
+
21
+ #ifdef dGeometryType_textureMesh
22
+ uniform vec2 uGeoTexDim;
23
+ uniform sampler2D tPosition;
24
+ uniform sampler2D tGroup;
25
+ uniform sampler2D tNormal;
26
+ #else
27
+ attribute vec3 aPosition;
28
+ attribute float aGroup;
29
+ attribute vec3 aNormal;
30
+ #endif
31
+ attribute mat4 aTransform;
32
+ attribute float aInstance;
33
+
34
+ varying vec3 vNormal;
35
+
36
+ void main(){
37
+ #include assign_group
38
+ #include assign_marker_varying
39
+ #include assign_clipping_varying
40
+ #include assign_position
41
+ #include assign_color_varying
42
+ #include clip_instance
43
+
44
+ #ifdef dGeometryType_textureMesh
45
+ vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;
46
+ #else
47
+ vec3 normal = aNormal;
48
+ #endif
49
+ mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));
50
+ vec3 transformedNormal = normalize(normalMatrix * normalize(normal));
51
+ #if defined(dFlipSided)
52
+ if (!uDoubleSided) { // TODO checking uDoubleSided should not be required, ASR
53
+ transformedNormal = -transformedNormal;
54
+ }
55
+ #endif
56
+ vNormal = transformedNormal;
57
+ }
58
58
  `;
@@ -7,99 +7,99 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.outlines_frag = void 0;
10
- exports.outlines_frag = `
11
- precision highp float;
12
- precision highp int;
13
- precision highp sampler2D;
14
-
15
- uniform sampler2D tDepthOpaque;
16
- uniform sampler2D tDepthTransparent;
17
- uniform vec2 uTexSize;
18
-
19
- uniform float uNear;
20
- uniform float uFar;
21
- uniform mat4 uInvProjection;
22
-
23
- uniform float uOutlineThreshold;
24
-
25
- #include common
26
-
27
- float getViewZ(const in float depth) {
28
- #if dOrthographic == 1
29
- return orthographicDepthToViewZ(depth, uNear, uFar);
30
- #else
31
- return perspectiveDepthToViewZ(depth, uNear, uFar);
32
- #endif
33
- }
34
-
35
- float getDepthOpaque(const in vec2 coords) {
36
- #ifdef depthTextureSupport
37
- return texture2D(tDepthOpaque, coords).r;
38
- #else
39
- return unpackRGBAToDepth(texture2D(tDepthOpaque, coords));
40
- #endif
41
- }
42
-
43
- float getDepthTransparent(const in vec2 coords) {
44
- #ifdef dTransparentOutline
45
- return unpackRGBAToDepth(texture2D(tDepthTransparent, coords));
46
- #else
47
- return 1.0;
48
- #endif
49
- }
50
-
51
- bool isBackground(const in float depth) {
52
- return depth == 1.0;
53
- }
54
-
55
- float getPixelSize(const in vec2 coords, const in float depth) {
56
- vec3 viewPos0 = screenSpaceToViewSpace(vec3(coords, depth), uInvProjection);
57
- vec3 viewPos1 = screenSpaceToViewSpace(vec3(coords + vec2(1.0, 0.0) / uTexSize, depth), uInvProjection);
58
- return distance(viewPos0, viewPos1);
59
- }
60
-
61
- void main(void) {
62
- float backgroundViewZ = 2.0 * uFar;
63
-
64
- vec2 coords = gl_FragCoord.xy / uTexSize;
65
- vec2 invTexSize = 1.0 / uTexSize;
66
-
67
- float selfDepthOpaque = getDepthOpaque(coords);
68
- float selfViewZOpaque = isBackground(selfDepthOpaque) ? backgroundViewZ : getViewZ(selfDepthOpaque);
69
- float pixelSizeOpaque = getPixelSize(coords, selfDepthOpaque) * uOutlineThreshold;
70
-
71
- float selfDepthTransparent = getDepthTransparent(coords);
72
- float selfViewZTransparent = isBackground(selfDepthTransparent) ? backgroundViewZ : getViewZ(selfDepthTransparent);
73
- float pixelSizeTransparent = getPixelSize(coords, selfDepthTransparent) * uOutlineThreshold;
74
-
75
- float outline = 1.0;
76
- float bestDepth = 1.0;
77
- float transparentFlag = 0.0;
78
-
79
- for (int y = -1; y <= 1; y++) {
80
- for (int x = -1; x <= 1; x++) {
81
- vec2 sampleCoords = coords + vec2(float(x), float(y)) * invTexSize;
82
-
83
- float sampleDepthOpaque = getDepthOpaque(sampleCoords);
84
- float sampleDepthTransparent = getDepthTransparent(sampleCoords);
85
-
86
- float sampleViewZOpaque = isBackground(sampleDepthOpaque) ? backgroundViewZ : getViewZ(sampleDepthOpaque);
87
- if (abs(selfViewZOpaque - sampleViewZOpaque) > pixelSizeOpaque && selfDepthOpaque > sampleDepthOpaque && sampleDepthOpaque <= bestDepth) {
88
- outline = 0.0;
89
- bestDepth = sampleDepthOpaque;
90
- }
91
-
92
- if (sampleDepthTransparent < sampleDepthOpaque) {
93
- float sampleViewZTransparent = isBackground(sampleDepthTransparent) ? backgroundViewZ : getViewZ(sampleDepthTransparent);
94
- if (abs(selfViewZTransparent - sampleViewZTransparent) > pixelSizeTransparent && selfDepthTransparent > sampleDepthTransparent && sampleDepthTransparent <= bestDepth) {
95
- outline = 0.0;
96
- bestDepth = sampleDepthTransparent;
97
- transparentFlag = 1.0;
98
- }
99
- }
100
- }
101
- }
102
-
103
- gl_FragColor = vec4(outline, packUnitIntervalToRG(bestDepth), transparentFlag);
104
- }
10
+ exports.outlines_frag = `
11
+ precision highp float;
12
+ precision highp int;
13
+ precision highp sampler2D;
14
+
15
+ uniform sampler2D tDepthOpaque;
16
+ uniform sampler2D tDepthTransparent;
17
+ uniform vec2 uTexSize;
18
+
19
+ uniform float uNear;
20
+ uniform float uFar;
21
+ uniform mat4 uInvProjection;
22
+
23
+ uniform float uOutlineThreshold;
24
+
25
+ #include common
26
+
27
+ float getViewZ(const in float depth) {
28
+ #if dOrthographic == 1
29
+ return orthographicDepthToViewZ(depth, uNear, uFar);
30
+ #else
31
+ return perspectiveDepthToViewZ(depth, uNear, uFar);
32
+ #endif
33
+ }
34
+
35
+ float getDepthOpaque(const in vec2 coords) {
36
+ #ifdef depthTextureSupport
37
+ return texture2D(tDepthOpaque, coords).r;
38
+ #else
39
+ return unpackRGBAToDepth(texture2D(tDepthOpaque, coords));
40
+ #endif
41
+ }
42
+
43
+ float getDepthTransparent(const in vec2 coords) {
44
+ #ifdef dTransparentOutline
45
+ return unpackRGBAToDepth(texture2D(tDepthTransparent, coords));
46
+ #else
47
+ return 1.0;
48
+ #endif
49
+ }
50
+
51
+ bool isBackground(const in float depth) {
52
+ return depth == 1.0;
53
+ }
54
+
55
+ float getPixelSize(const in vec2 coords, const in float depth) {
56
+ vec3 viewPos0 = screenSpaceToViewSpace(vec3(coords, depth), uInvProjection);
57
+ vec3 viewPos1 = screenSpaceToViewSpace(vec3(coords + vec2(1.0, 0.0) / uTexSize, depth), uInvProjection);
58
+ return distance(viewPos0, viewPos1);
59
+ }
60
+
61
+ void main(void) {
62
+ float backgroundViewZ = 2.0 * uFar;
63
+
64
+ vec2 coords = gl_FragCoord.xy / uTexSize;
65
+ vec2 invTexSize = 1.0 / uTexSize;
66
+
67
+ float selfDepthOpaque = getDepthOpaque(coords);
68
+ float selfViewZOpaque = isBackground(selfDepthOpaque) ? backgroundViewZ : getViewZ(selfDepthOpaque);
69
+ float pixelSizeOpaque = getPixelSize(coords, selfDepthOpaque) * uOutlineThreshold;
70
+
71
+ float selfDepthTransparent = getDepthTransparent(coords);
72
+ float selfViewZTransparent = isBackground(selfDepthTransparent) ? backgroundViewZ : getViewZ(selfDepthTransparent);
73
+ float pixelSizeTransparent = getPixelSize(coords, selfDepthTransparent) * uOutlineThreshold;
74
+
75
+ float outline = 1.0;
76
+ float bestDepth = 1.0;
77
+ float transparentFlag = 0.0;
78
+
79
+ for (int y = -1; y <= 1; y++) {
80
+ for (int x = -1; x <= 1; x++) {
81
+ vec2 sampleCoords = coords + vec2(float(x), float(y)) * invTexSize;
82
+
83
+ float sampleDepthOpaque = getDepthOpaque(sampleCoords);
84
+ float sampleDepthTransparent = getDepthTransparent(sampleCoords);
85
+
86
+ float sampleViewZOpaque = isBackground(sampleDepthOpaque) ? backgroundViewZ : getViewZ(sampleDepthOpaque);
87
+ if (abs(selfViewZOpaque - sampleViewZOpaque) > pixelSizeOpaque && selfDepthOpaque > sampleDepthOpaque && sampleDepthOpaque <= bestDepth) {
88
+ outline = 0.0;
89
+ bestDepth = sampleDepthOpaque;
90
+ }
91
+
92
+ if (sampleDepthTransparent < sampleDepthOpaque) {
93
+ float sampleViewZTransparent = isBackground(sampleDepthTransparent) ? backgroundViewZ : getViewZ(sampleDepthTransparent);
94
+ if (abs(selfViewZTransparent - sampleViewZTransparent) > pixelSizeTransparent && selfDepthTransparent > sampleDepthTransparent && sampleDepthTransparent <= bestDepth) {
95
+ outline = 0.0;
96
+ bestDepth = sampleDepthTransparent;
97
+ transparentFlag = 1.0;
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ gl_FragColor = vec4(outline, packUnitIntervalToRG(bestDepth), transparentFlag);
104
+ }
105
105
  `;
@@ -6,63 +6,63 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.points_frag = void 0;
9
- exports.points_frag = `
10
- precision highp float;
11
- precision highp int;
12
-
13
- #include common
14
- #include common_frag_params
15
- #include color_frag_params
16
- #include common_clip
17
-
18
- const vec2 center = vec2(0.5);
19
- const float radius = 0.5;
20
-
21
- void main(){
22
- #include fade_lod
23
- #include clip_pixel
24
-
25
- float fragmentDepth = gl_FragCoord.z;
26
- #include assign_material_color
27
-
28
- #if defined(dPointStyle_circle)
29
- float dist = distance(gl_PointCoord, center);
30
- if (dist > radius) discard;
31
- #elif defined(dPointStyle_fuzzy)
32
- float dist = distance(gl_PointCoord, center);
33
- float fuzzyAlpha = 1.0 - smoothstep(0.0, radius, dist);
34
- if (fuzzyAlpha < 0.0001) discard;
35
- #endif
36
-
37
- #if defined(dPointStyle_fuzzy) && defined(dRenderVariant_color)
38
- material.a *= fuzzyAlpha;
39
- #endif
40
-
41
- #include check_transparency
42
-
43
- #if defined(dRenderVariant_pick)
44
- #include check_picking_alpha
45
- #ifdef requiredDrawBuffers
46
- gl_FragColor = vObject;
47
- gl_FragData[1] = vInstance;
48
- gl_FragData[2] = vGroup;
49
- gl_FragData[3] = packDepthToRGBA(fragmentDepth);
50
- #else
51
- gl_FragColor = vColor;
52
- #endif
53
- #elif defined(dRenderVariant_depth)
54
- gl_FragColor = material;
55
- #elif defined(dRenderVariant_marking)
56
- gl_FragColor = material;
57
- #elif defined(dRenderVariant_emissive)
58
- gl_FragColor = material;
59
- #elif defined(dRenderVariant_color)
60
- gl_FragColor = material;
61
-
62
- #include apply_marker_color
63
- #include apply_fog
64
- #include wboit_write
65
- #include dpoit_write
66
- #endif
67
- }
9
+ exports.points_frag = `
10
+ precision highp float;
11
+ precision highp int;
12
+
13
+ #include common
14
+ #include common_frag_params
15
+ #include color_frag_params
16
+ #include common_clip
17
+
18
+ const vec2 center = vec2(0.5);
19
+ const float radius = 0.5;
20
+
21
+ void main(){
22
+ #include fade_lod
23
+ #include clip_pixel
24
+
25
+ float fragmentDepth = gl_FragCoord.z;
26
+ #include assign_material_color
27
+
28
+ #if defined(dPointStyle_circle)
29
+ float dist = distance(gl_PointCoord, center);
30
+ if (dist > radius) discard;
31
+ #elif defined(dPointStyle_fuzzy)
32
+ float dist = distance(gl_PointCoord, center);
33
+ float fuzzyAlpha = 1.0 - smoothstep(0.0, radius, dist);
34
+ if (fuzzyAlpha < 0.0001) discard;
35
+ #endif
36
+
37
+ #if defined(dPointStyle_fuzzy) && defined(dRenderVariant_color)
38
+ material.a *= fuzzyAlpha;
39
+ #endif
40
+
41
+ #include check_transparency
42
+
43
+ #if defined(dRenderVariant_pick)
44
+ #include check_picking_alpha
45
+ #ifdef requiredDrawBuffers
46
+ gl_FragColor = vObject;
47
+ gl_FragData[1] = vInstance;
48
+ gl_FragData[2] = vGroup;
49
+ gl_FragData[3] = packDepthToRGBA(fragmentDepth);
50
+ #else
51
+ gl_FragColor = vColor;
52
+ #endif
53
+ #elif defined(dRenderVariant_depth)
54
+ gl_FragColor = material;
55
+ #elif defined(dRenderVariant_marking)
56
+ gl_FragColor = material;
57
+ #elif defined(dRenderVariant_emissive)
58
+ gl_FragColor = material;
59
+ #elif defined(dRenderVariant_color)
60
+ gl_FragColor = material;
61
+
62
+ #include apply_marker_color
63
+ #include apply_fog
64
+ #include wboit_write
65
+ #include dpoit_write
66
+ #endif
67
+ }
68
68
  `;