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
@@ -6,152 +6,152 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.spheres_frag = void 0;
9
- exports.spheres_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 common_clip
20
-
21
- uniform mat4 uInvView;
22
- uniform float uAlphaThickness;
23
-
24
- varying float vRadius;
25
- varying vec3 vPoint;
26
- varying vec3 vPointViewPosition;
27
-
28
- #ifdef dSolidInterior
29
- const bool solidInterior = true;
30
- #else
31
- const bool solidInterior = false;
32
- #endif
33
-
34
- bool SphereImpostor(out vec3 modelPos, out vec3 cameraPos, out vec3 cameraNormal, out bool interior, out float fragmentDepth){
35
- vec3 cameraSpherePos = -vPointViewPosition;
36
-
37
- vec3 rayOrigin = mix(vec3(0.0, 0.0, 0.0), vPoint, uIsOrtho);
38
- vec3 rayDirection = mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
39
- vec3 cameraSphereDir = mix(cameraSpherePos, rayOrigin - cameraSpherePos, uIsOrtho);
40
-
41
- float B = dot(rayDirection, cameraSphereDir);
42
- float det = B * B + vRadius * vRadius - dot(cameraSphereDir, cameraSphereDir);
43
-
44
- if (det < 0.0) return false;
45
-
46
- float sqrtDet = sqrt(det);
47
- float posT = mix(B + sqrtDet, B - sqrtDet, uIsOrtho);
48
- float negT = mix(B - sqrtDet, B + sqrtDet, uIsOrtho);
49
-
50
- cameraPos = rayDirection * negT + rayOrigin;
51
- modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
52
- fragmentDepth = calcDepth(cameraPos);
53
-
54
- bool objectClipped = false;
55
-
56
- #if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
57
- if (clipTest(vec4(modelPos, 0.0))) {
58
- objectClipped = true;
59
- fragmentDepth = -1.0;
60
- }
61
- #endif
62
-
63
- if (fragmentDepth > 0.0) {
64
- cameraNormal = normalize(cameraPos - cameraSpherePos);
65
- interior = false;
66
- return true;
67
- } else if (uDoubleSided || solidInterior) {
68
- cameraPos = rayDirection * posT + rayOrigin;
69
- modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
70
- fragmentDepth = calcDepth(cameraPos);
71
- cameraNormal = -normalize(cameraPos - cameraSpherePos);
72
- interior = true;
73
- if (fragmentDepth > 0.0) {
74
- #ifdef dSolidInterior
75
- if (!objectClipped) {
76
- fragmentDepth = 0.0 + (0.0000001 / vRadius);
77
- cameraNormal = -mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
78
- }
79
- #endif
80
- return true;
81
- }
82
- }
83
-
84
- return false;
85
- }
86
-
87
- void main(void){
88
- vec3 cameraNormal;
89
- float fragmentDepth;
90
-
91
- #ifdef dApproximate
92
- vec3 pointDir = -vPointViewPosition - vPoint;
93
- if (dot(pointDir, pointDir) > vRadius * vRadius) discard;
94
- vec3 vViewPosition = -vPointViewPosition;
95
- fragmentDepth = gl_FragCoord.z;
96
- #if !defined(dIgnoreLight) || defined(dXrayShaded)
97
- pointDir.z -= cos(length(pointDir) / vRadius);
98
- cameraNormal = -normalize(pointDir / vRadius);
99
- #endif
100
- interior = false;
101
- #else
102
- vec3 modelPos;
103
- vec3 cameraPos;
104
- bool hit = SphereImpostor(modelPos, cameraPos, cameraNormal, interior, fragmentDepth);
105
- if (!hit) discard;
106
-
107
- if (fragmentDepth < 0.0) discard;
108
- if (fragmentDepth > 1.0) discard;
109
-
110
- gl_FragDepthEXT = fragmentDepth;
111
-
112
- vec3 vModelPosition = modelPos;
113
- vec3 vViewPosition = cameraPos;
114
- #endif
115
-
116
- #include fade_lod
117
- #if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
118
- #include clip_pixel
119
- #endif
120
- #include assign_material_color
121
-
122
- #if defined(dRenderVariant_color)
123
- if (uRenderMask == MaskTransparent && uAlphaThickness > 0.0) {
124
- material.a *= min(1.0, vRadius / uAlphaThickness);
125
- }
126
- #endif
127
-
128
- #include check_transparency
129
-
130
- #if defined(dRenderVariant_pick)
131
- #include check_picking_alpha
132
- #ifdef requiredDrawBuffers
133
- gl_FragColor = vObject;
134
- gl_FragData[1] = vInstance;
135
- gl_FragData[2] = vGroup;
136
- gl_FragData[3] = packDepthToRGBA(fragmentDepth);
137
- #else
138
- gl_FragColor = vColor;
139
- #endif
140
- #elif defined(dRenderVariant_depth)
141
- gl_FragColor = material;
142
- #elif defined(dRenderVariant_marking)
143
- gl_FragColor = material;
144
- #elif defined(dRenderVariant_emissive)
145
- gl_FragColor = material;
146
- #elif defined(dRenderVariant_color)
147
- vec3 normal = -cameraNormal;
148
- #include apply_light_color
149
-
150
- #include apply_interior_color
151
- #include apply_marker_color
152
- #include apply_fog
153
- #include wboit_write
154
- #include dpoit_write
155
- #endif
156
- }
9
+ exports.spheres_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 common_clip
20
+
21
+ uniform mat4 uInvView;
22
+ uniform float uAlphaThickness;
23
+
24
+ varying float vRadius;
25
+ varying vec3 vPoint;
26
+ varying vec3 vPointViewPosition;
27
+
28
+ #ifdef dSolidInterior
29
+ const bool solidInterior = true;
30
+ #else
31
+ const bool solidInterior = false;
32
+ #endif
33
+
34
+ bool SphereImpostor(out vec3 modelPos, out vec3 cameraPos, out vec3 cameraNormal, out bool interior, out float fragmentDepth){
35
+ vec3 cameraSpherePos = -vPointViewPosition;
36
+
37
+ vec3 rayOrigin = mix(vec3(0.0, 0.0, 0.0), vPoint, uIsOrtho);
38
+ vec3 rayDirection = mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
39
+ vec3 cameraSphereDir = mix(cameraSpherePos, rayOrigin - cameraSpherePos, uIsOrtho);
40
+
41
+ float B = dot(rayDirection, cameraSphereDir);
42
+ float det = B * B + vRadius * vRadius - dot(cameraSphereDir, cameraSphereDir);
43
+
44
+ if (det < 0.0) return false;
45
+
46
+ float sqrtDet = sqrt(det);
47
+ float posT = mix(B + sqrtDet, B - sqrtDet, uIsOrtho);
48
+ float negT = mix(B - sqrtDet, B + sqrtDet, uIsOrtho);
49
+
50
+ cameraPos = rayDirection * negT + rayOrigin;
51
+ modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
52
+ fragmentDepth = calcDepth(cameraPos);
53
+
54
+ bool objectClipped = false;
55
+
56
+ #if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
57
+ if (clipTest(vec4(modelPos, 0.0))) {
58
+ objectClipped = true;
59
+ fragmentDepth = -1.0;
60
+ }
61
+ #endif
62
+
63
+ if (fragmentDepth > 0.0) {
64
+ cameraNormal = normalize(cameraPos - cameraSpherePos);
65
+ interior = false;
66
+ return true;
67
+ } else if (uDoubleSided || solidInterior) {
68
+ cameraPos = rayDirection * posT + rayOrigin;
69
+ modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
70
+ fragmentDepth = calcDepth(cameraPos);
71
+ cameraNormal = -normalize(cameraPos - cameraSpherePos);
72
+ interior = true;
73
+ if (fragmentDepth > 0.0) {
74
+ #ifdef dSolidInterior
75
+ if (!objectClipped) {
76
+ fragmentDepth = 0.0 + (0.0000001 / vRadius);
77
+ cameraNormal = -mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
78
+ }
79
+ #endif
80
+ return true;
81
+ }
82
+ }
83
+
84
+ return false;
85
+ }
86
+
87
+ void main(void){
88
+ vec3 cameraNormal;
89
+ float fragmentDepth;
90
+
91
+ #ifdef dApproximate
92
+ vec3 pointDir = -vPointViewPosition - vPoint;
93
+ if (dot(pointDir, pointDir) > vRadius * vRadius) discard;
94
+ vec3 vViewPosition = -vPointViewPosition;
95
+ fragmentDepth = gl_FragCoord.z;
96
+ #if !defined(dIgnoreLight) || defined(dXrayShaded)
97
+ pointDir.z -= cos(length(pointDir) / vRadius);
98
+ cameraNormal = -normalize(pointDir / vRadius);
99
+ #endif
100
+ interior = false;
101
+ #else
102
+ vec3 modelPos;
103
+ vec3 cameraPos;
104
+ bool hit = SphereImpostor(modelPos, cameraPos, cameraNormal, interior, fragmentDepth);
105
+ if (!hit) discard;
106
+
107
+ if (fragmentDepth < 0.0) discard;
108
+ if (fragmentDepth > 1.0) discard;
109
+
110
+ gl_FragDepthEXT = fragmentDepth;
111
+
112
+ vec3 vModelPosition = modelPos;
113
+ vec3 vViewPosition = cameraPos;
114
+ #endif
115
+
116
+ #include fade_lod
117
+ #if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
118
+ #include clip_pixel
119
+ #endif
120
+ #include assign_material_color
121
+
122
+ #if defined(dRenderVariant_color)
123
+ if (uRenderMask == MaskTransparent && uAlphaThickness > 0.0) {
124
+ material.a *= min(1.0, vRadius / uAlphaThickness);
125
+ }
126
+ #endif
127
+
128
+ #include check_transparency
129
+
130
+ #if defined(dRenderVariant_pick)
131
+ #include check_picking_alpha
132
+ #ifdef requiredDrawBuffers
133
+ gl_FragColor = vObject;
134
+ gl_FragData[1] = vInstance;
135
+ gl_FragData[2] = vGroup;
136
+ gl_FragData[3] = packDepthToRGBA(fragmentDepth);
137
+ #else
138
+ gl_FragColor = vColor;
139
+ #endif
140
+ #elif defined(dRenderVariant_depth)
141
+ gl_FragColor = material;
142
+ #elif defined(dRenderVariant_marking)
143
+ gl_FragColor = material;
144
+ #elif defined(dRenderVariant_emissive)
145
+ gl_FragColor = material;
146
+ #elif defined(dRenderVariant_color)
147
+ vec3 normal = -cameraNormal;
148
+ #include apply_light_color
149
+
150
+ #include apply_interior_color
151
+ #include apply_marker_color
152
+ #include apply_fog
153
+ #include wboit_write
154
+ #include dpoit_write
155
+ #endif
156
+ }
157
157
  `;
@@ -6,136 +6,136 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.spheres_vert = void 0;
9
- exports.spheres_vert = `
10
- precision highp float;
11
- precision highp int;
12
-
13
- #include common
14
- #include read_from_texture
15
- #include common_vert_params
16
- #include color_vert_params
17
- #include size_vert_params
18
- #include common_clip
19
-
20
- uniform mat4 uModelView;
21
- uniform mat4 uInvProjection;
22
- uniform float uIsOrtho;
23
-
24
- uniform vec2 uTexDim;
25
- uniform sampler2D tPositionGroup;
26
-
27
- attribute mat4 aTransform;
28
- attribute float aInstance;
29
-
30
- varying float vRadius;
31
- varying vec3 vPoint;
32
- varying vec3 vPointViewPosition;
33
-
34
- #include matrix_scale
35
-
36
- /**
37
- * Bounding rectangle of a clipped, perspective-projected 3D Sphere.
38
- * Michael Mara, Morgan McGuire. 2013
39
- *
40
- * Specialization by Arseny Kapoulkine, MIT License Copyright (c) 2018
41
- * https://github.com/zeux/niagara
42
- */
43
- void sphereProjection(const in vec3 p, const in float r, const in vec2 mapping) {
44
- vec3 pr = p * r;
45
- float pzr2 = p.z * p.z - r * r;
46
-
47
- float vx = sqrt(p.x * p.x + pzr2);
48
- float minx = ((vx * p.x - pr.z) / (vx * p.z + pr.x)) * uProjection[0][0];
49
- float maxx = ((vx * p.x + pr.z) / (vx * p.z - pr.x)) * uProjection[0][0];
50
-
51
- float vy = sqrt(p.y * p.y + pzr2);
52
- float miny = ((vy * p.y - pr.z) / (vy * p.z + pr.y)) * uProjection[1][1];
53
- float maxy = ((vy * p.y + pr.z) / (vy * p.z - pr.y)) * uProjection[1][1];
54
-
55
- gl_Position.xy = vec2(maxx + minx, maxy + miny) * -0.5;
56
- gl_Position.xy -= mapping * vec2(maxx - minx, maxy - miny) * 0.5;
57
- gl_Position.xy *= gl_Position.w;
58
- }
59
-
60
- void main(void){
61
- vec2 mapping = vec2(1.0, 1.0); // vertices 2 and 5
62
- #if __VERSION__ == 100
63
- int m = imod(VertexID, 6);
64
- #else
65
- int m = VertexID % 6;
66
- #endif
67
- if (m == 0) {
68
- mapping = vec2(-1.0, 1.0);
69
- } else if (m == 1 || m == 3) {
70
- mapping = vec2(-1.0, -1.0);
71
- } else if (m == 4) {
72
- mapping = vec2(1.0, -1.0);
73
- }
74
-
75
- vec4 positionGroup = readFromTexture(tPositionGroup, VertexID / 6, uTexDim);
76
- vec3 position = positionGroup.rgb;
77
- float group = positionGroup.a;
78
-
79
- #include assign_color_varying
80
- #include assign_marker_varying
81
- #include assign_clipping_varying
82
- #include assign_size
83
-
84
- vRadius = size * matrixScale(uModelView);
85
-
86
- vec4 position4 = vec4(position, 1.0);
87
- vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader
88
-
89
- float d;
90
- if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
91
- d = dot(uCameraPlane.xyz, vModelPosition) + uCameraPlane.w;
92
- float f = min(
93
- smoothstep(uLod.x, uLod.x + uLod.z, d),
94
- 1.0 - smoothstep(uLod.y - uLod.z, uLod.y, d)
95
- ) * uLod.w;
96
- vRadius *= f;
97
- }
98
-
99
- vec4 mvPosition = uModelView * aTransform * position4;
100
-
101
- #ifdef dApproximate
102
- vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
103
- mvCorner.xy += mapping * vRadius;
104
- gl_Position = uProjection * mvCorner;
105
- #else
106
- if (uIsOrtho == 1.0) {
107
- vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
108
- mvCorner.xy += mapping * vRadius;
109
- gl_Position = uProjection * mvCorner;
110
- } else {
111
- gl_Position = uProjection * vec4(mvPosition.xyz, 1.0);
112
- sphereProjection(mvPosition.xyz, vRadius, mapping);
113
- }
114
- #endif
115
-
116
- vec4 vPoint4 = uInvProjection * gl_Position;
117
- vPoint = vPoint4.xyz / vPoint4.w;
118
- vPointViewPosition = -mvPosition.xyz / mvPosition.w;
119
-
120
- if (gl_Position.z < -gl_Position.w) {
121
- mvPosition.z -= 2.0 * vRadius; // avoid clipping
122
- gl_Position.z = (uProjection * vec4(mvPosition.xyz, 1.0)).z;
123
- }
124
-
125
- if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
126
- if (d < uLod.x || d > uLod.y) {
127
- // move out of [ -w, +w ] to 'discard' in vert shader
128
- gl_Position.z = 2.0 * gl_Position.w;
129
- }
130
- }
131
-
132
- #if defined(dClipPrimitive) && !defined(dClipVariant_instance) && dClipObjectCount != 0
133
- if (clipTest(vec4(vModelPosition.xyz, 0.0))) {
134
- // move out of [ -w, +w ] to 'discard' in vert shader
135
- gl_Position.z = 2.0 * gl_Position.w;
136
- }
137
- #else
138
- #include clip_instance
139
- #endif
140
- }
9
+ exports.spheres_vert = `
10
+ precision highp float;
11
+ precision highp int;
12
+
13
+ #include common
14
+ #include read_from_texture
15
+ #include common_vert_params
16
+ #include color_vert_params
17
+ #include size_vert_params
18
+ #include common_clip
19
+
20
+ uniform mat4 uModelView;
21
+ uniform mat4 uInvProjection;
22
+ uniform float uIsOrtho;
23
+
24
+ uniform vec2 uTexDim;
25
+ uniform sampler2D tPositionGroup;
26
+
27
+ attribute mat4 aTransform;
28
+ attribute float aInstance;
29
+
30
+ varying float vRadius;
31
+ varying vec3 vPoint;
32
+ varying vec3 vPointViewPosition;
33
+
34
+ #include matrix_scale
35
+
36
+ /**
37
+ * Bounding rectangle of a clipped, perspective-projected 3D Sphere.
38
+ * Michael Mara, Morgan McGuire. 2013
39
+ *
40
+ * Specialization by Arseny Kapoulkine, MIT License Copyright (c) 2018
41
+ * https://github.com/zeux/niagara
42
+ */
43
+ void sphereProjection(const in vec3 p, const in float r, const in vec2 mapping) {
44
+ vec3 pr = p * r;
45
+ float pzr2 = p.z * p.z - r * r;
46
+
47
+ float vx = sqrt(p.x * p.x + pzr2);
48
+ float minx = ((vx * p.x - pr.z) / (vx * p.z + pr.x)) * uProjection[0][0];
49
+ float maxx = ((vx * p.x + pr.z) / (vx * p.z - pr.x)) * uProjection[0][0];
50
+
51
+ float vy = sqrt(p.y * p.y + pzr2);
52
+ float miny = ((vy * p.y - pr.z) / (vy * p.z + pr.y)) * uProjection[1][1];
53
+ float maxy = ((vy * p.y + pr.z) / (vy * p.z - pr.y)) * uProjection[1][1];
54
+
55
+ gl_Position.xy = vec2(maxx + minx, maxy + miny) * -0.5;
56
+ gl_Position.xy -= mapping * vec2(maxx - minx, maxy - miny) * 0.5;
57
+ gl_Position.xy *= gl_Position.w;
58
+ }
59
+
60
+ void main(void){
61
+ vec2 mapping = vec2(1.0, 1.0); // vertices 2 and 5
62
+ #if __VERSION__ == 100
63
+ int m = imod(VertexID, 6);
64
+ #else
65
+ int m = VertexID % 6;
66
+ #endif
67
+ if (m == 0) {
68
+ mapping = vec2(-1.0, 1.0);
69
+ } else if (m == 1 || m == 3) {
70
+ mapping = vec2(-1.0, -1.0);
71
+ } else if (m == 4) {
72
+ mapping = vec2(1.0, -1.0);
73
+ }
74
+
75
+ vec4 positionGroup = readFromTexture(tPositionGroup, VertexID / 6, uTexDim);
76
+ vec3 position = positionGroup.rgb;
77
+ float group = positionGroup.a;
78
+
79
+ #include assign_color_varying
80
+ #include assign_marker_varying
81
+ #include assign_clipping_varying
82
+ #include assign_size
83
+
84
+ vRadius = size * matrixScale(uModelView);
85
+
86
+ vec4 position4 = vec4(position, 1.0);
87
+ vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader
88
+
89
+ float d;
90
+ if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
91
+ d = dot(uCameraPlane.xyz, vModelPosition) + uCameraPlane.w;
92
+ float f = min(
93
+ smoothstep(uLod.x, uLod.x + uLod.z, d),
94
+ 1.0 - smoothstep(uLod.y - uLod.z, uLod.y, d)
95
+ ) * uLod.w;
96
+ vRadius *= f;
97
+ }
98
+
99
+ vec4 mvPosition = uModelView * aTransform * position4;
100
+
101
+ #ifdef dApproximate
102
+ vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
103
+ mvCorner.xy += mapping * vRadius;
104
+ gl_Position = uProjection * mvCorner;
105
+ #else
106
+ if (uIsOrtho == 1.0) {
107
+ vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
108
+ mvCorner.xy += mapping * vRadius;
109
+ gl_Position = uProjection * mvCorner;
110
+ } else {
111
+ gl_Position = uProjection * vec4(mvPosition.xyz, 1.0);
112
+ sphereProjection(mvPosition.xyz, vRadius, mapping);
113
+ }
114
+ #endif
115
+
116
+ vec4 vPoint4 = uInvProjection * gl_Position;
117
+ vPoint = vPoint4.xyz / vPoint4.w;
118
+ vPointViewPosition = -mvPosition.xyz / mvPosition.w;
119
+
120
+ if (gl_Position.z < -gl_Position.w) {
121
+ mvPosition.z -= 2.0 * vRadius; // avoid clipping
122
+ gl_Position.z = (uProjection * vec4(mvPosition.xyz, 1.0)).z;
123
+ }
124
+
125
+ if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
126
+ if (d < uLod.x || d > uLod.y) {
127
+ // move out of [ -w, +w ] to 'discard' in vert shader
128
+ gl_Position.z = 2.0 * gl_Position.w;
129
+ }
130
+ }
131
+
132
+ #if defined(dClipPrimitive) && !defined(dClipVariant_instance) && dClipObjectCount != 0
133
+ if (clipTest(vec4(vModelPosition.xyz, 0.0))) {
134
+ // move out of [ -w, +w ] to 'discard' in vert shader
135
+ gl_Position.z = 2.0 * gl_Position.w;
136
+ }
137
+ #else
138
+ #include clip_instance
139
+ #endif
140
+ }
141
141
  `;