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,270 +3,270 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export const cylinders_frag = `
7
- precision highp float;
8
- precision highp int;
9
-
10
- #define bumpEnabled
11
-
12
- uniform mat4 uView;
13
-
14
- varying mat4 vTransform;
15
- varying vec3 vStart;
16
- varying vec3 vEnd;
17
- varying float vSize;
18
- varying float vCap;
19
-
20
- uniform vec3 uCameraDir;
21
- uniform vec3 uCameraPosition;
22
- uniform mat4 uInvView;
23
-
24
- #include common
25
- #include common_frag_params
26
- #include color_frag_params
27
- #include light_frag_params
28
- #include common_clip
29
-
30
- #ifdef dSolidInterior
31
- const bool solidInterior = true;
32
- #else
33
- const bool solidInterior = false;
34
- #endif
35
-
36
- // adapted from https://www.shadertoy.com/view/4lcSRn
37
- // The MIT License, Copyright 2016 Inigo Quilez
38
- bool CylinderImpostor(
39
- in vec3 rayOrigin, in vec3 rayDir,
40
- in vec3 start, in vec3 end, in float radius,
41
- out vec3 cameraNormal, out bool interior,
42
- out vec3 modelPosition, out vec3 viewPosition, out float fragmentDepth
43
- ){
44
- vec3 ba = end - start;
45
- vec3 oc = rayOrigin - start;
46
-
47
- float baba = dot(ba, ba);
48
- float bard = dot(ba, rayDir);
49
- float baoc = dot(ba, oc);
50
-
51
- float k2 = baba - bard * bard;
52
- float k1 = baba * dot(oc, rayDir) - baoc * bard;
53
- float k0 = baba * dot(oc, oc) - baoc * baoc - radius * radius * baba;
54
-
55
- float h = k1 * k1 - k2 * k0;
56
- if (h < 0.0) return false;
57
-
58
- bool topCap = (vCap > 0.9 && vCap < 1.1) || vCap >= 2.9;
59
- bool bottomCap = (vCap > 1.9 && vCap < 2.1) || vCap >= 2.9;
60
-
61
- #ifdef dSolidInterior
62
- bool topInterior = !topCap;
63
- bool bottomInterior = !bottomCap;
64
- topCap = true;
65
- bottomCap = true;
66
- #else
67
- bool topInterior = false;
68
- bool bottomInterior = false;
69
- #endif
70
-
71
- bool clipped = false;
72
- bool objectClipped = false;
73
-
74
- // body outside
75
- h = sqrt(h);
76
- float t = (-k1 - h) / k2;
77
- float y = baoc + t * bard;
78
- if (y > 0.0 && y < baba) {
79
- interior = false;
80
- cameraNormal = (oc + t * rayDir - ba * y / baba) / radius;
81
- modelPosition = rayOrigin + t * rayDir;
82
- viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
83
- fragmentDepth = calcDepth(viewPosition);
84
- #if defined(dClipVariant_pixel) && dClipObjectCount != 0
85
- if (clipTest(vec4(modelPosition, 0.0))) {
86
- objectClipped = true;
87
- fragmentDepth = -1.0;
88
- #ifdef dSolidInterior
89
- topCap = !topInterior;
90
- bottomCap = !bottomInterior;
91
- #endif
92
- }
93
- #endif
94
- if (fragmentDepth > 0.0) return true;
95
- clipped = true;
96
- }
97
-
98
- if (!clipped) {
99
- if (topCap && y < 0.0) {
100
- // top cap
101
- t = -baoc / bard;
102
- if (abs(k1 + k2 * t) < h) {
103
- interior = topInterior;
104
- cameraNormal = -ba / baba;
105
- modelPosition = rayOrigin + t * rayDir;
106
- viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
107
- fragmentDepth = calcDepth(viewPosition);
108
- #if defined(dClipVariant_pixel) && dClipObjectCount != 0
109
- if (clipTest(vec4(modelPosition, 0.0))) {
110
- objectClipped = true;
111
- fragmentDepth = -1.0;
112
- #ifdef dSolidInterior
113
- topCap = !topInterior;
114
- bottomCap = !bottomInterior;
115
- #endif
116
- }
117
- #endif
118
- if (fragmentDepth > 0.0) {
119
- #ifdef dSolidInterior
120
- if (interior) cameraNormal = -rayDir;
121
- #endif
122
- return true;
123
- }
124
- }
125
- } else if (bottomCap && y >= 0.0) {
126
- // bottom cap
127
- t = (baba - baoc) / bard;
128
- if (abs(k1 + k2 * t) < h) {
129
- interior = bottomInterior;
130
- cameraNormal = ba / baba;
131
- modelPosition = rayOrigin + t * rayDir;
132
- viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
133
- fragmentDepth = calcDepth(viewPosition);
134
- #if defined(dClipVariant_pixel) && dClipObjectCount != 0
135
- if (clipTest(vec4(modelPosition, 0.0))) {
136
- objectClipped = true;
137
- fragmentDepth = -1.0;
138
- #ifdef dSolidInterior
139
- topCap = !topInterior;
140
- bottomCap = !bottomInterior;
141
- #endif
142
- }
143
- #endif
144
- if (fragmentDepth > 0.0) {
145
- #ifdef dSolidInterior
146
- if (interior) cameraNormal = -rayDir;
147
- #endif
148
- return true;
149
- }
150
- }
151
- }
152
- }
153
-
154
- if (uDoubleSided || solidInterior) {
155
- // body inside
156
- h = -h;
157
- t = (-k1 - h) / k2;
158
- y = baoc + t * bard;
159
- if (y > 0.0 && y < baba) {
160
- interior = true;
161
- cameraNormal = -(oc + t * rayDir - ba * y / baba) / radius;
162
- modelPosition = rayOrigin + t * rayDir;
163
- viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
164
- fragmentDepth = calcDepth(viewPosition);
165
- if (fragmentDepth > 0.0) {
166
- #ifdef dSolidInterior
167
- if (!objectClipped) {
168
- fragmentDepth = 0.0 + (0.0000002 / vSize);
169
- cameraNormal = -rayDir;
170
- }
171
- #endif
172
- return true;
173
- }
174
- }
175
-
176
- if (topCap && y < 0.0) {
177
- // top cap
178
- t = -baoc / bard;
179
- if (abs(k1 + k2 * t) < -h) {
180
- interior = true;
181
- cameraNormal = ba / baba;
182
- modelPosition = rayOrigin + t * rayDir;
183
- viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
184
- fragmentDepth = calcDepth(viewPosition);
185
- if (fragmentDepth > 0.0) {
186
- #ifdef dSolidInterior
187
- if (!objectClipped) {
188
- fragmentDepth = 0.0 + (0.0000002 / vSize);
189
- cameraNormal = -rayDir;
190
- }
191
- #endif
192
- return true;
193
- }
194
- }
195
- } else if (bottomCap && y >= 0.0) {
196
- // bottom cap
197
- t = (baba - baoc) / bard;
198
- if (abs(k1 + k2 * t) < -h) {
199
- interior = true;
200
- cameraNormal = -ba / baba;
201
- modelPosition = rayOrigin + t * rayDir;
202
- viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
203
- fragmentDepth = calcDepth(viewPosition);
204
- if (fragmentDepth > 0.0) {
205
- #ifdef dSolidInterior
206
- if (!objectClipped) {
207
- fragmentDepth = 0.0 + (0.0000002 / vSize);
208
- cameraNormal = -rayDir;
209
- }
210
- #endif
211
- return true;
212
- }
213
- }
214
- }
215
- }
216
-
217
- return false;
218
- }
219
-
220
- void main() {
221
- vec3 rayOrigin = vModelPosition;
222
- vec3 rayDir = mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);
223
-
224
- vec3 cameraNormal;
225
- vec3 modelPosition;
226
- vec3 viewPosition;
227
- float fragmentDepth;
228
- bool hit = CylinderImpostor(rayOrigin, rayDir, vStart, vEnd, vSize, cameraNormal, interior, modelPosition, viewPosition, fragmentDepth);
229
- if (!hit) discard;
230
-
231
- if (fragmentDepth < 0.0) discard;
232
- if (fragmentDepth > 1.0) discard;
233
-
234
- gl_FragDepthEXT = fragmentDepth;
235
-
236
- vec3 vViewPosition = viewPosition;
237
- vec3 vModelPosition = modelPosition;
238
-
239
- #include fade_lod
240
- #include clip_pixel
241
- #include assign_material_color
242
- #include check_transparency
243
-
244
- #if defined(dRenderVariant_pick)
245
- #include check_picking_alpha
246
- #ifdef requiredDrawBuffers
247
- gl_FragColor = vObject;
248
- gl_FragData[1] = vInstance;
249
- gl_FragData[2] = vGroup;
250
- gl_FragData[3] = packDepthToRGBA(fragmentDepth);
251
- #else
252
- gl_FragColor = vColor;
253
- #endif
254
- #elif defined(dRenderVariant_depth)
255
- gl_FragColor = material;
256
- #elif defined(dRenderVariant_marking)
257
- gl_FragColor = material;
258
- #elif defined(dRenderVariant_emissive)
259
- gl_FragColor = material;
260
- #elif defined(dRenderVariant_color)
261
- mat3 normalMatrix = transpose3(inverse3(mat3(uView)));
262
- vec3 normal = normalize(normalMatrix * -normalize(cameraNormal));
263
- #include apply_light_color
264
-
265
- #include apply_interior_color
266
- #include apply_marker_color
267
- #include apply_fog
268
- #include wboit_write
269
- #include dpoit_write
270
- #endif
271
- }
6
+ export const cylinders_frag = `
7
+ precision highp float;
8
+ precision highp int;
9
+
10
+ #define bumpEnabled
11
+
12
+ uniform mat4 uView;
13
+
14
+ varying mat4 vTransform;
15
+ varying vec3 vStart;
16
+ varying vec3 vEnd;
17
+ varying float vSize;
18
+ varying float vCap;
19
+
20
+ uniform vec3 uCameraDir;
21
+ uniform vec3 uCameraPosition;
22
+ uniform mat4 uInvView;
23
+
24
+ #include common
25
+ #include common_frag_params
26
+ #include color_frag_params
27
+ #include light_frag_params
28
+ #include common_clip
29
+
30
+ #ifdef dSolidInterior
31
+ const bool solidInterior = true;
32
+ #else
33
+ const bool solidInterior = false;
34
+ #endif
35
+
36
+ // adapted from https://www.shadertoy.com/view/4lcSRn
37
+ // The MIT License, Copyright 2016 Inigo Quilez
38
+ bool CylinderImpostor(
39
+ in vec3 rayOrigin, in vec3 rayDir,
40
+ in vec3 start, in vec3 end, in float radius,
41
+ out vec3 cameraNormal, out bool interior,
42
+ out vec3 modelPosition, out vec3 viewPosition, out float fragmentDepth
43
+ ){
44
+ vec3 ba = end - start;
45
+ vec3 oc = rayOrigin - start;
46
+
47
+ float baba = dot(ba, ba);
48
+ float bard = dot(ba, rayDir);
49
+ float baoc = dot(ba, oc);
50
+
51
+ float k2 = baba - bard * bard;
52
+ float k1 = baba * dot(oc, rayDir) - baoc * bard;
53
+ float k0 = baba * dot(oc, oc) - baoc * baoc - radius * radius * baba;
54
+
55
+ float h = k1 * k1 - k2 * k0;
56
+ if (h < 0.0) return false;
57
+
58
+ bool topCap = (vCap > 0.9 && vCap < 1.1) || vCap >= 2.9;
59
+ bool bottomCap = (vCap > 1.9 && vCap < 2.1) || vCap >= 2.9;
60
+
61
+ #ifdef dSolidInterior
62
+ bool topInterior = !topCap;
63
+ bool bottomInterior = !bottomCap;
64
+ topCap = true;
65
+ bottomCap = true;
66
+ #else
67
+ bool topInterior = false;
68
+ bool bottomInterior = false;
69
+ #endif
70
+
71
+ bool clipped = false;
72
+ bool objectClipped = false;
73
+
74
+ // body outside
75
+ h = sqrt(h);
76
+ float t = (-k1 - h) / k2;
77
+ float y = baoc + t * bard;
78
+ if (y > 0.0 && y < baba) {
79
+ interior = false;
80
+ cameraNormal = (oc + t * rayDir - ba * y / baba) / radius;
81
+ modelPosition = rayOrigin + t * rayDir;
82
+ viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
83
+ fragmentDepth = calcDepth(viewPosition);
84
+ #if defined(dClipVariant_pixel) && dClipObjectCount != 0
85
+ if (clipTest(vec4(modelPosition, 0.0))) {
86
+ objectClipped = true;
87
+ fragmentDepth = -1.0;
88
+ #ifdef dSolidInterior
89
+ topCap = !topInterior;
90
+ bottomCap = !bottomInterior;
91
+ #endif
92
+ }
93
+ #endif
94
+ if (fragmentDepth > 0.0) return true;
95
+ clipped = true;
96
+ }
97
+
98
+ if (!clipped) {
99
+ if (topCap && y < 0.0) {
100
+ // top cap
101
+ t = -baoc / bard;
102
+ if (abs(k1 + k2 * t) < h) {
103
+ interior = topInterior;
104
+ cameraNormal = -ba / baba;
105
+ modelPosition = rayOrigin + t * rayDir;
106
+ viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
107
+ fragmentDepth = calcDepth(viewPosition);
108
+ #if defined(dClipVariant_pixel) && dClipObjectCount != 0
109
+ if (clipTest(vec4(modelPosition, 0.0))) {
110
+ objectClipped = true;
111
+ fragmentDepth = -1.0;
112
+ #ifdef dSolidInterior
113
+ topCap = !topInterior;
114
+ bottomCap = !bottomInterior;
115
+ #endif
116
+ }
117
+ #endif
118
+ if (fragmentDepth > 0.0) {
119
+ #ifdef dSolidInterior
120
+ if (interior) cameraNormal = -rayDir;
121
+ #endif
122
+ return true;
123
+ }
124
+ }
125
+ } else if (bottomCap && y >= 0.0) {
126
+ // bottom cap
127
+ t = (baba - baoc) / bard;
128
+ if (abs(k1 + k2 * t) < h) {
129
+ interior = bottomInterior;
130
+ cameraNormal = ba / baba;
131
+ modelPosition = rayOrigin + t * rayDir;
132
+ viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
133
+ fragmentDepth = calcDepth(viewPosition);
134
+ #if defined(dClipVariant_pixel) && dClipObjectCount != 0
135
+ if (clipTest(vec4(modelPosition, 0.0))) {
136
+ objectClipped = true;
137
+ fragmentDepth = -1.0;
138
+ #ifdef dSolidInterior
139
+ topCap = !topInterior;
140
+ bottomCap = !bottomInterior;
141
+ #endif
142
+ }
143
+ #endif
144
+ if (fragmentDepth > 0.0) {
145
+ #ifdef dSolidInterior
146
+ if (interior) cameraNormal = -rayDir;
147
+ #endif
148
+ return true;
149
+ }
150
+ }
151
+ }
152
+ }
153
+
154
+ if (uDoubleSided || solidInterior) {
155
+ // body inside
156
+ h = -h;
157
+ t = (-k1 - h) / k2;
158
+ y = baoc + t * bard;
159
+ if (y > 0.0 && y < baba) {
160
+ interior = true;
161
+ cameraNormal = -(oc + t * rayDir - ba * y / baba) / radius;
162
+ modelPosition = rayOrigin + t * rayDir;
163
+ viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
164
+ fragmentDepth = calcDepth(viewPosition);
165
+ if (fragmentDepth > 0.0) {
166
+ #ifdef dSolidInterior
167
+ if (!objectClipped) {
168
+ fragmentDepth = 0.0 + (0.0000002 / vSize);
169
+ cameraNormal = -rayDir;
170
+ }
171
+ #endif
172
+ return true;
173
+ }
174
+ }
175
+
176
+ if (topCap && y < 0.0) {
177
+ // top cap
178
+ t = -baoc / bard;
179
+ if (abs(k1 + k2 * t) < -h) {
180
+ interior = true;
181
+ cameraNormal = ba / baba;
182
+ modelPosition = rayOrigin + t * rayDir;
183
+ viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
184
+ fragmentDepth = calcDepth(viewPosition);
185
+ if (fragmentDepth > 0.0) {
186
+ #ifdef dSolidInterior
187
+ if (!objectClipped) {
188
+ fragmentDepth = 0.0 + (0.0000002 / vSize);
189
+ cameraNormal = -rayDir;
190
+ }
191
+ #endif
192
+ return true;
193
+ }
194
+ }
195
+ } else if (bottomCap && y >= 0.0) {
196
+ // bottom cap
197
+ t = (baba - baoc) / bard;
198
+ if (abs(k1 + k2 * t) < -h) {
199
+ interior = true;
200
+ cameraNormal = -ba / baba;
201
+ modelPosition = rayOrigin + t * rayDir;
202
+ viewPosition = (uView * vec4(modelPosition, 1.0)).xyz;
203
+ fragmentDepth = calcDepth(viewPosition);
204
+ if (fragmentDepth > 0.0) {
205
+ #ifdef dSolidInterior
206
+ if (!objectClipped) {
207
+ fragmentDepth = 0.0 + (0.0000002 / vSize);
208
+ cameraNormal = -rayDir;
209
+ }
210
+ #endif
211
+ return true;
212
+ }
213
+ }
214
+ }
215
+ }
216
+
217
+ return false;
218
+ }
219
+
220
+ void main() {
221
+ vec3 rayOrigin = vModelPosition;
222
+ vec3 rayDir = mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);
223
+
224
+ vec3 cameraNormal;
225
+ vec3 modelPosition;
226
+ vec3 viewPosition;
227
+ float fragmentDepth;
228
+ bool hit = CylinderImpostor(rayOrigin, rayDir, vStart, vEnd, vSize, cameraNormal, interior, modelPosition, viewPosition, fragmentDepth);
229
+ if (!hit) discard;
230
+
231
+ if (fragmentDepth < 0.0) discard;
232
+ if (fragmentDepth > 1.0) discard;
233
+
234
+ gl_FragDepthEXT = fragmentDepth;
235
+
236
+ vec3 vViewPosition = viewPosition;
237
+ vec3 vModelPosition = modelPosition;
238
+
239
+ #include fade_lod
240
+ #include clip_pixel
241
+ #include assign_material_color
242
+ #include check_transparency
243
+
244
+ #if defined(dRenderVariant_pick)
245
+ #include check_picking_alpha
246
+ #ifdef requiredDrawBuffers
247
+ gl_FragColor = vObject;
248
+ gl_FragData[1] = vInstance;
249
+ gl_FragData[2] = vGroup;
250
+ gl_FragData[3] = packDepthToRGBA(fragmentDepth);
251
+ #else
252
+ gl_FragColor = vColor;
253
+ #endif
254
+ #elif defined(dRenderVariant_depth)
255
+ gl_FragColor = material;
256
+ #elif defined(dRenderVariant_marking)
257
+ gl_FragColor = material;
258
+ #elif defined(dRenderVariant_emissive)
259
+ gl_FragColor = material;
260
+ #elif defined(dRenderVariant_color)
261
+ mat3 normalMatrix = transpose3(inverse3(mat3(uView)));
262
+ vec3 normal = normalize(normalMatrix * -normalize(cameraNormal));
263
+ #include apply_light_color
264
+
265
+ #include apply_interior_color
266
+ #include apply_marker_color
267
+ #include apply_fog
268
+ #include wboit_write
269
+ #include dpoit_write
270
+ #endif
271
+ }
272
272
  `;