molstar 3.8.2 → 3.10.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 (596) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +202 -202
  3. package/build/viewer/embedded.html +43 -43
  4. package/build/viewer/index.html +109 -106
  5. package/build/viewer/molstar.js +1 -1
  6. package/lib/apps/docking-viewer/index.html +36 -36
  7. package/lib/apps/viewer/app.d.ts +5 -2
  8. package/lib/apps/viewer/app.js +11 -7
  9. package/lib/apps/viewer/embedded.html +43 -43
  10. package/lib/apps/viewer/index.html +109 -106
  11. package/lib/cli/cif2bcif/converter.js +1 -1
  12. package/lib/commonjs/apps/viewer/app.d.ts +5 -2
  13. package/lib/commonjs/apps/viewer/app.js +12 -7
  14. package/lib/commonjs/cli/cif2bcif/converter.js +1 -1
  15. package/lib/commonjs/examples/alpha-orbitals/index.d.ts +1 -1
  16. package/lib/commonjs/examples/alpha-orbitals/index.js +4 -1
  17. package/lib/commonjs/examples/basic-wrapper/custom-theme.js +1 -1
  18. package/lib/commonjs/examples/proteopedia-wrapper/coloring.js +3 -3
  19. package/lib/commonjs/extensions/alpha-orbitals/density.d.ts +1 -1
  20. package/lib/commonjs/extensions/alpha-orbitals/density.js +6 -2
  21. package/lib/commonjs/extensions/alpha-orbitals/orbitals.d.ts +1 -1
  22. package/lib/commonjs/extensions/alpha-orbitals/orbitals.js +6 -3
  23. package/lib/commonjs/extensions/anvil/algorithm.js +1 -1
  24. package/lib/commonjs/extensions/cellpack/color/generate.js +1 -1
  25. package/lib/commonjs/extensions/cellpack/color/provided.js +1 -1
  26. package/lib/commonjs/extensions/cellpack/state.js +1 -1
  27. package/lib/commonjs/extensions/dnatco/confal-pyramids/color.js +1 -1
  28. package/lib/commonjs/extensions/g3d/model.js +1 -1
  29. package/lib/commonjs/extensions/geo-export/ui.js +1 -0
  30. package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
  31. package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
  32. package/lib/commonjs/extensions/mp4-export/ui.js +1 -0
  33. package/lib/commonjs/extensions/pdbe/structure-quality-report/color.js +1 -1
  34. package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.js +4 -4
  35. package/lib/commonjs/extensions/rcsb/validation-report/color/density-fit.js +1 -1
  36. package/lib/commonjs/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
  37. package/lib/commonjs/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
  38. package/lib/commonjs/extensions/rcsb/validation-report/representation.js +2 -2
  39. package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
  40. package/lib/commonjs/mol-canvas3d/controls/trackball.js +7 -7
  41. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +14 -14
  42. package/lib/commonjs/mol-canvas3d/helper/interaction-events.js +5 -5
  43. package/lib/commonjs/mol-canvas3d/passes/draw.js +34 -5
  44. package/lib/commonjs/mol-canvas3d/passes/fxaa.js +5 -0
  45. package/lib/commonjs/mol-canvas3d/passes/marking.js +5 -0
  46. package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +9 -0
  47. package/lib/commonjs/mol-canvas3d/passes/pick.d.ts +18 -5
  48. package/lib/commonjs/mol-canvas3d/passes/pick.js +125 -24
  49. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
  50. package/lib/commonjs/mol-canvas3d/passes/smaa.js +4 -0
  51. package/lib/commonjs/mol-canvas3d/passes/wboit.js +4 -0
  52. package/lib/commonjs/mol-data/db/column.js +5 -5
  53. package/lib/commonjs/mol-data/db/table.js +2 -2
  54. package/lib/commonjs/mol-data/util/array.d.ts +1 -1
  55. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +1 -1
  56. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  57. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +1 -1
  58. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
  59. package/lib/commonjs/mol-gl/compute/grid3d.d.ts +2 -2
  60. package/lib/commonjs/mol-gl/compute/grid3d.js +30 -8
  61. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
  62. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
  63. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
  64. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.js +6 -1
  65. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
  66. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
  67. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
  68. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +10 -10
  69. package/lib/commonjs/mol-gl/renderer.js +77 -32
  70. package/lib/commonjs/mol-gl/scene.js +2 -0
  71. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  72. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  73. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  74. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  75. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  76. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  77. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  78. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  79. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  80. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  81. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  82. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  83. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
  84. package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
  85. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +1 -1
  86. package/lib/commonjs/mol-gl/shader/lines.frag.js +1 -1
  87. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  88. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  89. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +1 -1
  90. package/lib/commonjs/mol-gl/shader/points.frag.js +1 -1
  91. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  92. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  93. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +1 -1
  94. package/lib/commonjs/mol-gl/shader/text.frag.js +1 -1
  95. package/lib/commonjs/mol-gl/shader-code.d.ts +1 -1
  96. package/lib/commonjs/mol-gl/shader-code.js +41 -9
  97. package/lib/commonjs/mol-gl/webgl/compat.d.ts +34 -1
  98. package/lib/commonjs/mol-gl/webgl/compat.js +50 -2
  99. package/lib/commonjs/mol-gl/webgl/context.d.ts +2 -0
  100. package/lib/commonjs/mol-gl/webgl/context.js +3 -0
  101. package/lib/commonjs/mol-gl/webgl/extensions.d.ts +3 -2
  102. package/lib/commonjs/mol-gl/webgl/extensions.js +6 -1
  103. package/lib/commonjs/mol-gl/webgl/timer.d.ts +22 -0
  104. package/lib/commonjs/mol-gl/webgl/timer.js +169 -0
  105. package/lib/commonjs/mol-io/common/binary-cif/array-encoder.js +18 -18
  106. package/lib/commonjs/mol-io/common/binary-cif/decoder.js +16 -16
  107. package/lib/commonjs/mol-io/common/binary-cif/encoding.js +9 -9
  108. package/lib/commonjs/mol-io/reader/cif/binary/field.js +3 -3
  109. package/lib/commonjs/mol-io/reader/cif/data-model.js +14 -14
  110. package/lib/commonjs/mol-io/reader/cif/schema.js +1 -1
  111. package/lib/commonjs/mol-io/reader/cif/text/parser.js +23 -23
  112. package/lib/commonjs/mol-io/reader/common/text/column/fixed.js +1 -1
  113. package/lib/commonjs/mol-io/reader/common/text/column/token.js +1 -1
  114. package/lib/commonjs/mol-io/reader/common/text/number-parser.js +6 -6
  115. package/lib/commonjs/mol-io/reader/csv/parser.js +8 -8
  116. package/lib/commonjs/mol-io/writer/cif/encoder/binary.js +10 -10
  117. package/lib/commonjs/mol-io/writer/cif/encoder/text.js +7 -7
  118. package/lib/commonjs/mol-io/writer/cif/encoder.js +8 -8
  119. package/lib/commonjs/mol-io/writer/mol2/encoder.js +4 -4
  120. package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.js +13 -2
  121. package/lib/commonjs/mol-model/sequence/alignment/sequence.js +3 -3
  122. package/lib/commonjs/mol-model/sequence/sequence.js +9 -9
  123. package/lib/commonjs/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
  124. package/lib/commonjs/mol-model/structure/export/categories/secondary-structure.js +2 -2
  125. package/lib/commonjs/mol-model/structure/export/categories/utils.js +1 -1
  126. package/lib/commonjs/mol-model/structure/model/model.js +2 -2
  127. package/lib/commonjs/mol-model/structure/model/properties/custom/indexed.js +6 -6
  128. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
  129. package/lib/commonjs/mol-model/structure/model/types.js +116 -116
  130. package/lib/commonjs/mol-model/structure/query/context.js +1 -1
  131. package/lib/commonjs/mol-model/structure/query/queries/generators.js +5 -5
  132. package/lib/commonjs/mol-model/structure/query/queries/internal.js +4 -4
  133. package/lib/commonjs/mol-model/structure/query/queries/modifiers.js +4 -4
  134. package/lib/commonjs/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
  135. package/lib/commonjs/mol-model/structure/query/utils/structure-distance.js +9 -9
  136. package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.d.ts +3 -1
  137. package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.js +192 -108
  138. package/lib/commonjs/mol-model/structure/structure/element/loci.js +5 -5
  139. package/lib/commonjs/mol-model/structure/structure/element/stats.js +5 -5
  140. package/lib/commonjs/mol-model/structure/structure/properties.js +5 -5
  141. package/lib/commonjs/mol-model/structure/structure/structure.js +11 -11
  142. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
  143. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
  144. package/lib/commonjs/mol-model/structure/structure/unit/bonds.js +2 -2
  145. package/lib/commonjs/mol-model/structure/structure/unit/resonance.js +1 -1
  146. package/lib/commonjs/mol-model/structure/structure/unit/rings/compute.js +6 -6
  147. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +6 -6
  148. package/lib/commonjs/mol-model/structure/structure/unit.js +16 -16
  149. package/lib/commonjs/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
  150. package/lib/commonjs/mol-model/structure/util.js +4 -4
  151. package/lib/commonjs/mol-model-formats/structure/basic/atomic.js +2 -2
  152. package/lib/commonjs/mol-model-formats/structure/basic/parser.js +4 -4
  153. package/lib/commonjs/mol-model-formats/structure/basic/properties.js +1 -1
  154. package/lib/commonjs/mol-model-formats/structure/basic/sort.js +1 -1
  155. package/lib/commonjs/mol-model-formats/structure/basic/util.js +1 -1
  156. package/lib/commonjs/mol-model-formats/structure/cif-core.js +6 -6
  157. package/lib/commonjs/mol-model-formats/structure/common/entity.js +1 -1
  158. package/lib/commonjs/mol-model-formats/structure/cube.js +1 -1
  159. package/lib/commonjs/mol-model-formats/structure/gro.js +1 -1
  160. package/lib/commonjs/mol-model-formats/structure/mol.js +1 -1
  161. package/lib/commonjs/mol-model-formats/structure/mol2.js +4 -4
  162. package/lib/commonjs/mol-model-formats/structure/prmtop.js +1 -1
  163. package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
  164. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  165. package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
  166. package/lib/commonjs/mol-model-formats/structure/property/secondary-structure.js +8 -8
  167. package/lib/commonjs/mol-model-formats/structure/psf.js +1 -1
  168. package/lib/commonjs/mol-model-formats/structure/top.js +1 -1
  169. package/lib/commonjs/mol-model-formats/structure/xyz.js +1 -1
  170. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
  171. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
  172. package/lib/commonjs/mol-model-props/computed/accessible-surface-area.js +2 -2
  173. package/lib/commonjs/mol-model-props/computed/chemistry/functional-group.js +31 -31
  174. package/lib/commonjs/mol-model-props/computed/chemistry/geometry.js +22 -22
  175. package/lib/commonjs/mol-model-props/computed/chemistry/valence-model.js +32 -32
  176. package/lib/commonjs/mol-model-props/computed/interactions/charged.js +39 -39
  177. package/lib/commonjs/mol-model-props/computed/interactions/common.js +34 -34
  178. package/lib/commonjs/mol-model-props/computed/interactions/contacts-builder.js +1 -1
  179. package/lib/commonjs/mol-model-props/computed/interactions/contacts.js +1 -1
  180. package/lib/commonjs/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
  181. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
  182. package/lib/commonjs/mol-model-props/computed/interactions/hydrophobic.js +9 -9
  183. package/lib/commonjs/mol-model-props/computed/interactions/metal.js +26 -26
  184. package/lib/commonjs/mol-model-props/computed/interactions/refine.js +20 -20
  185. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
  186. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
  187. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
  188. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
  189. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
  190. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
  191. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
  192. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
  193. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp.js +30 -30
  194. package/lib/commonjs/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
  195. package/lib/commonjs/mol-model-props/computed/themes/interaction-type.js +10 -10
  196. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
  197. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
  198. package/lib/commonjs/mol-model-props/sequence/sifts-mapping.js +1 -1
  199. package/lib/commonjs/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
  200. package/lib/commonjs/mol-plugin/animation-loop.d.ts +2 -1
  201. package/lib/commonjs/mol-plugin/animation-loop.js +18 -5
  202. package/lib/commonjs/mol-plugin/behavior/dynamic/camera.js +12 -12
  203. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +7 -7
  204. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  205. package/lib/commonjs/mol-plugin/config.d.ts +3 -0
  206. package/lib/commonjs/mol-plugin/config.js +3 -1
  207. package/lib/commonjs/mol-plugin/context.d.ts +2 -2
  208. package/lib/commonjs/mol-plugin/context.js +3 -0
  209. package/lib/commonjs/mol-plugin/state.d.ts +1 -14
  210. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +12 -11
  211. package/lib/commonjs/mol-plugin-state/formats/volume.js +20 -13
  212. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +5 -5
  213. package/lib/commonjs/mol-plugin-state/transforms/representation.js +2 -2
  214. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -1
  215. package/lib/commonjs/mol-plugin-ui/controls.js +1 -1
  216. package/lib/commonjs/mol-plugin-ui/sequence/polymer.js +1 -1
  217. package/lib/commonjs/mol-plugin-ui/sequence/sequence.js +1 -1
  218. package/lib/commonjs/mol-plugin-ui/state/snapshots.js +1 -0
  219. package/lib/commonjs/mol-plugin-ui/structure/focus.js +1 -1
  220. package/lib/commonjs/mol-plugin-ui/viewport/screenshot.js +1 -0
  221. package/lib/commonjs/mol-plugin-ui/viewport.d.ts +2 -2
  222. package/lib/commonjs/mol-repr/shape/representation.d.ts +1 -1
  223. package/lib/commonjs/mol-repr/shape/representation.js +2 -1
  224. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +1 -1
  225. package/lib/commonjs/mol-repr/structure/complex-visual.js +2 -1
  226. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +1 -1
  227. package/lib/commonjs/mol-repr/structure/units-visual.js +2 -1
  228. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
  229. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
  230. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -15
  231. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +12 -15
  232. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
  233. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  234. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
  235. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
  236. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  237. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
  238. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +2 -2
  239. package/lib/commonjs/mol-repr/structure/visual/util/common.js +3 -3
  240. package/lib/commonjs/mol-repr/structure/visual/util/link.js +30 -30
  241. package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
  242. package/lib/commonjs/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
  243. package/lib/commonjs/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
  244. package/lib/commonjs/mol-repr/structure/visual/util/polymer.js +6 -6
  245. package/lib/commonjs/mol-repr/volume/representation.d.ts +1 -1
  246. package/lib/commonjs/mol-repr/volume/representation.js +2 -1
  247. package/lib/commonjs/mol-script/language/builder.d.ts +1 -0
  248. package/lib/commonjs/mol-script/language/symbol-table/core.d.ts +2 -2
  249. package/lib/commonjs/mol-script/runtime/query/table.js +13 -13
  250. package/lib/commonjs/mol-state/object.d.ts +3 -3
  251. package/lib/commonjs/mol-task/util/user-timing.js +1 -1
  252. package/lib/commonjs/mol-theme/clipping.js +19 -19
  253. package/lib/commonjs/mol-theme/color/atom-id.js +1 -1
  254. package/lib/commonjs/mol-theme/color/carbohydrate-symbol.js +1 -1
  255. package/lib/commonjs/mol-theme/color/chain-id.js +4 -4
  256. package/lib/commonjs/mol-theme/color/element-index.js +1 -1
  257. package/lib/commonjs/mol-theme/color/element-symbol.js +1 -1
  258. package/lib/commonjs/mol-theme/color/entity-id.js +4 -4
  259. package/lib/commonjs/mol-theme/color/entity-source.js +5 -4
  260. package/lib/commonjs/mol-theme/color/hydrophobicity.js +1 -1
  261. package/lib/commonjs/mol-theme/color/illustrative.js +1 -1
  262. package/lib/commonjs/mol-theme/color/model-index.js +1 -1
  263. package/lib/commonjs/mol-theme/color/molecule-type.js +8 -8
  264. package/lib/commonjs/mol-theme/color/occupancy.js +1 -1
  265. package/lib/commonjs/mol-theme/color/operator-hkl.js +1 -1
  266. package/lib/commonjs/mol-theme/color/operator-name.js +1 -1
  267. package/lib/commonjs/mol-theme/color/partial-charge.js +1 -1
  268. package/lib/commonjs/mol-theme/color/polymer-id.js +4 -4
  269. package/lib/commonjs/mol-theme/color/polymer-index.js +1 -1
  270. package/lib/commonjs/mol-theme/color/residue-name.js +1 -1
  271. package/lib/commonjs/mol-theme/color/secondary-structure.js +12 -12
  272. package/lib/commonjs/mol-theme/color/sequence-id.js +7 -7
  273. package/lib/commonjs/mol-theme/color/shape-group.js +1 -1
  274. package/lib/commonjs/mol-theme/color/uncertainty.js +1 -1
  275. package/lib/commonjs/mol-theme/color/uniform.js +1 -1
  276. package/lib/commonjs/mol-theme/color/unit-index.js +1 -1
  277. package/lib/commonjs/mol-theme/color/volume-value.js +1 -1
  278. package/lib/commonjs/mol-theme/label.js +3 -3
  279. package/lib/commonjs/mol-util/binding.js +4 -4
  280. package/lib/commonjs/mol-util/debug.d.ts +6 -1
  281. package/lib/commonjs/mol-util/debug.js +11 -1
  282. package/lib/commonjs/mol-util/input/input-observer.js +20 -20
  283. package/lib/commonjs/mol-util/string-builder.js +1 -1
  284. package/lib/commonjs/servers/model/preprocess/converter.js +1 -1
  285. package/lib/commonjs/servers/model/server/query.js +1 -1
  286. package/lib/commonjs/servers/model/utils/fetch-retry.js +3 -2
  287. package/lib/commonjs/servers/volume/server/algebra/coordinate.js +6 -6
  288. package/lib/commonjs/servers/volume/server/query/encode.js +1 -1
  289. package/lib/examples/alpha-orbitals/index.d.ts +1 -1
  290. package/lib/examples/alpha-orbitals/index.html +72 -61
  291. package/lib/examples/alpha-orbitals/index.js +4 -1
  292. package/lib/examples/basic-wrapper/custom-theme.js +1 -1
  293. package/lib/examples/basic-wrapper/index.html +137 -137
  294. package/lib/examples/lighting/index.html +88 -88
  295. package/lib/examples/proteopedia-wrapper/coloring.js +3 -3
  296. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  297. package/lib/extensions/alpha-orbitals/density.d.ts +1 -1
  298. package/lib/extensions/alpha-orbitals/density.js +6 -2
  299. package/lib/extensions/alpha-orbitals/orbitals.d.ts +1 -1
  300. package/lib/extensions/alpha-orbitals/orbitals.js +6 -3
  301. package/lib/extensions/anvil/algorithm.js +1 -1
  302. package/lib/extensions/cellpack/color/generate.js +1 -1
  303. package/lib/extensions/cellpack/color/provided.js +1 -1
  304. package/lib/extensions/cellpack/state.js +1 -1
  305. package/lib/extensions/dnatco/confal-pyramids/color.js +1 -1
  306. package/lib/extensions/g3d/model.js +1 -1
  307. package/lib/extensions/geo-export/ui.js +1 -0
  308. package/lib/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
  309. package/lib/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
  310. package/lib/extensions/mp4-export/ui.js +1 -0
  311. package/lib/extensions/pdbe/structure-quality-report/color.js +1 -1
  312. package/lib/extensions/rcsb/assembly-symmetry/color.js +4 -4
  313. package/lib/extensions/rcsb/validation-report/color/density-fit.js +1 -1
  314. package/lib/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
  315. package/lib/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
  316. package/lib/extensions/rcsb/validation-report/representation.js +2 -2
  317. package/lib/mol-canvas3d/canvas3d.js +5 -1
  318. package/lib/mol-canvas3d/controls/trackball.js +7 -7
  319. package/lib/mol-canvas3d/helper/camera-helper.js +14 -14
  320. package/lib/mol-canvas3d/helper/interaction-events.js +5 -5
  321. package/lib/mol-canvas3d/passes/draw.js +34 -5
  322. package/lib/mol-canvas3d/passes/fxaa.js +5 -0
  323. package/lib/mol-canvas3d/passes/marking.js +5 -0
  324. package/lib/mol-canvas3d/passes/multi-sample.js +9 -0
  325. package/lib/mol-canvas3d/passes/pick.d.ts +18 -5
  326. package/lib/mol-canvas3d/passes/pick.js +125 -24
  327. package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
  328. package/lib/mol-canvas3d/passes/smaa.js +5 -1
  329. package/lib/mol-canvas3d/passes/wboit.js +5 -1
  330. package/lib/mol-data/db/column.js +5 -5
  331. package/lib/mol-data/db/table.js +2 -2
  332. package/lib/mol-data/util/array.d.ts +1 -1
  333. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +1 -1
  334. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  335. package/lib/mol-geo/geometry/points/points.d.ts +1 -1
  336. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
  337. package/lib/mol-gl/compute/grid3d.d.ts +2 -2
  338. package/lib/mol-gl/compute/grid3d.js +30 -8
  339. package/lib/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
  340. package/lib/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
  341. package/lib/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
  342. package/lib/mol-gl/compute/histogram-pyramid/sum.js +6 -1
  343. package/lib/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
  344. package/lib/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
  345. package/lib/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
  346. package/lib/mol-gl/compute/marching-cubes/isosurface.js +10 -10
  347. package/lib/mol-gl/renderer.js +77 -32
  348. package/lib/mol-gl/scene.js +2 -0
  349. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  350. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  351. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  352. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  353. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  354. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  355. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  356. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  357. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  358. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  359. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  360. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  361. package/lib/mol-gl/shader/image.frag.d.ts +1 -1
  362. package/lib/mol-gl/shader/image.frag.js +1 -1
  363. package/lib/mol-gl/shader/lines.frag.d.ts +1 -1
  364. package/lib/mol-gl/shader/lines.frag.js +1 -1
  365. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  366. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  367. package/lib/mol-gl/shader/points.frag.d.ts +1 -1
  368. package/lib/mol-gl/shader/points.frag.js +1 -1
  369. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  370. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  371. package/lib/mol-gl/shader/text.frag.d.ts +1 -1
  372. package/lib/mol-gl/shader/text.frag.js +1 -1
  373. package/lib/mol-gl/shader-code.d.ts +1 -1
  374. package/lib/mol-gl/shader-code.js +41 -9
  375. package/lib/mol-gl/webgl/compat.d.ts +34 -1
  376. package/lib/mol-gl/webgl/compat.js +48 -1
  377. package/lib/mol-gl/webgl/context.d.ts +2 -0
  378. package/lib/mol-gl/webgl/context.js +3 -0
  379. package/lib/mol-gl/webgl/extensions.d.ts +3 -2
  380. package/lib/mol-gl/webgl/extensions.js +7 -2
  381. package/lib/mol-gl/webgl/timer.d.ts +22 -0
  382. package/lib/mol-gl/webgl/timer.js +164 -0
  383. package/lib/mol-io/common/binary-cif/array-encoder.js +18 -18
  384. package/lib/mol-io/common/binary-cif/decoder.js +16 -16
  385. package/lib/mol-io/common/binary-cif/encoding.js +9 -9
  386. package/lib/mol-io/reader/cif/binary/field.js +3 -3
  387. package/lib/mol-io/reader/cif/data-model.js +14 -14
  388. package/lib/mol-io/reader/cif/schema.js +1 -1
  389. package/lib/mol-io/reader/cif/text/parser.js +23 -23
  390. package/lib/mol-io/reader/common/text/column/fixed.js +1 -1
  391. package/lib/mol-io/reader/common/text/column/token.js +1 -1
  392. package/lib/mol-io/reader/common/text/number-parser.js +6 -6
  393. package/lib/mol-io/reader/csv/parser.js +8 -8
  394. package/lib/mol-io/writer/cif/encoder/binary.js +10 -10
  395. package/lib/mol-io/writer/cif/encoder/text.js +7 -7
  396. package/lib/mol-io/writer/cif/encoder.js +8 -8
  397. package/lib/mol-io/writer/mol2/encoder.js +4 -4
  398. package/lib/mol-math/geometry/gaussian-density/gpu.js +13 -2
  399. package/lib/mol-model/sequence/alignment/sequence.js +3 -3
  400. package/lib/mol-model/sequence/sequence.js +9 -9
  401. package/lib/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
  402. package/lib/mol-model/structure/export/categories/secondary-structure.js +2 -2
  403. package/lib/mol-model/structure/export/categories/utils.js +1 -1
  404. package/lib/mol-model/structure/model/model.js +2 -2
  405. package/lib/mol-model/structure/model/properties/custom/indexed.js +6 -6
  406. package/lib/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
  407. package/lib/mol-model/structure/model/types.js +116 -116
  408. package/lib/mol-model/structure/query/context.js +1 -1
  409. package/lib/mol-model/structure/query/queries/generators.js +5 -5
  410. package/lib/mol-model/structure/query/queries/internal.js +4 -4
  411. package/lib/mol-model/structure/query/queries/modifiers.js +4 -4
  412. package/lib/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
  413. package/lib/mol-model/structure/query/utils/structure-distance.js +9 -9
  414. package/lib/mol-model/structure/structure/carbohydrates/constants.d.ts +3 -1
  415. package/lib/mol-model/structure/structure/carbohydrates/constants.js +190 -107
  416. package/lib/mol-model/structure/structure/element/loci.js +5 -5
  417. package/lib/mol-model/structure/structure/element/stats.js +5 -5
  418. package/lib/mol-model/structure/structure/properties.js +5 -5
  419. package/lib/mol-model/structure/structure/structure.js +11 -11
  420. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
  421. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
  422. package/lib/mol-model/structure/structure/unit/bonds.js +2 -2
  423. package/lib/mol-model/structure/structure/unit/resonance.js +1 -1
  424. package/lib/mol-model/structure/structure/unit/rings/compute.js +6 -6
  425. package/lib/mol-model/structure/structure/unit/rings.js +6 -6
  426. package/lib/mol-model/structure/structure/unit.js +16 -16
  427. package/lib/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
  428. package/lib/mol-model/structure/util.js +4 -4
  429. package/lib/mol-model-formats/structure/basic/atomic.js +2 -2
  430. package/lib/mol-model-formats/structure/basic/parser.js +4 -4
  431. package/lib/mol-model-formats/structure/basic/properties.js +1 -1
  432. package/lib/mol-model-formats/structure/basic/sort.js +1 -1
  433. package/lib/mol-model-formats/structure/basic/util.js +1 -1
  434. package/lib/mol-model-formats/structure/cif-core.js +6 -6
  435. package/lib/mol-model-formats/structure/common/entity.js +1 -1
  436. package/lib/mol-model-formats/structure/cube.js +1 -1
  437. package/lib/mol-model-formats/structure/gro.js +1 -1
  438. package/lib/mol-model-formats/structure/mol.js +1 -1
  439. package/lib/mol-model-formats/structure/mol2.js +4 -4
  440. package/lib/mol-model-formats/structure/prmtop.js +1 -1
  441. package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
  442. package/lib/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  443. package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
  444. package/lib/mol-model-formats/structure/property/secondary-structure.js +8 -8
  445. package/lib/mol-model-formats/structure/psf.js +1 -1
  446. package/lib/mol-model-formats/structure/top.js +1 -1
  447. package/lib/mol-model-formats/structure/xyz.js +1 -1
  448. package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
  449. package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
  450. package/lib/mol-model-props/computed/accessible-surface-area.js +2 -2
  451. package/lib/mol-model-props/computed/chemistry/functional-group.js +31 -31
  452. package/lib/mol-model-props/computed/chemistry/geometry.js +22 -22
  453. package/lib/mol-model-props/computed/chemistry/valence-model.js +32 -32
  454. package/lib/mol-model-props/computed/interactions/charged.js +39 -39
  455. package/lib/mol-model-props/computed/interactions/common.js +34 -34
  456. package/lib/mol-model-props/computed/interactions/contacts-builder.js +1 -1
  457. package/lib/mol-model-props/computed/interactions/contacts.js +1 -1
  458. package/lib/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
  459. package/lib/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
  460. package/lib/mol-model-props/computed/interactions/hydrophobic.js +9 -9
  461. package/lib/mol-model-props/computed/interactions/metal.js +26 -26
  462. package/lib/mol-model-props/computed/interactions/refine.js +20 -20
  463. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
  464. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
  465. package/lib/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
  466. package/lib/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
  467. package/lib/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
  468. package/lib/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
  469. package/lib/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
  470. package/lib/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
  471. package/lib/mol-model-props/computed/secondary-structure/dssp.js +30 -30
  472. package/lib/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
  473. package/lib/mol-model-props/computed/themes/interaction-type.js +10 -10
  474. package/lib/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
  475. package/lib/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
  476. package/lib/mol-model-props/sequence/sifts-mapping.js +1 -1
  477. package/lib/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
  478. package/lib/mol-plugin/animation-loop.d.ts +2 -1
  479. package/lib/mol-plugin/animation-loop.js +18 -5
  480. package/lib/mol-plugin/behavior/dynamic/camera.js +12 -12
  481. package/lib/mol-plugin/behavior/dynamic/representation.js +7 -7
  482. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  483. package/lib/mol-plugin/config.d.ts +3 -0
  484. package/lib/mol-plugin/config.js +3 -1
  485. package/lib/mol-plugin/context.d.ts +2 -2
  486. package/lib/mol-plugin/context.js +3 -0
  487. package/lib/mol-plugin/state.d.ts +1 -14
  488. package/lib/mol-plugin/version.js +2 -2
  489. package/lib/mol-plugin-state/formats/volume.d.ts +12 -11
  490. package/lib/mol-plugin-state/formats/volume.js +20 -13
  491. package/lib/mol-plugin-state/helpers/structure-selection-query.js +5 -5
  492. package/lib/mol-plugin-state/transforms/representation.js +2 -2
  493. package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -1
  494. package/lib/mol-plugin-ui/controls.js +1 -1
  495. package/lib/mol-plugin-ui/sequence/polymer.js +1 -1
  496. package/lib/mol-plugin-ui/sequence/sequence.js +1 -1
  497. package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
  498. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  499. package/lib/mol-plugin-ui/skin/base/components/controls.scss +418 -418
  500. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  501. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  502. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  503. package/lib/mol-plugin-ui/skin/base/components/misc.scss +643 -643
  504. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  505. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  506. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  507. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  508. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  509. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +128 -128
  510. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  511. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  512. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  513. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  514. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  515. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  516. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  517. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  518. package/lib/mol-plugin-ui/skin/base/variables.scss +85 -85
  519. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  520. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  521. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  522. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  523. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  524. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  525. package/lib/mol-plugin-ui/state/snapshots.js +1 -0
  526. package/lib/mol-plugin-ui/structure/focus.js +1 -1
  527. package/lib/mol-plugin-ui/viewport/screenshot.js +1 -0
  528. package/lib/mol-plugin-ui/viewport.d.ts +2 -2
  529. package/lib/mol-repr/shape/representation.d.ts +1 -1
  530. package/lib/mol-repr/shape/representation.js +2 -1
  531. package/lib/mol-repr/structure/complex-visual.d.ts +1 -1
  532. package/lib/mol-repr/structure/complex-visual.js +2 -1
  533. package/lib/mol-repr/structure/units-visual.d.ts +1 -1
  534. package/lib/mol-repr/structure/units-visual.js +2 -1
  535. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
  536. package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
  537. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -15
  538. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +12 -15
  539. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
  540. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  541. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
  542. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
  543. package/lib/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  544. package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
  545. package/lib/mol-repr/structure/visual/util/bond.js +2 -2
  546. package/lib/mol-repr/structure/visual/util/common.js +3 -3
  547. package/lib/mol-repr/structure/visual/util/link.js +30 -30
  548. package/lib/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
  549. package/lib/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
  550. package/lib/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
  551. package/lib/mol-repr/structure/visual/util/polymer.js +6 -6
  552. package/lib/mol-repr/volume/representation.d.ts +1 -1
  553. package/lib/mol-repr/volume/representation.js +2 -1
  554. package/lib/mol-script/language/builder.d.ts +1 -0
  555. package/lib/mol-script/language/symbol-table/core.d.ts +2 -2
  556. package/lib/mol-script/runtime/query/table.js +13 -13
  557. package/lib/mol-state/object.d.ts +3 -3
  558. package/lib/mol-task/util/user-timing.js +1 -1
  559. package/lib/mol-theme/clipping.js +19 -19
  560. package/lib/mol-theme/color/atom-id.js +1 -1
  561. package/lib/mol-theme/color/carbohydrate-symbol.js +1 -1
  562. package/lib/mol-theme/color/chain-id.js +4 -4
  563. package/lib/mol-theme/color/element-index.js +1 -1
  564. package/lib/mol-theme/color/element-symbol.js +1 -1
  565. package/lib/mol-theme/color/entity-id.js +4 -4
  566. package/lib/mol-theme/color/entity-source.js +5 -4
  567. package/lib/mol-theme/color/hydrophobicity.js +1 -1
  568. package/lib/mol-theme/color/illustrative.js +1 -1
  569. package/lib/mol-theme/color/model-index.js +1 -1
  570. package/lib/mol-theme/color/molecule-type.js +8 -8
  571. package/lib/mol-theme/color/occupancy.js +1 -1
  572. package/lib/mol-theme/color/operator-hkl.js +1 -1
  573. package/lib/mol-theme/color/operator-name.js +1 -1
  574. package/lib/mol-theme/color/partial-charge.js +1 -1
  575. package/lib/mol-theme/color/polymer-id.js +4 -4
  576. package/lib/mol-theme/color/polymer-index.js +1 -1
  577. package/lib/mol-theme/color/residue-name.js +1 -1
  578. package/lib/mol-theme/color/secondary-structure.js +12 -12
  579. package/lib/mol-theme/color/sequence-id.js +7 -7
  580. package/lib/mol-theme/color/shape-group.js +1 -1
  581. package/lib/mol-theme/color/uncertainty.js +1 -1
  582. package/lib/mol-theme/color/uniform.js +1 -1
  583. package/lib/mol-theme/color/unit-index.js +1 -1
  584. package/lib/mol-theme/color/volume-value.js +1 -1
  585. package/lib/mol-theme/label.js +3 -3
  586. package/lib/mol-util/binding.js +4 -4
  587. package/lib/mol-util/debug.d.ts +6 -1
  588. package/lib/mol-util/debug.js +9 -1
  589. package/lib/mol-util/input/input-observer.js +20 -20
  590. package/lib/mol-util/string-builder.js +1 -1
  591. package/lib/servers/model/preprocess/converter.js +1 -1
  592. package/lib/servers/model/server/query.js +1 -1
  593. package/lib/servers/model/utils/fetch-retry.js +3 -2
  594. package/lib/servers/volume/server/algebra/coordinate.js +6 -6
  595. package/lib/servers/volume/server/query/encode.js +1 -1
  596. package/package.json +162 -162
@@ -18,6 +18,7 @@ var param_definition_1 = require("../../mol-util/param-definition");
18
18
  var camera_1 = require("../../mol-canvas3d/camera");
19
19
  var quad_vert_1 = require("../../mol-gl/shader/quad.vert");
20
20
  var compose_frag_1 = require("../../mol-gl/shader/compose.frag");
21
+ var debug_1 = require("../../mol-util/debug");
21
22
  var ComposeSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tColor: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uTexSize: (0, schema_1.UniformSpec)('v2'), uWeight: (0, schema_1.UniformSpec)('f') });
22
23
  var ComposeShaderCode = (0, shader_code_1.ShaderCode)('compose', quad_vert_1.quad_vert, compose_frag_1.compose_frag);
23
24
  function getComposeRenderable(ctx, colorTexture) {
@@ -79,6 +80,8 @@ var MultiSamplePass = /** @class */ (function () {
79
80
  var camera = ctx.camera;
80
81
  var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, drawPass = _a.drawPass, webgl = _a.webgl;
81
82
  var gl = webgl.gl, state = webgl.state;
83
+ if (debug_1.isTimingMode)
84
+ webgl.timer.mark('MultiSamplePass.renderMultiSample');
82
85
  // based on the Multisample Anti-Aliasing Render Pass
83
86
  // contributed to three.js by bhouston / http://clara.io/
84
87
  //
@@ -137,11 +140,15 @@ var MultiSamplePass = /** @class */ (function () {
137
140
  compose.render();
138
141
  camera.viewOffset.enabled = false;
139
142
  camera.update();
143
+ if (debug_1.isTimingMode)
144
+ webgl.timer.markEnd('MultiSamplePass.renderMultiSample');
140
145
  };
141
146
  MultiSamplePass.prototype.renderTemporalMultiSample = function (sampleIndex, ctx, props, toDrawingBuffer) {
142
147
  var camera = ctx.camera;
143
148
  var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, holdTarget = _a.holdTarget, drawPass = _a.drawPass, webgl = _a.webgl;
144
149
  var gl = webgl.gl, state = webgl.state;
150
+ if (debug_1.isTimingMode)
151
+ webgl.timer.mark('MultiSamplePass.renderTemporalMultiSample');
145
152
  // based on the Multisample Anti-Aliasing Render Pass
146
153
  // contributed to three.js by bhouston / http://clara.io/
147
154
  //
@@ -229,6 +236,8 @@ var MultiSamplePass = /** @class */ (function () {
229
236
  }
230
237
  camera.viewOffset.enabled = false;
231
238
  camera.update();
239
+ if (debug_1.isTimingMode)
240
+ webgl.timer.markEnd('MultiSamplePass.renderTemporalMultiSample');
232
241
  return sampleIndex >= offsetList.length ? -2 : sampleIndex;
233
242
  };
234
243
  return MultiSamplePass;
@@ -7,7 +7,6 @@ import { PickingId } from '../../mol-geo/geometry/picking';
7
7
  import { Renderer } from '../../mol-gl/renderer';
8
8
  import { Scene } from '../../mol-gl/scene';
9
9
  import { WebGLContext } from '../../mol-gl/webgl/context';
10
- import { RenderTarget } from '../../mol-gl/webgl/render-target';
11
10
  import { Vec3 } from '../../mol-math/linear-algebra';
12
11
  import { Camera, ICamera } from '../camera';
13
12
  import { StereoCamera } from '../camera/stereo';
@@ -22,13 +21,27 @@ export declare class PickPass {
22
21
  private webgl;
23
22
  private drawPass;
24
23
  readonly pickBaseScale: number;
25
- readonly objectPickTarget: RenderTarget;
26
- readonly instancePickTarget: RenderTarget;
27
- readonly groupPickTarget: RenderTarget;
28
- readonly depthPickTarget: RenderTarget;
24
+ private readonly objectPickTarget;
25
+ private readonly instancePickTarget;
26
+ private readonly groupPickTarget;
27
+ private readonly depthPickTarget;
28
+ private readonly framebuffer;
29
+ private readonly objectPickTexture;
30
+ private readonly instancePickTexture;
31
+ private readonly groupPickTexture;
32
+ private readonly depthPickTexture;
33
+ private readonly objectPickFramebuffer;
34
+ private readonly instancePickFramebuffer;
35
+ private readonly groupPickFramebuffer;
36
+ private readonly depthPickFramebuffer;
37
+ private readonly depthRenderbuffer;
29
38
  private pickWidth;
30
39
  private pickHeight;
31
40
  constructor(webgl: WebGLContext, drawPass: DrawPass, pickBaseScale: number);
41
+ bindObject(): void;
42
+ bindInstance(): void;
43
+ bindGroup(): void;
44
+ bindDepth(): void;
32
45
  get drawingBufferHeight(): number;
33
46
  syncSize(): void;
34
47
  private renderVariant;
@@ -6,8 +6,10 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.PickHelper = exports.PickPass = void 0;
9
+ var compat_1 = require("../../mol-gl/webgl/compat");
9
10
  var linear_algebra_1 = require("../../mol-math/linear-algebra");
10
11
  var misc_1 = require("../../mol-math/misc");
12
+ var debug_1 = require("../../mol-util/debug");
11
13
  var number_packing_1 = require("../../mol-util/number-packing");
12
14
  var stereo_1 = require("../camera/stereo");
13
15
  var util_1 = require("../camera/util");
@@ -21,11 +23,80 @@ var PickPass = /** @class */ (function () {
21
23
  var pickScale = pickBaseScale / webgl.pixelRatio;
22
24
  this.pickWidth = Math.ceil(drawPass.colorTarget.getWidth() * pickScale);
23
25
  this.pickHeight = Math.ceil(drawPass.colorTarget.getHeight() * pickScale);
24
- this.objectPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
25
- this.instancePickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
26
- this.groupPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
27
- this.depthPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
26
+ var resources = webgl.resources, drawBuffers = webgl.extensions.drawBuffers, gl = webgl.gl;
27
+ if (drawBuffers) {
28
+ this.objectPickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
29
+ this.objectPickTexture.define(this.pickWidth, this.pickHeight);
30
+ this.instancePickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
31
+ this.instancePickTexture.define(this.pickWidth, this.pickHeight);
32
+ this.groupPickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
33
+ this.groupPickTexture.define(this.pickWidth, this.pickHeight);
34
+ this.depthPickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
35
+ this.depthPickTexture.define(this.pickWidth, this.pickHeight);
36
+ this.framebuffer = resources.framebuffer();
37
+ this.objectPickFramebuffer = resources.framebuffer();
38
+ this.instancePickFramebuffer = resources.framebuffer();
39
+ this.groupPickFramebuffer = resources.framebuffer();
40
+ this.depthPickFramebuffer = resources.framebuffer();
41
+ this.framebuffer.bind();
42
+ drawBuffers.drawBuffers([
43
+ drawBuffers.COLOR_ATTACHMENT0,
44
+ drawBuffers.COLOR_ATTACHMENT1,
45
+ drawBuffers.COLOR_ATTACHMENT2,
46
+ drawBuffers.COLOR_ATTACHMENT3,
47
+ ]);
48
+ this.objectPickTexture.attachFramebuffer(this.framebuffer, 'color0');
49
+ this.instancePickTexture.attachFramebuffer(this.framebuffer, 'color1');
50
+ this.groupPickTexture.attachFramebuffer(this.framebuffer, 'color2');
51
+ this.depthPickTexture.attachFramebuffer(this.framebuffer, 'color3');
52
+ this.depthRenderbuffer = (0, compat_1.isWebGL2)(gl)
53
+ ? resources.renderbuffer('depth32f', 'depth', this.pickWidth, this.pickHeight)
54
+ : resources.renderbuffer('depth16', 'depth', this.pickWidth, this.pickHeight);
55
+ this.depthRenderbuffer.attachFramebuffer(this.framebuffer);
56
+ this.objectPickTexture.attachFramebuffer(this.objectPickFramebuffer, 'color0');
57
+ this.instancePickTexture.attachFramebuffer(this.instancePickFramebuffer, 'color0');
58
+ this.groupPickTexture.attachFramebuffer(this.groupPickFramebuffer, 'color0');
59
+ this.depthPickTexture.attachFramebuffer(this.depthPickFramebuffer, 'color0');
60
+ }
61
+ else {
62
+ this.objectPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
63
+ this.instancePickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
64
+ this.groupPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
65
+ this.depthPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
66
+ }
28
67
  }
68
+ PickPass.prototype.bindObject = function () {
69
+ if (this.webgl.extensions.drawBuffers) {
70
+ this.objectPickFramebuffer.bind();
71
+ }
72
+ else {
73
+ this.objectPickTarget.bind();
74
+ }
75
+ };
76
+ PickPass.prototype.bindInstance = function () {
77
+ if (this.webgl.extensions.drawBuffers) {
78
+ this.instancePickFramebuffer.bind();
79
+ }
80
+ else {
81
+ this.instancePickTarget.bind();
82
+ }
83
+ };
84
+ PickPass.prototype.bindGroup = function () {
85
+ if (this.webgl.extensions.drawBuffers) {
86
+ this.groupPickFramebuffer.bind();
87
+ }
88
+ else {
89
+ this.groupPickTarget.bind();
90
+ }
91
+ };
92
+ PickPass.prototype.bindDepth = function () {
93
+ if (this.webgl.extensions.drawBuffers) {
94
+ this.depthPickFramebuffer.bind();
95
+ }
96
+ else {
97
+ this.depthPickTarget.bind();
98
+ }
99
+ };
29
100
  Object.defineProperty(PickPass.prototype, "drawingBufferHeight", {
30
101
  get: function () {
31
102
  return this.drawPass.colorTarget.getHeight();
@@ -40,17 +111,28 @@ var PickPass = /** @class */ (function () {
40
111
  if (pickWidth !== this.pickWidth || pickHeight !== this.pickHeight) {
41
112
  this.pickWidth = pickWidth;
42
113
  this.pickHeight = pickHeight;
43
- this.objectPickTarget.setSize(this.pickWidth, this.pickHeight);
44
- this.instancePickTarget.setSize(this.pickWidth, this.pickHeight);
45
- this.groupPickTarget.setSize(this.pickWidth, this.pickHeight);
46
- this.depthPickTarget.setSize(this.pickWidth, this.pickHeight);
114
+ if (this.webgl.extensions.drawBuffers) {
115
+ this.objectPickTexture.define(this.pickWidth, this.pickHeight);
116
+ this.instancePickTexture.define(this.pickWidth, this.pickHeight);
117
+ this.groupPickTexture.define(this.pickWidth, this.pickHeight);
118
+ this.depthPickTexture.define(this.pickWidth, this.pickHeight);
119
+ this.depthRenderbuffer.setSize(this.pickWidth, this.pickHeight);
120
+ }
121
+ else {
122
+ this.objectPickTarget.setSize(this.pickWidth, this.pickHeight);
123
+ this.instancePickTarget.setSize(this.pickWidth, this.pickHeight);
124
+ this.groupPickTarget.setSize(this.pickWidth, this.pickHeight);
125
+ this.depthPickTarget.setSize(this.pickWidth, this.pickHeight);
126
+ }
47
127
  }
48
128
  };
49
129
  PickPass.prototype.renderVariant = function (renderer, camera, scene, helper, variant, pickType) {
50
130
  renderer.clear(false);
51
131
  renderer.update(camera);
52
132
  renderer.renderPick(scene.primitives, camera, variant, null, pickType);
53
- renderer.renderPick(helper.handle.scene, camera, variant, null, pickType);
133
+ if (helper.handle.isEnabled) {
134
+ renderer.renderPick(helper.handle.scene, camera, variant, null, pickType);
135
+ }
54
136
  if (helper.camera.isEnabled) {
55
137
  helper.camera.update(camera);
56
138
  renderer.update(helper.camera.camera);
@@ -58,15 +140,21 @@ var PickPass = /** @class */ (function () {
58
140
  }
59
141
  };
60
142
  PickPass.prototype.render = function (renderer, camera, scene, helper) {
61
- this.objectPickTarget.bind();
62
- this.renderVariant(renderer, camera, scene, helper, 'pick', 1 /* Object */);
63
- this.instancePickTarget.bind();
64
- this.renderVariant(renderer, camera, scene, helper, 'pick', 2 /* Instance */);
65
- this.groupPickTarget.bind();
66
- this.renderVariant(renderer, camera, scene, helper, 'pick', 3 /* Group */);
67
- // printTexture(this.webgl, this.groupPickTarget.texture, { id: 'group' })
68
- this.depthPickTarget.bind();
69
- this.renderVariant(renderer, camera, scene, helper, 'depth', 0 /* None */);
143
+ if (this.webgl.extensions.drawBuffers) {
144
+ this.framebuffer.bind();
145
+ this.renderVariant(renderer, camera, scene, helper, 'pick', 0 /* PickType.None */);
146
+ }
147
+ else {
148
+ this.objectPickTarget.bind();
149
+ this.renderVariant(renderer, camera, scene, helper, 'pick', 1 /* PickType.Object */);
150
+ this.instancePickTarget.bind();
151
+ this.renderVariant(renderer, camera, scene, helper, 'pick', 2 /* PickType.Instance */);
152
+ this.groupPickTarget.bind();
153
+ this.renderVariant(renderer, camera, scene, helper, 'pick', 3 /* PickType.Group */);
154
+ // printTexture(this.webgl, this.groupPickTarget.texture, { id: 'group' })
155
+ this.depthPickTarget.bind();
156
+ this.renderVariant(renderer, camera, scene, helper, 'depth', 0 /* PickType.None */);
157
+ }
70
158
  };
71
159
  return PickPass;
72
160
  }());
@@ -109,15 +197,19 @@ var PickHelper = /** @class */ (function () {
109
197
  this.spiral = (0, misc_1.spiral2d)(Math.round(this.pickScale * this.pickPadding));
110
198
  };
111
199
  PickHelper.prototype.syncBuffers = function () {
200
+ if (debug_1.isTimingMode)
201
+ this.webgl.timer.mark('PickHelper.syncBuffers');
112
202
  var _a = this, pickX = _a.pickX, pickY = _a.pickY, pickWidth = _a.pickWidth, pickHeight = _a.pickHeight;
113
- this.pickPass.objectPickTarget.bind();
203
+ this.pickPass.bindObject();
114
204
  this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.objectBuffer);
115
- this.pickPass.instancePickTarget.bind();
205
+ this.pickPass.bindInstance();
116
206
  this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.instanceBuffer);
117
- this.pickPass.groupPickTarget.bind();
207
+ this.pickPass.bindGroup();
118
208
  this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.groupBuffer);
119
- this.pickPass.depthPickTarget.bind();
209
+ this.pickPass.bindDepth();
120
210
  this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.depthBuffer);
211
+ if (debug_1.isTimingMode)
212
+ this.webgl.timer.markEnd('PickHelper.syncBuffers');
121
213
  };
122
214
  PickHelper.prototype.getBufferIdx = function (x, y) {
123
215
  return (y * this.pickWidth + x) * 4;
@@ -132,10 +224,12 @@ var PickHelper = /** @class */ (function () {
132
224
  return (0, number_packing_1.unpackRGBToInt)(buffer[idx], buffer[idx + 1], buffer[idx + 2]);
133
225
  };
134
226
  PickHelper.prototype.render = function (camera) {
227
+ if (debug_1.isTimingMode)
228
+ this.webgl.timer.mark('PickHelper.render');
135
229
  var _a = this, pickX = _a.pickX, pickY = _a.pickY, pickWidth = _a.pickWidth, pickHeight = _a.pickHeight, halfPickWidth = _a.halfPickWidth;
136
230
  var _b = this, renderer = _b.renderer, scene = _b.scene, helper = _b.helper;
137
231
  renderer.setTransparentBackground(false);
138
- renderer.setDrawingBufferSize(this.pickPass.objectPickTarget.getWidth(), this.pickPass.objectPickTarget.getHeight());
232
+ renderer.setDrawingBufferSize(pickWidth, pickHeight);
139
233
  renderer.setPixelRatio(this.pickScale);
140
234
  if (stereo_1.StereoCamera.is(camera)) {
141
235
  renderer.setViewport(pickX, pickY, halfPickWidth, pickHeight);
@@ -148,6 +242,8 @@ var PickHelper = /** @class */ (function () {
148
242
  this.pickPass.render(renderer, camera, scene, helper);
149
243
  }
150
244
  this.dirty = false;
245
+ if (debug_1.isTimingMode)
246
+ this.webgl.timer.markEnd('PickHelper.render');
151
247
  };
152
248
  PickHelper.prototype.identifyInternal = function (x, y, camera) {
153
249
  var _a = this, webgl = _a.webgl, pickScale = _a.pickScale;
@@ -164,8 +260,12 @@ var PickHelper = /** @class */ (function () {
164
260
  y > viewport.y + viewport.height)
165
261
  return;
166
262
  if (this.dirty) {
263
+ if (debug_1.isTimingMode)
264
+ this.webgl.timer.mark('PickHelper.identify');
167
265
  this.render(camera);
168
266
  this.syncBuffers();
267
+ if (debug_1.isTimingMode)
268
+ this.webgl.timer.markEnd('PickHelper.identify');
169
269
  }
170
270
  var xv = x - viewport.x;
171
271
  var yv = y - viewport.y;
@@ -184,6 +284,7 @@ var PickHelper = /** @class */ (function () {
184
284
  if (groupId === -1 || groupId === NullId)
185
285
  return;
186
286
  var z = this.getDepth(xp, yp);
287
+ // console.log('z', z);
187
288
  var position = linear_algebra_1.Vec3.create(x, viewport.height - y, z);
188
289
  if (stereo_1.StereoCamera.is(camera)) {
189
290
  var halfWidth = Math.floor(viewport.width / 2);
@@ -199,7 +300,7 @@ var PickHelper = /** @class */ (function () {
199
300
  else {
200
301
  (0, util_1.cameraUnproject)(position, position, viewport, camera.inverseProjectionView);
201
302
  }
202
- // console.log({ { objectId, instanceId, groupId }, position} );
303
+ // console.log({ id: { objectId, instanceId, groupId }, position });
203
304
  return { id: { objectId: objectId, instanceId: instanceId, groupId: groupId }, position: position };
204
305
  };
205
306
  PickHelper.prototype.identify = function (x, y, camera) {
@@ -24,6 +24,7 @@ var postprocessing_frag_1 = require("../../mol-gl/shader/postprocessing.frag");
24
24
  var color_1 = require("../../mol-util/color");
25
25
  var fxaa_1 = require("./fxaa");
26
26
  var smaa_1 = require("./smaa");
27
+ var debug_1 = require("../../mol-util/debug");
27
28
  var OutlinesSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tDepthOpaque: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), tDepthTransparent: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uTexSize: (0, schema_1.UniformSpec)('v2'), dOrthographic: (0, schema_1.DefineSpec)('number'), uNear: (0, schema_1.UniformSpec)('f'), uFar: (0, schema_1.UniformSpec)('f'), uMaxPossibleViewZDiff: (0, schema_1.UniformSpec)('f') });
28
29
  function getOutlinesRenderable(ctx, depthTextureOpaque, depthTextureTransparent) {
29
30
  var width = depthTextureOpaque.getWidth();
@@ -307,6 +308,8 @@ var PostprocessingPass = /** @class */ (function () {
307
308
  mol_util_1.ValueCell.update(this.renderable.values.uOcclusionOffset, linear_algebra_1.Vec2.set(this.renderable.values.uOcclusionOffset.ref.value, x, y));
308
309
  };
309
310
  PostprocessingPass.prototype.render = function (camera, toDrawingBuffer, transparentBackground, backgroundColor, props) {
311
+ if (debug_1.isTimingMode)
312
+ this.webgl.timer.mark('PostprocessingPass.render');
310
313
  this.updateState(camera, transparentBackground, backgroundColor, props);
311
314
  if (props.outline.name === 'on') {
312
315
  this.outlinesTarget.bind();
@@ -336,6 +339,8 @@ var PostprocessingPass = /** @class */ (function () {
336
339
  state.clearColor(0, 0, 0, 1);
337
340
  gl.clear(gl.COLOR_BUFFER_BIT);
338
341
  this.renderable.render();
342
+ if (debug_1.isTimingMode)
343
+ this.webgl.timer.markEnd('PostprocessingPass.render');
339
344
  };
340
345
  return PostprocessingPass;
341
346
  }());
@@ -101,6 +101,8 @@ var SmaaPass = /** @class */ (function () {
101
101
  }
102
102
  };
103
103
  SmaaPass.prototype.render = function (viewport, target) {
104
+ if (debug_1.isTimingMode)
105
+ this.webgl.timer.mark('SmaaPass.render');
104
106
  this.edgesTarget.bind();
105
107
  this.updateState(viewport);
106
108
  this.edgesRenderable.render();
@@ -115,6 +117,8 @@ var SmaaPass = /** @class */ (function () {
115
117
  }
116
118
  this.updateState(viewport);
117
119
  this.blendRenderable.render();
120
+ if (debug_1.isTimingMode)
121
+ this.webgl.timer.markEnd('SmaaPass.render');
118
122
  };
119
123
  return SmaaPass;
120
124
  }());
@@ -60,11 +60,15 @@ var WboitPass = /** @class */ (function () {
60
60
  state.enable(gl.BLEND);
61
61
  };
62
62
  WboitPass.prototype.render = function () {
63
+ if (debug_1.isTimingMode)
64
+ this.webgl.timer.mark('WboitPass.render');
63
65
  var _a = this.webgl, state = _a.state, gl = _a.gl;
64
66
  state.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
65
67
  state.enable(gl.BLEND);
66
68
  this.renderable.update();
67
69
  this.renderable.render();
70
+ if (debug_1.isTimingMode)
71
+ this.webgl.timer.markEnd('WboitPass.render');
68
72
  };
69
73
  WboitPass.prototype.setSize = function (width, height) {
70
74
  var _a = this.renderable.values.uTexSize.ref.value, w = _a[0], h = _a[1];
@@ -67,11 +67,11 @@ var Column;
67
67
  }
68
68
  Column.is = is;
69
69
  function Undefined(rowCount, schema) {
70
- return constColumn(schema['T'], rowCount, schema, 1 /* NotPresent */);
70
+ return constColumn(schema['T'], rowCount, schema, 1 /* ValueKind.NotPresent */);
71
71
  }
72
72
  Column.Undefined = Undefined;
73
73
  function ofConst(v, rowCount, type) {
74
- return constColumn(v, rowCount, type, 0 /* Present */);
74
+ return constColumn(v, rowCount, type, 0 /* ValueKind.Present */);
75
75
  }
76
76
  Column.ofConst = ofConst;
77
77
  function ofLambda(spec) {
@@ -231,7 +231,7 @@ function constColumn(v, rowCount, schema, valueKind) {
231
231
  return {
232
232
  schema: schema,
233
233
  __array: void 0,
234
- isDefined: valueKind === 0 /* Present */,
234
+ isDefined: valueKind === 0 /* Column.ValueKind.Present */,
235
235
  rowCount: rowCount,
236
236
  value: value,
237
237
  valueKind: function (row) { return valueKind; },
@@ -252,7 +252,7 @@ function lambdaColumn(_a) {
252
252
  isDefined: true,
253
253
  rowCount: rowCount,
254
254
  value: value,
255
- valueKind: valueKind ? valueKind : function (row) { return 0 /* Present */; },
255
+ valueKind: valueKind ? valueKind : function (row) { return 0 /* Column.ValueKind.Present */; },
256
256
  toArray: function (params) {
257
257
  var _a = ColumnHelpers.createArray(rowCount, params), array = _a.array, start = _a.start;
258
258
  for (var i = 0, _i = array.length; i < _i; i++)
@@ -280,7 +280,7 @@ function arrayColumn(_a) {
280
280
  isDefined: true,
281
281
  rowCount: rowCount,
282
282
  value: value,
283
- valueKind: valueKind ? valueKind : function (row) { return 0 /* Present */; },
283
+ valueKind: valueKind ? valueKind : function (row) { return 0 /* Column.ValueKind.Present */; },
284
284
  toArray: schema.valueType === 'str'
285
285
  ? schema.transform === 'lowercase'
286
286
  ? function (params) {
@@ -83,7 +83,7 @@ var Table;
83
83
  rowCount: rowCount,
84
84
  schema: schema[k],
85
85
  value: function (r) { return rows[r][k]; },
86
- valueKind: function (r) { return typeof rows[r][k] === 'undefined' ? 1 /* NotPresent */ : 0 /* Present */; }
86
+ valueKind: function (r) { return typeof rows[r][k] === 'undefined' ? 1 /* Column.ValueKind.NotPresent */ : 0 /* Column.ValueKind.Present */; }
87
87
  });
88
88
  };
89
89
  for (var _a = 0, columns_3 = columns; _a < columns_3.length; _a++) {
@@ -284,7 +284,7 @@ var Table;
284
284
  mol_util_1.StringBuilder.write(sb, '|');
285
285
  for (var i = 0; i < cols.length; i++) {
286
286
  var c = table[cols[i]];
287
- if (c.valueKind(r) === 0 /* Present */) {
287
+ if (c.valueKind(r) === 0 /* Column.ValueKind.Present */) {
288
288
  mol_util_1.StringBuilder.write(sb, c.value(r));
289
289
  mol_util_1.StringBuilder.write(sb, '|');
290
290
  }
@@ -8,7 +8,7 @@ import { ArrayCtor } from '../../mol-util/type-helpers';
8
8
  export declare function arrayFind<T>(array: ArrayLike<T>, f: (v: T) => boolean): T | undefined;
9
9
  export declare function iterableToArray<T>(it: IterableIterator<T>): T[];
10
10
  /** Fills the array so that array[0] = start and array[array.length - 1] = end */
11
- export declare function createRangeArray(start: number, end: number, ctor?: ArrayCtor<number>): {
11
+ export declare function createRangeArray(start: number, end: number, ctor?: ArrayCtor<number>): Int32Array | {
12
12
  [i: number]: number;
13
13
  length: number;
14
14
  };
@@ -50,8 +50,8 @@ export declare namespace Cylinders {
50
50
  quality: PD.Select<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest">;
51
51
  material: PD.Group<PD.Normalize<{
52
52
  metalness: number;
53
- /** Number of cylinders */
54
53
  roughness: number;
54
+ /** Number of cylinders */
55
55
  bumpiness: number;
56
56
  }>>;
57
57
  clip: PD.Group<PD.Normalize<{
@@ -44,7 +44,6 @@ export declare namespace Lines {
44
44
  material: PD.Group<PD.Normalize<{
45
45
  metalness: number;
46
46
  roughness: number;
47
- /** Number of lines */
48
47
  bumpiness: number;
49
48
  }>>;
50
49
  clip: PD.Group<PD.Normalize<{
@@ -43,7 +43,7 @@ export declare namespace Points {
43
43
  quality: PD.Select<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest">;
44
44
  material: PD.Group<PD.Normalize<{
45
45
  metalness: number;
46
- roughness: number;
46
+ roughness: number; /** Number of vertices in the point cloud */
47
47
  bumpiness: number;
48
48
  }>>;
49
49
  clip: PD.Group<PD.Normalize<{
@@ -20,6 +20,7 @@ var geometry_1 = require("../../../mol-math/geometry");
20
20
  var accumulate_frag_1 = require("../../../mol-gl/shader/compute/color-smoothing/accumulate.frag");
21
21
  var accumulate_vert_1 = require("../../../mol-gl/shader/compute/color-smoothing/accumulate.vert");
22
22
  var compat_1 = require("../../../mol-gl/webgl/compat");
23
+ var debug_1 = require("../../../mol-util/debug");
23
24
  exports.ColorAccumulateSchema = {
24
25
  drawCount: (0, schema_1.ValueSpec)('number'),
25
26
  instanceCount: (0, schema_1.ValueSpec)('number'),
@@ -188,6 +189,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
188
189
  var drawBuffers = webgl.extensions.drawBuffers;
189
190
  if (!drawBuffers)
190
191
  throw new Error('need WebGL draw buffers');
192
+ if (debug_1.isTimingMode)
193
+ webgl.timer.mark('calcTextureMeshColorSmoothing');
191
194
  var gl = webgl.gl, resources = webgl.resources, state = webgl.state, _a = webgl.extensions, colorBufferHalfFloat = _a.colorBufferHalfFloat, textureHalfFloat = _a.textureHalfFloat;
192
195
  var isInstanceType = input.colorType.endsWith('Instance');
193
196
  var box = geometry_1.Box3D.fromSphere3D((0, geometry_1.Box3D)(), isInstanceType ? input.boundingSphere : input.invariantBoundingSphere);
@@ -240,6 +243,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
240
243
  drawBuffers.COLOR_ATTACHMENT1,
241
244
  ]);
242
245
  var _c = accumulateRenderable.values, uCurrentSlice = _c.uCurrentSlice, uCurrentX = _c.uCurrentX, uCurrentY = _c.uCurrentY;
246
+ if (debug_1.isTimingMode)
247
+ webgl.timer.mark('ColorAccumulate.render');
243
248
  setAccumulateDefaults(webgl);
244
249
  gl.viewport(0, 0, width, height);
245
250
  gl.scissor(0, 0, width, height);
@@ -267,6 +272,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
267
272
  accumulateTexture.detachFramebuffer(framebuffer, 0);
268
273
  countTexture.detachFramebuffer(framebuffer, 1);
269
274
  drawBuffers.drawBuffers([gl.COLOR_ATTACHMENT0, gl.NONE]);
275
+ if (debug_1.isTimingMode)
276
+ webgl.timer.markEnd('ColorAccumulate.render');
270
277
  // const accImage = new Float32Array(width * height * 4);
271
278
  // accumulateTexture.attachFramebuffer(framebuffer, 0);
272
279
  // webgl.readPixels(0, 0, width, height, accImage);
@@ -278,6 +285,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
278
285
  // console.log(cntImage);
279
286
  // printTextureImage({ array: cntImage, width, height }, { scale: 1 });
280
287
  // normalize
288
+ if (debug_1.isTimingMode)
289
+ webgl.timer.mark('ColorNormalize.render');
281
290
  if (!texture)
282
291
  texture = resources.texture('image-uint8', 'rgba', 'ubyte', 'linear');
283
292
  texture.define(width, height);
@@ -289,6 +298,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
289
298
  gl.scissor(0, 0, width, height);
290
299
  gl.clear(gl.COLOR_BUFFER_BIT);
291
300
  normalizeRenderable.render();
301
+ if (debug_1.isTimingMode)
302
+ webgl.timer.markEnd('ColorNormalize.render');
292
303
  // const normImage = new Uint8Array(width * height * 4);
293
304
  // texture.attachFramebuffer(framebuffer, 0);
294
305
  // webgl.readPixels(0, 0, width, height, normImage);
@@ -296,6 +307,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
296
307
  // printTextureImage({ array: normImage, width, height }, { scale: 1 });
297
308
  var gridTransform = linear_algebra_1.Vec4.create(min[0], min[1], min[2], scaleFactor);
298
309
  var type = isInstanceType ? 'volumeInstance' : 'volume';
310
+ if (debug_1.isTimingMode)
311
+ webgl.timer.markEnd('calcTextureMeshColorSmoothing');
299
312
  return { texture: texture, gridDim: gridDim, gridTexDim: linear_algebra_1.Vec2.create(width, height), gridTransform: gridTransform, type: type };
300
313
  }
301
314
  exports.calcTextureMeshColorSmoothing = calcTextureMeshColorSmoothing;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author David Sehnal <david.sehnal@gmail.com>
5
5
  */
@@ -7,7 +7,7 @@ import { RenderableSchema, Values, UnboxedValues } from '../renderable/schema';
7
7
  import { WebGLContext } from '../webgl/context';
8
8
  import { RegularGrid3d } from '../../mol-math/geometry/common';
9
9
  import { RuntimeContext } from '../../mol-task';
10
- export declare function canComputeGrid3dOnGPU(webgl?: WebGLContext): boolean;
10
+ export declare function canComputeGrid3dOnGPU(webgl?: WebGLContext): webgl is WebGLContext;
11
11
  export interface Grid3DComputeRenderableSpec<S extends RenderableSchema, P, CS> {
12
12
  schema: S;
13
13
  loopBounds?: (keyof S)[];