molstar 3.8.2 → 3.9.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 (516) hide show
  1. package/build/viewer/index.html +4 -1
  2. package/build/viewer/molstar.js +1 -1
  3. package/lib/apps/viewer/app.d.ts +1 -1
  4. package/lib/apps/viewer/app.js +1 -1
  5. package/lib/apps/viewer/index.html +4 -1
  6. package/lib/cli/cif2bcif/converter.js +1 -1
  7. package/lib/commonjs/apps/viewer/app.d.ts +1 -1
  8. package/lib/commonjs/apps/viewer/app.js +2 -1
  9. package/lib/commonjs/cli/cif2bcif/converter.js +1 -1
  10. package/lib/commonjs/examples/alpha-orbitals/index.d.ts +1 -1
  11. package/lib/commonjs/examples/alpha-orbitals/index.js +4 -1
  12. package/lib/commonjs/examples/basic-wrapper/custom-theme.js +1 -1
  13. package/lib/commonjs/examples/proteopedia-wrapper/coloring.js +3 -3
  14. package/lib/commonjs/extensions/alpha-orbitals/density.d.ts +1 -1
  15. package/lib/commonjs/extensions/alpha-orbitals/density.js +6 -2
  16. package/lib/commonjs/extensions/alpha-orbitals/orbitals.d.ts +1 -1
  17. package/lib/commonjs/extensions/alpha-orbitals/orbitals.js +6 -3
  18. package/lib/commonjs/extensions/anvil/algorithm.js +1 -1
  19. package/lib/commonjs/extensions/cellpack/color/generate.js +1 -1
  20. package/lib/commonjs/extensions/cellpack/color/provided.js +1 -1
  21. package/lib/commonjs/extensions/cellpack/state.js +1 -1
  22. package/lib/commonjs/extensions/dnatco/confal-pyramids/color.js +1 -1
  23. package/lib/commonjs/extensions/g3d/model.js +1 -1
  24. package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
  25. package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
  26. package/lib/commonjs/extensions/pdbe/structure-quality-report/color.js +1 -1
  27. package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.js +4 -4
  28. package/lib/commonjs/extensions/rcsb/validation-report/color/density-fit.js +1 -1
  29. package/lib/commonjs/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
  30. package/lib/commonjs/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
  31. package/lib/commonjs/extensions/rcsb/validation-report/representation.js +2 -2
  32. package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
  33. package/lib/commonjs/mol-canvas3d/controls/trackball.js +7 -7
  34. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +14 -14
  35. package/lib/commonjs/mol-canvas3d/helper/interaction-events.js +5 -5
  36. package/lib/commonjs/mol-canvas3d/passes/draw.js +34 -5
  37. package/lib/commonjs/mol-canvas3d/passes/fxaa.js +5 -0
  38. package/lib/commonjs/mol-canvas3d/passes/marking.js +5 -0
  39. package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +9 -0
  40. package/lib/commonjs/mol-canvas3d/passes/pick.d.ts +18 -5
  41. package/lib/commonjs/mol-canvas3d/passes/pick.js +125 -24
  42. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
  43. package/lib/commonjs/mol-canvas3d/passes/smaa.js +4 -0
  44. package/lib/commonjs/mol-canvas3d/passes/wboit.js +4 -0
  45. package/lib/commonjs/mol-data/db/column.js +5 -5
  46. package/lib/commonjs/mol-data/db/table.js +2 -2
  47. package/lib/commonjs/mol-data/util/array.d.ts +1 -1
  48. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
  49. package/lib/commonjs/mol-gl/compute/grid3d.d.ts +2 -2
  50. package/lib/commonjs/mol-gl/compute/grid3d.js +30 -8
  51. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
  52. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
  53. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
  54. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.js +6 -1
  55. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
  56. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
  57. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
  58. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +10 -10
  59. package/lib/commonjs/mol-gl/renderer.js +77 -32
  60. package/lib/commonjs/mol-gl/scene.js +2 -0
  61. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  62. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  63. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  64. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  65. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  66. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  67. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  68. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  69. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  70. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  71. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  72. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  73. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
  74. package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
  75. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +1 -1
  76. package/lib/commonjs/mol-gl/shader/lines.frag.js +1 -1
  77. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  78. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  79. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +1 -1
  80. package/lib/commonjs/mol-gl/shader/points.frag.js +1 -1
  81. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  82. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  83. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +1 -1
  84. package/lib/commonjs/mol-gl/shader/text.frag.js +1 -1
  85. package/lib/commonjs/mol-gl/shader-code.d.ts +1 -1
  86. package/lib/commonjs/mol-gl/shader-code.js +41 -9
  87. package/lib/commonjs/mol-gl/webgl/compat.d.ts +34 -1
  88. package/lib/commonjs/mol-gl/webgl/compat.js +50 -2
  89. package/lib/commonjs/mol-gl/webgl/context.d.ts +2 -0
  90. package/lib/commonjs/mol-gl/webgl/context.js +3 -0
  91. package/lib/commonjs/mol-gl/webgl/extensions.d.ts +3 -2
  92. package/lib/commonjs/mol-gl/webgl/extensions.js +6 -1
  93. package/lib/commonjs/mol-gl/webgl/timer.d.ts +22 -0
  94. package/lib/commonjs/mol-gl/webgl/timer.js +169 -0
  95. package/lib/commonjs/mol-io/common/binary-cif/array-encoder.js +18 -18
  96. package/lib/commonjs/mol-io/common/binary-cif/decoder.js +16 -16
  97. package/lib/commonjs/mol-io/common/binary-cif/encoding.js +9 -9
  98. package/lib/commonjs/mol-io/reader/cif/binary/field.js +3 -3
  99. package/lib/commonjs/mol-io/reader/cif/data-model.js +14 -14
  100. package/lib/commonjs/mol-io/reader/cif/schema.js +1 -1
  101. package/lib/commonjs/mol-io/reader/cif/text/parser.js +23 -23
  102. package/lib/commonjs/mol-io/reader/common/text/column/fixed.js +1 -1
  103. package/lib/commonjs/mol-io/reader/common/text/column/token.js +1 -1
  104. package/lib/commonjs/mol-io/reader/common/text/number-parser.js +6 -6
  105. package/lib/commonjs/mol-io/reader/csv/parser.js +8 -8
  106. package/lib/commonjs/mol-io/writer/cif/encoder/binary.js +10 -10
  107. package/lib/commonjs/mol-io/writer/cif/encoder/text.js +7 -7
  108. package/lib/commonjs/mol-io/writer/cif/encoder.js +8 -8
  109. package/lib/commonjs/mol-io/writer/mol2/encoder.js +4 -4
  110. package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.js +13 -2
  111. package/lib/commonjs/mol-model/sequence/alignment/sequence.js +3 -3
  112. package/lib/commonjs/mol-model/sequence/sequence.js +9 -9
  113. package/lib/commonjs/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
  114. package/lib/commonjs/mol-model/structure/export/categories/secondary-structure.js +2 -2
  115. package/lib/commonjs/mol-model/structure/export/categories/utils.js +1 -1
  116. package/lib/commonjs/mol-model/structure/model/model.js +2 -2
  117. package/lib/commonjs/mol-model/structure/model/properties/custom/indexed.js +6 -6
  118. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
  119. package/lib/commonjs/mol-model/structure/model/types.js +116 -116
  120. package/lib/commonjs/mol-model/structure/query/context.js +1 -1
  121. package/lib/commonjs/mol-model/structure/query/queries/generators.js +5 -5
  122. package/lib/commonjs/mol-model/structure/query/queries/internal.js +4 -4
  123. package/lib/commonjs/mol-model/structure/query/queries/modifiers.js +4 -4
  124. package/lib/commonjs/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
  125. package/lib/commonjs/mol-model/structure/query/utils/structure-distance.js +9 -9
  126. package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.js +106 -106
  127. package/lib/commonjs/mol-model/structure/structure/element/loci.js +5 -5
  128. package/lib/commonjs/mol-model/structure/structure/element/stats.js +5 -5
  129. package/lib/commonjs/mol-model/structure/structure/properties.js +5 -5
  130. package/lib/commonjs/mol-model/structure/structure/structure.js +11 -11
  131. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
  132. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
  133. package/lib/commonjs/mol-model/structure/structure/unit/bonds.js +2 -2
  134. package/lib/commonjs/mol-model/structure/structure/unit/resonance.js +1 -1
  135. package/lib/commonjs/mol-model/structure/structure/unit/rings/compute.js +6 -6
  136. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +6 -6
  137. package/lib/commonjs/mol-model/structure/structure/unit.js +16 -16
  138. package/lib/commonjs/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
  139. package/lib/commonjs/mol-model/structure/util.js +4 -4
  140. package/lib/commonjs/mol-model-formats/structure/basic/atomic.js +2 -2
  141. package/lib/commonjs/mol-model-formats/structure/basic/parser.js +4 -4
  142. package/lib/commonjs/mol-model-formats/structure/basic/properties.js +1 -1
  143. package/lib/commonjs/mol-model-formats/structure/basic/sort.js +1 -1
  144. package/lib/commonjs/mol-model-formats/structure/basic/util.js +1 -1
  145. package/lib/commonjs/mol-model-formats/structure/cif-core.js +6 -6
  146. package/lib/commonjs/mol-model-formats/structure/common/entity.js +1 -1
  147. package/lib/commonjs/mol-model-formats/structure/cube.js +1 -1
  148. package/lib/commonjs/mol-model-formats/structure/gro.js +1 -1
  149. package/lib/commonjs/mol-model-formats/structure/mol.js +1 -1
  150. package/lib/commonjs/mol-model-formats/structure/mol2.js +4 -4
  151. package/lib/commonjs/mol-model-formats/structure/prmtop.js +1 -1
  152. package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
  153. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  154. package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
  155. package/lib/commonjs/mol-model-formats/structure/property/secondary-structure.js +8 -8
  156. package/lib/commonjs/mol-model-formats/structure/psf.js +1 -1
  157. package/lib/commonjs/mol-model-formats/structure/top.js +1 -1
  158. package/lib/commonjs/mol-model-formats/structure/xyz.js +1 -1
  159. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
  160. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
  161. package/lib/commonjs/mol-model-props/computed/accessible-surface-area.js +2 -2
  162. package/lib/commonjs/mol-model-props/computed/chemistry/functional-group.js +31 -31
  163. package/lib/commonjs/mol-model-props/computed/chemistry/geometry.js +22 -22
  164. package/lib/commonjs/mol-model-props/computed/chemistry/valence-model.js +32 -32
  165. package/lib/commonjs/mol-model-props/computed/interactions/charged.js +39 -39
  166. package/lib/commonjs/mol-model-props/computed/interactions/common.js +34 -34
  167. package/lib/commonjs/mol-model-props/computed/interactions/contacts-builder.js +1 -1
  168. package/lib/commonjs/mol-model-props/computed/interactions/contacts.js +1 -1
  169. package/lib/commonjs/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
  170. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
  171. package/lib/commonjs/mol-model-props/computed/interactions/hydrophobic.js +9 -9
  172. package/lib/commonjs/mol-model-props/computed/interactions/metal.js +26 -26
  173. package/lib/commonjs/mol-model-props/computed/interactions/refine.js +20 -20
  174. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
  175. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
  176. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
  177. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
  178. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
  179. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
  180. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
  181. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
  182. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp.js +30 -30
  183. package/lib/commonjs/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
  184. package/lib/commonjs/mol-model-props/computed/themes/interaction-type.js +10 -10
  185. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
  186. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
  187. package/lib/commonjs/mol-model-props/sequence/sifts-mapping.js +1 -1
  188. package/lib/commonjs/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
  189. package/lib/commonjs/mol-plugin/animation-loop.d.ts +2 -1
  190. package/lib/commonjs/mol-plugin/animation-loop.js +18 -5
  191. package/lib/commonjs/mol-plugin/behavior/dynamic/camera.js +12 -12
  192. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +7 -7
  193. package/lib/commonjs/mol-plugin/context.d.ts +2 -2
  194. package/lib/commonjs/mol-plugin/state.d.ts +1 -14
  195. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +12 -11
  196. package/lib/commonjs/mol-plugin-state/formats/volume.js +20 -13
  197. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +5 -5
  198. package/lib/commonjs/mol-plugin-state/transforms/representation.js +2 -2
  199. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -1
  200. package/lib/commonjs/mol-plugin-ui/sequence/polymer.js +1 -1
  201. package/lib/commonjs/mol-plugin-ui/sequence/sequence.js +1 -1
  202. package/lib/commonjs/mol-plugin-ui/structure/focus.js +1 -1
  203. package/lib/commonjs/mol-plugin-ui/viewport.d.ts +2 -2
  204. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
  205. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
  206. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -12
  207. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +12 -12
  208. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
  209. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  210. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
  211. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
  212. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  213. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
  214. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +2 -2
  215. package/lib/commonjs/mol-repr/structure/visual/util/common.js +3 -3
  216. package/lib/commonjs/mol-repr/structure/visual/util/link.js +30 -30
  217. package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
  218. package/lib/commonjs/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
  219. package/lib/commonjs/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
  220. package/lib/commonjs/mol-repr/structure/visual/util/polymer.js +6 -6
  221. package/lib/commonjs/mol-script/language/symbol-table/core.d.ts +2 -2
  222. package/lib/commonjs/mol-script/runtime/query/table.js +13 -13
  223. package/lib/commonjs/mol-state/object.d.ts +3 -3
  224. package/lib/commonjs/mol-task/util/user-timing.js +1 -1
  225. package/lib/commonjs/mol-theme/clipping.js +19 -19
  226. package/lib/commonjs/mol-theme/color/atom-id.js +1 -1
  227. package/lib/commonjs/mol-theme/color/carbohydrate-symbol.js +1 -1
  228. package/lib/commonjs/mol-theme/color/chain-id.js +4 -4
  229. package/lib/commonjs/mol-theme/color/element-index.js +1 -1
  230. package/lib/commonjs/mol-theme/color/element-symbol.js +1 -1
  231. package/lib/commonjs/mol-theme/color/entity-id.js +4 -4
  232. package/lib/commonjs/mol-theme/color/entity-source.js +5 -4
  233. package/lib/commonjs/mol-theme/color/hydrophobicity.js +1 -1
  234. package/lib/commonjs/mol-theme/color/illustrative.js +1 -1
  235. package/lib/commonjs/mol-theme/color/model-index.js +1 -1
  236. package/lib/commonjs/mol-theme/color/molecule-type.js +8 -8
  237. package/lib/commonjs/mol-theme/color/occupancy.js +1 -1
  238. package/lib/commonjs/mol-theme/color/operator-hkl.js +1 -1
  239. package/lib/commonjs/mol-theme/color/operator-name.js +1 -1
  240. package/lib/commonjs/mol-theme/color/partial-charge.js +1 -1
  241. package/lib/commonjs/mol-theme/color/polymer-id.js +4 -4
  242. package/lib/commonjs/mol-theme/color/polymer-index.js +1 -1
  243. package/lib/commonjs/mol-theme/color/residue-name.js +1 -1
  244. package/lib/commonjs/mol-theme/color/secondary-structure.js +12 -12
  245. package/lib/commonjs/mol-theme/color/sequence-id.js +7 -7
  246. package/lib/commonjs/mol-theme/color/shape-group.js +1 -1
  247. package/lib/commonjs/mol-theme/color/uncertainty.js +1 -1
  248. package/lib/commonjs/mol-theme/color/uniform.js +1 -1
  249. package/lib/commonjs/mol-theme/color/unit-index.js +1 -1
  250. package/lib/commonjs/mol-theme/color/volume-value.js +1 -1
  251. package/lib/commonjs/mol-theme/label.js +3 -3
  252. package/lib/commonjs/mol-util/binding.js +4 -4
  253. package/lib/commonjs/mol-util/debug.d.ts +6 -1
  254. package/lib/commonjs/mol-util/debug.js +11 -1
  255. package/lib/commonjs/mol-util/input/input-observer.js +20 -20
  256. package/lib/commonjs/mol-util/string-builder.js +1 -1
  257. package/lib/commonjs/servers/model/preprocess/converter.js +1 -1
  258. package/lib/commonjs/servers/model/server/query.js +1 -1
  259. package/lib/commonjs/servers/model/utils/fetch-retry.js +3 -2
  260. package/lib/commonjs/servers/volume/server/algebra/coordinate.js +6 -6
  261. package/lib/commonjs/servers/volume/server/query/encode.js +1 -1
  262. package/lib/examples/alpha-orbitals/index.d.ts +1 -1
  263. package/lib/examples/alpha-orbitals/index.html +11 -0
  264. package/lib/examples/alpha-orbitals/index.js +4 -1
  265. package/lib/examples/basic-wrapper/custom-theme.js +1 -1
  266. package/lib/examples/proteopedia-wrapper/coloring.js +3 -3
  267. package/lib/extensions/alpha-orbitals/density.d.ts +1 -1
  268. package/lib/extensions/alpha-orbitals/density.js +6 -2
  269. package/lib/extensions/alpha-orbitals/orbitals.d.ts +1 -1
  270. package/lib/extensions/alpha-orbitals/orbitals.js +6 -3
  271. package/lib/extensions/anvil/algorithm.js +1 -1
  272. package/lib/extensions/cellpack/color/generate.js +1 -1
  273. package/lib/extensions/cellpack/color/provided.js +1 -1
  274. package/lib/extensions/cellpack/state.js +1 -1
  275. package/lib/extensions/dnatco/confal-pyramids/color.js +1 -1
  276. package/lib/extensions/g3d/model.js +1 -1
  277. package/lib/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
  278. package/lib/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
  279. package/lib/extensions/pdbe/structure-quality-report/color.js +1 -1
  280. package/lib/extensions/rcsb/assembly-symmetry/color.js +4 -4
  281. package/lib/extensions/rcsb/validation-report/color/density-fit.js +1 -1
  282. package/lib/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
  283. package/lib/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
  284. package/lib/extensions/rcsb/validation-report/representation.js +2 -2
  285. package/lib/mol-canvas3d/canvas3d.js +5 -1
  286. package/lib/mol-canvas3d/controls/trackball.js +7 -7
  287. package/lib/mol-canvas3d/helper/camera-helper.js +14 -14
  288. package/lib/mol-canvas3d/helper/interaction-events.js +5 -5
  289. package/lib/mol-canvas3d/passes/draw.js +34 -5
  290. package/lib/mol-canvas3d/passes/fxaa.js +5 -0
  291. package/lib/mol-canvas3d/passes/marking.js +5 -0
  292. package/lib/mol-canvas3d/passes/multi-sample.js +9 -0
  293. package/lib/mol-canvas3d/passes/pick.d.ts +18 -5
  294. package/lib/mol-canvas3d/passes/pick.js +125 -24
  295. package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
  296. package/lib/mol-canvas3d/passes/smaa.js +5 -1
  297. package/lib/mol-canvas3d/passes/wboit.js +5 -1
  298. package/lib/mol-data/db/column.js +5 -5
  299. package/lib/mol-data/db/table.js +2 -2
  300. package/lib/mol-data/util/array.d.ts +1 -1
  301. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
  302. package/lib/mol-gl/compute/grid3d.d.ts +2 -2
  303. package/lib/mol-gl/compute/grid3d.js +30 -8
  304. package/lib/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
  305. package/lib/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
  306. package/lib/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
  307. package/lib/mol-gl/compute/histogram-pyramid/sum.js +6 -1
  308. package/lib/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
  309. package/lib/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
  310. package/lib/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
  311. package/lib/mol-gl/compute/marching-cubes/isosurface.js +10 -10
  312. package/lib/mol-gl/renderer.js +77 -32
  313. package/lib/mol-gl/scene.js +2 -0
  314. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  315. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  316. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  317. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  318. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  319. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  320. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  321. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  322. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  323. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  324. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  325. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  326. package/lib/mol-gl/shader/image.frag.d.ts +1 -1
  327. package/lib/mol-gl/shader/image.frag.js +1 -1
  328. package/lib/mol-gl/shader/lines.frag.d.ts +1 -1
  329. package/lib/mol-gl/shader/lines.frag.js +1 -1
  330. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  331. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  332. package/lib/mol-gl/shader/points.frag.d.ts +1 -1
  333. package/lib/mol-gl/shader/points.frag.js +1 -1
  334. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  335. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  336. package/lib/mol-gl/shader/text.frag.d.ts +1 -1
  337. package/lib/mol-gl/shader/text.frag.js +1 -1
  338. package/lib/mol-gl/shader-code.d.ts +1 -1
  339. package/lib/mol-gl/shader-code.js +41 -9
  340. package/lib/mol-gl/webgl/compat.d.ts +34 -1
  341. package/lib/mol-gl/webgl/compat.js +48 -1
  342. package/lib/mol-gl/webgl/context.d.ts +2 -0
  343. package/lib/mol-gl/webgl/context.js +3 -0
  344. package/lib/mol-gl/webgl/extensions.d.ts +3 -2
  345. package/lib/mol-gl/webgl/extensions.js +7 -2
  346. package/lib/mol-gl/webgl/timer.d.ts +22 -0
  347. package/lib/mol-gl/webgl/timer.js +164 -0
  348. package/lib/mol-io/common/binary-cif/array-encoder.js +18 -18
  349. package/lib/mol-io/common/binary-cif/decoder.js +16 -16
  350. package/lib/mol-io/common/binary-cif/encoding.js +9 -9
  351. package/lib/mol-io/reader/cif/binary/field.js +3 -3
  352. package/lib/mol-io/reader/cif/data-model.js +14 -14
  353. package/lib/mol-io/reader/cif/schema.js +1 -1
  354. package/lib/mol-io/reader/cif/text/parser.js +23 -23
  355. package/lib/mol-io/reader/common/text/column/fixed.js +1 -1
  356. package/lib/mol-io/reader/common/text/column/token.js +1 -1
  357. package/lib/mol-io/reader/common/text/number-parser.js +6 -6
  358. package/lib/mol-io/reader/csv/parser.js +8 -8
  359. package/lib/mol-io/writer/cif/encoder/binary.js +10 -10
  360. package/lib/mol-io/writer/cif/encoder/text.js +7 -7
  361. package/lib/mol-io/writer/cif/encoder.js +8 -8
  362. package/lib/mol-io/writer/mol2/encoder.js +4 -4
  363. package/lib/mol-math/geometry/gaussian-density/gpu.js +13 -2
  364. package/lib/mol-model/sequence/alignment/sequence.js +3 -3
  365. package/lib/mol-model/sequence/sequence.js +9 -9
  366. package/lib/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
  367. package/lib/mol-model/structure/export/categories/secondary-structure.js +2 -2
  368. package/lib/mol-model/structure/export/categories/utils.js +1 -1
  369. package/lib/mol-model/structure/model/model.js +2 -2
  370. package/lib/mol-model/structure/model/properties/custom/indexed.js +6 -6
  371. package/lib/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
  372. package/lib/mol-model/structure/model/types.js +116 -116
  373. package/lib/mol-model/structure/query/context.js +1 -1
  374. package/lib/mol-model/structure/query/queries/generators.js +5 -5
  375. package/lib/mol-model/structure/query/queries/internal.js +4 -4
  376. package/lib/mol-model/structure/query/queries/modifiers.js +4 -4
  377. package/lib/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
  378. package/lib/mol-model/structure/query/utils/structure-distance.js +9 -9
  379. package/lib/mol-model/structure/structure/carbohydrates/constants.js +106 -106
  380. package/lib/mol-model/structure/structure/element/loci.js +5 -5
  381. package/lib/mol-model/structure/structure/element/stats.js +5 -5
  382. package/lib/mol-model/structure/structure/properties.js +5 -5
  383. package/lib/mol-model/structure/structure/structure.js +11 -11
  384. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
  385. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
  386. package/lib/mol-model/structure/structure/unit/bonds.js +2 -2
  387. package/lib/mol-model/structure/structure/unit/resonance.js +1 -1
  388. package/lib/mol-model/structure/structure/unit/rings/compute.js +6 -6
  389. package/lib/mol-model/structure/structure/unit/rings.js +6 -6
  390. package/lib/mol-model/structure/structure/unit.js +16 -16
  391. package/lib/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
  392. package/lib/mol-model/structure/util.js +4 -4
  393. package/lib/mol-model-formats/structure/basic/atomic.js +2 -2
  394. package/lib/mol-model-formats/structure/basic/parser.js +4 -4
  395. package/lib/mol-model-formats/structure/basic/properties.js +1 -1
  396. package/lib/mol-model-formats/structure/basic/sort.js +1 -1
  397. package/lib/mol-model-formats/structure/basic/util.js +1 -1
  398. package/lib/mol-model-formats/structure/cif-core.js +6 -6
  399. package/lib/mol-model-formats/structure/common/entity.js +1 -1
  400. package/lib/mol-model-formats/structure/cube.js +1 -1
  401. package/lib/mol-model-formats/structure/gro.js +1 -1
  402. package/lib/mol-model-formats/structure/mol.js +1 -1
  403. package/lib/mol-model-formats/structure/mol2.js +4 -4
  404. package/lib/mol-model-formats/structure/prmtop.js +1 -1
  405. package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
  406. package/lib/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  407. package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
  408. package/lib/mol-model-formats/structure/property/secondary-structure.js +8 -8
  409. package/lib/mol-model-formats/structure/psf.js +1 -1
  410. package/lib/mol-model-formats/structure/top.js +1 -1
  411. package/lib/mol-model-formats/structure/xyz.js +1 -1
  412. package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
  413. package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
  414. package/lib/mol-model-props/computed/accessible-surface-area.js +2 -2
  415. package/lib/mol-model-props/computed/chemistry/functional-group.js +31 -31
  416. package/lib/mol-model-props/computed/chemistry/geometry.js +22 -22
  417. package/lib/mol-model-props/computed/chemistry/valence-model.js +32 -32
  418. package/lib/mol-model-props/computed/interactions/charged.js +39 -39
  419. package/lib/mol-model-props/computed/interactions/common.js +34 -34
  420. package/lib/mol-model-props/computed/interactions/contacts-builder.js +1 -1
  421. package/lib/mol-model-props/computed/interactions/contacts.js +1 -1
  422. package/lib/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
  423. package/lib/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
  424. package/lib/mol-model-props/computed/interactions/hydrophobic.js +9 -9
  425. package/lib/mol-model-props/computed/interactions/metal.js +26 -26
  426. package/lib/mol-model-props/computed/interactions/refine.js +20 -20
  427. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
  428. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
  429. package/lib/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
  430. package/lib/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
  431. package/lib/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
  432. package/lib/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
  433. package/lib/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
  434. package/lib/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
  435. package/lib/mol-model-props/computed/secondary-structure/dssp.js +30 -30
  436. package/lib/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
  437. package/lib/mol-model-props/computed/themes/interaction-type.js +10 -10
  438. package/lib/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
  439. package/lib/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
  440. package/lib/mol-model-props/sequence/sifts-mapping.js +1 -1
  441. package/lib/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
  442. package/lib/mol-plugin/animation-loop.d.ts +2 -1
  443. package/lib/mol-plugin/animation-loop.js +18 -5
  444. package/lib/mol-plugin/behavior/dynamic/camera.js +12 -12
  445. package/lib/mol-plugin/behavior/dynamic/representation.js +7 -7
  446. package/lib/mol-plugin/context.d.ts +2 -2
  447. package/lib/mol-plugin/state.d.ts +1 -14
  448. package/lib/mol-plugin/version.js +2 -2
  449. package/lib/mol-plugin-state/formats/volume.d.ts +12 -11
  450. package/lib/mol-plugin-state/formats/volume.js +20 -13
  451. package/lib/mol-plugin-state/helpers/structure-selection-query.js +5 -5
  452. package/lib/mol-plugin-state/transforms/representation.js +2 -2
  453. package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -1
  454. package/lib/mol-plugin-ui/sequence/polymer.js +1 -1
  455. package/lib/mol-plugin-ui/sequence/sequence.js +1 -1
  456. package/lib/mol-plugin-ui/structure/focus.js +1 -1
  457. package/lib/mol-plugin-ui/viewport.d.ts +2 -2
  458. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
  459. package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
  460. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -12
  461. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +12 -12
  462. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
  463. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  464. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
  465. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
  466. package/lib/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  467. package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
  468. package/lib/mol-repr/structure/visual/util/bond.js +2 -2
  469. package/lib/mol-repr/structure/visual/util/common.js +3 -3
  470. package/lib/mol-repr/structure/visual/util/link.js +30 -30
  471. package/lib/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
  472. package/lib/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
  473. package/lib/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
  474. package/lib/mol-repr/structure/visual/util/polymer.js +6 -6
  475. package/lib/mol-script/language/symbol-table/core.d.ts +2 -2
  476. package/lib/mol-script/runtime/query/table.js +13 -13
  477. package/lib/mol-state/object.d.ts +3 -3
  478. package/lib/mol-task/util/user-timing.js +1 -1
  479. package/lib/mol-theme/clipping.js +19 -19
  480. package/lib/mol-theme/color/atom-id.js +1 -1
  481. package/lib/mol-theme/color/carbohydrate-symbol.js +1 -1
  482. package/lib/mol-theme/color/chain-id.js +4 -4
  483. package/lib/mol-theme/color/element-index.js +1 -1
  484. package/lib/mol-theme/color/element-symbol.js +1 -1
  485. package/lib/mol-theme/color/entity-id.js +4 -4
  486. package/lib/mol-theme/color/entity-source.js +5 -4
  487. package/lib/mol-theme/color/hydrophobicity.js +1 -1
  488. package/lib/mol-theme/color/illustrative.js +1 -1
  489. package/lib/mol-theme/color/model-index.js +1 -1
  490. package/lib/mol-theme/color/molecule-type.js +8 -8
  491. package/lib/mol-theme/color/occupancy.js +1 -1
  492. package/lib/mol-theme/color/operator-hkl.js +1 -1
  493. package/lib/mol-theme/color/operator-name.js +1 -1
  494. package/lib/mol-theme/color/partial-charge.js +1 -1
  495. package/lib/mol-theme/color/polymer-id.js +4 -4
  496. package/lib/mol-theme/color/polymer-index.js +1 -1
  497. package/lib/mol-theme/color/residue-name.js +1 -1
  498. package/lib/mol-theme/color/secondary-structure.js +12 -12
  499. package/lib/mol-theme/color/sequence-id.js +7 -7
  500. package/lib/mol-theme/color/shape-group.js +1 -1
  501. package/lib/mol-theme/color/uncertainty.js +1 -1
  502. package/lib/mol-theme/color/uniform.js +1 -1
  503. package/lib/mol-theme/color/unit-index.js +1 -1
  504. package/lib/mol-theme/color/volume-value.js +1 -1
  505. package/lib/mol-theme/label.js +3 -3
  506. package/lib/mol-util/binding.js +4 -4
  507. package/lib/mol-util/debug.d.ts +6 -1
  508. package/lib/mol-util/debug.js +9 -1
  509. package/lib/mol-util/input/input-observer.js +20 -20
  510. package/lib/mol-util/string-builder.js +1 -1
  511. package/lib/servers/model/preprocess/converter.js +1 -1
  512. package/lib/servers/model/server/query.js +1 -1
  513. package/lib/servers/model/utils/fetch-retry.js +3 -2
  514. package/lib/servers/volume/server/algebra/coordinate.js +6 -6
  515. package/lib/servers/volume/server/query/encode.js +1 -1
  516. package/package.json +8 -8
@@ -15,6 +15,7 @@ var wboit_1 = require("./wboit");
15
15
  var postprocessing_1 = require("./postprocessing");
16
16
  var marking_1 = require("./marking");
17
17
  var util_1 = require("../../mol-gl/compute/util");
18
+ var debug_1 = require("../../mol-util/debug");
18
19
  var DrawPass = /** @class */ (function () {
19
20
  function DrawPass(webgl, width, height, enableWboit) {
20
21
  this.webgl = webgl;
@@ -95,8 +96,12 @@ var DrawPass = /** @class */ (function () {
95
96
  // render transparent primitives and volumes
96
97
  if (scene.opacityAverage < 1 || scene.volumes.renderables.length > 0) {
97
98
  this.wboit.bind();
98
- renderer.renderWboitTransparent(scene.primitives, camera, this.depthTextureOpaque);
99
- renderer.renderWboitTransparent(scene.volumes, camera, this.depthTextureOpaque);
99
+ if (scene.opacityAverage < 1) {
100
+ renderer.renderWboitTransparent(scene.primitives, camera, this.depthTextureOpaque);
101
+ }
102
+ if (scene.volumes.renderables.length > 0) {
103
+ renderer.renderWboitTransparent(scene.volumes, camera, this.depthTextureOpaque);
104
+ }
100
105
  // evaluate wboit
101
106
  if (postprocessing_1.PostprocessingPass.isEnabled(postprocessingProps)) {
102
107
  this.postprocessing.target.bind();
@@ -108,7 +113,7 @@ var DrawPass = /** @class */ (function () {
108
113
  }
109
114
  };
110
115
  DrawPass.prototype._renderBlended = function (renderer, camera, scene, toDrawingBuffer, transparentBackground, postprocessingProps) {
111
- var _a, _b;
116
+ var _a, _b, _c, _d;
112
117
  if (toDrawingBuffer) {
113
118
  this.drawTarget.bind();
114
119
  }
@@ -151,9 +156,29 @@ var DrawPass = /** @class */ (function () {
151
156
  (_b = this.colorTarget.depthRenderbuffer) === null || _b === void 0 ? void 0 : _b.attachFramebuffer(this.postprocessing.target.framebuffer);
152
157
  }
153
158
  }
154
- renderer.renderBlendedVolume(scene.volumes, camera, this.depthTextureOpaque);
159
+ if (scene.volumes.renderables.length > 0) {
160
+ var target = postprocessing_1.PostprocessingPass.isEnabled(postprocessingProps)
161
+ ? this.postprocessing.target : this.colorTarget;
162
+ if (!this.packedDepth) {
163
+ this.depthTextureOpaque.detachFramebuffer(target.framebuffer, 'depth');
164
+ }
165
+ else {
166
+ (_c = this.colorTarget.depthRenderbuffer) === null || _c === void 0 ? void 0 : _c.detachFramebuffer(target.framebuffer);
167
+ }
168
+ target.bind();
169
+ renderer.renderBlendedVolume(scene.volumes, camera, this.depthTextureOpaque);
170
+ if (!this.packedDepth) {
171
+ this.depthTextureOpaque.attachFramebuffer(target.framebuffer, 'depth');
172
+ }
173
+ else {
174
+ (_d = this.colorTarget.depthRenderbuffer) === null || _d === void 0 ? void 0 : _d.attachFramebuffer(target.framebuffer);
175
+ }
176
+ target.bind();
177
+ }
178
+ }
179
+ if (scene.opacityAverage < 1) {
180
+ renderer.renderBlendedTransparent(scene.primitives, camera, null);
155
181
  }
156
- renderer.renderBlendedTransparent(scene.primitives, camera, null);
157
182
  };
158
183
  DrawPass.prototype._render = function (renderer, camera, scene, helper, toDrawingBuffer, props) {
159
184
  var volumeRendering = scene.volumes.renderables.length > 0;
@@ -225,6 +250,8 @@ var DrawPass = /** @class */ (function () {
225
250
  this.webgl.gl.flush();
226
251
  };
227
252
  DrawPass.prototype.render = function (ctx, props, toDrawingBuffer) {
253
+ if (debug_1.isTimingMode)
254
+ this.webgl.timer.mark('DrawPass.render');
228
255
  var renderer = ctx.renderer, camera = ctx.camera, scene = ctx.scene, helper = ctx.helper;
229
256
  renderer.setTransparentBackground(props.transparentBackground);
230
257
  renderer.setDrawingBufferSize(this.colorTarget.getWidth(), this.colorTarget.getHeight());
@@ -236,6 +263,8 @@ var DrawPass = /** @class */ (function () {
236
263
  else {
237
264
  this._render(renderer, camera, scene, helper, toDrawingBuffer, props);
238
265
  }
266
+ if (debug_1.isTimingMode)
267
+ this.webgl.timer.markEnd('DrawPass.render');
239
268
  };
240
269
  DrawPass.prototype.getColorTarget = function (postprocessingProps) {
241
270
  if (postprocessing_1.AntialiasingPass.isEnabled(postprocessingProps)) {
@@ -17,6 +17,7 @@ var mol_util_1 = require("../../mol-util");
17
17
  var param_definition_1 = require("../../mol-util/param-definition");
18
18
  var quad_vert_1 = require("../../mol-gl/shader/quad.vert");
19
19
  var fxaa_frag_1 = require("../../mol-gl/shader/fxaa.frag");
20
+ var debug_1 = require("../../mol-util/debug");
20
21
  exports.FxaaParams = {
21
22
  edgeThresholdMin: param_definition_1.ParamDefinition.Numeric(0.0312, { min: 0.0312, max: 0.0833, step: 0.0001 }, { description: 'Trims the algorithm from processing darks.' }),
22
23
  edgeThresholdMax: param_definition_1.ParamDefinition.Numeric(0.063, { min: 0.063, max: 0.333, step: 0.001 }, { description: 'The minimum amount of local contrast required to apply algorithm.' }),
@@ -68,6 +69,8 @@ var FxaaPass = /** @class */ (function () {
68
69
  }
69
70
  };
70
71
  FxaaPass.prototype.render = function (viewport, target) {
72
+ if (debug_1.isTimingMode)
73
+ this.webgl.timer.mark('FxaaPass.render');
71
74
  if (target) {
72
75
  target.bind();
73
76
  }
@@ -76,6 +79,8 @@ var FxaaPass = /** @class */ (function () {
76
79
  }
77
80
  this.updateState(viewport);
78
81
  this.renderable.render();
82
+ if (debug_1.isTimingMode)
83
+ this.webgl.timer.markEnd('FxaaPass.render');
79
84
  };
80
85
  return FxaaPass;
81
86
  }());
@@ -19,6 +19,7 @@ var quad_vert_1 = require("../../mol-gl/shader/quad.vert");
19
19
  var overlay_frag_1 = require("../../mol-gl/shader/marking/overlay.frag");
20
20
  var color_1 = require("../../mol-util/color");
21
21
  var edge_frag_1 = require("../../mol-gl/shader/marking/edge.frag");
22
+ var debug_1 = require("../../mol-util/debug");
22
23
  exports.MarkingParams = {
23
24
  enabled: param_definition_1.ParamDefinition.Boolean(true),
24
25
  highlightEdgeColor: param_definition_1.ParamDefinition.Color(color_1.Color.darken(color_1.Color.fromNormalizedRgb(1.0, 0.4, 0.6), 1.0)),
@@ -91,6 +92,8 @@ var MarkingPass = /** @class */ (function () {
91
92
  mol_util_1.ValueCell.update(overlayValues.uGhostEdgeStrength, ghostEdgeStrength);
92
93
  };
93
94
  MarkingPass.prototype.render = function (viewport, target) {
95
+ if (debug_1.isTimingMode)
96
+ this.webgl.timer.mark('MarkingPass.render');
94
97
  this.edgesTarget.bind();
95
98
  this.setEdgeState(viewport);
96
99
  this.edge.render();
@@ -102,6 +105,8 @@ var MarkingPass = /** @class */ (function () {
102
105
  }
103
106
  this.setOverlayState(viewport);
104
107
  this.overlay.render();
108
+ if (debug_1.isTimingMode)
109
+ this.webgl.timer.markEnd('MarkingPass.render');
105
110
  };
106
111
  return MarkingPass;
107
112
  }());
@@ -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
  };
@@ -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;