molstar 4.0.1 → 4.2.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 (907) 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 +0 -9
  7. package/lib/apps/docking-viewer/index.html +36 -36
  8. package/lib/apps/docking-viewer/viewport.d.ts +8 -8
  9. package/lib/apps/mesoscale-explorer/behavior/camera.d.ts +1 -1
  10. package/lib/apps/mesoscale-explorer/behavior/select.d.ts +1 -1
  11. package/lib/apps/mesoscale-explorer/data/cellpack/model.d.ts +2 -2
  12. package/lib/apps/mesoscale-explorer/data/cellpack/preset.d.ts +1 -1
  13. package/lib/apps/mesoscale-explorer/data/cellpack/preset.js +5 -5
  14. package/lib/apps/mesoscale-explorer/data/generic/preset.d.ts +1 -1
  15. package/lib/apps/mesoscale-explorer/data/generic/preset.js +3 -3
  16. package/lib/apps/mesoscale-explorer/data/mmcif/preset.d.ts +1 -1
  17. package/lib/apps/mesoscale-explorer/data/mmcif/preset.js +3 -3
  18. package/lib/apps/mesoscale-explorer/data/petworld/preset.d.ts +1 -1
  19. package/lib/apps/mesoscale-explorer/data/petworld/preset.js +3 -3
  20. package/lib/apps/mesoscale-explorer/data/state.d.ts +19 -10
  21. package/lib/apps/mesoscale-explorer/data/state.js +14 -2
  22. package/lib/apps/mesoscale-explorer/index.html +100 -100
  23. package/lib/apps/mesoscale-explorer/style.scss +33 -33
  24. package/lib/apps/mesoscale-explorer/ui/entities.d.ts +19 -13
  25. package/lib/apps/mesoscale-explorer/ui/entities.js +23 -4
  26. package/lib/apps/viewer/app.d.ts +30 -24
  27. package/lib/apps/viewer/app.js +6 -6
  28. package/lib/apps/viewer/embedded.html +52 -52
  29. package/lib/apps/viewer/index.html +129 -129
  30. package/lib/cli/chem-comp-dict/create-ions.js +9 -9
  31. package/lib/cli/chem-comp-dict/create-saccharides.js +9 -9
  32. package/lib/cli/chem-comp-dict/util.d.ts +112 -112
  33. package/lib/cli/cifschema/util/cif-dic.js +1 -0
  34. package/lib/cli/cifschema/util/generate.js +12 -12
  35. package/lib/cli/lipid-params/index.js +9 -9
  36. package/lib/cli/mvs/mvs-print-schema.d.ts +1 -0
  37. package/lib/cli/mvs/mvs-print-schema.js +1 -0
  38. package/lib/cli/mvs/mvs-render.d.ts +1 -0
  39. package/lib/cli/mvs/mvs-render.js +1 -0
  40. package/lib/cli/mvs/mvs-validate.d.ts +1 -0
  41. package/lib/cli/mvs/mvs-validate.js +1 -0
  42. package/lib/commonjs/apps/docking-viewer/viewport.d.ts +8 -8
  43. package/lib/commonjs/apps/mesoscale-explorer/behavior/camera.d.ts +1 -1
  44. package/lib/commonjs/apps/mesoscale-explorer/behavior/select.d.ts +1 -1
  45. package/lib/commonjs/apps/mesoscale-explorer/data/cellpack/model.d.ts +2 -2
  46. package/lib/commonjs/apps/mesoscale-explorer/data/cellpack/preset.d.ts +1 -1
  47. package/lib/commonjs/apps/mesoscale-explorer/data/cellpack/preset.js +5 -5
  48. package/lib/commonjs/apps/mesoscale-explorer/data/generic/preset.d.ts +1 -1
  49. package/lib/commonjs/apps/mesoscale-explorer/data/generic/preset.js +3 -3
  50. package/lib/commonjs/apps/mesoscale-explorer/data/mmcif/preset.d.ts +1 -1
  51. package/lib/commonjs/apps/mesoscale-explorer/data/mmcif/preset.js +3 -3
  52. package/lib/commonjs/apps/mesoscale-explorer/data/petworld/preset.d.ts +1 -1
  53. package/lib/commonjs/apps/mesoscale-explorer/data/petworld/preset.js +3 -3
  54. package/lib/commonjs/apps/mesoscale-explorer/data/state.d.ts +19 -10
  55. package/lib/commonjs/apps/mesoscale-explorer/data/state.js +15 -3
  56. package/lib/commonjs/apps/mesoscale-explorer/ui/entities.d.ts +19 -13
  57. package/lib/commonjs/apps/mesoscale-explorer/ui/entities.js +22 -3
  58. package/lib/commonjs/apps/viewer/app.d.ts +30 -24
  59. package/lib/commonjs/apps/viewer/app.js +6 -6
  60. package/lib/commonjs/cli/chem-comp-dict/create-ions.js +9 -9
  61. package/lib/commonjs/cli/chem-comp-dict/create-saccharides.js +9 -9
  62. package/lib/commonjs/cli/chem-comp-dict/util.d.ts +112 -112
  63. package/lib/commonjs/cli/cifschema/util/cif-dic.js +1 -0
  64. package/lib/commonjs/cli/cifschema/util/generate.js +12 -12
  65. package/lib/commonjs/cli/lipid-params/index.js +9 -9
  66. package/lib/commonjs/cli/mvs/mvs-print-schema.d.ts +1 -0
  67. package/lib/commonjs/cli/mvs/mvs-print-schema.js +1 -0
  68. package/lib/commonjs/cli/mvs/mvs-render.d.ts +1 -0
  69. package/lib/commonjs/cli/mvs/mvs-render.js +1 -0
  70. package/lib/commonjs/cli/mvs/mvs-validate.d.ts +1 -0
  71. package/lib/commonjs/cli/mvs/mvs-validate.js +1 -0
  72. package/lib/commonjs/examples/alpha-orbitals/example-data.js +160 -160
  73. package/lib/commonjs/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
  74. package/lib/commonjs/extensions/alpha-orbitals/transforms.d.ts +2 -2
  75. package/lib/commonjs/extensions/anvil/behavior.d.ts +10 -9
  76. package/lib/commonjs/extensions/anvil/representation.d.ts +5 -0
  77. package/lib/commonjs/extensions/assembly-symmetry/behavior.d.ts +2 -1
  78. package/lib/commonjs/extensions/assembly-symmetry/prop.js +24 -24
  79. package/lib/commonjs/extensions/assembly-symmetry/representation.d.ts +1 -0
  80. package/lib/commonjs/extensions/backgrounds/index.d.ts +2 -2
  81. package/lib/commonjs/extensions/backgrounds/index.js +2 -1
  82. package/lib/commonjs/extensions/dnatco/behavior.d.ts +1 -1
  83. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.d.ts +10 -10
  84. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.js +5 -5
  85. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  86. package/lib/commonjs/extensions/dnatco/ntc-tube/behavior.d.ts +10 -10
  87. package/lib/commonjs/extensions/dnatco/ntc-tube/behavior.js +5 -5
  88. package/lib/commonjs/extensions/dnatco/ntc-tube/representation.d.ts +3 -0
  89. package/lib/commonjs/extensions/g3d/format.d.ts +6 -6
  90. package/lib/commonjs/extensions/geo-export/glb-exporter.d.ts +1 -1
  91. package/lib/commonjs/extensions/geo-export/glb-exporter.js +6 -4
  92. package/lib/commonjs/extensions/geo-export/index.d.ts +1 -1
  93. package/lib/commonjs/extensions/geo-export/usdz-exporter.js +41 -41
  94. package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +2 -3
  95. package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.d.ts +1 -1
  96. package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.d.ts +2 -2
  97. package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.d.ts +9 -9
  98. package/lib/commonjs/extensions/model-export/index.d.ts +1 -1
  99. package/lib/commonjs/extensions/mp4-export/index.d.ts +1 -1
  100. package/lib/commonjs/extensions/mvs/behavior.d.ts +1 -1
  101. package/lib/commonjs/extensions/mvs/camera.d.ts +2 -0
  102. package/lib/commonjs/extensions/mvs/camera.js +29 -2
  103. package/lib/commonjs/extensions/mvs/components/annotation-label/representation.d.ts +4 -0
  104. package/lib/commonjs/extensions/mvs/components/annotation-label/visual.d.ts +1 -0
  105. package/lib/commonjs/extensions/mvs/components/custom-label/representation.d.ts +4 -2
  106. package/lib/commonjs/extensions/mvs/components/custom-label/visual.d.ts +1 -0
  107. package/lib/commonjs/extensions/mvs/components/formats.d.ts +6 -4
  108. package/lib/commonjs/extensions/mvs/components/formats.js +2 -1
  109. package/lib/commonjs/extensions/mvs/load-helpers.d.ts +1 -1
  110. package/lib/commonjs/extensions/mvs/load.d.ts +2 -0
  111. package/lib/commonjs/extensions/mvs/load.js +12 -6
  112. package/lib/commonjs/extensions/mvs/tree/mvs/mvs-builder.d.ts +2 -8
  113. package/lib/commonjs/extensions/pdbe/structure-quality-report/behavior.d.ts +1 -1
  114. package/lib/commonjs/extensions/rcsb/validation-report/behavior.d.ts +22 -22
  115. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +5 -0
  116. package/lib/commonjs/extensions/sb-ncbr/partial-charges/behavior.d.ts +1 -1
  117. package/lib/commonjs/extensions/sb-ncbr/partial-charges/preset.d.ts +4 -4
  118. package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.d.ts +1 -1
  119. package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.d.ts +5 -5
  120. package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.d.ts +1 -1
  121. package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.d.ts +2 -2
  122. package/lib/commonjs/extensions/volumes-and-segmentations/global-state.d.ts +2 -2
  123. package/lib/commonjs/extensions/volumes-and-segmentations/helpers.d.ts +1 -1
  124. package/lib/commonjs/extensions/volumes-and-segmentations/index.d.ts +1 -1
  125. package/lib/commonjs/extensions/wwpdb/ccd/behavior.d.ts +1 -1
  126. package/lib/commonjs/extensions/wwpdb/ccd/representation.d.ts +4 -4
  127. package/lib/commonjs/extensions/zenodo/index.d.ts +1 -1
  128. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +14 -2
  129. package/lib/commonjs/mol-canvas3d/canvas3d.js +2 -2
  130. package/lib/commonjs/mol-canvas3d/controls/trackball.js +1 -1
  131. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  132. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  133. package/lib/commonjs/mol-canvas3d/passes/background.d.ts +6 -1
  134. package/lib/commonjs/mol-canvas3d/passes/background.js +13 -1
  135. package/lib/commonjs/mol-canvas3d/passes/bloom.d.ts +37 -0
  136. package/lib/commonjs/mol-canvas3d/passes/bloom.js +272 -0
  137. package/lib/commonjs/mol-canvas3d/passes/dpoit.js +4 -2
  138. package/lib/commonjs/mol-canvas3d/passes/draw.d.ts +11 -7
  139. package/lib/commonjs/mol-canvas3d/passes/draw.js +29 -3
  140. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +6 -0
  141. package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +31 -5
  142. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +35 -40
  143. package/lib/commonjs/mol-geo/geometry/base.d.ts +3 -1
  144. package/lib/commonjs/mol-geo/geometry/base.js +4 -1
  145. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
  146. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +4 -1
  147. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +2 -1
  148. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +4 -1
  149. package/lib/commonjs/mol-geo/geometry/emissive-data.d.ts +26 -0
  150. package/lib/commonjs/mol-geo/geometry/emissive-data.js +80 -0
  151. package/lib/commonjs/mol-geo/geometry/image/image.d.ts +2 -1
  152. package/lib/commonjs/mol-geo/geometry/image/image.js +4 -1
  153. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +3 -2
  154. package/lib/commonjs/mol-geo/geometry/lines/lines.js +4 -1
  155. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.d.ts +2 -1
  156. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js +36 -2
  157. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  158. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +11 -4
  159. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +3 -2
  160. package/lib/commonjs/mol-geo/geometry/points/points.js +4 -1
  161. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +2 -2
  162. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +7 -3
  163. package/lib/commonjs/mol-geo/geometry/text/text.d.ts +2 -1
  164. package/lib/commonjs/mol-geo/geometry/text/text.js +4 -1
  165. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +2 -1
  166. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +34 -2
  167. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +3 -1
  168. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +14 -4
  169. package/lib/commonjs/mol-geo/util/location-iterator.d.ts +5 -2
  170. package/lib/commonjs/mol-geo/util/location-iterator.js +8 -3
  171. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +10 -0
  172. package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +10 -0
  173. package/lib/commonjs/mol-gl/renderable/image.d.ts +10 -0
  174. package/lib/commonjs/mol-gl/renderable/lines.d.ts +10 -0
  175. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +10 -0
  176. package/lib/commonjs/mol-gl/renderable/points.d.ts +10 -0
  177. package/lib/commonjs/mol-gl/renderable/schema.d.ts +24 -1
  178. package/lib/commonjs/mol-gl/renderable/schema.js +15 -2
  179. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +10 -0
  180. package/lib/commonjs/mol-gl/renderable/text.d.ts +10 -0
  181. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +10 -0
  182. package/lib/commonjs/mol-gl/renderable.d.ts +1 -1
  183. package/lib/commonjs/mol-gl/renderable.js +2 -2
  184. package/lib/commonjs/mol-gl/renderer.d.ts +2 -1
  185. package/lib/commonjs/mol-gl/renderer.js +58 -49
  186. package/lib/commonjs/mol-gl/scene.d.ts +3 -1
  187. package/lib/commonjs/mol-gl/scene.js +26 -1
  188. package/lib/commonjs/mol-gl/shader/background.frag.d.ts +1 -1
  189. package/lib/commonjs/mol-gl/shader/background.frag.js +95 -94
  190. package/lib/commonjs/mol-gl/shader/background.vert.js +11 -11
  191. package/lib/commonjs/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
  192. package/lib/commonjs/mol-gl/shader/bloom/blur.frag.d.ts +1 -0
  193. package/lib/commonjs/mol-gl/shader/bloom/blur.frag.js +32 -0
  194. package/lib/commonjs/mol-gl/shader/bloom/composite.frag.d.ts +1 -0
  195. package/lib/commonjs/mol-gl/shader/bloom/composite.frag.js +37 -0
  196. package/lib/commonjs/mol-gl/shader/bloom/luminosity.frag.d.ts +1 -0
  197. package/lib/commonjs/mol-gl/shader/bloom/luminosity.frag.js +56 -0
  198. package/lib/commonjs/mol-gl/shader/cas.frag.js +144 -144
  199. package/lib/commonjs/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
  200. package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
  201. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +2 -2
  202. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +78 -70
  203. package/lib/commonjs/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
  204. package/lib/commonjs/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
  205. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  206. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -112
  207. package/lib/commonjs/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
  208. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
  209. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  210. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -123
  211. package/lib/commonjs/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
  212. package/lib/commonjs/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
  213. package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
  214. package/lib/commonjs/mol-gl/shader/chunks/check-transparency.glsl.d.ts +1 -0
  215. package/lib/commonjs/mol-gl/shader/chunks/check-transparency.glsl.js +20 -0
  216. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
  217. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
  218. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  219. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -51
  220. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  221. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -92
  222. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
  223. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  224. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -149
  225. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
  226. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +234 -234
  227. package/lib/commonjs/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
  228. package/lib/commonjs/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
  229. package/lib/commonjs/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
  230. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
  231. package/lib/commonjs/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
  232. package/lib/commonjs/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
  233. package/lib/commonjs/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
  234. package/lib/commonjs/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
  235. package/lib/commonjs/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
  236. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
  237. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
  238. package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
  239. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
  240. package/lib/commonjs/mol-gl/shader/compose.frag.js +12 -12
  241. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
  242. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
  243. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
  244. package/lib/commonjs/mol-gl/shader/copy.frag.js +11 -11
  245. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +2 -2
  246. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +267 -264
  247. package/lib/commonjs/mol-gl/shader/cylinders.vert.js +89 -89
  248. package/lib/commonjs/mol-gl/shader/depth-merge.frag.js +23 -23
  249. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  250. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +362 -356
  251. package/lib/commonjs/mol-gl/shader/direct-volume.vert.js +41 -41
  252. package/lib/commonjs/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
  253. package/lib/commonjs/mol-gl/shader/evaluate-wboit.frag.js +17 -17
  254. package/lib/commonjs/mol-gl/shader/fxaa.frag.js +228 -228
  255. package/lib/commonjs/mol-gl/shader/gaussian-density.frag.js +49 -49
  256. package/lib/commonjs/mol-gl/shader/gaussian-density.vert.js +27 -27
  257. package/lib/commonjs/mol-gl/shader/hi-z.frag.js +18 -18
  258. package/lib/commonjs/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
  259. package/lib/commonjs/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
  260. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +2 -2
  261. package/lib/commonjs/mol-gl/shader/image.frag.js +170 -161
  262. package/lib/commonjs/mol-gl/shader/image.vert.js +21 -21
  263. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +2 -2
  264. package/lib/commonjs/mol-gl/shader/lines.frag.js +43 -40
  265. package/lib/commonjs/mol-gl/shader/lines.vert.js +117 -117
  266. package/lib/commonjs/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
  267. package/lib/commonjs/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
  268. package/lib/commonjs/mol-gl/shader/marking/edge.frag.js +28 -28
  269. package/lib/commonjs/mol-gl/shader/marking/overlay.frag.js +26 -26
  270. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +2 -2
  271. package/lib/commonjs/mol-gl/shader/mesh.frag.js +66 -63
  272. package/lib/commonjs/mol-gl/shader/mesh.vert.js +49 -49
  273. package/lib/commonjs/mol-gl/shader/outlines.frag.js +95 -95
  274. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +2 -2
  275. package/lib/commonjs/mol-gl/shader/points.frag.js +60 -56
  276. package/lib/commonjs/mol-gl/shader/points.vert.js +38 -38
  277. package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +150 -150
  278. package/lib/commonjs/mol-gl/shader/quad.vert.js +10 -10
  279. package/lib/commonjs/mol-gl/shader/shadows.frag.js +123 -123
  280. package/lib/commonjs/mol-gl/shader/smaa/blend.frag.js +56 -56
  281. package/lib/commonjs/mol-gl/shader/smaa/blend.vert.js +25 -25
  282. package/lib/commonjs/mol-gl/shader/smaa/edges.frag.js +66 -66
  283. package/lib/commonjs/mol-gl/shader/smaa/edges.vert.js +26 -26
  284. package/lib/commonjs/mol-gl/shader/smaa/weights.frag.js +206 -206
  285. package/lib/commonjs/mol-gl/shader/smaa/weights.vert.js +32 -32
  286. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +2 -2
  287. package/lib/commonjs/mol-gl/shader/spheres.frag.js +149 -143
  288. package/lib/commonjs/mol-gl/shader/spheres.vert.js +132 -132
  289. package/lib/commonjs/mol-gl/shader/ssao-blur.frag.d.ts +3 -2
  290. package/lib/commonjs/mol-gl/shader/ssao-blur.frag.js +99 -100
  291. package/lib/commonjs/mol-gl/shader/ssao.frag.d.ts +3 -2
  292. package/lib/commonjs/mol-gl/shader/ssao.frag.js +213 -174
  293. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +2 -2
  294. package/lib/commonjs/mol-gl/shader/text.frag.js +86 -84
  295. package/lib/commonjs/mol-gl/shader/text.vert.js +85 -85
  296. package/lib/commonjs/mol-gl/shader/util/grid3d-template.frag.js +46 -46
  297. package/lib/commonjs/mol-gl/shader-code.d.ts +1 -1
  298. package/lib/commonjs/mol-gl/shader-code.js +24 -18
  299. package/lib/commonjs/mol-gl/webgl/compat.js +12 -12
  300. package/lib/commonjs/mol-gl/webgl/render-item.d.ts +3 -2
  301. package/lib/commonjs/mol-gl/webgl/render-item.js +1 -1
  302. package/lib/commonjs/mol-io/common/binary-cif/array-encoder.d.ts +1 -1
  303. package/lib/commonjs/mol-io/common/binary-cif/array-encoder.js +5 -2
  304. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +1 -1
  305. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +1 -1
  306. package/lib/commonjs/mol-io/reader/cif/schema/ccd-extras.d.ts +4 -4
  307. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  308. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +1 -1
  309. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +1 -1
  310. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +1 -1
  311. package/lib/commonjs/mol-io/reader/cif.d.ts +1 -1
  312. package/lib/commonjs/mol-io/writer/cif/encoder/binary.d.ts +1 -1
  313. package/lib/commonjs/mol-io/writer/cif/encoder/binary.js +10 -2
  314. package/lib/commonjs/mol-math/linear-algebra/3d/mat3.d.ts +3 -1
  315. package/lib/commonjs/mol-math/linear-algebra/3d/mat3.js +8 -1
  316. package/lib/commonjs/mol-math/linear-algebra/3d/vec3.d.ts +6 -0
  317. package/lib/commonjs/mol-math/linear-algebra/3d/vec3.js +20 -0
  318. package/lib/commonjs/mol-model/structure/model/types/saccharides.js +1 -1
  319. package/lib/commonjs/mol-model/structure/structure/properties.d.ts +2 -2
  320. package/lib/commonjs/mol-model/structure/structure/unit/bonds/data.d.ts +9 -6
  321. package/lib/commonjs/mol-model/structure/structure/unit/bonds/data.js +1 -1
  322. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.d.ts +1 -1
  323. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +7 -4
  324. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.d.ts +1 -1
  325. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +10 -6
  326. package/lib/commonjs/mol-model/structure/structure/unit.d.ts +2 -2
  327. package/lib/commonjs/mol-model/structure/structure/unit.js +5 -2
  328. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +2 -0
  329. package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +118 -118
  330. package/lib/commonjs/mol-model-formats/structure/common/component.d.ts +2 -2
  331. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.d.ts +4 -1
  332. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +6 -3
  333. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  334. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  335. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +3 -0
  336. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  337. package/lib/commonjs/mol-plugin/behavior/behavior.d.ts +6 -6
  338. package/lib/commonjs/mol-plugin/behavior/dynamic/camera.d.ts +3 -3
  339. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.d.ts +1 -1
  340. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/interactions.d.ts +1 -1
  341. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.d.ts +1 -1
  342. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.d.ts +1 -1
  343. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.d.ts +1 -1
  344. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/sequence/sifts-mapping.d.ts +1 -1
  345. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/structure-info.d.ts +1 -1
  346. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +4 -4
  347. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -1
  348. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +2 -2
  349. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -2
  350. package/lib/commonjs/mol-plugin/commands.d.ts +1 -208
  351. package/lib/commonjs/mol-plugin/config.d.ts +5 -0
  352. package/lib/commonjs/mol-plugin/context.d.ts +2 -2
  353. package/lib/commonjs/mol-plugin/state.d.ts +6 -6
  354. package/lib/commonjs/mol-plugin-state/actions/structure.d.ts +3 -3
  355. package/lib/commonjs/mol-plugin-state/actions/structure.js +3 -5
  356. package/lib/commonjs/mol-plugin-state/actions/volume.d.ts +1 -1
  357. package/lib/commonjs/mol-plugin-state/builder/data.d.ts +4 -4
  358. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +27 -27
  359. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +5 -5
  360. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +42 -42
  361. package/lib/commonjs/mol-plugin-state/builder/structure/representation.d.ts +4 -4
  362. package/lib/commonjs/mol-plugin-state/builder/structure.d.ts +7 -7
  363. package/lib/commonjs/mol-plugin-state/formats/coordinates.d.ts +8 -8
  364. package/lib/commonjs/mol-plugin-state/formats/shape.d.ts +8 -8
  365. package/lib/commonjs/mol-plugin-state/formats/topology.d.ts +12 -12
  366. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +33 -33
  367. package/lib/commonjs/mol-plugin-state/helpers/structure-emissive.d.ts +12 -0
  368. package/lib/commonjs/mol-plugin-state/helpers/structure-emissive.js +69 -0
  369. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  370. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +3 -1
  371. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +9 -1
  372. package/lib/commonjs/mol-plugin-state/manager/structure/measurement.d.ts +341 -9
  373. package/lib/commonjs/mol-plugin-state/manager/structure/measurement.js +32 -19
  374. package/lib/commonjs/mol-plugin-state/manager/structure/selection.d.ts +1 -1
  375. package/lib/commonjs/mol-plugin-state/manager/volume/hierarchy.d.ts +1 -1
  376. package/lib/commonjs/mol-plugin-state/objects.d.ts +32 -32
  377. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +33 -8
  378. package/lib/commonjs/mol-plugin-state/transforms/representation.js +121 -6
  379. package/lib/commonjs/mol-plugin-state/transforms/shape.d.ts +1 -1
  380. package/lib/commonjs/mol-plugin-state/transforms/volume.d.ts +16 -8
  381. package/lib/commonjs/mol-plugin-state/transforms/volume.js +51 -2
  382. package/lib/commonjs/mol-plugin-ui/state/apply-action.d.ts +2 -2
  383. package/lib/commonjs/mol-plugin-ui/state/update-transform.d.ts +3 -3
  384. package/lib/commonjs/mol-repr/representation.d.ts +6 -2
  385. package/lib/commonjs/mol-repr/representation.js +12 -2
  386. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +1 -0
  387. package/lib/commonjs/mol-repr/shape/loci/common.d.ts +1 -0
  388. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +1 -0
  389. package/lib/commonjs/mol-repr/shape/loci/distance.d.ts +1 -0
  390. package/lib/commonjs/mol-repr/shape/loci/label.d.ts +1 -0
  391. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -0
  392. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +1 -0
  393. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +1 -0
  394. package/lib/commonjs/mol-repr/structure/complex-representation.d.ts +1 -1
  395. package/lib/commonjs/mol-repr/structure/complex-representation.js +7 -1
  396. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +8 -1
  397. package/lib/commonjs/mol-repr/structure/complex-visual.js +5 -1
  398. package/lib/commonjs/mol-repr/structure/params.d.ts +8 -0
  399. package/lib/commonjs/mol-repr/structure/registry.d.ts +14 -0
  400. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
  401. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  402. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  403. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +3 -0
  404. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  405. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  406. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
  407. package/lib/commonjs/mol-repr/structure/representation/label.d.ts +3 -0
  408. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +3 -0
  409. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  410. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -0
  411. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +3 -0
  412. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -0
  413. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -0
  414. package/lib/commonjs/mol-repr/structure/units-representation.d.ts +1 -1
  415. package/lib/commonjs/mol-repr/structure/units-representation.js +9 -3
  416. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +9 -1
  417. package/lib/commonjs/mol-repr/structure/units-visual.js +5 -1
  418. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  419. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
  420. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  421. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
  422. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  423. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  424. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  425. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +1 -0
  426. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +1 -0
  427. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +4 -0
  428. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  429. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
  430. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  431. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +1 -1
  432. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
  433. package/lib/commonjs/mol-repr/structure/visual/label-text.d.ts +1 -0
  434. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  435. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
  436. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-bond.d.ts +2 -0
  437. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-element.d.ts +2 -0
  438. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-ring-fill.d.ts +1 -0
  439. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  440. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  441. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  442. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  443. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  444. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  445. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  446. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  447. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  448. package/lib/commonjs/mol-repr/visual.d.ts +6 -1
  449. package/lib/commonjs/mol-repr/visual.js +55 -1
  450. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +3 -0
  451. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +6 -0
  452. package/lib/commonjs/mol-repr/volume/registry.d.ts +4 -0
  453. package/lib/commonjs/mol-repr/volume/representation.d.ts +2 -1
  454. package/lib/commonjs/mol-repr/volume/representation.js +9 -2
  455. package/lib/commonjs/mol-repr/volume/segment.d.ts +5 -0
  456. package/lib/commonjs/mol-repr/volume/slice.d.ts +3 -0
  457. package/lib/commonjs/mol-script/language/symbol-table/core.d.ts +3 -3
  458. package/lib/commonjs/mol-state/tree/immutable.d.ts +1 -1
  459. package/lib/commonjs/mol-state/tree/transient.d.ts +2 -2
  460. package/lib/commonjs/mol-theme/color/external-volume.d.ts +3 -1
  461. package/lib/commonjs/mol-theme/color/external-volume.js +8 -2
  462. package/lib/commonjs/mol-theme/color.d.ts +1 -0
  463. package/lib/commonjs/mol-theme/emissive.d.ts +40 -0
  464. package/lib/commonjs/mol-theme/emissive.js +137 -0
  465. package/lib/commonjs/mol-theme/substance.d.ts +1 -1
  466. package/lib/commonjs/mol-theme/substance.js +2 -2
  467. package/lib/commonjs/mol-theme/transparency.d.ts +0 -1
  468. package/lib/commonjs/mol-util/input/input-observer.js +2 -0
  469. package/lib/commonjs/mol-util/set.d.ts +1 -1
  470. package/lib/commonjs/mol-util/set.js +17 -1
  471. package/lib/commonjs/servers/common/swagger-ui/indexTemplate.js +66 -66
  472. package/lib/commonjs/servers/volume/config.js +5 -5
  473. package/lib/examples/alpha-orbitals/example-data.js +160 -160
  474. package/lib/examples/alpha-orbitals/index.html +72 -72
  475. package/lib/examples/basic-wrapper/index.html +137 -137
  476. package/lib/examples/lighting/index.html +88 -88
  477. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  478. package/lib/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
  479. package/lib/extensions/alpha-orbitals/transforms.d.ts +2 -2
  480. package/lib/extensions/anvil/behavior.d.ts +10 -9
  481. package/lib/extensions/anvil/representation.d.ts +5 -0
  482. package/lib/extensions/assembly-symmetry/behavior.d.ts +2 -1
  483. package/lib/extensions/assembly-symmetry/prop.js +24 -24
  484. package/lib/extensions/assembly-symmetry/representation.d.ts +1 -0
  485. package/lib/extensions/backgrounds/index.d.ts +2 -2
  486. package/lib/extensions/backgrounds/index.js +2 -1
  487. package/lib/extensions/dnatco/behavior.d.ts +1 -1
  488. package/lib/extensions/dnatco/confal-pyramids/behavior.d.ts +10 -10
  489. package/lib/extensions/dnatco/confal-pyramids/behavior.js +5 -5
  490. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  491. package/lib/extensions/dnatco/ntc-tube/behavior.d.ts +10 -10
  492. package/lib/extensions/dnatco/ntc-tube/behavior.js +5 -5
  493. package/lib/extensions/dnatco/ntc-tube/representation.d.ts +3 -0
  494. package/lib/extensions/g3d/format.d.ts +6 -6
  495. package/lib/extensions/geo-export/glb-exporter.d.ts +1 -1
  496. package/lib/extensions/geo-export/glb-exporter.js +6 -4
  497. package/lib/extensions/geo-export/index.d.ts +1 -1
  498. package/lib/extensions/geo-export/usdz-exporter.js +41 -41
  499. package/lib/extensions/meshes/mesh-extension.d.ts +2 -3
  500. package/lib/extensions/meshes/mesh-streaming/behavior.d.ts +1 -1
  501. package/lib/extensions/meshes/mesh-streaming/server-info.d.ts +2 -2
  502. package/lib/extensions/model-archive/quality-assessment/behavior.d.ts +9 -9
  503. package/lib/extensions/model-export/index.d.ts +1 -1
  504. package/lib/extensions/mp4-export/index.d.ts +1 -1
  505. package/lib/extensions/mvs/behavior.d.ts +1 -1
  506. package/lib/extensions/mvs/camera.d.ts +2 -0
  507. package/lib/extensions/mvs/camera.js +27 -1
  508. package/lib/extensions/mvs/components/annotation-label/representation.d.ts +4 -0
  509. package/lib/extensions/mvs/components/annotation-label/visual.d.ts +1 -0
  510. package/lib/extensions/mvs/components/custom-label/representation.d.ts +4 -2
  511. package/lib/extensions/mvs/components/custom-label/visual.d.ts +1 -0
  512. package/lib/extensions/mvs/components/formats.d.ts +6 -4
  513. package/lib/extensions/mvs/components/formats.js +2 -1
  514. package/lib/extensions/mvs/load-helpers.d.ts +1 -1
  515. package/lib/extensions/mvs/load.d.ts +2 -0
  516. package/lib/extensions/mvs/load.js +13 -7
  517. package/lib/extensions/mvs/tree/mvs/mvs-builder.d.ts +2 -8
  518. package/lib/extensions/pdbe/structure-quality-report/behavior.d.ts +1 -1
  519. package/lib/extensions/rcsb/validation-report/behavior.d.ts +22 -22
  520. package/lib/extensions/rcsb/validation-report/representation.d.ts +5 -0
  521. package/lib/extensions/sb-ncbr/partial-charges/behavior.d.ts +1 -1
  522. package/lib/extensions/sb-ncbr/partial-charges/preset.d.ts +4 -4
  523. package/lib/extensions/volumes-and-segmentations/entry-meshes.d.ts +1 -1
  524. package/lib/extensions/volumes-and-segmentations/entry-root.d.ts +5 -5
  525. package/lib/extensions/volumes-and-segmentations/entry-segmentation.d.ts +1 -1
  526. package/lib/extensions/volumes-and-segmentations/entry-state.d.ts +2 -2
  527. package/lib/extensions/volumes-and-segmentations/global-state.d.ts +2 -2
  528. package/lib/extensions/volumes-and-segmentations/helpers.d.ts +1 -1
  529. package/lib/extensions/volumes-and-segmentations/index.d.ts +1 -1
  530. package/lib/extensions/wwpdb/ccd/behavior.d.ts +1 -1
  531. package/lib/extensions/wwpdb/ccd/representation.d.ts +4 -4
  532. package/lib/extensions/zenodo/index.d.ts +1 -1
  533. package/lib/mol-canvas3d/canvas3d.d.ts +14 -2
  534. package/lib/mol-canvas3d/canvas3d.js +2 -2
  535. package/lib/mol-canvas3d/controls/trackball.js +1 -1
  536. package/lib/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  537. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  538. package/lib/mol-canvas3d/passes/background.d.ts +6 -1
  539. package/lib/mol-canvas3d/passes/background.js +14 -2
  540. package/lib/mol-canvas3d/passes/bloom.d.ts +37 -0
  541. package/lib/mol-canvas3d/passes/bloom.js +268 -0
  542. package/lib/mol-canvas3d/passes/dpoit.js +4 -2
  543. package/lib/mol-canvas3d/passes/draw.d.ts +11 -7
  544. package/lib/mol-canvas3d/passes/draw.js +30 -4
  545. package/lib/mol-canvas3d/passes/image.d.ts +6 -0
  546. package/lib/mol-canvas3d/passes/postprocessing.d.ts +31 -5
  547. package/lib/mol-canvas3d/passes/postprocessing.js +33 -39
  548. package/lib/mol-geo/geometry/base.d.ts +3 -1
  549. package/lib/mol-geo/geometry/base.js +4 -1
  550. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
  551. package/lib/mol-geo/geometry/cylinders/cylinders.js +4 -1
  552. package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +2 -1
  553. package/lib/mol-geo/geometry/direct-volume/direct-volume.js +4 -1
  554. package/lib/mol-geo/geometry/emissive-data.d.ts +26 -0
  555. package/lib/mol-geo/geometry/emissive-data.js +72 -0
  556. package/lib/mol-geo/geometry/image/image.d.ts +2 -1
  557. package/lib/mol-geo/geometry/image/image.js +4 -1
  558. package/lib/mol-geo/geometry/lines/lines.d.ts +3 -2
  559. package/lib/mol-geo/geometry/lines/lines.js +4 -1
  560. package/lib/mol-geo/geometry/mesh/color-smoothing.d.ts +2 -1
  561. package/lib/mol-geo/geometry/mesh/color-smoothing.js +34 -1
  562. package/lib/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  563. package/lib/mol-geo/geometry/mesh/mesh.js +11 -4
  564. package/lib/mol-geo/geometry/points/points.d.ts +3 -2
  565. package/lib/mol-geo/geometry/points/points.js +4 -1
  566. package/lib/mol-geo/geometry/spheres/spheres.d.ts +2 -2
  567. package/lib/mol-geo/geometry/spheres/spheres.js +7 -3
  568. package/lib/mol-geo/geometry/text/text.d.ts +2 -1
  569. package/lib/mol-geo/geometry/text/text.js +4 -1
  570. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +2 -1
  571. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +32 -1
  572. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +3 -1
  573. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +14 -4
  574. package/lib/mol-geo/util/location-iterator.d.ts +5 -2
  575. package/lib/mol-geo/util/location-iterator.js +8 -3
  576. package/lib/mol-gl/renderable/cylinders.d.ts +10 -0
  577. package/lib/mol-gl/renderable/direct-volume.d.ts +10 -0
  578. package/lib/mol-gl/renderable/image.d.ts +10 -0
  579. package/lib/mol-gl/renderable/lines.d.ts +10 -0
  580. package/lib/mol-gl/renderable/mesh.d.ts +10 -0
  581. package/lib/mol-gl/renderable/points.d.ts +10 -0
  582. package/lib/mol-gl/renderable/schema.d.ts +24 -1
  583. package/lib/mol-gl/renderable/schema.js +14 -1
  584. package/lib/mol-gl/renderable/spheres.d.ts +10 -0
  585. package/lib/mol-gl/renderable/text.d.ts +10 -0
  586. package/lib/mol-gl/renderable/texture-mesh.d.ts +10 -0
  587. package/lib/mol-gl/renderable.d.ts +1 -1
  588. package/lib/mol-gl/renderable.js +2 -2
  589. package/lib/mol-gl/renderer.d.ts +2 -1
  590. package/lib/mol-gl/renderer.js +58 -49
  591. package/lib/mol-gl/scene.d.ts +3 -1
  592. package/lib/mol-gl/scene.js +26 -1
  593. package/lib/mol-gl/shader/background.frag.d.ts +1 -1
  594. package/lib/mol-gl/shader/background.frag.js +95 -94
  595. package/lib/mol-gl/shader/background.vert.js +11 -11
  596. package/lib/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
  597. package/lib/mol-gl/shader/bloom/blur.frag.d.ts +1 -0
  598. package/lib/mol-gl/shader/bloom/blur.frag.js +29 -0
  599. package/lib/mol-gl/shader/bloom/composite.frag.d.ts +1 -0
  600. package/lib/mol-gl/shader/bloom/composite.frag.js +34 -0
  601. package/lib/mol-gl/shader/bloom/luminosity.frag.d.ts +1 -0
  602. package/lib/mol-gl/shader/bloom/luminosity.frag.js +53 -0
  603. package/lib/mol-gl/shader/cas.frag.js +144 -144
  604. package/lib/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
  605. package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
  606. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +2 -2
  607. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +78 -70
  608. package/lib/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
  609. package/lib/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
  610. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  611. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -112
  612. package/lib/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
  613. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
  614. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  615. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -123
  616. package/lib/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
  617. package/lib/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
  618. package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
  619. package/lib/mol-gl/shader/chunks/check-transparency.glsl.d.ts +1 -0
  620. package/lib/mol-gl/shader/chunks/check-transparency.glsl.js +17 -0
  621. package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
  622. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
  623. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  624. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -51
  625. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  626. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -92
  627. package/lib/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
  628. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  629. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -149
  630. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
  631. package/lib/mol-gl/shader/chunks/common.glsl.js +234 -234
  632. package/lib/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
  633. package/lib/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
  634. package/lib/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
  635. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
  636. package/lib/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
  637. package/lib/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
  638. package/lib/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
  639. package/lib/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
  640. package/lib/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
  641. package/lib/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
  642. package/lib/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
  643. package/lib/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
  644. package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
  645. package/lib/mol-gl/shader/compose.frag.js +12 -12
  646. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
  647. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
  648. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
  649. package/lib/mol-gl/shader/copy.frag.js +11 -11
  650. package/lib/mol-gl/shader/cylinders.frag.d.ts +2 -2
  651. package/lib/mol-gl/shader/cylinders.frag.js +267 -264
  652. package/lib/mol-gl/shader/cylinders.vert.js +89 -89
  653. package/lib/mol-gl/shader/depth-merge.frag.js +23 -23
  654. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  655. package/lib/mol-gl/shader/direct-volume.frag.js +362 -356
  656. package/lib/mol-gl/shader/direct-volume.vert.js +41 -41
  657. package/lib/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
  658. package/lib/mol-gl/shader/evaluate-wboit.frag.js +17 -17
  659. package/lib/mol-gl/shader/fxaa.frag.js +228 -228
  660. package/lib/mol-gl/shader/gaussian-density.frag.js +49 -49
  661. package/lib/mol-gl/shader/gaussian-density.vert.js +27 -27
  662. package/lib/mol-gl/shader/hi-z.frag.js +18 -18
  663. package/lib/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
  664. package/lib/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
  665. package/lib/mol-gl/shader/image.frag.d.ts +2 -2
  666. package/lib/mol-gl/shader/image.frag.js +170 -161
  667. package/lib/mol-gl/shader/image.vert.js +21 -21
  668. package/lib/mol-gl/shader/lines.frag.d.ts +2 -2
  669. package/lib/mol-gl/shader/lines.frag.js +43 -40
  670. package/lib/mol-gl/shader/lines.vert.js +117 -117
  671. package/lib/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
  672. package/lib/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
  673. package/lib/mol-gl/shader/marking/edge.frag.js +28 -28
  674. package/lib/mol-gl/shader/marking/overlay.frag.js +26 -26
  675. package/lib/mol-gl/shader/mesh.frag.d.ts +2 -2
  676. package/lib/mol-gl/shader/mesh.frag.js +66 -63
  677. package/lib/mol-gl/shader/mesh.vert.js +49 -49
  678. package/lib/mol-gl/shader/outlines.frag.js +95 -95
  679. package/lib/mol-gl/shader/points.frag.d.ts +2 -2
  680. package/lib/mol-gl/shader/points.frag.js +60 -56
  681. package/lib/mol-gl/shader/points.vert.js +38 -38
  682. package/lib/mol-gl/shader/postprocessing.frag.js +150 -150
  683. package/lib/mol-gl/shader/quad.vert.js +10 -10
  684. package/lib/mol-gl/shader/shadows.frag.js +123 -123
  685. package/lib/mol-gl/shader/smaa/blend.frag.js +56 -56
  686. package/lib/mol-gl/shader/smaa/blend.vert.js +25 -25
  687. package/lib/mol-gl/shader/smaa/edges.frag.js +66 -66
  688. package/lib/mol-gl/shader/smaa/edges.vert.js +26 -26
  689. package/lib/mol-gl/shader/smaa/weights.frag.js +206 -206
  690. package/lib/mol-gl/shader/smaa/weights.vert.js +32 -32
  691. package/lib/mol-gl/shader/spheres.frag.d.ts +2 -2
  692. package/lib/mol-gl/shader/spheres.frag.js +149 -143
  693. package/lib/mol-gl/shader/spheres.vert.js +132 -132
  694. package/lib/mol-gl/shader/ssao-blur.frag.d.ts +3 -2
  695. package/lib/mol-gl/shader/ssao-blur.frag.js +99 -100
  696. package/lib/mol-gl/shader/ssao.frag.d.ts +3 -2
  697. package/lib/mol-gl/shader/ssao.frag.js +213 -174
  698. package/lib/mol-gl/shader/text.frag.d.ts +2 -2
  699. package/lib/mol-gl/shader/text.frag.js +86 -84
  700. package/lib/mol-gl/shader/text.vert.js +85 -85
  701. package/lib/mol-gl/shader/util/grid3d-template.frag.js +46 -46
  702. package/lib/mol-gl/shader-code.d.ts +1 -1
  703. package/lib/mol-gl/shader-code.js +24 -18
  704. package/lib/mol-gl/webgl/compat.js +12 -12
  705. package/lib/mol-gl/webgl/render-item.d.ts +3 -2
  706. package/lib/mol-gl/webgl/render-item.js +1 -1
  707. package/lib/mol-io/common/binary-cif/array-encoder.d.ts +1 -1
  708. package/lib/mol-io/common/binary-cif/array-encoder.js +5 -2
  709. package/lib/mol-io/reader/cif/schema/bird.d.ts +1 -1
  710. package/lib/mol-io/reader/cif/schema/bird.js +1 -1
  711. package/lib/mol-io/reader/cif/schema/ccd-extras.d.ts +4 -4
  712. package/lib/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  713. package/lib/mol-io/reader/cif/schema/ccd.js +1 -1
  714. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +1 -1
  715. package/lib/mol-io/reader/cif/schema/mmcif.js +1 -1
  716. package/lib/mol-io/reader/cif.d.ts +1 -1
  717. package/lib/mol-io/writer/cif/encoder/binary.d.ts +1 -1
  718. package/lib/mol-io/writer/cif/encoder/binary.js +10 -2
  719. package/lib/mol-math/linear-algebra/3d/mat3.d.ts +3 -1
  720. package/lib/mol-math/linear-algebra/3d/mat3.js +8 -1
  721. package/lib/mol-math/linear-algebra/3d/vec3.d.ts +6 -0
  722. package/lib/mol-math/linear-algebra/3d/vec3.js +20 -0
  723. package/lib/mol-model/structure/model/types/saccharides.js +1 -1
  724. package/lib/mol-model/structure/structure/properties.d.ts +2 -2
  725. package/lib/mol-model/structure/structure/unit/bonds/data.d.ts +9 -6
  726. package/lib/mol-model/structure/structure/unit/bonds/data.js +1 -1
  727. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.d.ts +1 -1
  728. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +7 -4
  729. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.d.ts +1 -1
  730. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +10 -6
  731. package/lib/mol-model/structure/structure/unit.d.ts +2 -2
  732. package/lib/mol-model/structure/structure/unit.js +5 -2
  733. package/lib/mol-model-formats/shape/ply.d.ts +2 -0
  734. package/lib/mol-model-formats/structure/basic/schema.d.ts +118 -118
  735. package/lib/mol-model-formats/structure/common/component.d.ts +2 -2
  736. package/lib/mol-model-formats/structure/property/bonds/index-pair.d.ts +4 -1
  737. package/lib/mol-model-formats/structure/property/bonds/index-pair.js +6 -3
  738. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  739. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  740. package/lib/mol-model-props/computed/representations/interactions.d.ts +3 -0
  741. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  742. package/lib/mol-plugin/behavior/behavior.d.ts +6 -6
  743. package/lib/mol-plugin/behavior/dynamic/camera.d.ts +3 -3
  744. package/lib/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.d.ts +1 -1
  745. package/lib/mol-plugin/behavior/dynamic/custom-props/computed/interactions.d.ts +1 -1
  746. package/lib/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.d.ts +1 -1
  747. package/lib/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.d.ts +1 -1
  748. package/lib/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.d.ts +1 -1
  749. package/lib/mol-plugin/behavior/dynamic/custom-props/sequence/sifts-mapping.d.ts +1 -1
  750. package/lib/mol-plugin/behavior/dynamic/custom-props/structure-info.d.ts +1 -1
  751. package/lib/mol-plugin/behavior/dynamic/representation.d.ts +4 -4
  752. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -1
  753. package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +2 -2
  754. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -2
  755. package/lib/mol-plugin/commands.d.ts +1 -208
  756. package/lib/mol-plugin/config.d.ts +5 -0
  757. package/lib/mol-plugin/context.d.ts +2 -2
  758. package/lib/mol-plugin/state.d.ts +6 -6
  759. package/lib/mol-plugin/version.js +2 -2
  760. package/lib/mol-plugin-state/actions/structure.d.ts +3 -3
  761. package/lib/mol-plugin-state/actions/structure.js +3 -5
  762. package/lib/mol-plugin-state/actions/volume.d.ts +1 -1
  763. package/lib/mol-plugin-state/builder/data.d.ts +4 -4
  764. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +27 -27
  765. package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +5 -5
  766. package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +42 -42
  767. package/lib/mol-plugin-state/builder/structure/representation.d.ts +4 -4
  768. package/lib/mol-plugin-state/builder/structure.d.ts +7 -7
  769. package/lib/mol-plugin-state/formats/coordinates.d.ts +8 -8
  770. package/lib/mol-plugin-state/formats/shape.d.ts +8 -8
  771. package/lib/mol-plugin-state/formats/topology.d.ts +12 -12
  772. package/lib/mol-plugin-state/formats/volume.d.ts +33 -33
  773. package/lib/mol-plugin-state/helpers/structure-emissive.d.ts +12 -0
  774. package/lib/mol-plugin-state/helpers/structure-emissive.js +64 -0
  775. package/lib/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  776. package/lib/mol-plugin-state/manager/structure/component.d.ts +3 -1
  777. package/lib/mol-plugin-state/manager/structure/component.js +9 -1
  778. package/lib/mol-plugin-state/manager/structure/measurement.d.ts +341 -9
  779. package/lib/mol-plugin-state/manager/structure/measurement.js +32 -19
  780. package/lib/mol-plugin-state/manager/structure/selection.d.ts +1 -1
  781. package/lib/mol-plugin-state/manager/volume/hierarchy.d.ts +1 -1
  782. package/lib/mol-plugin-state/objects.d.ts +32 -32
  783. package/lib/mol-plugin-state/transforms/representation.d.ts +33 -8
  784. package/lib/mol-plugin-state/transforms/representation.js +120 -5
  785. package/lib/mol-plugin-state/transforms/shape.d.ts +1 -1
  786. package/lib/mol-plugin-state/transforms/volume.d.ts +16 -8
  787. package/lib/mol-plugin-state/transforms/volume.js +51 -2
  788. package/lib/mol-plugin-ui/skin/base/base.scss +37 -37
  789. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  790. package/lib/mol-plugin-ui/skin/base/components/controls.scss +445 -445
  791. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  792. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  793. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  794. package/lib/mol-plugin-ui/skin/base/components/misc.scss +663 -663
  795. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  796. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  797. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  798. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  799. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  800. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +194 -194
  801. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  802. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  803. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  804. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  805. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  806. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  807. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  808. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  809. package/lib/mol-plugin-ui/skin/base/variables.scss +88 -88
  810. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  811. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  812. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  813. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  814. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  815. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  816. package/lib/mol-plugin-ui/state/apply-action.d.ts +2 -2
  817. package/lib/mol-plugin-ui/state/update-transform.d.ts +3 -3
  818. package/lib/mol-repr/representation.d.ts +6 -2
  819. package/lib/mol-repr/representation.js +12 -2
  820. package/lib/mol-repr/shape/loci/angle.d.ts +1 -0
  821. package/lib/mol-repr/shape/loci/common.d.ts +1 -0
  822. package/lib/mol-repr/shape/loci/dihedral.d.ts +1 -0
  823. package/lib/mol-repr/shape/loci/distance.d.ts +1 -0
  824. package/lib/mol-repr/shape/loci/label.d.ts +1 -0
  825. package/lib/mol-repr/shape/loci/orientation.d.ts +1 -0
  826. package/lib/mol-repr/shape/loci/plane.d.ts +1 -0
  827. package/lib/mol-repr/shape/model/unitcell.d.ts +1 -0
  828. package/lib/mol-repr/structure/complex-representation.d.ts +1 -1
  829. package/lib/mol-repr/structure/complex-representation.js +7 -1
  830. package/lib/mol-repr/structure/complex-visual.d.ts +8 -1
  831. package/lib/mol-repr/structure/complex-visual.js +5 -1
  832. package/lib/mol-repr/structure/params.d.ts +8 -0
  833. package/lib/mol-repr/structure/registry.d.ts +14 -0
  834. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
  835. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  836. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  837. package/lib/mol-repr/structure/representation/cartoon.d.ts +3 -0
  838. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  839. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  840. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
  841. package/lib/mol-repr/structure/representation/label.d.ts +3 -0
  842. package/lib/mol-repr/structure/representation/line.d.ts +3 -0
  843. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  844. package/lib/mol-repr/structure/representation/orientation.d.ts +3 -0
  845. package/lib/mol-repr/structure/representation/point.d.ts +3 -0
  846. package/lib/mol-repr/structure/representation/putty.d.ts +3 -0
  847. package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -0
  848. package/lib/mol-repr/structure/units-representation.d.ts +1 -1
  849. package/lib/mol-repr/structure/units-representation.js +9 -3
  850. package/lib/mol-repr/structure/units-visual.d.ts +9 -1
  851. package/lib/mol-repr/structure/units-visual.js +5 -1
  852. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  853. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
  854. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  855. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
  856. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  857. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  858. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  859. package/lib/mol-repr/structure/visual/element-cross.d.ts +1 -0
  860. package/lib/mol-repr/structure/visual/element-point.d.ts +1 -0
  861. package/lib/mol-repr/structure/visual/element-sphere.d.ts +4 -0
  862. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  863. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
  864. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  865. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +1 -1
  866. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
  867. package/lib/mol-repr/structure/visual/label-text.d.ts +1 -0
  868. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  869. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
  870. package/lib/mol-repr/structure/visual/nucleotide-atomic-bond.d.ts +2 -0
  871. package/lib/mol-repr/structure/visual/nucleotide-atomic-element.d.ts +2 -0
  872. package/lib/mol-repr/structure/visual/nucleotide-atomic-ring-fill.d.ts +1 -0
  873. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  874. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  875. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  876. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  877. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  878. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  879. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  880. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  881. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  882. package/lib/mol-repr/visual.d.ts +6 -1
  883. package/lib/mol-repr/visual.js +57 -3
  884. package/lib/mol-repr/volume/direct-volume.d.ts +3 -0
  885. package/lib/mol-repr/volume/isosurface.d.ts +6 -0
  886. package/lib/mol-repr/volume/registry.d.ts +4 -0
  887. package/lib/mol-repr/volume/representation.d.ts +2 -1
  888. package/lib/mol-repr/volume/representation.js +9 -2
  889. package/lib/mol-repr/volume/segment.d.ts +5 -0
  890. package/lib/mol-repr/volume/slice.d.ts +3 -0
  891. package/lib/mol-script/language/symbol-table/core.d.ts +3 -3
  892. package/lib/mol-state/tree/immutable.d.ts +1 -1
  893. package/lib/mol-state/tree/transient.d.ts +2 -2
  894. package/lib/mol-theme/color/external-volume.d.ts +3 -1
  895. package/lib/mol-theme/color/external-volume.js +8 -2
  896. package/lib/mol-theme/color.d.ts +1 -0
  897. package/lib/mol-theme/emissive.d.ts +40 -0
  898. package/lib/mol-theme/emissive.js +134 -0
  899. package/lib/mol-theme/substance.d.ts +1 -1
  900. package/lib/mol-theme/substance.js +2 -2
  901. package/lib/mol-theme/transparency.d.ts +0 -1
  902. package/lib/mol-util/input/input-observer.js +2 -0
  903. package/lib/mol-util/set.d.ts +1 -1
  904. package/lib/mol-util/set.js +17 -1
  905. package/lib/servers/common/swagger-ui/indexTemplate.js +66 -66
  906. package/lib/servers/volume/config.js +5 -5
  907. package/package.json +195 -193
@@ -1,145 +1,145 @@
1
- export const cas_frag = `
2
- precision mediump float;
3
- precision mediump sampler2D;
4
-
5
- uniform sampler2D tColor;
6
- uniform vec2 uTexSizeInv;
7
-
8
- uniform float uSharpness;
9
-
10
- // adapted from https://www.shadertoy.com/view/stXSWB
11
-
12
- /*
13
- * FidelityFX Super Resolution scales up a low resolution
14
- * image, while adding fine detail.
15
- *
16
- * MIT Open License
17
- *
18
- * https://gpuopen.com/fsr
19
- *
20
- * Left: FSR processed
21
- * Right: Original texture, bilinear interpolation
22
- *
23
- * Mouse at top: Sharpness 0 stops (maximum)
24
- * Mouse at bottom: Sharpness 2 stops (minimum)
25
- *
26
- * It works in two passes-
27
- * EASU upsamples the image with a clamped Lanczos kernel.
28
- * RCAS sharpens the image at the target resolution.
29
- *
30
- * I needed to make a few changes to improve readability and
31
- * WebGL compatibility in an algorithm I don't fully understand.
32
- * Expect bugs.
33
- *
34
- * Shader not currently running for WebGL1 targets (eg. mobile Safari)
35
- *
36
- * There is kind of no point to using FSR in Shadertoy, as it renders buffers
37
- * at full target resolution. But this might be useful for WebGL based demos
38
- * running smaller-than-target render buffers.
39
- *
40
- * For sharpening with a full resolution render buffer,
41
- * FidelityFX CAS is a better option.
42
- * https://www.shadertoy.com/view/ftsXzM
43
- *
44
- * For readability and compatibility, these optimisations have been removed:
45
- * * Fast approximate inverse and inversesqrt
46
- * * textureGather fetches (not WebGL compatible)
47
- * * Multiplying by reciprocal instead of division
48
- *
49
- * Apologies to AMD for the numerous slowdowns and errors I have introduced.
50
- *
51
- */
52
-
53
- /***** RCAS *****/
54
- #define FSR_RCAS_LIMIT (0.25-(1.0/16.0))
55
-
56
- // Input callback prototypes that need to be implemented by calling shader
57
- vec4 FsrRcasLoadF(vec2 p);
58
- //------------------------------------------------------------------------------------------------------------------------------
59
- void FsrRcasCon(
60
- out float con,
61
- // The scale is {0.0 := maximum, to N>0, where N is the number of stops (halving) of the reduction of sharpness}.
62
- float sharpness
63
- ) {
64
- // Transform from stops to linear value.
65
- con = exp2(-sharpness);
66
- }
67
-
68
- vec3 FsrRcasF(
69
- vec2 ip, // Integer pixel position in output.
70
- float con
71
- ) {
72
- // Constant generated by RcasSetup().
73
- // Algorithm uses minimal 3x3 pixel neighborhood.
74
- // b
75
- // d e f
76
- // h
77
- vec2 sp = vec2(ip);
78
- vec3 b = FsrRcasLoadF(sp + vec2( 0,-1)).rgb;
79
- vec3 d = FsrRcasLoadF(sp + vec2(-1, 0)).rgb;
80
- vec3 e = FsrRcasLoadF(sp).rgb;
81
- vec3 f = FsrRcasLoadF(sp + vec2( 1, 0)).rgb;
82
- vec3 h = FsrRcasLoadF(sp + vec2( 0, 1)).rgb;
83
-
84
- // Luma times 2.
85
- float bL = b.g + .5 * (b.b + b.r);
86
- float dL = d.g + .5 * (d.b + d.r);
87
- float eL = e.g + .5 * (e.b + e.r);
88
- float fL = f.g + .5 * (f.b + f.r);
89
- float hL = h.g + .5 * (h.b + h.r);
90
-
91
- // Noise detection.
92
- #ifdef dDenoise
93
- float nz = .25 * (bL + dL + fL + hL) - eL;
94
- nz=clamp(
95
- abs(nz)
96
- /(
97
- max(max(bL,dL),max(eL,max(fL,hL)))
98
- -min(min(bL,dL),min(eL,min(fL,hL)))
99
- ),
100
- 0., 1.
101
- );
102
- nz=1.-.5*nz;
103
- #endif
104
-
105
- // Min and max of ring.
106
- vec3 mn4 = min(b, min(f, h));
107
- vec3 mx4 = max(b, max(f, h));
108
-
109
- // Immediate constants for peak range.
110
- vec2 peakC = vec2(1., -4.);
111
-
112
- // Limiters, these need to be high precision RCPs.
113
- vec3 hitMin = mn4 / (4. * mx4);
114
- vec3 hitMax = (peakC.x - mx4) / (4.* mn4 + peakC.y);
115
- vec3 lobeRGB = max(-hitMin, hitMax);
116
- float lobe = max(
117
- -FSR_RCAS_LIMIT,
118
- min(max(lobeRGB.r, max(lobeRGB.g, lobeRGB.b)), 0.)
119
- )*con;
120
-
121
- // Apply noise removal.
122
- #ifdef dDenoise
123
- lobe *= nz;
124
- #endif
125
-
126
- // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes.
127
- return (lobe * (b + d + h + f) + e) / (4. * lobe + 1.);
128
- }
129
-
130
-
131
- vec4 FsrRcasLoadF(vec2 p) {
132
- return texture2D(tColor, p * uTexSizeInv);
133
- }
134
-
135
- void main() {
136
- // Set up constants
137
- float con;
138
- FsrRcasCon(con, uSharpness);
139
-
140
- // Perform RCAS pass
141
- vec3 col = FsrRcasF(gl_FragCoord.xy, con);
142
-
143
- gl_FragColor = vec4(col, FsrRcasLoadF(gl_FragCoord.xy).a);
144
- }
1
+ export const cas_frag = `
2
+ precision mediump float;
3
+ precision mediump sampler2D;
4
+
5
+ uniform sampler2D tColor;
6
+ uniform vec2 uTexSizeInv;
7
+
8
+ uniform float uSharpness;
9
+
10
+ // adapted from https://www.shadertoy.com/view/stXSWB
11
+
12
+ /*
13
+ * FidelityFX Super Resolution scales up a low resolution
14
+ * image, while adding fine detail.
15
+ *
16
+ * MIT Open License
17
+ *
18
+ * https://gpuopen.com/fsr
19
+ *
20
+ * Left: FSR processed
21
+ * Right: Original texture, bilinear interpolation
22
+ *
23
+ * Mouse at top: Sharpness 0 stops (maximum)
24
+ * Mouse at bottom: Sharpness 2 stops (minimum)
25
+ *
26
+ * It works in two passes-
27
+ * EASU upsamples the image with a clamped Lanczos kernel.
28
+ * RCAS sharpens the image at the target resolution.
29
+ *
30
+ * I needed to make a few changes to improve readability and
31
+ * WebGL compatibility in an algorithm I don't fully understand.
32
+ * Expect bugs.
33
+ *
34
+ * Shader not currently running for WebGL1 targets (eg. mobile Safari)
35
+ *
36
+ * There is kind of no point to using FSR in Shadertoy, as it renders buffers
37
+ * at full target resolution. But this might be useful for WebGL based demos
38
+ * running smaller-than-target render buffers.
39
+ *
40
+ * For sharpening with a full resolution render buffer,
41
+ * FidelityFX CAS is a better option.
42
+ * https://www.shadertoy.com/view/ftsXzM
43
+ *
44
+ * For readability and compatibility, these optimisations have been removed:
45
+ * * Fast approximate inverse and inversesqrt
46
+ * * textureGather fetches (not WebGL compatible)
47
+ * * Multiplying by reciprocal instead of division
48
+ *
49
+ * Apologies to AMD for the numerous slowdowns and errors I have introduced.
50
+ *
51
+ */
52
+
53
+ /***** RCAS *****/
54
+ #define FSR_RCAS_LIMIT (0.25-(1.0/16.0))
55
+
56
+ // Input callback prototypes that need to be implemented by calling shader
57
+ vec4 FsrRcasLoadF(vec2 p);
58
+ //------------------------------------------------------------------------------------------------------------------------------
59
+ void FsrRcasCon(
60
+ out float con,
61
+ // The scale is {0.0 := maximum, to N>0, where N is the number of stops (halving) of the reduction of sharpness}.
62
+ float sharpness
63
+ ) {
64
+ // Transform from stops to linear value.
65
+ con = exp2(-sharpness);
66
+ }
67
+
68
+ vec3 FsrRcasF(
69
+ vec2 ip, // Integer pixel position in output.
70
+ float con
71
+ ) {
72
+ // Constant generated by RcasSetup().
73
+ // Algorithm uses minimal 3x3 pixel neighborhood.
74
+ // b
75
+ // d e f
76
+ // h
77
+ vec2 sp = vec2(ip);
78
+ vec3 b = FsrRcasLoadF(sp + vec2( 0,-1)).rgb;
79
+ vec3 d = FsrRcasLoadF(sp + vec2(-1, 0)).rgb;
80
+ vec3 e = FsrRcasLoadF(sp).rgb;
81
+ vec3 f = FsrRcasLoadF(sp + vec2( 1, 0)).rgb;
82
+ vec3 h = FsrRcasLoadF(sp + vec2( 0, 1)).rgb;
83
+
84
+ // Luma times 2.
85
+ float bL = b.g + .5 * (b.b + b.r);
86
+ float dL = d.g + .5 * (d.b + d.r);
87
+ float eL = e.g + .5 * (e.b + e.r);
88
+ float fL = f.g + .5 * (f.b + f.r);
89
+ float hL = h.g + .5 * (h.b + h.r);
90
+
91
+ // Noise detection.
92
+ #ifdef dDenoise
93
+ float nz = .25 * (bL + dL + fL + hL) - eL;
94
+ nz=clamp(
95
+ abs(nz)
96
+ /(
97
+ max(max(bL,dL),max(eL,max(fL,hL)))
98
+ -min(min(bL,dL),min(eL,min(fL,hL)))
99
+ ),
100
+ 0., 1.
101
+ );
102
+ nz=1.-.5*nz;
103
+ #endif
104
+
105
+ // Min and max of ring.
106
+ vec3 mn4 = min(b, min(f, h));
107
+ vec3 mx4 = max(b, max(f, h));
108
+
109
+ // Immediate constants for peak range.
110
+ vec2 peakC = vec2(1., -4.);
111
+
112
+ // Limiters, these need to be high precision RCPs.
113
+ vec3 hitMin = mn4 / (4. * mx4);
114
+ vec3 hitMax = (peakC.x - mx4) / (4.* mn4 + peakC.y);
115
+ vec3 lobeRGB = max(-hitMin, hitMax);
116
+ float lobe = max(
117
+ -FSR_RCAS_LIMIT,
118
+ min(max(lobeRGB.r, max(lobeRGB.g, lobeRGB.b)), 0.)
119
+ )*con;
120
+
121
+ // Apply noise removal.
122
+ #ifdef dDenoise
123
+ lobe *= nz;
124
+ #endif
125
+
126
+ // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes.
127
+ return (lobe * (b + d + h + f) + e) / (4. * lobe + 1.);
128
+ }
129
+
130
+
131
+ vec4 FsrRcasLoadF(vec2 p) {
132
+ return texture2D(tColor, p * uTexSizeInv);
133
+ }
134
+
135
+ void main() {
136
+ // Set up constants
137
+ float con;
138
+ FsrRcasCon(con, uSharpness);
139
+
140
+ // Perform RCAS pass
141
+ vec3 col = FsrRcasF(gl_FragCoord.xy, con);
142
+
143
+ gl_FragColor = vec4(col, FsrRcasLoadF(gl_FragCoord.xy).a);
144
+ }
145
145
  `;
@@ -1,32 +1,32 @@
1
- export const apply_fog = `
2
- float preFogAlpha = gl_FragColor.a;
3
- if (uFog) {
4
- float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);
5
- float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));
6
- float fogAlpha = (1.0 - fogFactor) * gl_FragColor.a;
7
- if (!uTransparentBackground) {
8
- if (gl_FragColor.a < 1.0) {
9
- // transparent objects are blended with background color
10
- gl_FragColor.a = fogAlpha;
11
- } else {
12
- // mix opaque objects with background color
13
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uFogColor, fogFactor);
14
- }
15
- } else {
16
- #if defined(dRenderVariant_colorDpoit)
17
- if (gl_FragColor.a < 1.0) {
18
- // transparent objects are blended with background color
19
- gl_FragColor.a = fogAlpha;
20
- } else {
21
- // opaque objects need to be pre-multiplied alpha
22
- gl_FragColor.rgb *= fogAlpha;
23
- gl_FragColor.a = fogAlpha;
24
- }
25
- #else
26
- // pre-multiplied alpha expected for transparent background
27
- gl_FragColor.rgb *= fogAlpha;
28
- gl_FragColor.a = fogAlpha;
29
- #endif
30
- }
31
- }
1
+ export const apply_fog = `
2
+ float preFogAlpha = gl_FragColor.a;
3
+ if (uFog) {
4
+ float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);
5
+ float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));
6
+ float fogAlpha = (1.0 - fogFactor) * gl_FragColor.a;
7
+ if (!uTransparentBackground) {
8
+ if (gl_FragColor.a < 1.0) {
9
+ // transparent objects are blended with background color
10
+ gl_FragColor.a = fogAlpha;
11
+ } else {
12
+ // mix opaque objects with background color
13
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uFogColor, fogFactor);
14
+ }
15
+ } else {
16
+ #if defined(dRenderVariant_colorDpoit)
17
+ if (gl_FragColor.a < 1.0) {
18
+ // transparent objects are blended with background color
19
+ gl_FragColor.a = fogAlpha;
20
+ } else {
21
+ // opaque objects need to be pre-multiplied alpha
22
+ gl_FragColor.rgb *= fogAlpha;
23
+ gl_FragColor.a = fogAlpha;
24
+ }
25
+ #else
26
+ // pre-multiplied alpha expected for transparent background
27
+ gl_FragColor.rgb *= fogAlpha;
28
+ gl_FragColor.a = fogAlpha;
29
+ #endif
30
+ }
31
+ }
32
32
  `;
@@ -1,13 +1,13 @@
1
- export const apply_interior_color = `
2
- if (interior) {
3
- if (uInteriorColorFlag) {
4
- gl_FragColor.rgb = uInteriorColor;
5
- } else {
6
- gl_FragColor.rgb *= 1.0 - uInteriorDarkening;
7
- }
8
-
9
- #ifdef dTransparentBackfaces_opaque
10
- gl_FragColor.a = 1.0;
11
- #endif
12
- }
1
+ export const apply_interior_color = `
2
+ if (interior) {
3
+ if (uInteriorColorFlag) {
4
+ gl_FragColor.rgb = uInteriorColor;
5
+ } else {
6
+ gl_FragColor.rgb *= 1.0 - uInteriorDarkening;
7
+ }
8
+
9
+ #ifdef dTransparentBackfaces_opaque
10
+ gl_FragColor.a = 1.0;
11
+ #endif
12
+ }
13
13
  `;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Copyright (c) 2017-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  *
6
6
  * adapted from three.js (https://github.com/mrdoob/three.js/)
7
7
  * which under the MIT License, Copyright © 2010-2021 three.js authors
8
8
  */
9
- export declare const apply_light_color = "\n#ifdef dIgnoreLight\n #ifdef bumpEnabled\n if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {\n material.rgb += fbm(vModelPosition * uBumpFrequency) * uBumpAmplitude * bumpiness;\n material.rgb -= 0.5 * uBumpAmplitude * bumpiness;\n }\n #endif\n\n gl_FragColor = material;\n#else\n #ifdef bumpEnabled\n if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {\n normal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);\n }\n #endif\n\n vec4 color = material;\n\n ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\n PhysicalMaterial physicalMaterial;\n physicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\n #ifdef enabledFragDepth\n physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);\n #else\n vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));\n float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);\n physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);\n #endif\n physicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\n physicalMaterial.specularF90 = 1.0;\n\n GeometricContext geometry;\n geometry.position = -vViewPosition;\n geometry.normal = normal;\n geometry.viewDir = normalize(vViewPosition);\n\n IncidentLight directLight;\n #pragma unroll_loop_start\n for (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n }\n #pragma unroll_loop_end\n\n vec3 irradiance = uAmbientColor * PI; // * PI for punctual light\n RE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n // indirect specular only metals\n vec3 radiance = uAmbientColor * metalness;\n vec3 iblIrradiance = uAmbientColor * metalness;\n vec3 clearcoatRadiance = vec3(0.0);\n RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n outgoingLight = clamp(outgoingLight, 0.01, 0.99); // prevents black artifacts on specular highlight with transparent background\n\n gl_FragColor = vec4(outgoingLight, color.a);\n#endif\n\n#if defined(dXrayShaded_on)\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#elif defined(dXrayShaded_inverted)\n gl_FragColor.a *= pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n\ngl_FragColor.rgb *= uExposure;\n";
9
+ export declare const apply_light_color = "\n#if defined(dIgnoreLight)\n #ifdef bumpEnabled\n if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {\n material.rgb += fbm(vModelPosition * uBumpFrequency) * uBumpAmplitude * bumpiness;\n material.rgb -= 0.5 * uBumpAmplitude * bumpiness;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n material.rgb += material.rgb * emissive;\n #endif\n\n gl_FragColor = material;\n#else\n #ifdef bumpEnabled\n if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {\n normal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);\n }\n #endif\n\n vec4 color = material;\n\n ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\n PhysicalMaterial physicalMaterial;\n physicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\n #ifdef enabledFragDepth\n physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);\n #else\n vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));\n float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);\n physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);\n #endif\n physicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\n physicalMaterial.specularF90 = 1.0;\n\n GeometricContext geometry;\n geometry.position = -vViewPosition;\n geometry.normal = normal;\n geometry.viewDir = normalize(vViewPosition);\n\n IncidentLight directLight;\n #pragma unroll_loop_start\n for (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n }\n #pragma unroll_loop_end\n\n vec3 irradiance = uAmbientColor * PI; // * PI for punctual light\n RE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n // indirect specular only metals\n vec3 radiance = uAmbientColor * metalness;\n vec3 iblIrradiance = uAmbientColor * metalness;\n vec3 clearcoatRadiance = vec3(0.0);\n RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n outgoingLight = clamp(outgoingLight, 0.01, 0.99); // prevents black artifacts on specular highlight with transparent background\n\n #if defined(dRenderVariant_color)\n outgoingLight += color.rgb * emissive;\n #endif\n\n gl_FragColor = vec4(outgoingLight, color.a);\n#endif\n\n#if defined(dXrayShaded_on)\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#elif defined(dXrayShaded_inverted)\n gl_FragColor.a *= pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n\ngl_FragColor.rgb *= uExposure;\n";
@@ -1,78 +1,86 @@
1
1
  /**
2
- * Copyright (c) 2017-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  *
6
6
  * adapted from three.js (https://github.com/mrdoob/three.js/)
7
7
  * which under the MIT License, Copyright © 2010-2021 three.js authors
8
8
  */
9
- export const apply_light_color = `
10
- #ifdef dIgnoreLight
11
- #ifdef bumpEnabled
12
- if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
13
- material.rgb += fbm(vModelPosition * uBumpFrequency) * uBumpAmplitude * bumpiness;
14
- material.rgb -= 0.5 * uBumpAmplitude * bumpiness;
15
- }
16
- #endif
17
-
18
- gl_FragColor = material;
19
- #else
20
- #ifdef bumpEnabled
21
- if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
22
- normal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);
23
- }
24
- #endif
25
-
26
- vec4 color = material;
27
-
28
- ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));
29
-
30
- PhysicalMaterial physicalMaterial;
31
- physicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);
32
- #ifdef enabledFragDepth
33
- physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);
34
- #else
35
- vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));
36
- float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);
37
- physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);
38
- #endif
39
- physicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);
40
- physicalMaterial.specularF90 = 1.0;
41
-
42
- GeometricContext geometry;
43
- geometry.position = -vViewPosition;
44
- geometry.normal = normal;
45
- geometry.viewDir = normalize(vViewPosition);
46
-
47
- IncidentLight directLight;
48
- #pragma unroll_loop_start
49
- for (int i = 0; i < dLightCount; ++i) {
50
- directLight.direction = uLightDirection[i];
51
- directLight.color = uLightColor[i] * PI; // * PI for punctual light
52
- RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);
53
- }
54
- #pragma unroll_loop_end
55
-
56
- vec3 irradiance = uAmbientColor * PI; // * PI for punctual light
57
- RE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);
58
-
59
- // indirect specular only metals
60
- vec3 radiance = uAmbientColor * metalness;
61
- vec3 iblIrradiance = uAmbientColor * metalness;
62
- vec3 clearcoatRadiance = vec3(0.0);
63
- RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);
64
-
65
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;
66
- outgoingLight = clamp(outgoingLight, 0.01, 0.99); // prevents black artifacts on specular highlight with transparent background
67
-
68
- gl_FragColor = vec4(outgoingLight, color.a);
69
- #endif
70
-
71
- #if defined(dXrayShaded_on)
72
- gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
73
- #elif defined(dXrayShaded_inverted)
74
- gl_FragColor.a *= pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
75
- #endif
76
-
77
- gl_FragColor.rgb *= uExposure;
9
+ export const apply_light_color = `
10
+ #if defined(dIgnoreLight)
11
+ #ifdef bumpEnabled
12
+ if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
13
+ material.rgb += fbm(vModelPosition * uBumpFrequency) * uBumpAmplitude * bumpiness;
14
+ material.rgb -= 0.5 * uBumpAmplitude * bumpiness;
15
+ }
16
+ #endif
17
+
18
+ #if defined(dRenderVariant_color)
19
+ material.rgb += material.rgb * emissive;
20
+ #endif
21
+
22
+ gl_FragColor = material;
23
+ #else
24
+ #ifdef bumpEnabled
25
+ if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
26
+ normal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);
27
+ }
28
+ #endif
29
+
30
+ vec4 color = material;
31
+
32
+ ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));
33
+
34
+ PhysicalMaterial physicalMaterial;
35
+ physicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);
36
+ #ifdef enabledFragDepth
37
+ physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);
38
+ #else
39
+ vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));
40
+ float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);
41
+ physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);
42
+ #endif
43
+ physicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);
44
+ physicalMaterial.specularF90 = 1.0;
45
+
46
+ GeometricContext geometry;
47
+ geometry.position = -vViewPosition;
48
+ geometry.normal = normal;
49
+ geometry.viewDir = normalize(vViewPosition);
50
+
51
+ IncidentLight directLight;
52
+ #pragma unroll_loop_start
53
+ for (int i = 0; i < dLightCount; ++i) {
54
+ directLight.direction = uLightDirection[i];
55
+ directLight.color = uLightColor[i] * PI; // * PI for punctual light
56
+ RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);
57
+ }
58
+ #pragma unroll_loop_end
59
+
60
+ vec3 irradiance = uAmbientColor * PI; // * PI for punctual light
61
+ RE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);
62
+
63
+ // indirect specular only metals
64
+ vec3 radiance = uAmbientColor * metalness;
65
+ vec3 iblIrradiance = uAmbientColor * metalness;
66
+ vec3 clearcoatRadiance = vec3(0.0);
67
+ RE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);
68
+
69
+ vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;
70
+ outgoingLight = clamp(outgoingLight, 0.01, 0.99); // prevents black artifacts on specular highlight with transparent background
71
+
72
+ #if defined(dRenderVariant_color)
73
+ outgoingLight += color.rgb * emissive;
74
+ #endif
75
+
76
+ gl_FragColor = vec4(outgoingLight, color.a);
77
+ #endif
78
+
79
+ #if defined(dXrayShaded_on)
80
+ gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
81
+ #elif defined(dXrayShaded_inverted)
82
+ gl_FragColor.a *= pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);
83
+ #endif
84
+
85
+ gl_FragColor.rgb *= uExposure;
78
86
  `;
@@ -1,17 +1,17 @@
1
- export const apply_marker_color = `
2
-
3
- #if defined(dColorMarker)
4
- if (marker > 0.0) {
5
- if ((uMarkerPriority == 1 && marker != 2.0) || (uMarkerPriority != 1 && marker == 1.0)) {
6
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uHighlightColor, uHighlightStrength);
7
- gl_FragColor.a = max(gl_FragColor.a, uHighlightStrength * 0.002); // for direct-volume rendering
8
- } else {
9
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uSelectColor, uSelectStrength);
10
- gl_FragColor.a = max(gl_FragColor.a, uSelectStrength * 0.002); // for direct-volume rendering
11
- }
12
- } else if (uMarkerAverage > 0.0) {
13
- gl_FragColor.rgb = mix(gl_FragColor.rgb, uDimColor, uDimStrength);
14
- gl_FragColor.a = max(gl_FragColor.a, uDimStrength * 0.002); // for direct-volume rendering
15
- }
16
- #endif
1
+ export const apply_marker_color = `
2
+
3
+ #if defined(dColorMarker)
4
+ if (marker > 0.0) {
5
+ if ((uMarkerPriority == 1 && marker != 2.0) || (uMarkerPriority != 1 && marker == 1.0)) {
6
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uHighlightColor, uHighlightStrength);
7
+ gl_FragColor.a = max(gl_FragColor.a, uHighlightStrength * 0.002); // for direct-volume rendering
8
+ } else {
9
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uSelectColor, uSelectStrength);
10
+ gl_FragColor.a = max(gl_FragColor.a, uSelectStrength * 0.002); // for direct-volume rendering
11
+ }
12
+ } else if (uMarkerAverage > 0.0) {
13
+ gl_FragColor.rgb = mix(gl_FragColor.rgb, uDimColor, uDimStrength);
14
+ gl_FragColor.a = max(gl_FragColor.a, uDimStrength * 0.002); // for direct-volume rendering
15
+ }
16
+ #endif
17
17
  `;
@@ -1,9 +1,9 @@
1
- export const assign_clipping_varying = `
2
- #if dClipObjectCount != 0 && defined(dClipping)
3
- #if defined(dClippingType_instance)
4
- vClipping = readFromTexture(tClipping, aInstance, uClippingTexDim).a;
5
- #elif defined(dMarkerType_groupInstance)
6
- vClipping = readFromTexture(tClipping, aInstance * float(uGroupCount) + group, uClippingTexDim).a;
7
- #endif
8
- #endif
1
+ export const assign_clipping_varying = `
2
+ #if dClipObjectCount != 0 && defined(dClipping)
3
+ #if defined(dClippingType_instance)
4
+ vClipping = readFromTexture(tClipping, aInstance, uClippingTexDim).a;
5
+ #elif defined(dMarkerType_groupInstance)
6
+ vClipping = readFromTexture(tClipping, aInstance * float(uGroupCount) + group, uClippingTexDim).a;
7
+ #endif
8
+ #endif
9
9
  `;
@@ -1 +1 @@
1
- export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, group * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, group * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_groupInstance)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_instance)\n vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);\n #elif defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n vOverpaint *= uOverpaintStrength;\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_instance)\n vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);\n #elif defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n vSubstance *= uSubstanceStrength;\n #endif\n#elif defined(dRenderVariant_pick)\n #ifdef requiredDrawBuffers\n vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);\n vInstance = vec4(packIntToRGB(aInstance), 1.0);\n vGroup = vec4(packIntToRGB(group), 1.0);\n #else\n if (uPickType == 1) {\n vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(packIntToRGB(aInstance), 1.0);\n } else {\n vColor = vec4(packIntToRGB(group), 1.0);\n }\n #endif\n#endif\n\n#ifdef dTransparency\n #if defined(dTransparencyType_instance)\n vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n vTransparency *= uTransparencyStrength;\n#endif\n";
1
+ export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, group * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, group * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_groupInstance)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_instance)\n vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);\n #elif defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n vOverpaint *= uOverpaintStrength;\n #endif\n\n #ifdef dEmissive\n #if defined(dEmissiveType_instance)\n vEmissive = readFromTexture(tEmissive, aInstance, uEmissiveTexDim).a;\n #elif defined(dEmissiveType_groupInstance)\n vEmissive = readFromTexture(tEmissive, aInstance * float(uGroupCount) + group, uEmissiveTexDim).a;\n #elif defined(dEmissiveType_vertexInstance)\n vEmissive = readFromTexture(tEmissive, int(aInstance) * uVertexCount + VertexID, uEmissiveTexDim).a;\n #elif defined(dEmissiveType_volumeInstance)\n vec3 egridPos = (uEmissiveGridTransform.w * (vModelPosition - uEmissiveGridTransform.xyz)) / uEmissiveGridDim;\n vEmissive = texture3dFrom2dLinear(tEmissiveGrid, egridPos, uEmissiveGridDim, uEmissiveTexDim).a;\n #endif\n vEmissive *= uEmissiveStrength;\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_instance)\n vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);\n #elif defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n vSubstance *= uSubstanceStrength;\n #endif\n#elif defined(dRenderVariant_emissive)\n #ifdef dEmissive\n #if defined(dEmissiveType_instance)\n vEmissive = readFromTexture(tEmissive, aInstance, uEmissiveTexDim).a;\n #elif defined(dEmissiveType_groupInstance)\n vEmissive = readFromTexture(tEmissive, aInstance * float(uGroupCount) + group, uEmissiveTexDim).a;\n #elif defined(dEmissiveType_vertexInstance)\n vEmissive = readFromTexture(tEmissive, int(aInstance) * uVertexCount + VertexID, uEmissiveTexDim).a;\n #elif defined(dEmissiveType_volumeInstance)\n vec3 egridPos = (uEmissiveGridTransform.w * (vModelPosition - uEmissiveGridTransform.xyz)) / uEmissiveGridDim;\n vEmissive = texture3dFrom2dLinear(tEmissiveGrid, egridPos, uEmissiveGridDim, uEmissiveTexDim).a;\n #endif\n vEmissive *= uEmissiveStrength;\n #endif\n#elif defined(dRenderVariant_pick)\n #ifdef requiredDrawBuffers\n vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);\n vInstance = vec4(packIntToRGB(aInstance), 1.0);\n vGroup = vec4(packIntToRGB(group), 1.0);\n #else\n if (uPickType == 1) {\n vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(packIntToRGB(aInstance), 1.0);\n } else {\n vColor = vec4(packIntToRGB(group), 1.0);\n }\n #endif\n#endif\n\n#ifdef dTransparency\n #if defined(dTransparencyType_instance)\n vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n vTransparency *= uTransparencyStrength;\n#endif\n";