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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -93,4 +93,37 @@ export interface COMPAT_sRGB {
93
93
  readonly SRGB: number;
94
94
  }
95
95
  export declare function getSRGB(gl: GLRenderingContext): COMPAT_sRGB | null;
96
+ export interface COMPAT_disjoint_timer_query {
97
+ /** A GLint indicating the number of bits used to hold the query result for the given target. */
98
+ QUERY_COUNTER_BITS: number;
99
+ /** A WebGLQuery object, which is the currently active query for the given target. */
100
+ CURRENT_QUERY: number;
101
+ /** A GLuint64EXT containing the query result. */
102
+ QUERY_RESULT: number;
103
+ /** A GLboolean indicating whether or not a query result is available. */
104
+ QUERY_RESULT_AVAILABLE: number;
105
+ /** Elapsed time (in nanoseconds). */
106
+ TIME_ELAPSED: number;
107
+ /** The current time. */
108
+ TIMESTAMP: number;
109
+ /** A GLboolean indicating whether or not the GPU performed any disjoint operation. */
110
+ GPU_DISJOINT: number;
111
+ /** Creates a new WebGLTimerQueryEXT. */
112
+ createQuery: () => WebGLQuery;
113
+ /** Deletes a given WebGLTimerQueryEXT. */
114
+ deleteQuery: (query: WebGLQuery) => void;
115
+ /** Returns true if a given object is a valid WebGLTimerQueryEXT. */
116
+ isQuery: (query: WebGLQuery) => boolean;
117
+ /** The timer starts when all commands prior to beginQueryEXT have been fully executed. */
118
+ beginQuery: (target: number, query: WebGLQuery) => void;
119
+ /** The timer stops when all commands prior to endQueryEXT have been fully executed. */
120
+ endQuery: (target: number) => void;
121
+ /** Records the current time into the corresponding query object. */
122
+ queryCounter: (query: WebGLQuery, target: number) => void;
123
+ /** Returns information about a query target. */
124
+ getQuery: (target: number, pname: number) => WebGLQuery | number;
125
+ /** Return the state of a query object. */
126
+ getQueryParameter: (query: WebGLQuery, pname: number) => number | boolean;
127
+ }
128
+ export declare function getDisjointTimerQuery(gl: GLRenderingContext): COMPAT_disjoint_timer_query | null;
96
129
  export declare function testColorBuffer(gl: GLRenderingContext, type: number): boolean;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -231,6 +231,53 @@ export function getSRGB(gl) {
231
231
  };
232
232
  }
233
233
  }
234
+ export function getDisjointTimerQuery(gl) {
235
+ if (isWebGL2(gl)) {
236
+ // Firefox has EXT_disjoint_timer_query in webgl2
237
+ var ext = gl.getExtension('EXT_disjoint_timer_query_webgl2') || gl.getExtension('EXT_disjoint_timer_query');
238
+ if (ext === null)
239
+ return null;
240
+ return {
241
+ QUERY_COUNTER_BITS: ext.QUERY_COUNTER_BITS_EXT,
242
+ CURRENT_QUERY: gl.CURRENT_QUERY,
243
+ QUERY_RESULT: gl.QUERY_RESULT,
244
+ QUERY_RESULT_AVAILABLE: gl.QUERY_RESULT_AVAILABLE,
245
+ TIME_ELAPSED: ext.TIME_ELAPSED_EXT,
246
+ TIMESTAMP: ext.TIMESTAMP_EXT,
247
+ GPU_DISJOINT: ext.GPU_DISJOINT_EXT,
248
+ createQuery: gl.createQuery.bind(gl),
249
+ deleteQuery: gl.deleteQuery.bind(gl),
250
+ isQuery: gl.isQuery.bind(gl),
251
+ beginQuery: gl.beginQuery.bind(gl),
252
+ endQuery: gl.endQuery.bind(gl),
253
+ queryCounter: ext.queryCounterEXT.bind(ext),
254
+ getQuery: gl.getQuery.bind(gl),
255
+ getQueryParameter: gl.getQueryParameter.bind(gl),
256
+ };
257
+ }
258
+ else {
259
+ var ext = gl.getExtension('EXT_disjoint_timer_query');
260
+ if (ext === null)
261
+ return null;
262
+ return {
263
+ QUERY_COUNTER_BITS: ext.QUERY_COUNTER_BITS_EXT,
264
+ CURRENT_QUERY: ext.CURRENT_QUERY_EXT,
265
+ QUERY_RESULT: ext.QUERY_RESULT_EXT,
266
+ QUERY_RESULT_AVAILABLE: ext.QUERY_RESULT_AVAILABLE_EXT,
267
+ TIME_ELAPSED: ext.TIME_ELAPSED_EXT,
268
+ TIMESTAMP: ext.TIMESTAMP_EXT,
269
+ GPU_DISJOINT: ext.GPU_DISJOINT_EXT,
270
+ createQuery: ext.createQueryEXT.bind(ext),
271
+ deleteQuery: ext.deleteQueryEXT.bind(ext),
272
+ isQuery: ext.isQueryEXT.bind(ext),
273
+ beginQuery: ext.beginQueryEXT.bind(ext),
274
+ endQuery: ext.endQueryEXT.bind(ext),
275
+ queryCounter: ext.queryCounterEXT.bind(ext),
276
+ getQuery: ext.getQueryEXT.bind(ext),
277
+ getQueryParameter: ext.getQueryObjectEXT.bind(ext),
278
+ };
279
+ }
280
+ }
234
281
  //
235
282
  var TextureTestVertShader = "\nattribute vec4 aPosition;\n\nvoid main() {\n gl_Position = aPosition;\n}";
236
283
  var TextureTestFragShader = "\nprecision mediump float;\nuniform vec4 uColor;\nuniform sampler2D uTexture;\n\nvoid main() {\n gl_FragColor = texture2D(uTexture, vec2(0.5, 0.5)) * uColor;\n}";
@@ -14,6 +14,7 @@ import { BehaviorSubject } from 'rxjs';
14
14
  import { now } from '../../mol-util/now';
15
15
  import { Texture, TextureFilter } from './texture';
16
16
  import { ComputeRenderable } from '../renderable';
17
+ import { WebGLTimer } from './timer';
17
18
  export declare function getGLContext(canvas: HTMLCanvasElement, attribs?: WebGLContextAttributes & {
18
19
  preferWebGl1?: boolean;
19
20
  }): GLRenderingContext | null;
@@ -45,6 +46,7 @@ export interface WebGLContext {
45
46
  readonly state: WebGLState;
46
47
  readonly stats: WebGLStats;
47
48
  readonly resources: WebGLResources;
49
+ readonly timer: WebGLTimer;
48
50
  readonly maxTextureSize: number;
49
51
  readonly max3dTextureSize: number;
50
52
  readonly maxRenderbufferSize: number;
@@ -15,6 +15,7 @@ import { createResources } from './resources';
15
15
  import { createRenderTarget } from './render-target';
16
16
  import { BehaviorSubject } from 'rxjs';
17
17
  import { now } from '../../mol-util/now';
18
+ import { createTimer } from './timer';
18
19
  export function getGLContext(canvas, attribs) {
19
20
  function get(id) {
20
21
  try {
@@ -169,6 +170,7 @@ export function createContext(gl, props) {
169
170
  var state = createState(gl);
170
171
  var stats = createStats();
171
172
  var resources = createResources(gl, state, stats, extensions);
173
+ var timer = createTimer(gl, extensions);
172
174
  var parameters = {
173
175
  maxTextureSize: gl.getParameter(gl.MAX_TEXTURE_SIZE),
174
176
  max3dTextureSize: isWebGL2(gl) ? gl.getParameter(gl.MAX_3D_TEXTURE_SIZE) : 0,
@@ -233,6 +235,7 @@ export function createContext(gl, props) {
233
235
  state: state,
234
236
  stats: stats,
235
237
  resources: resources,
238
+ timer: timer,
236
239
  get maxTextureSize() { return parameters.maxTextureSize; },
237
240
  get max3dTextureSize() { return parameters.max3dTextureSize; },
238
241
  get maxRenderbufferSize() { return parameters.maxRenderbufferSize; },
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- import { GLRenderingContext, COMPAT_instanced_arrays, COMPAT_standard_derivatives, COMPAT_vertex_array_object, COMPAT_element_index_uint, COMPAT_texture_float, COMPAT_texture_float_linear, COMPAT_blend_minmax, COMPAT_frag_depth, COMPAT_color_buffer_float, COMPAT_draw_buffers, COMPAT_shader_texture_lod, COMPAT_depth_texture, COMPAT_sRGB, COMPAT_texture_half_float, COMPAT_texture_half_float_linear, COMPAT_color_buffer_half_float } from './compat';
6
+ import { GLRenderingContext, COMPAT_instanced_arrays, COMPAT_standard_derivatives, COMPAT_vertex_array_object, COMPAT_element_index_uint, COMPAT_texture_float, COMPAT_texture_float_linear, COMPAT_blend_minmax, COMPAT_frag_depth, COMPAT_color_buffer_float, COMPAT_draw_buffers, COMPAT_shader_texture_lod, COMPAT_depth_texture, COMPAT_sRGB, COMPAT_texture_half_float, COMPAT_texture_half_float_linear, COMPAT_color_buffer_half_float, COMPAT_disjoint_timer_query } from './compat';
7
7
  export declare type WebGLExtensions = {
8
8
  instancedArrays: COMPAT_instanced_arrays;
9
9
  elementIndexUint: COMPAT_element_index_uint;
@@ -21,5 +21,6 @@ export declare type WebGLExtensions = {
21
21
  drawBuffers: COMPAT_draw_buffers | null;
22
22
  shaderTextureLod: COMPAT_shader_texture_lod | null;
23
23
  sRGB: COMPAT_sRGB | null;
24
+ disjointTimerQuery: COMPAT_disjoint_timer_query | null;
24
25
  };
25
26
  export declare function createExtensions(gl: GLRenderingContext): WebGLExtensions;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- import { getInstancedArrays, getStandardDerivatives, getElementIndexUint, getTextureFloat, getTextureFloatLinear, getBlendMinMax, getFragDepth, getColorBufferFloat, getDrawBuffers, getShaderTextureLod, getDepthTexture, getSRGB, getTextureHalfFloat, getTextureHalfFloatLinear, getColorBufferHalfFloat, getVertexArrayObject } from './compat';
6
+ import { getInstancedArrays, getStandardDerivatives, getElementIndexUint, getTextureFloat, getTextureFloatLinear, getBlendMinMax, getFragDepth, getColorBufferFloat, getDrawBuffers, getShaderTextureLod, getDepthTexture, getSRGB, getTextureHalfFloat, getTextureHalfFloatLinear, getColorBufferHalfFloat, getVertexArrayObject, getDisjointTimerQuery } from './compat';
7
7
  import { isDebugMode } from '../../mol-util/debug';
8
8
  export function createExtensions(gl) {
9
9
  var instancedArrays = getInstancedArrays(gl);
@@ -76,6 +76,10 @@ export function createExtensions(gl) {
76
76
  if (isDebugMode && sRGB === null) {
77
77
  console.log('Could not find support for "sRGB"');
78
78
  }
79
+ var disjointTimerQuery = getDisjointTimerQuery(gl);
80
+ if (isDebugMode && disjointTimerQuery === null) {
81
+ console.log('Could not find support for "disjoint_timer_query"');
82
+ }
79
83
  return {
80
84
  instancedArrays: instancedArrays,
81
85
  standardDerivatives: standardDerivatives,
@@ -93,5 +97,6 @@ export function createExtensions(gl) {
93
97
  drawBuffers: drawBuffers,
94
98
  shaderTextureLod: shaderTextureLod,
95
99
  sRGB: sRGB,
100
+ disjointTimerQuery: disjointTimerQuery,
96
101
  };
97
102
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ *
4
+ * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ */
6
+ import { GLRenderingContext } from './compat';
7
+ import { WebGLExtensions } from './extensions';
8
+ export declare type TimerResult = {
9
+ readonly label: string;
10
+ readonly timeElapsed: number;
11
+ readonly children: TimerResult[];
12
+ };
13
+ export declare type WebGLTimer = {
14
+ /** Check with GPU for finished timers. */
15
+ resolve: () => TimerResult[];
16
+ mark: (label: string) => void;
17
+ markEnd: (label: string) => void;
18
+ clear: () => void;
19
+ destroy: () => void;
20
+ };
21
+ export declare function createTimer(gl: GLRenderingContext, extensions: WebGLExtensions): WebGLTimer;
22
+ export declare function printTimerResults(results: TimerResult[]): void[];
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Copyright (c) 2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ *
4
+ * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ */
6
+ function getQuery(extensions) {
7
+ return extensions.disjointTimerQuery ? extensions.disjointTimerQuery.createQuery() : null;
8
+ }
9
+ export function createTimer(gl, extensions) {
10
+ var dtq = extensions.disjointTimerQuery;
11
+ var queries = new Map();
12
+ var pending = new Map();
13
+ var stack = [];
14
+ var measures = [];
15
+ var current = null;
16
+ var clear = function () {
17
+ if (!dtq)
18
+ return;
19
+ queries.forEach(function (_, query) {
20
+ dtq.deleteQuery(query);
21
+ });
22
+ pending.clear();
23
+ measures = [];
24
+ current = null;
25
+ };
26
+ var add = function () {
27
+ if (!dtq)
28
+ return;
29
+ var query = getQuery(extensions);
30
+ if (!query)
31
+ return;
32
+ dtq.beginQuery(dtq.TIME_ELAPSED, query);
33
+ pending.forEach(function (measure, _) {
34
+ measure.queries.push(query);
35
+ });
36
+ queries.set(query, { refCount: pending.size });
37
+ current = query;
38
+ };
39
+ return {
40
+ resolve: function () {
41
+ var results = [];
42
+ if (!dtq || !measures.length)
43
+ return results;
44
+ // console.log('resolve');
45
+ queries.forEach(function (result, query) {
46
+ if (result.timeElapsed !== undefined)
47
+ return;
48
+ var available = dtq.getQueryParameter(query, dtq.QUERY_RESULT_AVAILABLE);
49
+ var disjoint = gl.getParameter(dtq.GPU_DISJOINT);
50
+ if (available && !disjoint) {
51
+ var timeElapsed = dtq.getQueryParameter(query, dtq.QUERY_RESULT);
52
+ result.timeElapsed = timeElapsed;
53
+ // console.log('timeElapsed', result.timeElapsed);
54
+ }
55
+ if (available || disjoint) {
56
+ dtq.deleteQuery(query);
57
+ }
58
+ });
59
+ var unresolved = [];
60
+ var _loop_1 = function (measure) {
61
+ if (measure.queries.every(function (q) { var _a; return ((_a = queries.get(q)) === null || _a === void 0 ? void 0 : _a.timeElapsed) !== undefined; })) {
62
+ var timeElapsed = 0;
63
+ for (var _a = 0, _b = measure.queries; _a < _b.length; _a++) {
64
+ var query = _b[_a];
65
+ var result = queries.get(query);
66
+ timeElapsed += result.timeElapsed;
67
+ result.refCount -= 1;
68
+ }
69
+ measure.timeElapsed = timeElapsed;
70
+ if (measure.root) {
71
+ var children = [];
72
+ var add_1 = function (measures, children) {
73
+ for (var _i = 0, measures_2 = measures; _i < measures_2.length; _i++) {
74
+ var measure_1 = measures_2[_i];
75
+ var result = {
76
+ label: measure_1.label,
77
+ timeElapsed: measure_1.timeElapsed,
78
+ children: []
79
+ };
80
+ children.push(result);
81
+ add_1(measure_1.children, result.children);
82
+ }
83
+ };
84
+ add_1(measure.children, children);
85
+ results.push({ label: measure.label, timeElapsed: timeElapsed, children: children });
86
+ }
87
+ }
88
+ else {
89
+ unresolved.push(measure);
90
+ }
91
+ };
92
+ for (var _i = 0, measures_1 = measures; _i < measures_1.length; _i++) {
93
+ var measure = measures_1[_i];
94
+ _loop_1(measure);
95
+ }
96
+ measures = unresolved;
97
+ queries.forEach(function (result, query) {
98
+ if (result.refCount === 0) {
99
+ queries.delete(query);
100
+ }
101
+ });
102
+ return results;
103
+ },
104
+ mark: function (label) {
105
+ if (!dtq)
106
+ return;
107
+ if (pending.has(label)) {
108
+ throw new Error("Timer mark for '".concat(label, "' already exists"));
109
+ }
110
+ if (current !== null) {
111
+ dtq.endQuery(dtq.TIME_ELAPSED);
112
+ }
113
+ var measure = { label: label, queries: [], children: [], root: current === null };
114
+ pending.set(label, measure);
115
+ if (stack.length) {
116
+ stack[stack.length - 1].children.push(measure);
117
+ }
118
+ stack.push(measure);
119
+ add();
120
+ },
121
+ markEnd: function (label) {
122
+ var _a;
123
+ if (!dtq)
124
+ return;
125
+ var measure = pending.get(label);
126
+ if (!measure) {
127
+ throw new Error("Timer mark for '".concat(label, "' does not exist"));
128
+ }
129
+ if (((_a = stack.pop()) === null || _a === void 0 ? void 0 : _a.label) !== label) {
130
+ throw new Error("Timer mark for '".concat(label, "' has pending nested mark"));
131
+ }
132
+ dtq.endQuery(dtq.TIME_ELAPSED);
133
+ pending.delete(label);
134
+ measures.push(measure);
135
+ if (pending.size > 0) {
136
+ add();
137
+ }
138
+ else {
139
+ current = null;
140
+ }
141
+ },
142
+ clear: clear,
143
+ destroy: function () {
144
+ clear();
145
+ }
146
+ };
147
+ }
148
+ function formatTimerResult(result) {
149
+ var timeElapsed = result.timeElapsed / 1000 / 1000;
150
+ return "".concat(result.label, " ").concat(timeElapsed.toFixed(2), "ms");
151
+ }
152
+ export function printTimerResults(results) {
153
+ return results.map(function (r) {
154
+ var f = formatTimerResult(r);
155
+ if (r.children.length) {
156
+ console.groupCollapsed(f);
157
+ printTimerResults(r.children);
158
+ console.groupEnd();
159
+ }
160
+ else {
161
+ console.log(f);
162
+ }
163
+ });
164
+ }
@@ -75,37 +75,37 @@ export var ArrayEncoding;
75
75
  ArrayEncoding.by = by;
76
76
  function uint8(data) {
77
77
  return {
78
- encodings: [{ kind: 'ByteArray', type: 4 /* Uint8 */ }],
78
+ encodings: [{ kind: 'ByteArray', type: 4 /* Encoding.IntDataType.Uint8 */ }],
79
79
  data: data
80
80
  };
81
81
  }
82
82
  function int8(data) {
83
83
  return {
84
- encodings: [{ kind: 'ByteArray', type: 1 /* Int8 */ }],
84
+ encodings: [{ kind: 'ByteArray', type: 1 /* Encoding.IntDataType.Int8 */ }],
85
85
  data: new Uint8Array(data.buffer, data.byteOffset)
86
86
  };
87
87
  }
88
88
  var writers = (_a = {},
89
- _a[2 /* Int16 */] = function (v, i, a) { v.setInt16(2 * i, a, true); },
90
- _a[5 /* Uint16 */] = function (v, i, a) { v.setUint16(2 * i, a, true); },
91
- _a[3 /* Int32 */] = function (v, i, a) { v.setInt32(4 * i, a, true); },
92
- _a[6 /* Uint32 */] = function (v, i, a) { v.setUint32(4 * i, a, true); },
93
- _a[32 /* Float32 */] = function (v, i, a) { v.setFloat32(4 * i, a, true); },
94
- _a[33 /* Float64 */] = function (v, i, a) { v.setFloat64(8 * i, a, true); },
89
+ _a[2 /* Encoding.IntDataType.Int16 */] = function (v, i, a) { v.setInt16(2 * i, a, true); },
90
+ _a[5 /* Encoding.IntDataType.Uint16 */] = function (v, i, a) { v.setUint16(2 * i, a, true); },
91
+ _a[3 /* Encoding.IntDataType.Int32 */] = function (v, i, a) { v.setInt32(4 * i, a, true); },
92
+ _a[6 /* Encoding.IntDataType.Uint32 */] = function (v, i, a) { v.setUint32(4 * i, a, true); },
93
+ _a[32 /* Encoding.FloatDataType.Float32 */] = function (v, i, a) { v.setFloat32(4 * i, a, true); },
94
+ _a[33 /* Encoding.FloatDataType.Float64 */] = function (v, i, a) { v.setFloat64(8 * i, a, true); },
95
95
  _a);
96
96
  var byteSizes = (_b = {},
97
- _b[2 /* Int16 */] = 2,
98
- _b[5 /* Uint16 */] = 2,
99
- _b[3 /* Int32 */] = 4,
100
- _b[6 /* Uint32 */] = 4,
101
- _b[32 /* Float32 */] = 4,
102
- _b[33 /* Float64 */] = 8,
97
+ _b[2 /* Encoding.IntDataType.Int16 */] = 2,
98
+ _b[5 /* Encoding.IntDataType.Uint16 */] = 2,
99
+ _b[3 /* Encoding.IntDataType.Int32 */] = 4,
100
+ _b[6 /* Encoding.IntDataType.Uint32 */] = 4,
101
+ _b[32 /* Encoding.FloatDataType.Float32 */] = 4,
102
+ _b[33 /* Encoding.FloatDataType.Float64 */] = 8,
103
103
  _b);
104
104
  function byteArray(data) {
105
105
  var type = Encoding.getDataType(data);
106
- if (type === 1 /* Int8 */)
106
+ if (type === 1 /* Encoding.IntDataType.Int8 */)
107
107
  return int8(data);
108
- else if (type === 4 /* Uint8 */)
108
+ else if (type === 4 /* Encoding.IntDataType.Uint8 */)
109
109
  return uint8(data);
110
110
  var result = new Uint8Array(data.length * byteSizes[type]);
111
111
  var w = writers[type];
@@ -170,7 +170,7 @@ export var ArrayEncoding;
170
170
  var srcType = Encoding.getDataType(data);
171
171
  if (srcType === void 0) {
172
172
  data = new Int32Array(data);
173
- srcType = 3 /* Int32 */;
173
+ srcType = 3 /* Encoding.IntDataType.Int32 */;
174
174
  }
175
175
  if (!data.length) {
176
176
  return {
@@ -214,7 +214,7 @@ export var ArrayEncoding;
214
214
  var srcType = Encoding.getDataType(data);
215
215
  if (srcType === void 0) {
216
216
  data = new Int32Array(data);
217
- srcType = 3 /* Int32 */;
217
+ srcType = 3 /* Encoding.IntDataType.Int32 */;
218
218
  }
219
219
  if (!data.length) {
220
220
  return {
@@ -21,14 +21,14 @@ function decodeStep(data, encoding) {
21
21
  switch (encoding.kind) {
22
22
  case 'ByteArray': {
23
23
  switch (encoding.type) {
24
- case 4 /* Uint8 */: return data;
25
- case 1 /* Int8 */: return int8(data);
26
- case 2 /* Int16 */: return int16(data);
27
- case 5 /* Uint16 */: return uint16(data);
28
- case 3 /* Int32 */: return int32(data);
29
- case 6 /* Uint32 */: return uint32(data);
30
- case 32 /* Float32 */: return float32(data);
31
- case 33 /* Float64 */: return float64(data);
24
+ case 4 /* Encoding.IntDataType.Uint8 */: return data;
25
+ case 1 /* Encoding.IntDataType.Int8 */: return int8(data);
26
+ case 2 /* Encoding.IntDataType.Int16 */: return int16(data);
27
+ case 5 /* Encoding.IntDataType.Uint16 */: return uint16(data);
28
+ case 3 /* Encoding.IntDataType.Int32 */: return int32(data);
29
+ case 6 /* Encoding.IntDataType.Uint32 */: return uint32(data);
30
+ case 32 /* Encoding.FloatDataType.Float32 */: return float32(data);
31
+ case 33 /* Encoding.FloatDataType.Float64 */: return float64(data);
32
32
  default: assertUnreachable(encoding.type);
33
33
  }
34
34
  }
@@ -42,19 +42,19 @@ function decodeStep(data, encoding) {
42
42
  }
43
43
  function getIntArray(type, size) {
44
44
  switch (type) {
45
- case 1 /* Int8 */: return new Int8Array(size);
46
- case 2 /* Int16 */: return new Int16Array(size);
47
- case 3 /* Int32 */: return new Int32Array(size);
48
- case 4 /* Uint8 */: return new Uint8Array(size);
49
- case 5 /* Uint16 */: return new Uint16Array(size);
50
- case 6 /* Uint32 */: return new Uint32Array(size);
45
+ case 1 /* Encoding.IntDataType.Int8 */: return new Int8Array(size);
46
+ case 2 /* Encoding.IntDataType.Int16 */: return new Int16Array(size);
47
+ case 3 /* Encoding.IntDataType.Int32 */: return new Int32Array(size);
48
+ case 4 /* Encoding.IntDataType.Uint8 */: return new Uint8Array(size);
49
+ case 5 /* Encoding.IntDataType.Uint16 */: return new Uint16Array(size);
50
+ case 6 /* Encoding.IntDataType.Uint32 */: return new Uint32Array(size);
51
51
  default: assertUnreachable(type);
52
52
  }
53
53
  }
54
54
  function getFloatArray(type, size) {
55
55
  switch (type) {
56
- case 32 /* Float32 */: return new Float32Array(size);
57
- case 33 /* Float64 */: return new Float64Array(size);
56
+ case 32 /* Encoding.FloatDataType.Float32 */: return new Float32Array(size);
57
+ case 33 /* Encoding.FloatDataType.Float64 */: return new Float64Array(size);
58
58
  default: assertUnreachable(type);
59
59
  }
60
60
  }
@@ -10,23 +10,23 @@ export var Encoding;
10
10
  function getDataType(data) {
11
11
  var srcType;
12
12
  if (data instanceof Int8Array)
13
- srcType = 1 /* Int8 */;
13
+ srcType = 1 /* Encoding.IntDataType.Int8 */;
14
14
  else if (data instanceof Int16Array)
15
- srcType = 2 /* Int16 */;
15
+ srcType = 2 /* Encoding.IntDataType.Int16 */;
16
16
  else if (data instanceof Int32Array)
17
- srcType = 3 /* Int32 */;
17
+ srcType = 3 /* Encoding.IntDataType.Int32 */;
18
18
  else if (data instanceof Uint8Array)
19
- srcType = 4 /* Uint8 */;
19
+ srcType = 4 /* Encoding.IntDataType.Uint8 */;
20
20
  else if (data instanceof Uint16Array)
21
- srcType = 5 /* Uint16 */;
21
+ srcType = 5 /* Encoding.IntDataType.Uint16 */;
22
22
  else if (data instanceof Uint32Array)
23
- srcType = 6 /* Uint32 */;
23
+ srcType = 6 /* Encoding.IntDataType.Uint32 */;
24
24
  else if (data instanceof Float32Array)
25
- srcType = 32 /* Float32 */;
25
+ srcType = 32 /* Encoding.FloatDataType.Float32 */;
26
26
  else if (data instanceof Float64Array)
27
- srcType = 33 /* Float64 */;
27
+ srcType = 33 /* Encoding.FloatDataType.Float64 */;
28
28
  else
29
- srcType = 3 /* Int32 */; // throw new Error('Unsupported integer data type.');
29
+ srcType = 3 /* Encoding.IntDataType.Int32 */; // throw new Error('Unsupported integer data type.');
30
30
  return srcType;
31
31
  }
32
32
  Encoding.getDataType = getDataType;
@@ -13,10 +13,10 @@ export function Field(column) {
13
13
  var isNumeric = ColumnHelpers.isTypedArray(data);
14
14
  var str = isNumeric
15
15
  ? mask
16
- ? function (row) { return mask[row] === 0 /* Present */ ? '' + data[row] : ''; }
16
+ ? function (row) { return mask[row] === 0 /* Column.ValueKind.Present */ ? '' + data[row] : ''; }
17
17
  : function (row) { return '' + data[row]; }
18
18
  : mask
19
- ? function (row) { return mask[row] === 0 /* Present */ ? data[row] : ''; }
19
+ ? function (row) { return mask[row] === 0 /* Column.ValueKind.Present */ ? data[row] : ''; }
20
20
  : function (row) { return data[row]; };
21
21
  var int = isNumeric
22
22
  ? function (row) { return data[row]; }
@@ -26,7 +26,7 @@ export function Field(column) {
26
26
  : function (row) { var v = data[row]; return fastParseFloat(v, 0, v.length); };
27
27
  var valueKind = mask
28
28
  ? function (row) { return mask[row]; }
29
- : function (row) { return 0 /* Present */; };
29
+ : function (row) { return 0 /* Column.ValueKind.Present */; };
30
30
  var rowCount = data.length;
31
31
  return {
32
32
  __array: data,
@@ -71,15 +71,15 @@ export var CifField;
71
71
  var valueKind = function (row) {
72
72
  var v = values[row], l = v.length;
73
73
  if (l > 1)
74
- return 0 /* Present */;
74
+ return 0 /* Column.ValueKind.Present */;
75
75
  if (l === 0)
76
- return 1 /* NotPresent */;
76
+ return 1 /* Column.ValueKind.NotPresent */;
77
77
  var c = v.charCodeAt(0);
78
78
  if (c === 46 /* . */)
79
- return 1 /* NotPresent */;
79
+ return 1 /* Column.ValueKind.NotPresent */;
80
80
  if (c === 63 /* ? */)
81
- return 2 /* Unknown */;
82
- return 0 /* Present */;
81
+ return 2 /* Column.ValueKind.Unknown */;
82
+ return 0 /* Column.ValueKind.Present */;
83
83
  };
84
84
  return {
85
85
  __array: void 0,
@@ -101,7 +101,7 @@ export var CifField;
101
101
  var rowCount = values.length;
102
102
  var str = function (row) { return '' + values[row]; };
103
103
  var float = function (row) { return values[row]; };
104
- var valueKind = function (row) { return 0 /* Present */; };
104
+ var valueKind = function (row) { return 0 /* Column.ValueKind.Present */; };
105
105
  var toFloatArray = function (params) {
106
106
  if (!params || params.array && values instanceof params.array) {
107
107
  return values;
@@ -143,15 +143,15 @@ export var CifField;
143
143
  var valueKind = function (row) {
144
144
  var s = indices[2 * row], l = indices[2 * row + 1] - s;
145
145
  if (l > 1)
146
- return 0 /* Present */;
146
+ return 0 /* Column.ValueKind.Present */;
147
147
  if (l === 0)
148
- return 1 /* NotPresent */;
148
+ return 1 /* Column.ValueKind.NotPresent */;
149
149
  var v = data.charCodeAt(s);
150
150
  if (v === 46 /* . */)
151
- return 1 /* NotPresent */;
151
+ return 1 /* Column.ValueKind.NotPresent */;
152
152
  if (v === 63 /* ? */)
153
- return 2 /* Unknown */;
154
- return 0 /* Present */;
153
+ return 2 /* Column.ValueKind.Unknown */;
154
+ return 0 /* Column.ValueKind.Present */;
155
155
  };
156
156
  return {
157
157
  __array: void 0,
@@ -273,14 +273,14 @@ export function getCifFieldType(field) {
273
273
  var floatCount = 0, hasStringOrScientific = false, undefinedCount = 0;
274
274
  for (var i = 0, _i = field.rowCount; i < _i; i++) {
275
275
  var k = field.valueKind(i);
276
- if (k !== 0 /* Present */) {
276
+ if (k !== 0 /* Column.ValueKind.Present */) {
277
277
  undefinedCount++;
278
278
  continue;
279
279
  }
280
280
  var type = getNumberType(field.str(i));
281
- if (type === 0 /* Int */)
281
+ if (type === 0 /* NumberType.Int */)
282
282
  continue;
283
- else if (type === 1 /* Float */)
283
+ else if (type === 1 /* NumberType.Float */)
284
284
  floatCount++;
285
285
  else {
286
286
  hasStringOrScientific = true;
@@ -93,7 +93,7 @@ function createListColumn(schema, category, key) {
93
93
  isDefined: !!f,
94
94
  rowCount: category.rowCount,
95
95
  value: value,
96
- valueKind: f ? f.valueKind : function () { return 1 /* NotPresent */; },
96
+ valueKind: f ? f.valueKind : function () { return 1 /* Column.ValueKind.NotPresent */; },
97
97
  areValuesEqual: function (rowA, rowB) { return arrayEqual(value(rowA), value(rowB)); },
98
98
  toArray: toArray
99
99
  };