molstar 3.44.0 → 3.45.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 (272) hide show
  1. package/build/viewer/molstar.css +1 -1
  2. package/build/viewer/molstar.js +1 -1
  3. package/lib/cli/cifschema/index.js +2 -2
  4. package/lib/commonjs/cli/cifschema/index.js +2 -2
  5. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -1
  6. package/lib/commonjs/extensions/anvil/representation.d.ts +4 -4
  7. package/lib/commonjs/extensions/cellpack/representation.d.ts +1 -1
  8. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -3
  9. package/lib/commonjs/extensions/dnatco/ntc-tube/representation.d.ts +3 -3
  10. package/lib/commonjs/extensions/mvs/behavior.d.ts +1 -1
  11. package/lib/commonjs/extensions/mvs/behavior.js +3 -1
  12. package/lib/commonjs/extensions/mvs/components/annotation-color-theme.d.ts +1 -1
  13. package/lib/commonjs/extensions/mvs/components/annotation-color-theme.js +3 -2
  14. package/lib/commonjs/extensions/mvs/components/annotation-label/representation.d.ts +3 -1
  15. package/lib/commonjs/extensions/mvs/components/annotation-label/representation.js +3 -2
  16. package/lib/commonjs/extensions/mvs/components/annotation-prop.d.ts +1 -1
  17. package/lib/commonjs/extensions/mvs/components/annotation-prop.js +2 -2
  18. package/lib/commonjs/extensions/mvs/components/custom-label/representation.d.ts +1 -1
  19. package/lib/commonjs/extensions/mvs/components/custom-label/representation.js +4 -3
  20. package/lib/commonjs/extensions/mvs/components/custom-tooltips-prop.d.ts +1 -1
  21. package/lib/commonjs/extensions/mvs/components/custom-tooltips-prop.js +2 -2
  22. package/lib/commonjs/extensions/mvs/components/is-mvs-model-prop.d.ts +21 -0
  23. package/lib/commonjs/extensions/mvs/components/is-mvs-model-prop.js +40 -0
  24. package/lib/commonjs/extensions/mvs/components/multilayer-color-theme.d.ts +1 -1
  25. package/lib/commonjs/extensions/mvs/components/multilayer-color-theme.js +4 -3
  26. package/lib/commonjs/extensions/mvs/load.d.ts +1 -1
  27. package/lib/commonjs/extensions/mvs/load.js +5 -2
  28. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -1
  29. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -1
  30. package/lib/commonjs/extensions/rcsb/graphql/types.d.ts +160 -1
  31. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +10 -5
  32. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -1
  33. package/lib/commonjs/mol-geo/geometry/color-data.d.ts +1 -0
  34. package/lib/commonjs/mol-geo/geometry/color-data.js +15 -8
  35. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders-builder.d.ts +9 -3
  36. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders-builder.js +13 -6
  37. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +11 -2
  38. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +14 -9
  39. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +1 -1
  40. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +1 -1
  41. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +1 -1
  42. package/lib/commonjs/mol-geo/util/location-iterator.d.ts +4 -1
  43. package/lib/commonjs/mol-geo/util/location-iterator.js +8 -1
  44. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +2 -0
  45. package/lib/commonjs/mol-gl/renderable/cylinders.js +1 -1
  46. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  47. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  48. package/lib/commonjs/mol-gl/shader/cylinders.vert.d.ts +2 -2
  49. package/lib/commonjs/mol-gl/shader/cylinders.vert.js +2 -2
  50. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +1 -1
  51. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +1 -1
  52. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  53. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +1 -1
  54. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +2 -2
  55. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +1 -1
  56. package/lib/commonjs/mol-model/structure/model/types/saccharides.js +1 -1
  57. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +2 -2
  58. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +2 -1
  59. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +2 -1
  60. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +6 -3
  61. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +8 -4
  62. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +1 -1
  63. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +12 -6
  64. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +9 -7
  65. package/lib/commonjs/mol-plugin-state/transforms/representation.js +16 -10
  66. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +2 -3
  67. package/lib/commonjs/mol-plugin-ui/controls/parameters.js +48 -12
  68. package/lib/commonjs/mol-plugin-ui/controls.d.ts +2 -2
  69. package/lib/commonjs/mol-plugin-ui/controls.js +7 -2
  70. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +1 -1
  71. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +1 -1
  72. package/lib/commonjs/mol-repr/shape/loci/label.d.ts +4 -1
  73. package/lib/commonjs/mol-repr/shape/loci/label.js +16 -9
  74. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -1
  75. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +1 -1
  76. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +1 -1
  77. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +7 -5
  78. package/lib/commonjs/mol-repr/structure/complex-visual.js +3 -2
  79. package/lib/commonjs/mol-repr/structure/params.d.ts +5 -4
  80. package/lib/commonjs/mol-repr/structure/registry.d.ts +15 -10
  81. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +6 -3
  82. package/lib/commonjs/mol-repr/structure/representation/backbone.js +1 -1
  83. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +6 -3
  84. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +6 -3
  85. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +6 -3
  86. package/lib/commonjs/mol-repr/structure/representation/cartoon.js +1 -1
  87. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +6 -3
  88. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -3
  89. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -3
  90. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -3
  91. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -3
  92. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -3
  93. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +7 -5
  94. package/lib/commonjs/mol-repr/structure/units-visual.js +3 -2
  95. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +5 -2
  96. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +8 -2
  97. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +1 -1
  98. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +5 -2
  99. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +8 -2
  100. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +1 -1
  101. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +2 -1
  102. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -1
  103. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +2 -1
  104. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +4 -4
  105. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -1
  106. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -4
  107. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -1
  108. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-bond.d.ts +4 -2
  109. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-bond.js +27 -26
  110. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-element.d.ts +2 -2
  111. package/lib/commonjs/mol-repr/structure/visual/nucleotide-atomic-ring-fill.d.ts +1 -1
  112. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -1
  113. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -1
  114. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -1
  115. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +4 -2
  116. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.js +4 -4
  117. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -2
  118. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.js +2 -2
  119. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -1
  120. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  121. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -1
  122. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -1
  123. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +1 -1
  124. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -1
  125. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.js +1 -1
  126. package/lib/commonjs/mol-repr/structure/visual/util/bond.d.ts +9 -2
  127. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +28 -2
  128. package/lib/commonjs/mol-repr/structure/visual/util/link.d.ts +2 -0
  129. package/lib/commonjs/mol-repr/structure/visual/util/link.js +16 -13
  130. package/lib/commonjs/mol-repr/structure/visual/util/polymer.d.ts +3 -1
  131. package/lib/commonjs/mol-repr/structure/visual/util/polymer.js +2 -2
  132. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +5 -5
  133. package/lib/commonjs/mol-repr/volume/registry.d.ts +2 -2
  134. package/lib/commonjs/mol-repr/volume/segment.d.ts +5 -5
  135. package/lib/commonjs/mol-util/param-definition.d.ts +9 -2
  136. package/lib/commonjs/mol-util/param-definition.js +2 -2
  137. package/lib/extensions/anvil/behavior.d.ts +1 -1
  138. package/lib/extensions/anvil/representation.d.ts +4 -4
  139. package/lib/extensions/cellpack/representation.d.ts +1 -1
  140. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -3
  141. package/lib/extensions/dnatco/ntc-tube/representation.d.ts +3 -3
  142. package/lib/extensions/mvs/behavior.d.ts +1 -1
  143. package/lib/extensions/mvs/behavior.js +3 -1
  144. package/lib/extensions/mvs/components/annotation-color-theme.d.ts +1 -1
  145. package/lib/extensions/mvs/components/annotation-color-theme.js +3 -2
  146. package/lib/extensions/mvs/components/annotation-label/representation.d.ts +3 -1
  147. package/lib/extensions/mvs/components/annotation-label/representation.js +3 -2
  148. package/lib/extensions/mvs/components/annotation-prop.d.ts +1 -1
  149. package/lib/extensions/mvs/components/annotation-prop.js +2 -2
  150. package/lib/extensions/mvs/components/custom-label/representation.d.ts +1 -1
  151. package/lib/extensions/mvs/components/custom-label/representation.js +4 -3
  152. package/lib/extensions/mvs/components/custom-tooltips-prop.d.ts +1 -1
  153. package/lib/extensions/mvs/components/custom-tooltips-prop.js +2 -2
  154. package/lib/extensions/mvs/components/is-mvs-model-prop.d.ts +21 -0
  155. package/lib/extensions/mvs/components/is-mvs-model-prop.js +35 -0
  156. package/lib/extensions/mvs/components/multilayer-color-theme.d.ts +1 -1
  157. package/lib/extensions/mvs/components/multilayer-color-theme.js +4 -3
  158. package/lib/extensions/mvs/load.d.ts +1 -1
  159. package/lib/extensions/mvs/load.js +5 -2
  160. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -1
  161. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -1
  162. package/lib/extensions/rcsb/graphql/types.d.ts +160 -1
  163. package/lib/extensions/rcsb/validation-report/representation.d.ts +10 -5
  164. package/lib/mol-canvas3d/helper/handle-helper.d.ts +1 -1
  165. package/lib/mol-geo/geometry/color-data.d.ts +1 -0
  166. package/lib/mol-geo/geometry/color-data.js +15 -8
  167. package/lib/mol-geo/geometry/cylinders/cylinders-builder.d.ts +9 -3
  168. package/lib/mol-geo/geometry/cylinders/cylinders-builder.js +13 -6
  169. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +11 -2
  170. package/lib/mol-geo/geometry/cylinders/cylinders.js +14 -9
  171. package/lib/mol-geo/geometry/mesh/mesh.d.ts +1 -1
  172. package/lib/mol-geo/geometry/spheres/spheres.d.ts +1 -1
  173. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +1 -1
  174. package/lib/mol-geo/util/location-iterator.d.ts +4 -1
  175. package/lib/mol-geo/util/location-iterator.js +8 -1
  176. package/lib/mol-gl/renderable/cylinders.d.ts +2 -0
  177. package/lib/mol-gl/renderable/cylinders.js +1 -1
  178. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  179. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  180. package/lib/mol-gl/shader/cylinders.vert.d.ts +2 -2
  181. package/lib/mol-gl/shader/cylinders.vert.js +2 -2
  182. package/lib/mol-io/reader/cif/schema/bird.d.ts +1 -1
  183. package/lib/mol-io/reader/cif/schema/bird.js +1 -1
  184. package/lib/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  185. package/lib/mol-io/reader/cif/schema/ccd.js +1 -1
  186. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +2 -2
  187. package/lib/mol-io/reader/cif/schema/mmcif.js +1 -1
  188. package/lib/mol-model/structure/model/types/saccharides.js +1 -1
  189. package/lib/mol-model-formats/shape/ply.d.ts +2 -2
  190. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +2 -1
  191. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +2 -1
  192. package/lib/mol-model-props/computed/representations/interactions.d.ts +6 -3
  193. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +8 -4
  194. package/lib/mol-plugin/behavior/dynamic/representation.d.ts +1 -1
  195. package/lib/mol-plugin/behavior/dynamic/representation.js +12 -6
  196. package/lib/mol-plugin/version.js +2 -2
  197. package/lib/mol-plugin-state/transforms/representation.d.ts +9 -7
  198. package/lib/mol-plugin-state/transforms/representation.js +16 -10
  199. package/lib/mol-plugin-ui/controls/parameters.d.ts +2 -3
  200. package/lib/mol-plugin-ui/controls/parameters.js +48 -12
  201. package/lib/mol-plugin-ui/controls.d.ts +2 -2
  202. package/lib/mol-plugin-ui/controls.js +7 -2
  203. package/lib/mol-plugin-ui/skin/base/components/controls.scss +14 -3
  204. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +9 -3
  205. package/lib/mol-repr/shape/loci/angle.d.ts +1 -1
  206. package/lib/mol-repr/shape/loci/dihedral.d.ts +1 -1
  207. package/lib/mol-repr/shape/loci/label.d.ts +4 -1
  208. package/lib/mol-repr/shape/loci/label.js +16 -9
  209. package/lib/mol-repr/shape/loci/orientation.d.ts +1 -1
  210. package/lib/mol-repr/shape/loci/plane.d.ts +1 -1
  211. package/lib/mol-repr/shape/model/unitcell.d.ts +1 -1
  212. package/lib/mol-repr/structure/complex-visual.d.ts +7 -5
  213. package/lib/mol-repr/structure/complex-visual.js +3 -2
  214. package/lib/mol-repr/structure/params.d.ts +5 -4
  215. package/lib/mol-repr/structure/registry.d.ts +15 -10
  216. package/lib/mol-repr/structure/representation/backbone.d.ts +6 -3
  217. package/lib/mol-repr/structure/representation/backbone.js +1 -1
  218. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +6 -3
  219. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +6 -3
  220. package/lib/mol-repr/structure/representation/cartoon.d.ts +6 -3
  221. package/lib/mol-repr/structure/representation/cartoon.js +1 -1
  222. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +6 -3
  223. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -3
  224. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -3
  225. package/lib/mol-repr/structure/representation/orientation.d.ts +3 -3
  226. package/lib/mol-repr/structure/representation/putty.d.ts +3 -3
  227. package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -3
  228. package/lib/mol-repr/structure/units-visual.d.ts +7 -5
  229. package/lib/mol-repr/structure/units-visual.js +3 -2
  230. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +5 -2
  231. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +8 -2
  232. package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +1 -1
  233. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +5 -2
  234. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +8 -2
  235. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +1 -1
  236. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +2 -1
  237. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -1
  238. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +2 -1
  239. package/lib/mol-repr/structure/visual/element-sphere.d.ts +4 -4
  240. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -1
  241. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -4
  242. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -1
  243. package/lib/mol-repr/structure/visual/nucleotide-atomic-bond.d.ts +4 -2
  244. package/lib/mol-repr/structure/visual/nucleotide-atomic-bond.js +27 -26
  245. package/lib/mol-repr/structure/visual/nucleotide-atomic-element.d.ts +2 -2
  246. package/lib/mol-repr/structure/visual/nucleotide-atomic-ring-fill.d.ts +1 -1
  247. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -1
  248. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -1
  249. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -1
  250. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +4 -2
  251. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.js +4 -4
  252. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -2
  253. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.js +2 -2
  254. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -1
  255. package/lib/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  256. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -1
  257. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -1
  258. package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +1 -1
  259. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -1
  260. package/lib/mol-repr/structure/visual/polymer-tube-mesh.js +1 -1
  261. package/lib/mol-repr/structure/visual/util/bond.d.ts +9 -2
  262. package/lib/mol-repr/structure/visual/util/bond.js +28 -2
  263. package/lib/mol-repr/structure/visual/util/link.d.ts +2 -0
  264. package/lib/mol-repr/structure/visual/util/link.js +16 -13
  265. package/lib/mol-repr/structure/visual/util/polymer.d.ts +3 -1
  266. package/lib/mol-repr/structure/visual/util/polymer.js +2 -2
  267. package/lib/mol-repr/volume/isosurface.d.ts +5 -5
  268. package/lib/mol-repr/volume/registry.d.ts +2 -2
  269. package/lib/mol-repr/volume/segment.d.ts +5 -5
  270. package/lib/mol-util/param-definition.d.ts +9 -2
  271. package/lib/mol-util/param-definition.js +2 -2
  272. package/package.json +33 -21
@@ -3,12 +3,13 @@
3
3
  * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
+ * @author Gianluca Tomasello <giagitom@gmail.com>
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  exports.isPositionLocation = exports.PositionLocation = exports.LocationIterator = void 0;
9
10
  var linear_algebra_1 = require("../../mol-math/linear-algebra");
10
11
  var location_1 = require("../../mol-model/location");
11
- function LocationIterator(groupCount, instanceCount, stride, getLocation, nonInstanceable, isSecondary) {
12
+ function LocationIterator(groupCount, instanceCount, stride, getLocation, nonInstanceable, isSecondary, getLocation2) {
12
13
  if (nonInstanceable === void 0) { nonInstanceable = false; }
13
14
  if (isSecondary === void 0) { isSecondary = function () { return false; }; }
14
15
  if (groupCount % stride !== 0) {
@@ -16,6 +17,7 @@ function LocationIterator(groupCount, instanceCount, stride, getLocation, nonIns
16
17
  }
17
18
  var value = {
18
19
  location: location_1.NullLocation,
20
+ location2: location_1.NullLocation,
19
21
  index: 0,
20
22
  groupIndex: 0,
21
23
  instanceIndex: 0,
@@ -26,6 +28,7 @@ function LocationIterator(groupCount, instanceCount, stride, getLocation, nonIns
26
28
  var groupIndex = 0;
27
29
  var instanceIndex = 0;
28
30
  var voidInstances = false;
31
+ var hasLocation2 = !!getLocation2;
29
32
  return {
30
33
  get hasNext() { return hasNext; },
31
34
  get isNextNewInstance() { return isNextNewInstance; },
@@ -34,12 +37,15 @@ function LocationIterator(groupCount, instanceCount, stride, getLocation, nonIns
34
37
  count: groupCount * instanceCount,
35
38
  stride: stride,
36
39
  nonInstanceable: nonInstanceable,
40
+ hasLocation2: hasLocation2,
37
41
  move: function () {
38
42
  if (hasNext) {
39
43
  value.groupIndex = groupIndex;
40
44
  value.instanceIndex = instanceIndex;
41
45
  value.index = instanceIndex * groupCount + groupIndex;
42
46
  value.location = getLocation(groupIndex, voidInstances ? -1 : instanceIndex);
47
+ if (hasLocation2)
48
+ value.location2 = getLocation2(groupIndex, voidInstances ? -1 : instanceIndex);
43
49
  value.isSecondary = isSecondary(groupIndex, voidInstances ? -1 : instanceIndex);
44
50
  groupIndex += stride;
45
51
  if (groupIndex === groupCount) {
@@ -57,6 +63,7 @@ function LocationIterator(groupCount, instanceCount, stride, getLocation, nonIns
57
63
  },
58
64
  reset: function () {
59
65
  value.location = location_1.NullLocation;
66
+ value.location2 = location_1.NullLocation;
60
67
  value.index = 0;
61
68
  value.groupIndex = 0;
62
69
  value.instanceIndex = 0;
@@ -14,6 +14,7 @@ export declare const CylindersSchema: {
14
14
  aMapping: AttributeSpec<"float32">;
15
15
  aScale: AttributeSpec<"float32">;
16
16
  aCap: AttributeSpec<"float32">;
17
+ aColorMode: AttributeSpec<"float32">;
17
18
  elements: ElementsSpec<"uint32">;
18
19
  padding: ValueSpec<"number">;
19
20
  uDoubleSided: UniformSpec<"b">;
@@ -23,6 +24,7 @@ export declare const CylindersSchema: {
23
24
  dSolidInterior: DefineSpec<"boolean">;
24
25
  uBumpFrequency: UniformSpec<"f">;
25
26
  uBumpAmplitude: UniformSpec<"f">;
27
+ dDualColor: DefineSpec<"boolean">;
26
28
  uSize: UniformSpec<"f">;
27
29
  uSizeTexDim: UniformSpec<"v2">;
28
30
  tSize: import("./schema").TextureSpec<"image-uint8">;
@@ -12,7 +12,7 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.CylindersSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aStart: (0, schema_1.AttributeSpec)('float32', 3, 0), aEnd: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 3, 0), aScale: (0, schema_1.AttributeSpec)('float32', 1, 0), aCap: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b', 'material'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('string', ['off', 'on', 'inverted']), dTransparentBackfaces: (0, schema_1.DefineSpec)('string', ['off', 'on', 'opaque']), dSolidInterior: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f', 'material'), uBumpAmplitude: (0, schema_1.UniformSpec)('f', 'material') });
15
+ exports.CylindersSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aStart: (0, schema_1.AttributeSpec)('float32', 3, 0), aEnd: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 3, 0), aScale: (0, schema_1.AttributeSpec)('float32', 1, 0), aCap: (0, schema_1.AttributeSpec)('float32', 1, 0), aColorMode: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b', 'material'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('string', ['off', 'on', 'inverted']), dTransparentBackfaces: (0, schema_1.DefineSpec)('string', ['off', 'on', 'opaque']), dSolidInterior: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f', 'material'), uBumpAmplitude: (0, schema_1.UniformSpec)('f', 'material'), dDualColor: (0, schema_1.DefineSpec)('boolean') });
16
16
  function CylindersRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.CylindersSchema);
18
18
  var internalValues = {
@@ -1 +1 @@
1
- export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_instance)\n vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);\n #elif defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n vOverpaint *= uOverpaintStrength;\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_instance)\n vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);\n #elif defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n vSubstance *= uSubstanceStrength;\n #endif\n#elif defined(dRenderVariant_pick)\n #ifdef requiredDrawBuffers\n vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);\n vInstance = vec4(packIntToRGB(aInstance), 1.0);\n vGroup = vec4(packIntToRGB(group), 1.0);\n #else\n if (uPickType == 1) {\n vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(packIntToRGB(aInstance), 1.0);\n } else {\n vColor = vec4(packIntToRGB(group), 1.0);\n }\n #endif\n#endif\n\n#ifdef dTransparency\n #if defined(dTransparencyType_instance)\n vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n vTransparency *= uTransparencyStrength;\n#endif\n";
1
+ export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, group * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, group * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_groupInstance)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_instance)\n vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);\n #elif defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n vOverpaint *= uOverpaintStrength;\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_instance)\n vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);\n #elif defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n vSubstance *= uSubstanceStrength;\n #endif\n#elif defined(dRenderVariant_pick)\n #ifdef requiredDrawBuffers\n vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);\n vInstance = vec4(packIntToRGB(aInstance), 1.0);\n vGroup = vec4(packIntToRGB(group), 1.0);\n #else\n if (uPickType == 1) {\n vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(packIntToRGB(aInstance), 1.0);\n } else {\n vColor = vec4(packIntToRGB(group), 1.0);\n }\n #endif\n#endif\n\n#ifdef dTransparency\n #if defined(dTransparencyType_instance)\n vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n vTransparency *= uTransparencyStrength;\n#endif\n";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_color_varying = void 0;
4
- exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_instance)\n vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);\n #elif defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n vOverpaint *= uOverpaintStrength;\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_instance)\n vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);\n #elif defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n vSubstance *= uSubstanceStrength;\n #endif\n#elif defined(dRenderVariant_pick)\n #ifdef requiredDrawBuffers\n vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);\n vInstance = vec4(packIntToRGB(aInstance), 1.0);\n vGroup = vec4(packIntToRGB(group), 1.0);\n #else\n if (uPickType == 1) {\n vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(packIntToRGB(aInstance), 1.0);\n } else {\n vColor = vec4(packIntToRGB(group), 1.0);\n }\n #endif\n#endif\n\n#ifdef dTransparency\n #if defined(dTransparencyType_instance)\n vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n vTransparency *= uTransparencyStrength;\n#endif\n";
4
+ exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, group * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, group * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_groupInstance)\n #if defined(dDualColor)\n vec4 color2;\n if (aColorMode == 2.0) {\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n } else {\n vColor.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0, uColorTexDim).rgb;\n color2.rgb = readFromTexture(tColor, (aInstance * float(uGroupCount) + group) * 2.0 + 1.0, uColorTexDim).rgb;\n }\n #else\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_instance)\n vOverpaint = readFromTexture(tOverpaint, aInstance, uOverpaintTexDim);\n #elif defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n vOverpaint *= uOverpaintStrength;\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_instance)\n vSubstance = readFromTexture(tSubstance, aInstance, uSubstanceTexDim);\n #elif defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n vSubstance *= uSubstanceStrength;\n #endif\n#elif defined(dRenderVariant_pick)\n #ifdef requiredDrawBuffers\n vObject = vec4(packIntToRGB(float(uObjectId)), 1.0);\n vInstance = vec4(packIntToRGB(aInstance), 1.0);\n vGroup = vec4(packIntToRGB(group), 1.0);\n #else\n if (uPickType == 1) {\n vColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(packIntToRGB(aInstance), 1.0);\n } else {\n vColor = vec4(packIntToRGB(group), 1.0);\n }\n #endif\n#endif\n\n#ifdef dTransparency\n #if defined(dTransparencyType_instance)\n vTransparency = readFromTexture(tTransparency, aInstance, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n vTransparency *= uTransparencyStrength;\n#endif\n";
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Copyright (c) 2020-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2020-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const cylinders_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform mat4 uModelView;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec3 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\nattribute float aScale;\nattribute float aCap;\n\nvarying mat4 vTransform;\nvarying vec3 vStart;\nvarying vec3 vEnd;\nvarying float vSize;\nvarying float vCap;\n\nuniform float uIsOrtho;\nuniform vec3 uCameraDir;\n\nvoid main() {\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelTransform = uModel * aTransform;\n\n vTransform = aTransform;\n vStart = (modelTransform * vec4(aStart, 1.0)).xyz;\n vEnd = (modelTransform * vec4(aEnd, 1.0)).xyz;\n vSize = size * aScale;\n vCap = aCap;\n\n vModelPosition = (vStart + vEnd) * 0.5;\n vec3 camDir = -mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 dir = vEnd - vStart;\n // ensure cylinder 'dir' is pointing towards the camera\n if(dot(camDir, dir) < 0.0) {\n dir = -dir;\n }\n\n vec3 left = cross(camDir, dir);\n vec3 up = cross(left, dir);\n left = vSize * normalize(left);\n up = vSize * normalize(up);\n\n // move vertex in object-space from center to corner\n vModelPosition += aMapping.x * dir + aMapping.y * left + aMapping.z * up;\n\n vec4 mvPosition = uView * vec4(vModelPosition, 1.0);\n vViewPosition = mvPosition.xyz;\n gl_Position = uProjection * mvPosition;\n\n if (gl_Position.z < -gl_Position.w) {\n mvPosition.z -= 2.0 * (length(vEnd - vStart) + vSize); // avoid clipping\n gl_Position.z = (uProjection * mvPosition).z;\n }\n\n #include clip_instance\n}\n";
6
+ export declare const cylinders_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform mat4 uModelView;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec3 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\nattribute float aScale;\nattribute float aCap;\nattribute float aColorMode;\n\nvarying mat4 vTransform;\nvarying vec3 vStart;\nvarying vec3 vEnd;\nvarying float vSize;\nvarying float vCap;\n\nuniform float uIsOrtho;\nuniform vec3 uCameraDir;\n\nvoid main() {\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelTransform = uModel * aTransform;\n\n vTransform = aTransform;\n vStart = (modelTransform * vec4(aStart, 1.0)).xyz;\n vEnd = (modelTransform * vec4(aEnd, 1.0)).xyz;\n vSize = size * aScale;\n vCap = aCap;\n\n vModelPosition = (vStart + vEnd) * 0.5;\n vec3 camDir = -mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 dir = vEnd - vStart;\n float f = aMapping.x > 0.0 ? 1.0 : 0.0;\n // ensure cylinder 'dir' is pointing towards the camera\n if(dot(camDir, dir) < 0.0) {\n dir = -dir;\n f = 1.0 - f;\n }\n\n vec3 left = cross(camDir, dir);\n vec3 up = cross(left, dir);\n left = vSize * normalize(left);\n up = vSize * normalize(up);\n\n // move vertex in object-space from center to corner\n vModelPosition += aMapping.x * dir + aMapping.y * left + aMapping.z * up;\n\n vec4 mvPosition = uView * vec4(vModelPosition, 1.0);\n vViewPosition = mvPosition.xyz;\n gl_Position = uProjection * mvPosition;\n\n if (gl_Position.z < -gl_Position.w) {\n mvPosition.z -= 2.0 * (length(vEnd - vStart) + vSize); // avoid clipping\n gl_Position.z = (uProjection * mvPosition).z;\n }\n\n #if defined(dDualColor) && defined(dRenderVariant_color) && (defined(dColorType_group) || defined(dColorType_groupInstance))\n // dual-color mixing\n // - for aColorMode between 0 and 1 use aColorMode to interpolate\n // - for aColorMode == 2 do nothing, i.e., use vColor\n // - for aColorMode == 3 use position on cylinder axis to interpolate\n if (aColorMode <= 1.0){\n vColor.rgb = mix(vColor.rgb, color2.rgb, aColorMode);\n } else if (aColorMode == 3.0) {\n vColor.rgb = mix(vColor.rgb, color2.rgb, mix(-0.25, 1.25, f / 1.5));\n }\n #endif\n\n #include clip_instance\n}\n";
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2020-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2020-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.cylinders_vert = void 0;
9
- exports.cylinders_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform mat4 uModelView;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec3 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\nattribute float aScale;\nattribute float aCap;\n\nvarying mat4 vTransform;\nvarying vec3 vStart;\nvarying vec3 vEnd;\nvarying float vSize;\nvarying float vCap;\n\nuniform float uIsOrtho;\nuniform vec3 uCameraDir;\n\nvoid main() {\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelTransform = uModel * aTransform;\n\n vTransform = aTransform;\n vStart = (modelTransform * vec4(aStart, 1.0)).xyz;\n vEnd = (modelTransform * vec4(aEnd, 1.0)).xyz;\n vSize = size * aScale;\n vCap = aCap;\n\n vModelPosition = (vStart + vEnd) * 0.5;\n vec3 camDir = -mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 dir = vEnd - vStart;\n // ensure cylinder 'dir' is pointing towards the camera\n if(dot(camDir, dir) < 0.0) {\n dir = -dir;\n }\n\n vec3 left = cross(camDir, dir);\n vec3 up = cross(left, dir);\n left = vSize * normalize(left);\n up = vSize * normalize(up);\n\n // move vertex in object-space from center to corner\n vModelPosition += aMapping.x * dir + aMapping.y * left + aMapping.z * up;\n\n vec4 mvPosition = uView * vec4(vModelPosition, 1.0);\n vViewPosition = mvPosition.xyz;\n gl_Position = uProjection * mvPosition;\n\n if (gl_Position.z < -gl_Position.w) {\n mvPosition.z -= 2.0 * (length(vEnd - vStart) + vSize); // avoid clipping\n gl_Position.z = (uProjection * mvPosition).z;\n }\n\n #include clip_instance\n}\n";
9
+ exports.cylinders_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform mat4 uModelView;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec3 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\nattribute float aScale;\nattribute float aCap;\nattribute float aColorMode;\n\nvarying mat4 vTransform;\nvarying vec3 vStart;\nvarying vec3 vEnd;\nvarying float vSize;\nvarying float vCap;\n\nuniform float uIsOrtho;\nuniform vec3 uCameraDir;\n\nvoid main() {\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelTransform = uModel * aTransform;\n\n vTransform = aTransform;\n vStart = (modelTransform * vec4(aStart, 1.0)).xyz;\n vEnd = (modelTransform * vec4(aEnd, 1.0)).xyz;\n vSize = size * aScale;\n vCap = aCap;\n\n vModelPosition = (vStart + vEnd) * 0.5;\n vec3 camDir = -mix(normalize(vModelPosition - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 dir = vEnd - vStart;\n float f = aMapping.x > 0.0 ? 1.0 : 0.0;\n // ensure cylinder 'dir' is pointing towards the camera\n if(dot(camDir, dir) < 0.0) {\n dir = -dir;\n f = 1.0 - f;\n }\n\n vec3 left = cross(camDir, dir);\n vec3 up = cross(left, dir);\n left = vSize * normalize(left);\n up = vSize * normalize(up);\n\n // move vertex in object-space from center to corner\n vModelPosition += aMapping.x * dir + aMapping.y * left + aMapping.z * up;\n\n vec4 mvPosition = uView * vec4(vModelPosition, 1.0);\n vViewPosition = mvPosition.xyz;\n gl_Position = uProjection * mvPosition;\n\n if (gl_Position.z < -gl_Position.w) {\n mvPosition.z -= 2.0 * (length(vEnd - vStart) + vSize); // avoid clipping\n gl_Position.z = (uProjection * mvPosition).z;\n }\n\n #if defined(dDualColor) && defined(dRenderVariant_color) && (defined(dColorType_group) || defined(dColorType_groupInstance))\n // dual-color mixing\n // - for aColorMode between 0 and 1 use aColorMode to interpolate\n // - for aColorMode == 2 do nothing, i.e., use vColor\n // - for aColorMode == 3 use position on cylinder axis to interpolate\n if (aColorMode <= 1.0){\n vColor.rgb = mix(vColor.rgb, color2.rgb, aColorMode);\n } else if (aColorMode == 3.0) {\n vColor.rgb = mix(vColor.rgb, color2.rgb, mix(-0.25, 1.25, f / 1.5));\n }\n #endif\n\n #include clip_instance\n}\n";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
- * Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.382, IHM 1.24, MA 1.4.5.
4
+ * Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.386, IHM 1.25, MA 1.4.6.
5
5
  *
6
6
  * @author molstar/ciftools package
7
7
  */
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
- * Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.382, IHM 1.24, MA 1.4.5.
5
+ * Code-generated 'BIRD' schema file. Dictionary versions: mmCIF 5.386, IHM 1.25, MA 1.4.6.
6
6
  *
7
7
  * @author molstar/ciftools package
8
8
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
- * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.382, IHM 1.24, MA 1.4.5.
4
+ * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.386, IHM 1.25, MA 1.4.6.
5
5
  *
6
6
  * @author molstar/ciftools package
7
7
  */
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
- * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.382, IHM 1.24, MA 1.4.5.
5
+ * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.386, IHM 1.25, MA 1.4.6.
6
6
  *
7
7
  * @author molstar/ciftools package
8
8
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
- * Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.382, IHM 1.24, MA 1.4.5.
4
+ * Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.386, IHM 1.25, MA 1.4.6.
5
5
  *
6
6
  * @author molstar/ciftools package
7
7
  */
@@ -1953,7 +1953,7 @@ export declare const mmCIF_Schema: {
1953
1953
  /**
1954
1954
  * The identifying content type of the related entry.
1955
1955
  */
1956
- content_type: Schema.Aliased<"split" | "other" | "minimized average structure" | "representative structure" | "ensemble" | "derivative structure" | "native structure" | "associated EM volume" | "other EM volume" | "associated NMR restraints" | "associated structure factors" | "associated SAS data" | "protein target sequence and/or protocol data" | "re-refinement" | "complete structure" | "unspecified">;
1956
+ content_type: Schema.Aliased<"split" | "other" | "minimized average structure" | "representative structure" | "ensemble" | "derivative structure" | "native structure" | "associated EM volume" | "other EM volume" | "focused EM volume" | "consensus EM volume" | "associated NMR restraints" | "associated structure factors" | "associated SAS data" | "protein target sequence and/or protocol data" | "re-refinement" | "complete structure" | "unspecified">;
1957
1957
  };
1958
1958
  /**
1959
1959
  * The PDBX_ENTITY_NONPOLY category provides a mapping between
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
- * Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.382, IHM 1.24, MA 1.4.5.
5
+ * Code-generated 'mmCIF' schema file. Dictionary versions: mmCIF 5.386, IHM 1.25, MA 1.4.6.
6
6
  *
7
7
  * @author molstar/ciftools package
8
8
  */
@@ -8,4 +8,4 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.SaccharideNames = void 0;
11
- exports.SaccharideNames = new Set(['145', '147', '149', '289', '291', '293', '445', '475', '491', '510', '604', '045', '05L', '07E', '07Y', '08U', '09X', '0AT', '0BD', '0H0', '0HX', '0LP', '0MK', '0NZ', '0TS', '0UB', '0V4', '0WK', '0XY', '0YT', '10M', '12E', '14T', '15L', '16F', '16G', '16O', '17T', '18D', '18O', '18T', '1AR', '1BW', '1CF', '1FT', '1GL', '1GN', '1JB', '1LL', '1NA', '1S3', '1S4', '1SD', '1X4', '20S', '20X', '22O', '22S', '23V', '24S', '25E', '26M', '26O', '26Q', '26R', '26V', '26W', '26Y', '27C', '2DG', '2DR', '2F8', '2FG', '2FL', '2FP', '2GL', '2GS', '2H5', '2HA', '2M4', '2M5', '2M8', '2OS', '2SI', '2WP', '2WS', '32O', '34V', '38J', '3BU', '3CM', '3DO', '3DY', '3FM', '3GR', '3HD', '3J3', '3J4', '3LJ', '3LR', '3MF', '3MG', '3MK', '3R3', '3S6', '3SA', '3YW', '40J', '42D', '44S', '46D', '46M', '46Z', '48Z', '49A', '49S', '49T', '49V', '4AM', '4CQ', '4GC', '4GL', '4GP', '4JA', '4N2', '4NN', '4QY', '4R1', '4RS', '4SG', '4U0', '4U1', '4U2', '4UZ', '4V5', '50A', '51N', '56N', '57S', '5DI', '5GF', '5GO', '5II', '5KQ', '5KS', '5KT', '5KV', '5L2', '5L3', '5LS', '5LT', '5MM', '5N6', '5QP', '5RP', '5SA', '5SP', '5TH', '5TJ', '5TK', '5TM', '61J', '62I', '64K', '66O', '6BG', '6C2', '6DM', '6GB', '6GP', '6GR', '6K3', '6KH', '6KL', '6KS', '6KU', '6KW', '6LA', '6LS', '6LW', '6MJ', '6MN', '6PG', '6PY', '6PZ', '6S2', '6SA', '6UD', '6Y6', '6YR', '6ZC', '73E', '79J', '7CV', '7D1', '7GP', '7JZ', '7K2', '7K3', '7NU', '7SA', '83Y', '89Y', '8B7', '8B9', '8EX', '8GA', '8GG', '8GP', '8I4', '8LM', '8LR', '8OQ', '8PK', '8S0', '8YV', '95Z', '96O', '98U', '9AM', '9C1', '9CD', '9GP', '9KJ', '9MR', '9OK', '9PG', '9QG', '9QZ', '9S7', '9SG', '9SJ', '9SM', '9SP', '9T1', '9T7', '9VP', '9WJ', '9WN', '9WZ', '9YW', 'A0K', 'A1Q', 'A2G', 'A5C', 'A6P', 'AAL', 'AAO', 'ABC', 'ABD', 'ABE', 'ABF', 'ABL', 'AC1', 'ACG', 'ACR', 'ACX', 'ADA', 'ADG', 'ADR', 'AF1', 'AFD', 'AFL', 'AFO', 'AFP', 'AFR', 'AGC', 'AGH', 'AGL', 'AGR', 'AH2', 'AH8', 'AHG', 'AHM', 'AHR', 'AIG', 'ALL', 'ALX', 'AMG', 'AMN', 'AMU', 'AMV', 'ANA', 'AOG', 'AOS', 'AQA', 'ARA', 'ARB', 'ARE', 'ARI', 'ARW', 'ASC', 'ASG', 'ASO', 'AXP', 'AXR', 'AY9', 'AZC', 'B0D', 'B16', 'B1H', 'B1N', 'B2G', 'B4G', 'B6D', 'B7G', 'B8D', 'B9D', 'BBK', 'BBV', 'BCD', 'BCW', 'BDF', 'BDG', 'BDP', 'BDR', 'BDZ', 'BEM', 'BFN', 'BFP', 'BG6', 'BG8', 'BGC', 'BGL', 'BGN', 'BGP', 'BGS', 'BHG', 'BM3', 'BM7', 'BMA', 'BMX', 'BND', 'BNG', 'BNX', 'BO1', 'BOG', 'BQY', 'BRI', 'BS7', 'BTG', 'BTU', 'BW3', 'BWG', 'BXF', 'BXP', 'BXX', 'BXY', 'BZD', 'C3B', 'C3G', 'C3X', 'C4B', 'C4W', 'C4X', 'C5X', 'CAP', 'CBF', 'CBI', 'CBK', 'CDR', 'CE5', 'CE6', 'CE8', 'CEG', 'CEX', 'CEY', 'CEZ', 'CGF', 'CJB', 'CKB', 'CKP', 'CNP', 'CR1', 'CR6', 'CRA', 'CT3', 'CTO', 'CTR', 'CTT', 'D0N', 'D1M', 'D5E', 'D6G', 'DAF', 'DAG', 'DAN', 'DDA', 'DDB', 'DDL', 'DEG', 'DEL', 'DFR', 'DFX', 'DG0', 'DGC', 'DGD', 'DGM', 'DGO', 'DGS', 'DGU', 'DIG', 'DJB', 'DJE', 'DK4', 'DKX', 'DKZ', 'DL6', 'DLD', 'DLF', 'DLG', 'DMU', 'DNO', 'DO8', 'DOM', 'DP5', 'DPC', 'DQQ', 'DQR', 'DR2', 'DR3', 'DR4', 'DR5', 'DRI', 'DSR', 'DT6', 'DVC', 'DYM', 'E3M', 'E4P', 'E5G', 'EAG', 'EBG', 'EBQ', 'EEN', 'EEQ', 'EGA', 'EJT', 'EMP', 'EMZ', 'EPG', 'EQP', 'EQV', 'ERE', 'ERI', 'ETT', 'EUS', 'F1P', 'F1X', 'F55', 'F58', 'F6P', 'F8X', 'FBP', 'FCA', 'FCB', 'FCT', 'FDP', 'FDQ', 'FFC', 'FFX', 'FIF', 'FIX', 'FK9', 'FKD', 'FMF', 'FMO', 'FNG', 'FNY', 'FRU', 'FSA', 'FSI', 'FSM', 'FSR', 'FSW', 'FU4', 'FUB', 'FUC', 'FUD', 'FUF', 'FUL', 'FUY', 'FVQ', 'FX1', 'FYJ', 'G0S', 'G16', 'G1P', 'G20', 'G28', 'G2F', 'G3F', 'G3I', 'G4D', 'G4S', 'G6D', 'G6P', 'G6S', 'G7P', 'G8Z', 'GAA', 'GAC', 'GAD', 'GAF', 'GAL', 'GAT', 'GBH', 'GC1', 'GC4', 'GC9', 'GCB', 'GCD', 'GCN', 'GCO', 'GCS', 'GCT', 'GCU', 'GCV', 'GCW', 'GDA', 'GDL', 'GE1', 'GE3', 'GFP', 'GIV', 'GL0', 'GL1', 'GL2', 'GL4', 'GL5', 'GL6', 'GL7', 'GL9', 'GLA', 'GLB', 'GLC', 'GLD', 'GLF', 'GLG', 'GLO', 'GLP', 'GLS', 'GLT', 'GLW', 'GM0', 'GMB', 'GMH', 'GMT', 'GMZ', 'GN1', 'GN4', 'GNS', 'GNX', 'GP0', 'GP1', 'GP4', 'GPH', 'GPK', 'GPM', 'GPO', 'GPQ', 'GPU', 'GPV', 'GPW', 'GQ1', 'GRF', 'GRX', 'GS1', 'GS4', 'GS9', 'GSA', 'GSD', 'GTE', 'GTH', 'GTK', 'GTM', 'GTR', 'GU0', 'GU1', 'GU2', 'GU3', 'GU4', 'GU5', 'GU6', 'GU8', 'GU9', 'GUF', 'GUL', 'GUP', 'GUZ', 'GXL', 'GXV', 'GYE', 'GYG', 'GYP', 'GYU', 'GYV', 'GZL', 'H1M', 'H1S', 'H2P', 'H3S', 'H53', 'H6Q', 'H6Z', 'HBZ', 'HD4', 'HDL', 'HMS', 'HNV', 'HNW', 'HSG', 'HSH', 'HSJ', 'HSQ', 'HSR', 'HSU', 'HSX', 'HSY', 'HSZ', 'HTG', 'HTM', 'HVC', 'I57', 'IAB', 'IDC', 'IDF', 'IDG', 'IDR', 'IDS', 'IDT', 'IDU', 'IDX', 'IDY', 'IEM', 'IN1', 'IPT', 'ISD', 'ISL', 'ISX', 'IVG', 'IXD', 'J5B', 'JFZ', 'JHM', 'JLT', 'JRV', 'JS2', 'JSV', 'JV4', 'JVA', 'JVS', 'JZR', 'K5B', 'K99', 'KBA', 'KBG', 'KD5', 'KDA', 'KDB', 'KDD', 'KDE', 'KDF', 'KDM', 'KDN', 'KDO', 'KDR', 'KFN', 'KG1', 'KGM', 'KHP', 'KME', 'KO1', 'KO2', 'KOT', 'KQC', 'KTU', 'L1L', 'L6N', 'L6S', 'L6T', 'LAG', 'LAH', 'LAI', 'LAK', 'LAO', 'LAT', 'LB2', 'LBS', 'LBT', 'LCN', 'LDY', 'LEC', 'LER', 'LFC', 'LFR', 'LGC', 'LGU', 'LKA', 'LKS', 'LM2', 'LMO', 'LMT', 'LMU', 'LNV', 'LOG', 'LOX', 'LPK', 'LRH', 'LSM', 'LTG', 'LTM', 'LVO', 'LVZ', 'LXB', 'LXC', 'LXZ', 'LZ0', 'M1F', 'M1P', 'M2F', 'M3M', 'M3N', 'M55', 'M6D', 'M6P', 'M7B', 'M7P', 'M8C', 'MA1', 'MA2', 'MA3', 'MA8', 'MAB', 'MAF', 'MAG', 'MAL', 'MAN', 'MAT', 'MAV', 'MAW', 'MBE', 'MBF', 'MBG', 'MCU', 'MDA', 'MDP', 'MFA', 'MFB', 'MFU', 'MG5', 'MGA', 'MGC', 'MGL', 'MGS', 'MJJ', 'MLB', 'MLR', 'MMA', 'MMN', 'MN0', 'MNA', 'MQG', 'MQT', 'MRH', 'MRP', 'MSX', 'MTT', 'MUB', 'MUG', 'MUR', 'MVP', 'MXY', 'MXZ', 'MYG', 'N1L', 'N3U', 'N9S', 'NA1', 'NAA', 'NAG', 'NBG', 'NBX', 'NBY', 'NDG', 'NED', 'NFG', 'NG1', 'NG6', 'NGA', 'NGB', 'NGC', 'NGE', 'NGF', 'NGK', 'NGL', 'NGR', 'NGS', 'NGY', 'NGZ', 'NHF', 'NLC', 'NM6', 'NM9', 'NNG', 'NPF', 'NSQ', 'NT1', 'NTF', 'NTO', 'NTP', 'NXD', 'NYT', 'O1G', 'OAK', 'OEL', 'OI7', 'OPM', 'ORP', 'OSU', 'OTG', 'OTN', 'OTU', 'OX2', 'P53', 'P6P', 'P8E', 'PA1', 'PA5', 'PAV', 'PDX', 'PH5', 'PKM', 'PNA', 'PNG', 'PNJ', 'PNW', 'PPC', 'PRP', 'PSG', 'PSJ', 'PSV', 'PTQ', 'PUF', 'PZU', 'QDK', 'QIF', 'QKH', 'QPS', 'QV4', 'R1P', 'R1X', 'R2B', 'R2G', 'R5P', 'RAA', 'RAE', 'RAF', 'RAM', 'RAO', 'RAT', 'RB5', 'RBL', 'RCD', 'RDP', 'REL', 'RER', 'RF5', 'RG1', 'RGG', 'RHA', 'RHC', 'RI2', 'RIB', 'RIP', 'RM4', 'RNS', 'RNT', 'ROB', 'ROR', 'RP3', 'RP5', 'RP6', 'RPA', 'RR7', 'RRJ', 'RRY', 'RST', 'RTG', 'RTV', 'RUB', 'RUG', 'RUU', 'RV7', 'RVG', 'RVM', 'RWI', 'RY7', 'RZM', 'S6P', 'S7P', 'S81', 'SA0', 'SCG', 'SCR', 'SDD', 'SDY', 'SEJ', 'SF6', 'SF9', 'SFJ', 'SFU', 'SG4', 'SG5', 'SG6', 'SG7', 'SGA', 'SGC', 'SGD', 'SGN', 'SGS', 'SHB', 'SHD', 'SHG', 'SI3', 'SIA', 'SID', 'SIO', 'SIZ', 'SLB', 'SLM', 'SLT', 'SMD', 'SN5', 'SNG', 'SOE', 'SOG', 'SOL', 'SOR', 'SR1', 'SSG', 'SSH', 'STW', 'STZ', 'SUC', 'SUP', 'SUS', 'SWE', 'SZZ', 'T68', 'T6D', 'T6P', 'T6T', 'TA6', 'TAG', 'TCB', 'TCG', 'TDG', 'TEU', 'TF0', 'TFU', 'TGA', 'TGK', 'TGR', 'TGY', 'TH1', 'TM5', 'TM6', 'TM9', 'TMR', 'TMX', 'TNX', 'TOA', 'TOC', 'TQY', 'TRE', 'TRV', 'TS8', 'TT7', 'TTV', 'TTZ', 'TU4', 'TUG', 'TUJ', 'TUP', 'TUR', 'TVD', 'TVG', 'TVM', 'TVS', 'TVV', 'TVY', 'TW7', 'TWA', 'TWD', 'TWG', 'TWJ', 'TWY', 'TXB', 'TY6', 'TYV', 'U1Y', 'U2A', 'U2D', 'U63', 'U8V', 'U97', 'U9A', 'U9D', 'U9G', 'U9J', 'U9M', 'UAP', 'UBH', 'UBO', 'UCD', 'UDC', 'UEA', 'V3M', 'V3P', 'V71', 'VG1', 'VJ1', 'VJ4', 'VKN', 'VTB', 'W9T', 'WIA', 'WOO', 'WUN', 'WZ1', 'WZ2', 'WZ4', 'X0X', 'X1P', 'X1X', 'X2F', 'X2Y', 'X34', 'X4S', 'X5S', 'X6X', 'X6Y', 'XBP', 'XDP', 'XDX', 'XGP', 'XIL', 'XKJ', 'XLF', 'XLS', 'XMM', 'XS2', 'XUL', 'XXM', 'XXR', 'XXX', 'XY6', 'XY9', 'XYB', 'XYF', 'XYL', 'XYP', 'XYS', 'XYT', 'XYZ', 'YDR', 'YIO', 'YJM', 'YKR', 'YO5', 'YX0', 'YX1', 'YYB', 'YYD', 'YYH', 'YYJ', 'YYK', 'YYM', 'YYQ', 'YYR', 'YZ0', 'YZT', 'Z0F', 'Z15', 'Z16', 'Z2D', 'Z2T', 'Z3K', 'Z3L', 'Z3Q', 'Z3U', 'Z4K', 'Z4R', 'Z4S', 'Z4U', 'Z4V', 'Z4W', 'Z4Y', 'Z57', 'Z5J', 'Z5L', 'Z61', 'Z6G', 'Z6H', 'Z6J', 'Z6W', 'Z8H', 'Z8T', 'Z9D', 'Z9E', 'Z9H', 'Z9K', 'Z9L', 'Z9M', 'Z9N', 'Z9W', 'ZB0', 'ZB1', 'ZB2', 'ZB3', 'ZCD', 'ZCZ', 'ZD0', 'ZDC', 'ZDM', 'ZDO', 'ZEE', 'ZEL', 'ZGE', 'ZMR', 'UMQ', 'SQD']);
11
+ exports.SaccharideNames = new Set(['145', '147', '149', '289', '291', '293', '445', '475', '491', '510', '604', '045', '05L', '07E', '07Y', '08U', '09X', '0AT', '0BD', '0H0', '0HX', '0LP', '0MK', '0NZ', '0TS', '0UB', '0V4', '0WK', '0XY', '0YT', '10M', '12E', '14T', '15L', '16F', '16G', '16O', '17T', '18D', '18O', '18T', '1AR', '1BW', '1CF', '1FT', '1GL', '1GN', '1JB', '1LL', '1NA', '1S3', '1S4', '1SD', '1X4', '20S', '20X', '22O', '22S', '23V', '24S', '25E', '26M', '26O', '26Q', '26R', '26V', '26W', '26Y', '27C', '2DG', '2DR', '2F8', '2FG', '2FL', '2FP', '2GL', '2GS', '2H5', '2HA', '2M4', '2M5', '2M8', '2OS', '2SI', '2WP', '2WS', '32O', '34V', '38J', '3BU', '3CM', '3DO', '3DY', '3FM', '3GR', '3HD', '3J3', '3J4', '3LJ', '3LR', '3MF', '3MG', '3MK', '3R3', '3S6', '3SA', '3YW', '40J', '42D', '44S', '46D', '46M', '46Z', '48Z', '49A', '49S', '49T', '49V', '4AM', '4CQ', '4GC', '4GL', '4GP', '4JA', '4N2', '4NN', '4QY', '4R1', '4RS', '4SG', '4U0', '4U1', '4U2', '4UZ', '4V5', '50A', '51N', '56N', '57S', '5DI', '5GF', '5GO', '5II', '5KQ', '5KS', '5KT', '5KV', '5L2', '5L3', '5LS', '5LT', '5MM', '5N6', '5QP', '5RP', '5SA', '5SP', '5TH', '5TJ', '5TK', '5TM', '61J', '62I', '64K', '66O', '6BG', '6C2', '6DM', '6GB', '6GP', '6GR', '6K3', '6KH', '6KL', '6KS', '6KU', '6KW', '6LA', '6LS', '6LW', '6MJ', '6MN', '6PG', '6PY', '6PZ', '6S2', '6SA', '6UD', '6Y6', '6YR', '6ZC', '73E', '79J', '7CV', '7D1', '7GP', '7JZ', '7K2', '7K3', '7NU', '7SA', '83Y', '89Y', '8B7', '8B9', '8EX', '8GA', '8GG', '8GP', '8I4', '8LM', '8LR', '8OQ', '8PK', '8S0', '8YV', '95Z', '96O', '98U', '9AM', '9C1', '9CD', '9GP', '9KJ', '9MR', '9OK', '9PG', '9QG', '9QZ', '9S7', '9SG', '9SJ', '9SM', '9SP', '9T1', '9T7', '9VP', '9WJ', '9WN', '9WZ', '9YW', 'A0K', 'A1Q', 'A2G', 'A5C', 'A6P', 'AAL', 'AAO', 'ABC', 'ABD', 'ABE', 'ABF', 'ABL', 'AC1', 'ACG', 'ACR', 'ACX', 'ADA', 'ADG', 'ADR', 'AF1', 'AFD', 'AFL', 'AFO', 'AFP', 'AFR', 'AGC', 'AGH', 'AGL', 'AGR', 'AH2', 'AH8', 'AHG', 'AHM', 'AHR', 'AIG', 'ALL', 'ALX', 'AMG', 'AMN', 'AMU', 'AMV', 'ANA', 'AOG', 'AOS', 'AQA', 'ARA', 'ARB', 'ARE', 'ARI', 'ARW', 'ASC', 'ASG', 'ASO', 'AXP', 'AXR', 'AY9', 'AZC', 'B0D', 'B16', 'B1H', 'B1N', 'B2G', 'B4G', 'B6D', 'B7G', 'B8D', 'B9D', 'BBK', 'BBV', 'BCD', 'BCW', 'BDF', 'BDG', 'BDP', 'BDR', 'BDZ', 'BEM', 'BFN', 'BFP', 'BG6', 'BG8', 'BGC', 'BGL', 'BGN', 'BGP', 'BGS', 'BHG', 'BM3', 'BM7', 'BMA', 'BMX', 'BND', 'BNG', 'BNX', 'BO1', 'BOG', 'BQY', 'BRI', 'BS7', 'BTG', 'BTU', 'BW3', 'BWG', 'BXF', 'BXP', 'BXX', 'BXY', 'BZD', 'C3B', 'C3G', 'C3X', 'C4B', 'C4W', 'C4X', 'C5X', 'CAP', 'CBF', 'CBI', 'CBK', 'CDR', 'CE5', 'CE6', 'CE8', 'CEG', 'CEX', 'CEY', 'CEZ', 'CGF', 'CJB', 'CKB', 'CKP', 'CNP', 'CR1', 'CR6', 'CRA', 'CT3', 'CTO', 'CTR', 'CTT', 'D0N', 'D1M', 'D5E', 'D6G', 'DAF', 'DAG', 'DAN', 'DDA', 'DDB', 'DDL', 'DEG', 'DEL', 'DFR', 'DFX', 'DG0', 'DGC', 'DGD', 'DGM', 'DGO', 'DGS', 'DGU', 'DIG', 'DJB', 'DJE', 'DK4', 'DKX', 'DKZ', 'DL6', 'DLD', 'DLF', 'DLG', 'DMU', 'DNO', 'DO8', 'DOM', 'DP5', 'DPC', 'DQQ', 'DQR', 'DR2', 'DR3', 'DR4', 'DR5', 'DRI', 'DSR', 'DT6', 'DVC', 'DYM', 'E3M', 'E4P', 'E5G', 'EAG', 'EBG', 'EBQ', 'EEN', 'EEQ', 'EGA', 'EJT', 'EMP', 'EMZ', 'EPG', 'EQP', 'EQV', 'ERE', 'ERI', 'ETT', 'EUS', 'F1P', 'F1X', 'F55', 'F58', 'F6P', 'F8X', 'FBP', 'FCA', 'FCB', 'FCT', 'FDP', 'FDQ', 'FFC', 'FFX', 'FIF', 'FIX', 'FK9', 'FKD', 'FMF', 'FMO', 'FNG', 'FNY', 'FRU', 'FSA', 'FSI', 'FSM', 'FSR', 'FSW', 'FU4', 'FUB', 'FUC', 'FUD', 'FUF', 'FUL', 'FUY', 'FVQ', 'FX1', 'FYJ', 'G0S', 'G16', 'G1P', 'G20', 'G28', 'G2F', 'G3F', 'G3I', 'G4D', 'G4S', 'G6D', 'G6P', 'G6S', 'G7P', 'G8Z', 'GAA', 'GAC', 'GAD', 'GAF', 'GAL', 'GAT', 'GBH', 'GC1', 'GC4', 'GC9', 'GCB', 'GCD', 'GCN', 'GCO', 'GCS', 'GCT', 'GCU', 'GCV', 'GCW', 'GDA', 'GDL', 'GE1', 'GE3', 'GFP', 'GIV', 'GL0', 'GL1', 'GL2', 'GL4', 'GL5', 'GL6', 'GL7', 'GL9', 'GLA', 'GLB', 'GLC', 'GLD', 'GLF', 'GLG', 'GLO', 'GLP', 'GLS', 'GLT', 'GLW', 'GM0', 'GMB', 'GMH', 'GMT', 'GMZ', 'GN1', 'GN4', 'GNS', 'GNX', 'GP0', 'GP1', 'GP4', 'GPH', 'GPK', 'GPM', 'GPO', 'GPQ', 'GPU', 'GPV', 'GPW', 'GQ1', 'GRF', 'GRX', 'GS1', 'GS4', 'GS9', 'GSA', 'GSD', 'GTE', 'GTH', 'GTK', 'GTM', 'GTR', 'GU0', 'GU1', 'GU2', 'GU3', 'GU4', 'GU5', 'GU6', 'GU8', 'GU9', 'GUF', 'GUL', 'GUP', 'GUZ', 'GXL', 'GXV', 'GYE', 'GYG', 'GYP', 'GYU', 'GYV', 'GZL', 'H1M', 'H1S', 'H2P', 'H3S', 'H53', 'H6Q', 'H6Z', 'HBZ', 'HD4', 'HDL', 'HMS', 'HNV', 'HNW', 'HSG', 'HSH', 'HSJ', 'HSQ', 'HSR', 'HSU', 'HSX', 'HSY', 'HSZ', 'HTG', 'HTM', 'HVC', 'I57', 'IAB', 'IDC', 'IDF', 'IDG', 'IDR', 'IDS', 'IDT', 'IDU', 'IDX', 'IDY', 'IEM', 'IN1', 'IPT', 'ISD', 'ISL', 'ISX', 'IVG', 'IXD', 'J5B', 'JFZ', 'JHM', 'JLT', 'JRV', 'JS2', 'JSV', 'JV4', 'JVA', 'JVS', 'JZR', 'K5B', 'K99', 'KBA', 'KBG', 'KD5', 'KDA', 'KDB', 'KDD', 'KDE', 'KDF', 'KDM', 'KDN', 'KDO', 'KDR', 'KFN', 'KG1', 'KGM', 'KHP', 'KME', 'KO1', 'KO2', 'KOT', 'KQC', 'KTU', 'L1L', 'L6N', 'L6S', 'L6T', 'LAG', 'LAH', 'LAI', 'LAK', 'LAO', 'LAT', 'LB2', 'LBS', 'LBT', 'LCN', 'LDY', 'LEC', 'LER', 'LFC', 'LFR', 'LGC', 'LGU', 'LKA', 'LKS', 'LM2', 'LMO', 'LMT', 'LMU', 'LNV', 'LOG', 'LOX', 'LPK', 'LRH', 'LSM', 'LTG', 'LTM', 'LVO', 'LVZ', 'LXB', 'LXC', 'LXZ', 'LZ0', 'M1F', 'M1P', 'M2F', 'M3M', 'M3N', 'M55', 'M6D', 'M6P', 'M7B', 'M7P', 'M8C', 'MA1', 'MA2', 'MA3', 'MA8', 'MAB', 'MAF', 'MAG', 'MAL', 'MAN', 'MAT', 'MAV', 'MAW', 'MBE', 'MBF', 'MBG', 'MCU', 'MDA', 'MDP', 'MFA', 'MFB', 'MFU', 'MG5', 'MGA', 'MGC', 'MGL', 'MGS', 'MJJ', 'MLB', 'MLR', 'MMA', 'MMN', 'MN0', 'MNA', 'MQG', 'MQT', 'MRH', 'MRP', 'MSX', 'MTT', 'MUB', 'MUG', 'MUR', 'MVP', 'MXY', 'MXZ', 'MYG', 'N1L', 'N3U', 'N9S', 'NA1', 'NAA', 'NAG', 'NBG', 'NBX', 'NBY', 'NDG', 'NED', 'NFG', 'NG1', 'NG6', 'NGA', 'NGB', 'NGC', 'NGE', 'NGF', 'NGK', 'NGL', 'NGR', 'NGS', 'NGY', 'NGZ', 'NHF', 'NLC', 'NM6', 'NM9', 'NNG', 'NPF', 'NSQ', 'NT1', 'NTF', 'NTO', 'NTP', 'NXD', 'NYT', 'O1G', 'OAK', 'OEL', 'OI7', 'OPM', 'ORP', 'OSU', 'OTG', 'OTN', 'OTU', 'OX2', 'P53', 'P6P', 'P8E', 'PA1', 'PA5', 'PAV', 'PDX', 'PH5', 'PKM', 'PNA', 'PNG', 'PNJ', 'PNW', 'PPC', 'PRP', 'PSG', 'PSJ', 'PSV', 'PTQ', 'PUF', 'PZU', 'QDK', 'QIF', 'QKH', 'QPS', 'QV4', 'R1P', 'R1X', 'R2B', 'R2G', 'R5P', 'RAA', 'RAE', 'RAF', 'RAM', 'RAO', 'RAT', 'RB5', 'RBL', 'RCD', 'RDP', 'REL', 'RER', 'RF5', 'RG1', 'RGG', 'RHA', 'RHC', 'RI2', 'RIB', 'RIP', 'RM4', 'RNS', 'RNT', 'ROB', 'ROR', 'RP3', 'RP5', 'RP6', 'RPA', 'RR7', 'RRJ', 'RRY', 'RST', 'RTG', 'RTV', 'RUB', 'RUG', 'RUU', 'RV7', 'RVG', 'RVM', 'RWI', 'RY7', 'RZM', 'S6P', 'S7P', 'S81', 'SA0', 'SCG', 'SCR', 'SDD', 'SDY', 'SEJ', 'SF6', 'SF9', 'SFJ', 'SFU', 'SG4', 'SG5', 'SG6', 'SG7', 'SGA', 'SGC', 'SGD', 'SGN', 'SGS', 'SHB', 'SHD', 'SHG', 'SI3', 'SIA', 'SID', 'SIO', 'SIZ', 'SLB', 'SLM', 'SLT', 'SMD', 'SN5', 'SNG', 'SOE', 'SOG', 'SOL', 'SOR', 'SR1', 'SSG', 'SSH', 'STW', 'STZ', 'SUC', 'SUP', 'SUS', 'SWE', 'SZZ', 'T68', 'T6D', 'T6P', 'T6T', 'TA6', 'TAG', 'TCB', 'TCG', 'TDG', 'TEU', 'TF0', 'TFU', 'TGA', 'TGK', 'TGR', 'TGY', 'TH1', 'TM5', 'TM6', 'TM9', 'TMR', 'TMX', 'TNX', 'TOA', 'TOC', 'TQY', 'TRE', 'TRV', 'TS8', 'TT7', 'TTV', 'TTZ', 'TU4', 'TUG', 'TUJ', 'TUP', 'TUR', 'TVD', 'TVG', 'TVM', 'TVS', 'TVV', 'TVY', 'TW7', 'TWA', 'TWD', 'TWG', 'TWJ', 'TWY', 'TXB', 'TY6', 'TYV', 'U1Y', 'U2A', 'U2D', 'U63', 'U8V', 'U97', 'U9A', 'U9D', 'U9G', 'U9J', 'U9M', 'UAP', 'UBH', 'UBO', 'UCD', 'UDC', 'UEA', 'V3M', 'V3P', 'V71', 'VDF', 'VG1', 'VJ1', 'VJ4', 'VKN', 'VTB', 'W9T', 'WIA', 'WOO', 'WUN', 'WZ1', 'WZ2', 'WZ4', 'X0X', 'X1P', 'X1X', 'X2F', 'X2Y', 'X34', 'X4S', 'X5S', 'X6X', 'X6Y', 'XBP', 'XDP', 'XDX', 'XGP', 'XIL', 'XKJ', 'XLF', 'XLS', 'XMM', 'XS2', 'XUL', 'XXM', 'XXR', 'XXX', 'XY6', 'XY9', 'XYB', 'XYF', 'XYL', 'XYP', 'XYS', 'XYT', 'XYZ', 'YDR', 'YIO', 'YJM', 'YKR', 'YO5', 'YX0', 'YX1', 'YYB', 'YYD', 'YYH', 'YYJ', 'YYK', 'YYM', 'YYQ', 'YYR', 'YZ0', 'YZT', 'Z0F', 'Z15', 'Z16', 'Z2D', 'Z2T', 'Z3K', 'Z3L', 'Z3Q', 'Z3U', 'Z4K', 'Z4R', 'Z4S', 'Z4U', 'Z4V', 'Z4W', 'Z4Y', 'Z57', 'Z5J', 'Z5L', 'Z61', 'Z6G', 'Z6H', 'Z6J', 'Z6W', 'Z8H', 'Z8T', 'Z9D', 'Z9E', 'Z9H', 'Z9K', 'Z9L', 'Z9M', 'Z9N', 'Z9W', 'ZB0', 'ZB1', 'ZB2', 'ZB3', 'ZCD', 'ZCZ', 'ZD0', 'ZDC', 'ZDM', 'ZDO', 'ZEE', 'ZEL', 'ZGE', 'ZMR', 'UMQ', 'SQD']);
@@ -37,7 +37,7 @@ export declare const PlyShapeParams: {
37
37
  flatShaded: PD.BooleanParam;
38
38
  ignoreLight: PD.BooleanParam;
39
39
  xrayShaded: PD.Select<boolean | "inverted">;
40
- transparentBackfaces: PD.Select<string>;
40
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
41
41
  bumpFrequency: PD.Numeric;
42
42
  bumpAmplitude: PD.Numeric;
43
43
  alpha: PD.Numeric;
@@ -84,7 +84,7 @@ export declare function shapeFromPly(source: PlyFile, params?: {
84
84
  flatShaded: PD.BooleanParam;
85
85
  ignoreLight: PD.BooleanParam;
86
86
  xrayShaded: PD.Select<boolean | "inverted">;
87
- transparentBackfaces: PD.Select<string>;
87
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
88
88
  bumpFrequency: PD.Numeric;
89
89
  bumpAmplitude: PD.Numeric;
90
90
  alpha: PD.Numeric;
@@ -22,13 +22,14 @@ export declare const InteractionsInterUnitParams: {
22
22
  dashCap: PD.BooleanParam;
23
23
  stubCap: PD.BooleanParam;
24
24
  radialSegments: PD.Numeric;
25
+ colorMode: PD.Select<"default" | "interpolate">;
25
26
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
26
27
  doubleSided: PD.BooleanParam;
27
28
  flipSided: PD.BooleanParam;
28
29
  flatShaded: PD.BooleanParam;
29
30
  ignoreLight: PD.BooleanParam;
30
31
  xrayShaded: PD.Select<boolean | "inverted">;
31
- transparentBackfaces: PD.Select<string>;
32
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
32
33
  bumpFrequency: PD.Numeric;
33
34
  bumpAmplitude: PD.Numeric;
34
35
  alpha: PD.Numeric;
@@ -22,13 +22,14 @@ export declare const InteractionsIntraUnitParams: {
22
22
  dashCap: PD.BooleanParam;
23
23
  stubCap: PD.BooleanParam;
24
24
  radialSegments: PD.Numeric;
25
+ colorMode: PD.Select<"default" | "interpolate">;
25
26
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
26
27
  doubleSided: PD.BooleanParam;
27
28
  flipSided: PD.BooleanParam;
28
29
  flatShaded: PD.BooleanParam;
29
30
  ignoreLight: PD.BooleanParam;
30
31
  xrayShaded: PD.Select<boolean | "inverted">;
31
- transparentBackfaces: PD.Select<string>;
32
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
32
33
  bumpFrequency: PD.Numeric;
33
34
  bumpAmplitude: PD.Numeric;
34
35
  alpha: PD.Numeric;
@@ -27,12 +27,13 @@ export declare const InteractionsParams: {
27
27
  dashCap: PD.BooleanParam;
28
28
  stubCap: PD.BooleanParam;
29
29
  radialSegments: PD.Numeric;
30
+ colorMode: PD.Select<"default" | "interpolate">;
30
31
  doubleSided: PD.BooleanParam;
31
32
  flipSided: PD.BooleanParam;
32
33
  flatShaded: PD.BooleanParam;
33
34
  ignoreLight: PD.BooleanParam;
34
35
  xrayShaded: PD.Select<boolean | "inverted">;
35
- transparentBackfaces: PD.Select<string>;
36
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
36
37
  bumpFrequency: PD.Numeric;
37
38
  bumpAmplitude: PD.Numeric;
38
39
  alpha: PD.Numeric;
@@ -74,12 +75,13 @@ export declare function getInteractionParams(ctx: ThemeRegistryContext, structur
74
75
  dashCap: PD.BooleanParam;
75
76
  stubCap: PD.BooleanParam;
76
77
  radialSegments: PD.Numeric;
78
+ colorMode: PD.Select<"default" | "interpolate">;
77
79
  doubleSided: PD.BooleanParam;
78
80
  flipSided: PD.BooleanParam;
79
81
  flatShaded: PD.BooleanParam;
80
82
  ignoreLight: PD.BooleanParam;
81
83
  xrayShaded: PD.Select<boolean | "inverted">;
82
- transparentBackfaces: PD.Select<string>;
84
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
83
85
  bumpFrequency: PD.Numeric;
84
86
  bumpAmplitude: PD.Numeric;
85
87
  alpha: PD.Numeric;
@@ -122,12 +124,13 @@ export declare const InteractionsRepresentationProvider: StructureRepresentation
122
124
  dashCap: PD.BooleanParam;
123
125
  stubCap: PD.BooleanParam;
124
126
  radialSegments: PD.Numeric;
127
+ colorMode: PD.Select<"default" | "interpolate">;
125
128
  doubleSided: PD.BooleanParam;
126
129
  flipSided: PD.BooleanParam;
127
130
  flatShaded: PD.BooleanParam;
128
131
  ignoreLight: PD.BooleanParam;
129
132
  xrayShaded: PD.Select<boolean | "inverted">;
130
- transparentBackfaces: PD.Select<string>;
133
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
131
134
  bumpFrequency: PD.Numeric;
132
135
  bumpAmplitude: PD.Numeric;
133
136
  alpha: PD.Numeric;
@@ -23,6 +23,7 @@ export declare const CrossLinkRestraintCylinderParams: {
23
23
  dashCap: PD.BooleanParam;
24
24
  stubCap: PD.BooleanParam;
25
25
  radialSegments: PD.Numeric;
26
+ colorMode: PD.Select<"default" | "interpolate">;
26
27
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
27
28
  includeParent: PD.BooleanParam;
28
29
  doubleSided: PD.BooleanParam;
@@ -30,7 +31,7 @@ export declare const CrossLinkRestraintCylinderParams: {
30
31
  flatShaded: PD.BooleanParam;
31
32
  ignoreLight: PD.BooleanParam;
32
33
  xrayShaded: PD.Select<boolean | "inverted">;
33
- transparentBackfaces: PD.Select<string>;
34
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
34
35
  bumpFrequency: PD.Numeric;
35
36
  bumpAmplitude: PD.Numeric;
36
37
  alpha: PD.Numeric;
@@ -67,6 +68,7 @@ export declare const CrossLinkRestraintParams: {
67
68
  dashCap: PD.BooleanParam;
68
69
  stubCap: PD.BooleanParam;
69
70
  radialSegments: PD.Numeric;
71
+ colorMode: PD.Select<"default" | "interpolate">;
70
72
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
71
73
  includeParent: PD.BooleanParam;
72
74
  doubleSided: PD.BooleanParam;
@@ -74,7 +76,7 @@ export declare const CrossLinkRestraintParams: {
74
76
  flatShaded: PD.BooleanParam;
75
77
  ignoreLight: PD.BooleanParam;
76
78
  xrayShaded: PD.Select<boolean | "inverted">;
77
- transparentBackfaces: PD.Select<string>;
79
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
78
80
  bumpFrequency: PD.Numeric;
79
81
  bumpAmplitude: PD.Numeric;
80
82
  alpha: PD.Numeric;
@@ -110,6 +112,7 @@ export declare function getCrossLinkRestraintParams(ctx: ThemeRegistryContext, s
110
112
  dashCap: PD.BooleanParam;
111
113
  stubCap: PD.BooleanParam;
112
114
  radialSegments: PD.Numeric;
115
+ colorMode: PD.Select<"default" | "interpolate">;
113
116
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
114
117
  includeParent: PD.BooleanParam;
115
118
  doubleSided: PD.BooleanParam;
@@ -117,7 +120,7 @@ export declare function getCrossLinkRestraintParams(ctx: ThemeRegistryContext, s
117
120
  flatShaded: PD.BooleanParam;
118
121
  ignoreLight: PD.BooleanParam;
119
122
  xrayShaded: PD.Select<boolean | "inverted">;
120
- transparentBackfaces: PD.Select<string>;
123
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
121
124
  bumpFrequency: PD.Numeric;
122
125
  bumpAmplitude: PD.Numeric;
123
126
  alpha: PD.Numeric;
@@ -154,6 +157,7 @@ export declare const CrossLinkRestraintRepresentationProvider: StructureRepresen
154
157
  dashCap: PD.BooleanParam;
155
158
  stubCap: PD.BooleanParam;
156
159
  radialSegments: PD.Numeric;
160
+ colorMode: PD.Select<"default" | "interpolate">;
157
161
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
158
162
  includeParent: PD.BooleanParam;
159
163
  doubleSided: PD.BooleanParam;
@@ -161,7 +165,7 @@ export declare const CrossLinkRestraintRepresentationProvider: StructureRepresen
161
165
  flatShaded: PD.BooleanParam;
162
166
  ignoreLight: PD.BooleanParam;
163
167
  xrayShaded: PD.Select<boolean | "inverted">;
164
- transparentBackfaces: PD.Select<string>;
168
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
165
169
  bumpFrequency: PD.Numeric;
166
170
  bumpAmplitude: PD.Numeric;
167
171
  alpha: PD.Numeric;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author David Sehnal <david.sehnal@gmail.com>
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2018-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2018-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
6
6
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -270,15 +270,21 @@ exports.FocusLoci = behavior_1.PluginBehavior.create({
270
270
  class_4.prototype.register = function () {
271
271
  var _this = this;
272
272
  this.subscribeObservable(this.ctx.behaviors.interaction.click, function (_a) {
273
- var _b;
273
+ var _b, _c, _d, _e, _f;
274
274
  var current = _a.current, button = _a.button, modifiers = _a.modifiers;
275
- var _c = _this.params.bindings, clickFocus = _c.clickFocus, clickFocusAdd = _c.clickFocusAdd, clickFocusSelectMode = _c.clickFocusSelectMode, clickFocusAddSelectMode = _c.clickFocusAddSelectMode;
275
+ var _g = _this.params.bindings, clickFocus = _g.clickFocus, clickFocusAdd = _g.clickFocusAdd, clickFocusSelectMode = _g.clickFocusSelectMode, clickFocusAddSelectMode = _g.clickFocusAddSelectMode;
276
+ var binding = _this.ctx.selectionMode ? clickFocusSelectMode : clickFocus;
277
+ var matched = binding_1.Binding.match(binding, button, modifiers);
278
+ // Support snapshot key property, in which case ignore the focus functionality
279
+ var snapshotKey = (_e = (_d = (_c = (_b = current.repr) === null || _b === void 0 ? void 0 : _b.props) === null || _c === void 0 ? void 0 : _c.snapshotKey) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '';
280
+ if (!_this.ctx.selectionMode && matched && snapshotKey) {
281
+ _this.ctx.managers.snapshot.applyKey(snapshotKey);
282
+ return;
283
+ }
276
284
  // only apply structure focus for appropriate granularity
277
285
  var granularity = _this.ctx.managers.interactivity.props.granularity;
278
286
  if (granularity !== 'residue' && granularity !== 'element')
279
287
  return;
280
- var binding = _this.ctx.selectionMode ? clickFocusSelectMode : clickFocus;
281
- var matched = binding_1.Binding.match(binding, button, modifiers);
282
288
  var bindingAdd = _this.ctx.selectionMode ? clickFocusAddSelectMode : clickFocusAdd;
283
289
  var matchedAdd = binding_1.Binding.match(bindingAdd, button, modifiers);
284
290
  if (!matched && !matchedAdd)
@@ -295,7 +301,7 @@ exports.FocusLoci = behavior_1.PluginBehavior.create({
295
301
  else {
296
302
  _this.ctx.managers.structure.focus.addFromLoci(loci);
297
303
  // focus-add is not handled in camera behavior, doing it here
298
- var current_1 = (_b = _this.ctx.managers.structure.focus.current) === null || _b === void 0 ? void 0 : _b.loci;
304
+ var current_1 = (_f = _this.ctx.managers.structure.focus.current) === null || _f === void 0 ? void 0 : _f.loci;
299
305
  if (current_1)
300
306
  _this.ctx.managers.camera.focusLoci(current_1);
301
307
  }