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,123 +1,123 @@
1
- export const color_vert_params = `
2
- uniform float uMetalness;
3
- uniform float uRoughness;
4
- uniform float uBumpiness;
5
-
6
- #if defined(dRenderVariant_color)
7
- #if defined(dColorType_uniform)
8
- uniform vec3 uColor;
9
- #elif defined(dColorType_attribute)
10
- varying vec4 vColor;
11
- attribute vec3 aColor;
12
- #elif defined(dColorType_texture)
13
- varying vec4 vColor;
14
- uniform vec2 uColorTexDim;
15
- uniform sampler2D tColor;
16
- #elif defined(dColorType_grid)
17
- varying vec4 vColor;
18
- uniform vec2 uColorTexDim;
19
- uniform vec3 uColorGridDim;
20
- uniform vec4 uColorGridTransform;
21
- uniform sampler2D tColorGrid;
22
- #elif defined(dColorType_direct)
23
- varying vec4 vColor;
24
- #endif
25
-
26
- #ifdef dUsePalette
27
- varying float vPaletteV;
28
- #endif
29
-
30
- #ifdef dOverpaint
31
- #if defined(dOverpaintType_instance) || defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)
32
- varying vec4 vOverpaint;
33
- uniform vec2 uOverpaintTexDim;
34
- uniform sampler2D tOverpaint;
35
- #elif defined(dOverpaintType_volumeInstance)
36
- varying vec4 vOverpaint;
37
- uniform vec2 uOverpaintTexDim;
38
- uniform vec3 uOverpaintGridDim;
39
- uniform vec4 uOverpaintGridTransform;
40
- uniform sampler2D tOverpaintGrid;
41
- #endif
42
- uniform float uOverpaintStrength;
43
- #endif
44
-
45
- #ifdef dEmissive
46
- #if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
47
- varying float vEmissive;
48
- uniform vec2 uEmissiveTexDim;
49
- uniform sampler2D tEmissive;
50
- #elif defined(dEmissiveType_volumeInstance)
51
- varying float vEmissive;
52
- uniform vec2 uEmissiveTexDim;
53
- uniform vec3 uEmissiveGridDim;
54
- uniform vec4 uEmissiveGridTransform;
55
- uniform sampler2D tEmissiveGrid;
56
- #endif
57
- uniform float uEmissiveStrength;
58
- #endif
59
-
60
- #ifdef dSubstance
61
- #if defined(dSubstanceType_instance) || defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)
62
- varying vec4 vSubstance;
63
- uniform vec2 uSubstanceTexDim;
64
- uniform sampler2D tSubstance;
65
- #elif defined(dSubstanceType_volumeInstance)
66
- varying vec4 vSubstance;
67
- uniform vec2 uSubstanceTexDim;
68
- uniform vec3 uSubstanceGridDim;
69
- uniform vec4 uSubstanceGridTransform;
70
- uniform sampler2D tSubstanceGrid;
71
- #endif
72
- uniform float uSubstanceStrength;
73
- #endif
74
- #elif defined(dRenderVariant_emissive)
75
- #ifdef dEmissive
76
- #if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
77
- varying float vEmissive;
78
- uniform vec2 uEmissiveTexDim;
79
- uniform sampler2D tEmissive;
80
- #elif defined(dEmissiveType_volumeInstance)
81
- varying float vEmissive;
82
- uniform vec2 uEmissiveTexDim;
83
- uniform vec3 uEmissiveGridDim;
84
- uniform vec4 uEmissiveGridTransform;
85
- uniform sampler2D tEmissiveGrid;
86
- #endif
87
- uniform float uEmissiveStrength;
88
- #endif
89
- #elif defined(dRenderVariant_pick)
90
- #if __VERSION__ == 100 || !defined(dVaryingGroup)
91
- #ifdef requiredDrawBuffers
92
- varying vec4 vObject;
93
- varying vec4 vInstance;
94
- varying vec4 vGroup;
95
- #else
96
- varying vec4 vColor;
97
- #endif
98
- #else
99
- #ifdef requiredDrawBuffers
100
- flat out vec4 vObject;
101
- flat out vec4 vInstance;
102
- flat out vec4 vGroup;
103
- #else
104
- flat out vec4 vColor;
105
- #endif
106
- #endif
107
- #endif
108
-
109
- #ifdef dTransparency
110
- #if defined(dTransparencyType_instance) || defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)
111
- varying float vTransparency;
112
- uniform vec2 uTransparencyTexDim;
113
- uniform sampler2D tTransparency;
114
- #elif defined(dTransparencyType_volumeInstance)
115
- varying float vTransparency;
116
- uniform vec2 uTransparencyTexDim;
117
- uniform vec3 uTransparencyGridDim;
118
- uniform vec4 uTransparencyGridTransform;
119
- uniform sampler2D tTransparencyGrid;
120
- #endif
121
- uniform float uTransparencyStrength;
122
- #endif
1
+ export const color_vert_params = `
2
+ uniform float uMetalness;
3
+ uniform float uRoughness;
4
+ uniform float uBumpiness;
5
+
6
+ #if defined(dRenderVariant_color)
7
+ #if defined(dColorType_uniform)
8
+ uniform vec3 uColor;
9
+ #elif defined(dColorType_attribute)
10
+ varying vec4 vColor;
11
+ attribute vec3 aColor;
12
+ #elif defined(dColorType_texture)
13
+ varying vec4 vColor;
14
+ uniform vec2 uColorTexDim;
15
+ uniform sampler2D tColor;
16
+ #elif defined(dColorType_grid)
17
+ varying vec4 vColor;
18
+ uniform vec2 uColorTexDim;
19
+ uniform vec3 uColorGridDim;
20
+ uniform vec4 uColorGridTransform;
21
+ uniform sampler2D tColorGrid;
22
+ #elif defined(dColorType_direct)
23
+ varying vec4 vColor;
24
+ #endif
25
+
26
+ #ifdef dUsePalette
27
+ varying float vPaletteV;
28
+ #endif
29
+
30
+ #ifdef dOverpaint
31
+ #if defined(dOverpaintType_instance) || defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)
32
+ varying vec4 vOverpaint;
33
+ uniform vec2 uOverpaintTexDim;
34
+ uniform sampler2D tOverpaint;
35
+ #elif defined(dOverpaintType_volumeInstance)
36
+ varying vec4 vOverpaint;
37
+ uniform vec2 uOverpaintTexDim;
38
+ uniform vec3 uOverpaintGridDim;
39
+ uniform vec4 uOverpaintGridTransform;
40
+ uniform sampler2D tOverpaintGrid;
41
+ #endif
42
+ uniform float uOverpaintStrength;
43
+ #endif
44
+
45
+ #ifdef dEmissive
46
+ #if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
47
+ varying float vEmissive;
48
+ uniform vec2 uEmissiveTexDim;
49
+ uniform sampler2D tEmissive;
50
+ #elif defined(dEmissiveType_volumeInstance)
51
+ varying float vEmissive;
52
+ uniform vec2 uEmissiveTexDim;
53
+ uniform vec3 uEmissiveGridDim;
54
+ uniform vec4 uEmissiveGridTransform;
55
+ uniform sampler2D tEmissiveGrid;
56
+ #endif
57
+ uniform float uEmissiveStrength;
58
+ #endif
59
+
60
+ #ifdef dSubstance
61
+ #if defined(dSubstanceType_instance) || defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)
62
+ varying vec4 vSubstance;
63
+ uniform vec2 uSubstanceTexDim;
64
+ uniform sampler2D tSubstance;
65
+ #elif defined(dSubstanceType_volumeInstance)
66
+ varying vec4 vSubstance;
67
+ uniform vec2 uSubstanceTexDim;
68
+ uniform vec3 uSubstanceGridDim;
69
+ uniform vec4 uSubstanceGridTransform;
70
+ uniform sampler2D tSubstanceGrid;
71
+ #endif
72
+ uniform float uSubstanceStrength;
73
+ #endif
74
+ #elif defined(dRenderVariant_emissive)
75
+ #ifdef dEmissive
76
+ #if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
77
+ varying float vEmissive;
78
+ uniform vec2 uEmissiveTexDim;
79
+ uniform sampler2D tEmissive;
80
+ #elif defined(dEmissiveType_volumeInstance)
81
+ varying float vEmissive;
82
+ uniform vec2 uEmissiveTexDim;
83
+ uniform vec3 uEmissiveGridDim;
84
+ uniform vec4 uEmissiveGridTransform;
85
+ uniform sampler2D tEmissiveGrid;
86
+ #endif
87
+ uniform float uEmissiveStrength;
88
+ #endif
89
+ #elif defined(dRenderVariant_pick)
90
+ #if __VERSION__ == 100 || !defined(dVaryingGroup)
91
+ #ifdef requiredDrawBuffers
92
+ varying vec4 vObject;
93
+ varying vec4 vInstance;
94
+ varying vec4 vGroup;
95
+ #else
96
+ varying vec4 vColor;
97
+ #endif
98
+ #else
99
+ #ifdef requiredDrawBuffers
100
+ flat out vec4 vObject;
101
+ flat out vec4 vInstance;
102
+ flat out vec4 vGroup;
103
+ #else
104
+ flat out vec4 vColor;
105
+ #endif
106
+ #endif
107
+ #endif
108
+
109
+ #ifdef dTransparency
110
+ #if defined(dTransparencyType_instance) || defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)
111
+ varying float vTransparency;
112
+ uniform vec2 uTransparencyTexDim;
113
+ uniform sampler2D tTransparency;
114
+ #elif defined(dTransparencyType_volumeInstance)
115
+ varying float vTransparency;
116
+ uniform vec2 uTransparencyTexDim;
117
+ uniform vec3 uTransparencyGridDim;
118
+ uniform vec4 uTransparencyGridTransform;
119
+ uniform sampler2D tTransparencyGrid;
120
+ #endif
121
+ uniform float uTransparencyStrength;
122
+ #endif
123
123
  `;
@@ -4,108 +4,108 @@
4
4
  * @author Ludovic Autin <autin@scripps.edu>
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
7
- export const common_clip = `
8
- #if dClipObjectCount != 0
9
- vec3 quaternionTransform(const in vec4 q, const in vec3 v) {
10
- vec3 t = 2.0 * cross(q.xyz, v);
11
- return v + q.w * t + cross(q.xyz, t);
12
- }
13
-
14
- vec4 computePlane(const in vec3 normal, const in vec3 inPoint) {
15
- return vec4(normalize(normal), -dot(normal, inPoint));
16
- }
17
-
18
- float planeSD(const in vec4 plane, const in vec3 center) {
19
- return -dot(plane.xyz, center - plane.xyz * -plane.w);
20
- }
21
-
22
- float sphereSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
23
- return (
24
- length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0
25
- ) * min(min(size.x, size.y), size.z);
26
- }
27
-
28
- float cubeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
29
- vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;
30
- return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));
31
- }
32
-
33
- float cylinderSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
34
- vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
35
-
36
- vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;
37
- return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));
38
- }
39
-
40
- float infiniteConeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
41
- vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
42
-
43
- float q = length(t.xy);
44
- return dot(size.xy, vec2(q, t.z));
45
- }
46
-
47
- float getSignedDistance(const in vec3 center, const in int type, const in vec3 position, const in vec4 rotation, const in vec3 scale) {
48
- if (type == 1) {
49
- vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));
50
- vec4 plane = computePlane(normal, position);
51
- return planeSD(plane, center);
52
- } else if (type == 2) {
53
- return sphereSD(position, rotation, scale * 0.5, center);
54
- } else if (type == 3) {
55
- return cubeSD(position, rotation, scale * 0.5, center);
56
- } else if (type == 4) {
57
- return cylinderSD(position, rotation, scale * 0.5, center);
58
- } else if (type == 5) {
59
- return infiniteConeSD(position, rotation, scale * 0.5, center);
60
- } else {
61
- return 0.1;
62
- }
63
- }
64
-
65
- #if __VERSION__ == 100
66
- // 8-bit
67
- int bitwiseAnd(in int a, in int b) {
68
- int d = 128;
69
- int result = 0;
70
- for (int i = 0; i < 8; ++i) {
71
- if (d <= 0) break;
72
- if (a >= d && b >= d) result += d;
73
- if (a >= d) a -= d;
74
- if (b >= d) b -= d;
75
- d /= 2;
76
- }
77
- return result;
78
- }
79
-
80
- bool hasBit(const in int mask, const in int bit) {
81
- return bitwiseAnd(mask, bit) == 0;
82
- }
83
- #else
84
- bool hasBit(const in int mask, const in int bit) {
85
- return (mask & bit) == 0;
86
- }
87
- #endif
88
-
89
- bool clipTest(const in vec4 sphere) {
90
- // flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)
91
- #if defined(dClipping)
92
- int flag = int(floor(vClipping * 255.0 + 0.5));
93
- #else
94
- int flag = 0;
95
- #endif
96
-
97
- #pragma unroll_loop_start
98
- for (int i = 0; i < dClipObjectCount; ++i) {
99
- if (flag == 0 || hasBit(flag, UNROLLED_LOOP_INDEX + 1)) {
100
- // TODO take sphere radius into account?
101
- bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;
102
- if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {
103
- return true;
104
- }
105
- }
106
- }
107
- #pragma unroll_loop_end
108
- return false;
109
- }
110
- #endif
7
+ export const common_clip = `
8
+ #if dClipObjectCount != 0
9
+ vec3 quaternionTransform(const in vec4 q, const in vec3 v) {
10
+ vec3 t = 2.0 * cross(q.xyz, v);
11
+ return v + q.w * t + cross(q.xyz, t);
12
+ }
13
+
14
+ vec4 computePlane(const in vec3 normal, const in vec3 inPoint) {
15
+ return vec4(normalize(normal), -dot(normal, inPoint));
16
+ }
17
+
18
+ float planeSD(const in vec4 plane, const in vec3 center) {
19
+ return -dot(plane.xyz, center - plane.xyz * -plane.w);
20
+ }
21
+
22
+ float sphereSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
23
+ return (
24
+ length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0
25
+ ) * min(min(size.x, size.y), size.z);
26
+ }
27
+
28
+ float cubeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
29
+ vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;
30
+ return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));
31
+ }
32
+
33
+ float cylinderSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
34
+ vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
35
+
36
+ vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;
37
+ return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));
38
+ }
39
+
40
+ float infiniteConeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
41
+ vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
42
+
43
+ float q = length(t.xy);
44
+ return dot(size.xy, vec2(q, t.z));
45
+ }
46
+
47
+ float getSignedDistance(const in vec3 center, const in int type, const in vec3 position, const in vec4 rotation, const in vec3 scale) {
48
+ if (type == 1) {
49
+ vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));
50
+ vec4 plane = computePlane(normal, position);
51
+ return planeSD(plane, center);
52
+ } else if (type == 2) {
53
+ return sphereSD(position, rotation, scale * 0.5, center);
54
+ } else if (type == 3) {
55
+ return cubeSD(position, rotation, scale * 0.5, center);
56
+ } else if (type == 4) {
57
+ return cylinderSD(position, rotation, scale * 0.5, center);
58
+ } else if (type == 5) {
59
+ return infiniteConeSD(position, rotation, scale * 0.5, center);
60
+ } else {
61
+ return 0.1;
62
+ }
63
+ }
64
+
65
+ #if __VERSION__ == 100
66
+ // 8-bit
67
+ int bitwiseAnd(in int a, in int b) {
68
+ int d = 128;
69
+ int result = 0;
70
+ for (int i = 0; i < 8; ++i) {
71
+ if (d <= 0) break;
72
+ if (a >= d && b >= d) result += d;
73
+ if (a >= d) a -= d;
74
+ if (b >= d) b -= d;
75
+ d /= 2;
76
+ }
77
+ return result;
78
+ }
79
+
80
+ bool hasBit(const in int mask, const in int bit) {
81
+ return bitwiseAnd(mask, bit) == 0;
82
+ }
83
+ #else
84
+ bool hasBit(const in int mask, const in int bit) {
85
+ return (mask & bit) == 0;
86
+ }
87
+ #endif
88
+
89
+ bool clipTest(const in vec4 sphere) {
90
+ // flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)
91
+ #if defined(dClipping)
92
+ int flag = int(floor(vClipping * 255.0 + 0.5));
93
+ #else
94
+ int flag = 0;
95
+ #endif
96
+
97
+ #pragma unroll_loop_start
98
+ for (int i = 0; i < dClipObjectCount; ++i) {
99
+ if (flag == 0 || hasBit(flag, UNROLLED_LOOP_INDEX + 1)) {
100
+ // TODO take sphere radius into account?
101
+ bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;
102
+ if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {
103
+ return true;
104
+ }
105
+ }
106
+ }
107
+ #pragma unroll_loop_end
108
+ return false;
109
+ }
110
+ #endif
111
111
  `;