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
@@ -522,7 +522,9 @@ export type CoreAssembly = {
522
522
  readonly pdbx_struct_oper_list?: Maybe<ReadonlyArray<Maybe<PdbxStructOperList>>>;
523
523
  /** Get a list of polymer entity instances (chains) that constitute this assembly. */
524
524
  readonly polymer_entity_instances?: Maybe<ReadonlyArray<Maybe<CorePolymerEntityInstance>>>;
525
+ readonly rcsb_assembly_annotation?: Maybe<ReadonlyArray<Maybe<RcsbAssemblyAnnotation>>>;
525
526
  readonly rcsb_assembly_container_identifiers: RcsbAssemblyContainerIdentifiers;
527
+ readonly rcsb_assembly_feature?: Maybe<ReadonlyArray<Maybe<RcsbAssemblyFeature>>>;
526
528
  readonly rcsb_assembly_info?: Maybe<RcsbAssemblyInfo>;
527
529
  /**
528
530
  * A unique identifier for each object in this assembly container formed by
@@ -1226,8 +1228,15 @@ export type DrugbankInfo = {
1226
1228
  readonly description?: Maybe<Scalars['String']['output']>;
1227
1229
  /** The DrugBank drug categories. */
1228
1230
  readonly drug_categories?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;
1229
- /** The DrugBank drug drug groups. */
1231
+ /**
1232
+ * The DrugBank drug groups determine their drug development status.
1233
+ *
1234
+ * Allowable values:
1235
+ * approved, experimental, illicit, investigational, nutraceutical, vet_approved, withdrawn
1236
+ *
1237
+ */
1230
1238
  readonly drug_groups?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;
1239
+ readonly drug_products?: Maybe<ReadonlyArray<Maybe<DrugbankInfoDrugProducts>>>;
1231
1240
  /** The DrugBank accession code */
1232
1241
  readonly drugbank_id: Scalars['String']['output'];
1233
1242
  /**
@@ -1259,6 +1268,56 @@ export type DrugbankInfo = {
1259
1268
  /** DrugBank drug name synonyms. */
1260
1269
  readonly synonyms?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;
1261
1270
  };
1271
+ export type DrugbankInfoDrugProducts = {
1272
+ /**
1273
+ * Indicates whether this drug has been approved by the regulating government.
1274
+ *
1275
+ * Allowable values:
1276
+ * N, Y
1277
+ *
1278
+ */
1279
+ readonly approved?: Maybe<Scalars['String']['output']>;
1280
+ /**
1281
+ * The country where this commercially available drug has been approved.
1282
+ *
1283
+ * Allowable values:
1284
+ * Canada, EU, US
1285
+ *
1286
+ */
1287
+ readonly country?: Maybe<Scalars['String']['output']>;
1288
+ /**
1289
+ * The ending date for market approval.
1290
+ *
1291
+ * Examples:
1292
+ * 2003-07-30
1293
+ *
1294
+ */
1295
+ readonly ended_marketing_on?: Maybe<Scalars['Date']['output']>;
1296
+ /**
1297
+ * The proprietary name(s) provided by the manufacturer for any commercially available products containing this drug.
1298
+ *
1299
+ * Examples:
1300
+ * Hivid Tab 0.375mg
1301
+ *
1302
+ */
1303
+ readonly name?: Maybe<Scalars['String']['output']>;
1304
+ /**
1305
+ * Source of this product information. For example, a value of DPD indicates this information was retrieved from the Canadian Drug Product Database.
1306
+ *
1307
+ * Allowable values:
1308
+ * DPD, EMA, FDA NDC
1309
+ *
1310
+ */
1311
+ readonly source?: Maybe<Scalars['String']['output']>;
1312
+ /**
1313
+ * The starting date for market approval.
1314
+ *
1315
+ * Examples:
1316
+ * 1992-12-31
1317
+ *
1318
+ */
1319
+ readonly started_marketing_on?: Maybe<Scalars['Date']['output']>;
1320
+ };
1262
1321
  export type DrugbankTarget = {
1263
1322
  /** The type of target interaction. */
1264
1323
  readonly interaction_type?: Maybe<Scalars['String']['output']>;
@@ -6438,6 +6497,46 @@ export type RcsbAccessionInfo = {
6438
6497
  */
6439
6498
  readonly status_code?: Maybe<Scalars['String']['output']>;
6440
6499
  };
6500
+ export type RcsbAssemblyAnnotation = {
6501
+ readonly additional_properties?: Maybe<ReadonlyArray<Maybe<RcsbAssemblyAnnotationAdditionalProperties>>>;
6502
+ /** An identifier for the annotation. */
6503
+ readonly annotation_id?: Maybe<Scalars['String']['output']>;
6504
+ /** Identifies the version of the annotation assignment. */
6505
+ readonly assignment_version?: Maybe<Scalars['String']['output']>;
6506
+ /** A description for the annotation. */
6507
+ readonly description?: Maybe<Scalars['String']['output']>;
6508
+ /** A name for the annotation. */
6509
+ readonly name?: Maybe<Scalars['String']['output']>;
6510
+ /**
6511
+ * Code identifying the individual, organization or program that
6512
+ * assigned the annotation.
6513
+ *
6514
+ * Examples:
6515
+ * MCSA
6516
+ *
6517
+ */
6518
+ readonly provenance_source?: Maybe<Scalars['String']['output']>;
6519
+ /**
6520
+ * A type or category of the annotation.
6521
+ *
6522
+ * Allowable values:
6523
+ * MCSA
6524
+ *
6525
+ */
6526
+ readonly type?: Maybe<Scalars['String']['output']>;
6527
+ };
6528
+ export type RcsbAssemblyAnnotationAdditionalProperties = {
6529
+ /**
6530
+ * The additional property name.
6531
+ *
6532
+ * Allowable values:
6533
+ * MCSA_MOTIF_COMPATIBILITY
6534
+ *
6535
+ */
6536
+ readonly name?: Maybe<Scalars['String']['output']>;
6537
+ /** The value(s) of the additional property. */
6538
+ readonly values?: Maybe<ReadonlyArray<Maybe<Scalars['ObjectScalar']['output']>>>;
6539
+ };
6441
6540
  export type RcsbAssemblyContainerIdentifiers = {
6442
6541
  /**
6443
6542
  * Assembly identifier for the container.
@@ -6461,6 +6560,66 @@ export type RcsbAssemblyContainerIdentifiers = {
6461
6560
  */
6462
6561
  readonly rcsb_id?: Maybe<Scalars['String']['output']>;
6463
6562
  };
6563
+ export type RcsbAssemblyFeature = {
6564
+ readonly additional_properties?: Maybe<ReadonlyArray<Maybe<RcsbAssemblyFeatureAdditionalProperties>>>;
6565
+ /** Identifies the version of the feature assignment. */
6566
+ readonly assignment_version?: Maybe<Scalars['String']['output']>;
6567
+ /** A description for the feature. */
6568
+ readonly description?: Maybe<Scalars['String']['output']>;
6569
+ /** An identifier for the feature. */
6570
+ readonly feature_id?: Maybe<Scalars['String']['output']>;
6571
+ /** This container groups together chain-level identifiers of the assigned features. */
6572
+ readonly feature_positions?: Maybe<ReadonlyArray<Maybe<RcsbAssemblyFeatureFeaturePositions>>>;
6573
+ /** A name for the feature. */
6574
+ readonly name?: Maybe<Scalars['String']['output']>;
6575
+ /**
6576
+ * Code identifying the individual, organization or program that
6577
+ * assigned the feature.
6578
+ *
6579
+ * Examples:
6580
+ * MCSA
6581
+ *
6582
+ */
6583
+ readonly provenance_source?: Maybe<Scalars['String']['output']>;
6584
+ /**
6585
+ * A type or category of the feature.
6586
+ *
6587
+ * Allowable values:
6588
+ * MCSA
6589
+ *
6590
+ */
6591
+ readonly type?: Maybe<Scalars['String']['output']>;
6592
+ };
6593
+ export type RcsbAssemblyFeatureAdditionalProperties = {
6594
+ /**
6595
+ * The additional property name.
6596
+ *
6597
+ * Allowable values:
6598
+ * MCSA_MOTIF_COMPATIBILITY
6599
+ *
6600
+ */
6601
+ readonly name?: Maybe<Scalars['String']['output']>;
6602
+ /** The value(s) of the additional property. */
6603
+ readonly values?: Maybe<ReadonlyArray<Maybe<Scalars['ObjectScalar']['output']>>>;
6604
+ };
6605
+ export type RcsbAssemblyFeatureFeaturePositions = {
6606
+ /**
6607
+ * An identifier of polymer chain (label_asym_id) corresponding to the feature assignment.
6608
+ *
6609
+ * Examples:
6610
+ * A, B
6611
+ *
6612
+ */
6613
+ readonly asym_id: Scalars['String']['output'];
6614
+ /** An identifier for the monomer at which this segment of the feature begins. */
6615
+ readonly beg_seq_id: Scalars['Int']['output'];
6616
+ /** An identifier for the monomer at which this segment of the feature ends. */
6617
+ readonly end_seq_id?: Maybe<Scalars['Int']['output']>;
6618
+ /** Identifies the list of operations from the category pdbx_struct_oper_list. One item in array per operator applied. The order follows how operators are applied. */
6619
+ readonly struct_oper_list: ReadonlyArray<Maybe<Scalars['String']['output']>>;
6620
+ /** The value(s) of the feature over the monomer segment. */
6621
+ readonly values?: Maybe<ReadonlyArray<Maybe<Scalars['Float']['output']>>>;
6622
+ };
6464
6623
  export type RcsbAssemblyInfo = {
6465
6624
  /** Entity identifier for the container. */
6466
6625
  readonly assembly_id?: Maybe<Scalars['String']['output']>;
@@ -24,6 +24,7 @@ export declare const IntraUnitClashParams: {
24
24
  dashCap: PD.BooleanParam;
25
25
  stubCap: PD.BooleanParam;
26
26
  radialSegments: PD.Numeric;
27
+ colorMode: PD.Select<"default" | "interpolate">;
27
28
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
28
29
  includeParent: PD.BooleanParam;
29
30
  doubleSided: PD.BooleanParam;
@@ -31,7 +32,7 @@ export declare const IntraUnitClashParams: {
31
32
  flatShaded: PD.BooleanParam;
32
33
  ignoreLight: PD.BooleanParam;
33
34
  xrayShaded: PD.Select<boolean | "inverted">;
34
- transparentBackfaces: PD.Select<string>;
35
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
35
36
  bumpFrequency: PD.Numeric;
36
37
  bumpAmplitude: PD.Numeric;
37
38
  alpha: PD.Numeric;
@@ -68,6 +69,7 @@ export declare const InterUnitClashParams: {
68
69
  dashCap: PD.BooleanParam;
69
70
  stubCap: PD.BooleanParam;
70
71
  radialSegments: PD.Numeric;
72
+ colorMode: PD.Select<"default" | "interpolate">;
71
73
  unitKinds: PD.MultiSelect<"spheres" | "gaussians" | "atomic">;
72
74
  includeParent: PD.BooleanParam;
73
75
  doubleSided: PD.BooleanParam;
@@ -75,7 +77,7 @@ export declare const InterUnitClashParams: {
75
77
  flatShaded: PD.BooleanParam;
76
78
  ignoreLight: PD.BooleanParam;
77
79
  xrayShaded: PD.Select<boolean | "inverted">;
78
- transparentBackfaces: PD.Select<string>;
80
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
79
81
  bumpFrequency: PD.Numeric;
80
82
  bumpAmplitude: PD.Numeric;
81
83
  alpha: PD.Numeric;
@@ -114,13 +116,14 @@ export declare const ClashesParams: {
114
116
  dashCap: PD.BooleanParam;
115
117
  stubCap: PD.BooleanParam;
116
118
  radialSegments: PD.Numeric;
119
+ colorMode: PD.Select<"default" | "interpolate">;
117
120
  includeParent: PD.BooleanParam;
118
121
  doubleSided: PD.BooleanParam;
119
122
  flipSided: PD.BooleanParam;
120
123
  flatShaded: PD.BooleanParam;
121
124
  ignoreLight: PD.BooleanParam;
122
125
  xrayShaded: PD.Select<boolean | "inverted">;
123
- transparentBackfaces: PD.Select<string>;
126
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
124
127
  bumpFrequency: PD.Numeric;
125
128
  bumpAmplitude: PD.Numeric;
126
129
  alpha: PD.Numeric;
@@ -158,13 +161,14 @@ export declare function getClashesParams(ctx: ThemeRegistryContext, structure: S
158
161
  dashCap: PD.BooleanParam;
159
162
  stubCap: PD.BooleanParam;
160
163
  radialSegments: PD.Numeric;
164
+ colorMode: PD.Select<"default" | "interpolate">;
161
165
  includeParent: PD.BooleanParam;
162
166
  doubleSided: PD.BooleanParam;
163
167
  flipSided: PD.BooleanParam;
164
168
  flatShaded: PD.BooleanParam;
165
169
  ignoreLight: PD.BooleanParam;
166
170
  xrayShaded: PD.Select<boolean | "inverted">;
167
- transparentBackfaces: PD.Select<string>;
171
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
168
172
  bumpFrequency: PD.Numeric;
169
173
  bumpAmplitude: PD.Numeric;
170
174
  alpha: PD.Numeric;
@@ -203,13 +207,14 @@ export declare const ClashesRepresentationProvider: StructureRepresentationProvi
203
207
  dashCap: PD.BooleanParam;
204
208
  stubCap: PD.BooleanParam;
205
209
  radialSegments: PD.Numeric;
210
+ colorMode: PD.Select<"default" | "interpolate">;
206
211
  includeParent: PD.BooleanParam;
207
212
  doubleSided: PD.BooleanParam;
208
213
  flipSided: PD.BooleanParam;
209
214
  flatShaded: PD.BooleanParam;
210
215
  ignoreLight: PD.BooleanParam;
211
216
  xrayShaded: PD.Select<boolean | "inverted">;
212
- transparentBackfaces: PD.Select<string>;
217
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
213
218
  bumpFrequency: PD.Numeric;
214
219
  bumpAmplitude: PD.Numeric;
215
220
  alpha: PD.Numeric;
@@ -24,7 +24,7 @@ export declare const HandleHelperParams: {
24
24
  flipSided: boolean;
25
25
  flatShaded: boolean;
26
26
  xrayShaded: boolean | "inverted";
27
- transparentBackfaces: string;
27
+ transparentBackfaces: "on" | "off" | "opaque";
28
28
  bumpFrequency: number;
29
29
  bumpAmplitude: number;
30
30
  quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
6
+ * @author Gianluca Tomasello <giagitom@gmail.com>
6
7
  */
7
8
  import { ValueCell } from '../../mol-util';
8
9
  import { TextureImage } from '../../mol-gl/renderable/util';
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  * @author David Sehnal <david.sehnal@gmail.com>
7
+ * @author Gianluca Tomasello <giagitom@gmail.com>
7
8
  */
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.createGridColor = exports.createTextureColor = exports.createValueColor = exports.createColors = void 0;
@@ -135,24 +136,30 @@ function createInstanceColor(locationIt, color, colorData) {
135
136
  }
136
137
  /** Creates color texture with color for each group (i.e. shared across instances) */
137
138
  function createGroupColor(locationIt, color, colorData) {
138
- var groupCount = locationIt.groupCount;
139
- var colors = (0, util_1.createTextureImage)(Math.max(1, groupCount), 3, Uint8Array, colorData && colorData.tColor.ref.value.array);
139
+ var groupCount = locationIt.groupCount, hasLocation2 = locationIt.hasLocation2;
140
+ var colors = (0, util_1.createTextureImage)(Math.max(1, groupCount * (hasLocation2 ? 2 : 1)), 3, Uint8Array, colorData && colorData.tColor.ref.value.array);
140
141
  locationIt.reset();
142
+ var indexMultiplier = hasLocation2 ? 6 : 3;
141
143
  while (locationIt.hasNext && !locationIt.isNextNewInstance) {
142
- var _a = locationIt.move(), location_3 = _a.location, isSecondary = _a.isSecondary, groupIndex = _a.groupIndex;
143
- color_1.Color.toArray(color(location_3, isSecondary), colors.array, groupIndex * 3);
144
+ var _a = locationIt.move(), location_3 = _a.location, location2 = _a.location2, isSecondary = _a.isSecondary, groupIndex = _a.groupIndex;
145
+ color_1.Color.toArray(color(location_3, isSecondary), colors.array, groupIndex * indexMultiplier);
146
+ if (hasLocation2)
147
+ color_1.Color.toArray(color(location2, isSecondary), colors.array, groupIndex * indexMultiplier + 3);
144
148
  }
145
149
  return createTextureColor(colors, 'group', colorData);
146
150
  }
147
151
  /** Creates color texture with color for each group in each instance */
148
152
  function createGroupInstanceColor(locationIt, color, colorData) {
149
- var groupCount = locationIt.groupCount, instanceCount = locationIt.instanceCount;
150
- var count = instanceCount * groupCount;
153
+ var groupCount = locationIt.groupCount, instanceCount = locationIt.instanceCount, hasLocation2 = locationIt.hasLocation2;
154
+ var count = instanceCount * groupCount * (hasLocation2 ? 2 : 1);
151
155
  var colors = (0, util_1.createTextureImage)(Math.max(1, count), 3, Uint8Array, colorData && colorData.tColor.ref.value.array);
152
156
  locationIt.reset();
157
+ var indexMultiplier = hasLocation2 ? 6 : 3;
153
158
  while (locationIt.hasNext) {
154
- var _a = locationIt.move(), location_4 = _a.location, isSecondary = _a.isSecondary, index = _a.index;
155
- color_1.Color.toArray(color(location_4, isSecondary), colors.array, index * 3);
159
+ var _a = locationIt.move(), location_4 = _a.location, location2 = _a.location2, isSecondary = _a.isSecondary, index = _a.index;
160
+ color_1.Color.toArray(color(location_4, isSecondary), colors.array, index * indexMultiplier);
161
+ if (hasLocation2)
162
+ color_1.Color.toArray(color(location2, isSecondary), colors.array, index * indexMultiplier + 3);
156
163
  }
157
164
  return createTextureColor(colors, 'groupInstance', colorData);
158
165
  }
@@ -7,9 +7,15 @@
7
7
  import { Cylinders } from './cylinders';
8
8
  import { Vec3 } from '../../../mol-math/linear-algebra';
9
9
  export interface CylindersBuilder {
10
- add(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, radiusScale: number, topCap: boolean, bottomCap: boolean, group: number): void;
11
- addFixedCountDashes(start: Vec3, end: Vec3, segmentCount: number, radiusScale: number, topCap: boolean, bottomCap: boolean, stubCap: boolean, group: number): void;
12
- addFixedLengthDashes(start: Vec3, end: Vec3, segmentLength: number, radiusScale: number, topCap: boolean, bottomCap: boolean, group: number): void;
10
+ /**
11
+ * @param colorMode - controls if and how theme colors are interpolated
12
+ * - for colorMode between 0 and 1 use colorMode to interpolate
13
+ * - for colorMode == 2 do nothing, i.e., use given theme color
14
+ * - for colorMode == 3 use position on cylinder axis to interpolate
15
+ */
16
+ add(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, radiusScale: number, topCap: boolean, bottomCap: boolean, colorMode: number, group: number): void;
17
+ addFixedCountDashes(start: Vec3, end: Vec3, segmentCount: number, radiusScale: number, topCap: boolean, bottomCap: boolean, stubCap: boolean, interpolate: boolean, group: number): void;
18
+ addFixedLengthDashes(start: Vec3, end: Vec3, segmentLength: number, radiusScale: number, topCap: boolean, bottomCap: boolean, interpolate: boolean, group: number): void;
13
19
  getCylinders(): Cylinders;
14
20
  }
15
21
  export declare namespace CylindersBuilder {
@@ -26,20 +26,23 @@ var CylindersBuilder;
26
26
  var ends = util_1.ChunkedArray.create(Float32Array, 3, chunkSize, cylinders ? cylinders.endBuffer.ref.value : initialCount);
27
27
  var scales = util_1.ChunkedArray.create(Float32Array, 1, chunkSize, cylinders ? cylinders.scaleBuffer.ref.value : initialCount);
28
28
  var caps = util_1.ChunkedArray.create(Float32Array, 1, chunkSize, cylinders ? cylinders.capBuffer.ref.value : initialCount);
29
- var add = function (startX, startY, startZ, endX, endY, endZ, radiusScale, topCap, bottomCap, group) {
29
+ var colorModes = util_1.ChunkedArray.create(Float32Array, 1, chunkSize, cylinders ? cylinders.colorModeBuffer.ref.value : initialCount);
30
+ var add = function (startX, startY, startZ, endX, endY, endZ, radiusScale, topCap, bottomCap, colorMode, group) {
30
31
  for (var i = 0; i < 6; ++i) {
31
32
  caAdd3(starts, startX, startY, startZ);
32
33
  caAdd3(ends, endX, endY, endZ);
33
34
  caAdd(groups, group);
34
35
  caAdd(scales, radiusScale);
35
36
  caAdd(caps, (topCap ? 1 : 0) + (bottomCap ? 2 : 0));
37
+ caAdd(colorModes, colorMode);
36
38
  }
37
39
  };
38
- var addFixedCountDashes = function (start, end, segmentCount, radiusScale, topCap, bottomCap, stubCap, group) {
40
+ var addFixedCountDashes = function (start, end, segmentCount, radiusScale, topCap, bottomCap, stubCap, interpolate, group) {
39
41
  var d = linear_algebra_1.Vec3.distance(start, end);
40
42
  var isOdd = segmentCount % 2 !== 0;
41
43
  var s = Math.floor((segmentCount + 1) / 2);
42
44
  var step = d / (segmentCount + 0.5);
45
+ var colorMode = 2.0;
43
46
  linear_algebra_1.Vec3.setMagnitude(tmpDir, linear_algebra_1.Vec3.sub(tmpDir, end, start), step);
44
47
  linear_algebra_1.Vec3.copy(tmpVecA, start);
45
48
  for (var j = 0; j < s; ++j) {
@@ -52,16 +55,19 @@ var CylindersBuilder;
52
55
  else {
53
56
  linear_algebra_1.Vec3.add(tmpVecB, tmpVecA, tmpDir);
54
57
  }
55
- add(tmpVecA[0], tmpVecA[1], tmpVecA[2], tmpVecB[0], tmpVecB[1], tmpVecB[2], radiusScale, topCap, bottomCap, group);
58
+ if (interpolate) {
59
+ colorMode = linear_algebra_1.Vec3.distance(start, tmpVecB) / (d * 2);
60
+ }
61
+ add(tmpVecA[0], tmpVecA[1], tmpVecA[2], tmpVecB[0], tmpVecB[1], tmpVecB[2], radiusScale, topCap, bottomCap, colorMode, group);
56
62
  linear_algebra_1.Vec3.add(tmpVecA, tmpVecA, tmpDir);
57
63
  }
58
64
  };
59
65
  return {
60
66
  add: add,
61
67
  addFixedCountDashes: addFixedCountDashes,
62
- addFixedLengthDashes: function (start, end, segmentLength, radiusScale, topCap, bottomCap, group) {
68
+ addFixedLengthDashes: function (start, end, segmentLength, radiusScale, topCap, bottomCap, interpolate, group) {
63
69
  var d = linear_algebra_1.Vec3.distance(start, end);
64
- addFixedCountDashes(start, end, d / segmentLength, radiusScale, topCap, bottomCap, true, group);
70
+ addFixedCountDashes(start, end, d / segmentLength, radiusScale, topCap, bottomCap, true, interpolate, group);
65
71
  },
66
72
  getCylinders: function () {
67
73
  var cylinderCount = groups.elementCount / 6;
@@ -70,11 +76,12 @@ var CylindersBuilder;
70
76
  var eb = util_1.ChunkedArray.compact(ends, true);
71
77
  var ab = util_1.ChunkedArray.compact(scales, true);
72
78
  var cb = util_1.ChunkedArray.compact(caps, true);
79
+ var cmb = util_1.ChunkedArray.compact(colorModes, true);
73
80
  var mb = cylinders && cylinderCount <= cylinders.cylinderCount ? cylinders.mappingBuffer.ref.value : new Float32Array(cylinderCount * 18);
74
81
  var ib = cylinders && cylinderCount <= cylinders.cylinderCount ? cylinders.indexBuffer.ref.value : new Uint32Array(cylinderCount * 12);
75
82
  if (!cylinders || cylinderCount > cylinders.cylinderCount)
76
83
  fillMappingAndIndices(cylinderCount, mb, ib);
77
- return cylinders_1.Cylinders.create(mb, ib, gb, sb, eb, ab, cb, cylinderCount, cylinders);
84
+ return cylinders_1.Cylinders.create(mb, ib, gb, sb, eb, ab, cb, cmb, cylinderCount, cylinders);
78
85
  }
79
86
  };
80
87
  }
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) 2020-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ * @author Gianluca Tomasello <giagitom@gmail.com>
5
6
  */
6
7
  import { ValueCell } from '../../../mol-util';
7
8
  import { Mat4 } from '../../../mol-math/linear-algebra';
@@ -27,6 +28,13 @@ export interface Cylinders {
27
28
  readonly scaleBuffer: ValueCell<Float32Array>;
28
29
  /** Cylinder cap buffer as array of cap flags wrapped in a value cell */
29
30
  readonly capBuffer: ValueCell<Float32Array>;
31
+ /**
32
+ * Cylinder colorMode buffer as array of coloring modes flags wrapped in a value cell
33
+ * - for colorMode between 0 and 1 use colorMode to interpolate
34
+ * - for colorMode == 2 do nothing, i.e., use given theme color
35
+ * - for colorMode == 3 use position on cylinder axis to interpolate
36
+ */
37
+ readonly colorModeBuffer: ValueCell<Float32Array>;
30
38
  /** Bounding sphere of the cylinders */
31
39
  readonly boundingSphere: Sphere3D;
32
40
  /** Maps group ids to cylinder indices */
@@ -34,7 +42,7 @@ export interface Cylinders {
34
42
  setBoundingSphere(boundingSphere: Sphere3D): void;
35
43
  }
36
44
  export declare namespace Cylinders {
37
- function create(mappings: Float32Array, indices: Uint32Array, groups: Float32Array, starts: Float32Array, ends: Float32Array, scales: Float32Array, caps: Float32Array, cylinderCount: number, cylinders?: Cylinders): Cylinders;
45
+ function create(mappings: Float32Array, indices: Uint32Array, groups: Float32Array, starts: Float32Array, ends: Float32Array, scales: Float32Array, caps: Float32Array, colorModes: Float32Array, cylinderCount: number, cylinders?: Cylinders): Cylinders;
38
46
  function createEmpty(cylinders?: Cylinders): Cylinders;
39
47
  function transform(cylinders: Cylinders, t: Mat4): void;
40
48
  const Params: {
@@ -43,10 +51,11 @@ export declare namespace Cylinders {
43
51
  doubleSided: PD.BooleanParam;
44
52
  ignoreLight: PD.BooleanParam;
45
53
  xrayShaded: PD.Select<boolean | "inverted">;
46
- transparentBackfaces: PD.Select<string>;
54
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
47
55
  solidInterior: PD.BooleanParam;
48
56
  bumpFrequency: PD.Numeric;
49
57
  bumpAmplitude: PD.Numeric;
58
+ colorMode: PD.Select<"default" | "interpolate">;
50
59
  alpha: PD.Numeric;
51
60
  quality: PD.Select<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest">;
52
61
  material: PD.Group<PD.Normalize<{
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) 2020-2023 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.Cylinders = void 0;
@@ -25,10 +26,10 @@ var clipping_data_1 = require("../clipping-data");
25
26
  var substance_data_1 = require("../substance-data");
26
27
  var Cylinders;
27
28
  (function (Cylinders) {
28
- function create(mappings, indices, groups, starts, ends, scales, caps, cylinderCount, cylinders) {
29
+ function create(mappings, indices, groups, starts, ends, scales, caps, colorModes, cylinderCount, cylinders) {
29
30
  return cylinders ?
30
- update(mappings, indices, groups, starts, ends, scales, caps, cylinderCount, cylinders) :
31
- fromArrays(mappings, indices, groups, starts, ends, scales, caps, cylinderCount);
31
+ update(mappings, indices, groups, starts, ends, scales, caps, colorModes, cylinderCount, cylinders) :
32
+ fromArrays(mappings, indices, groups, starts, ends, scales, caps, colorModes, cylinderCount);
32
33
  }
33
34
  Cylinders.create = create;
34
35
  function createEmpty(cylinders) {
@@ -39,16 +40,17 @@ var Cylinders;
39
40
  var eb = cylinders ? cylinders.endBuffer.ref.value : new Float32Array(0);
40
41
  var ab = cylinders ? cylinders.scaleBuffer.ref.value : new Float32Array(0);
41
42
  var cb = cylinders ? cylinders.capBuffer.ref.value : new Float32Array(0);
42
- return create(mb, ib, gb, sb, eb, ab, cb, 0, cylinders);
43
+ var cmb = cylinders ? cylinders.colorModeBuffer.ref.value : new Float32Array(0);
44
+ return create(mb, ib, gb, sb, eb, ab, cb, cmb, 0, cylinders);
43
45
  }
44
46
  Cylinders.createEmpty = createEmpty;
45
47
  function hashCode(cylinders) {
46
48
  return (0, util_3.hashFnv32a)([
47
49
  cylinders.cylinderCount, cylinders.mappingBuffer.ref.version, cylinders.indexBuffer.ref.version,
48
- cylinders.groupBuffer.ref.version, cylinders.startBuffer.ref.version, cylinders.endBuffer.ref.version, cylinders.scaleBuffer.ref.version, cylinders.capBuffer.ref.version
50
+ cylinders.groupBuffer.ref.version, cylinders.startBuffer.ref.version, cylinders.endBuffer.ref.version, cylinders.scaleBuffer.ref.version, cylinders.capBuffer.ref.version, cylinders.colorModeBuffer.ref.version
49
51
  ]);
50
52
  }
51
- function fromArrays(mappings, indices, groups, starts, ends, scales, caps, cylinderCount) {
53
+ function fromArrays(mappings, indices, groups, starts, ends, scales, caps, colorModes, cylinderCount) {
52
54
  var boundingSphere = (0, geometry_1.Sphere3D)();
53
55
  var groupMapping;
54
56
  var currentHash = -1;
@@ -63,6 +65,7 @@ var Cylinders;
63
65
  endBuffer: mol_util_1.ValueCell.create(ends),
64
66
  scaleBuffer: mol_util_1.ValueCell.create(scales),
65
67
  capBuffer: mol_util_1.ValueCell.create(caps),
68
+ colorModeBuffer: mol_util_1.ValueCell.create(colorModes),
66
69
  get boundingSphere() {
67
70
  var newHash = hashCode(cylinders);
68
71
  if (newHash !== currentHash) {
@@ -87,7 +90,7 @@ var Cylinders;
87
90
  };
88
91
  return cylinders;
89
92
  }
90
- function update(mappings, indices, groups, starts, ends, scales, caps, cylinderCount, cylinders) {
93
+ function update(mappings, indices, groups, starts, ends, scales, caps, colorModes, cylinderCount, cylinders) {
91
94
  if (cylinderCount > cylinders.cylinderCount) {
92
95
  mol_util_1.ValueCell.update(cylinders.mappingBuffer, mappings);
93
96
  mol_util_1.ValueCell.update(cylinders.indexBuffer, indices);
@@ -98,6 +101,7 @@ var Cylinders;
98
101
  mol_util_1.ValueCell.update(cylinders.endBuffer, ends);
99
102
  mol_util_1.ValueCell.update(cylinders.scaleBuffer, scales);
100
103
  mol_util_1.ValueCell.update(cylinders.capBuffer, caps);
104
+ mol_util_1.ValueCell.update(cylinders.colorModeBuffer, colorModes);
101
105
  return cylinders;
102
106
  }
103
107
  function transform(cylinders, t) {
@@ -110,7 +114,7 @@ var Cylinders;
110
114
  }
111
115
  Cylinders.transform = transform;
112
116
  //
113
- Cylinders.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { sizeFactor: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 10, step: 0.1 }), sizeAspectRatio: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 3, step: 0.01 }), doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Select(false, [[false, 'Off'], [true, 'On'], ['inverted', 'Inverted']], base_1.BaseGeometry.ShadingCategory), transparentBackfaces: param_definition_1.ParamDefinition.Select('off', param_definition_1.ParamDefinition.arrayToOptions(['off', 'on', 'opaque']), base_1.BaseGeometry.ShadingCategory), solidInterior: param_definition_1.ParamDefinition.Boolean(true, base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
117
+ Cylinders.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { sizeFactor: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 10, step: 0.1 }), sizeAspectRatio: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 3, step: 0.01 }), doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Select(false, [[false, 'Off'], [true, 'On'], ['inverted', 'Inverted']], base_1.BaseGeometry.ShadingCategory), transparentBackfaces: param_definition_1.ParamDefinition.Select('off', param_definition_1.ParamDefinition.arrayToOptions(['off', 'on', 'opaque']), base_1.BaseGeometry.ShadingCategory), solidInterior: param_definition_1.ParamDefinition.Boolean(true, base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), colorMode: param_definition_1.ParamDefinition.Select('default', param_definition_1.ParamDefinition.arrayToOptions(['default', 'interpolate']), base_1.BaseGeometry.ShadingCategory) });
114
118
  Cylinders.Utils = {
115
119
  Params: Cylinders.Params,
116
120
  createEmpty: createEmpty,
@@ -158,7 +162,7 @@ var Cylinders;
158
162
  var padding = (0, size_data_1.getMaxSize)(size) * props.sizeFactor;
159
163
  var invariantBoundingSphere = geometry_1.Sphere3D.clone(cylinders.boundingSphere);
160
164
  var boundingSphere = (0, util_2.calculateTransformBoundingSphere)(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount, 0);
161
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('cylinders'), aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, elements: cylinders.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: mol_util_1.ValueCell.create(padding) }), base_1.BaseGeometry.createValues(props, counts)), { uSizeFactor: mol_util_1.ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded === 'inverted' ? 'inverted' : props.xrayShaded === true ? 'on' : 'off'), dTransparentBackfaces: mol_util_1.ValueCell.create(props.transparentBackfaces), dSolidInterior: mol_util_1.ValueCell.create(props.solidInterior), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude) });
165
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('cylinders'), aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, aColorMode: cylinders.colorModeBuffer, elements: cylinders.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: mol_util_1.ValueCell.create(padding) }), base_1.BaseGeometry.createValues(props, counts)), { uSizeFactor: mol_util_1.ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded === 'inverted' ? 'inverted' : props.xrayShaded === true ? 'on' : 'off'), dTransparentBackfaces: mol_util_1.ValueCell.create(props.transparentBackfaces), dSolidInterior: mol_util_1.ValueCell.create(props.solidInterior), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude), dDualColor: mol_util_1.ValueCell.create(props.colorMode === 'interpolate') });
162
166
  }
163
167
  function createValuesSimple(cylinders, props, colorValue, sizeValue, transform) {
164
168
  var s = base_1.BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -175,6 +179,7 @@ var Cylinders;
175
179
  mol_util_1.ValueCell.updateIfChanged(values.dSolidInterior, props.solidInterior);
176
180
  mol_util_1.ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
177
181
  mol_util_1.ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
182
+ mol_util_1.ValueCell.updateIfChanged(values.dDualColor, props.colorMode === 'interpolate');
178
183
  }
179
184
  function updateBoundingSphere(values, cylinders) {
180
185
  var invariantBoundingSphere = geometry_1.Sphere3D.clone(cylinders.boundingSphere);
@@ -64,7 +64,7 @@ export declare namespace Mesh {
64
64
  flatShaded: PD.BooleanParam;
65
65
  ignoreLight: PD.BooleanParam;
66
66
  xrayShaded: PD.Select<boolean | "inverted">;
67
- transparentBackfaces: PD.Select<string>;
67
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
68
68
  bumpFrequency: PD.Numeric;
69
69
  bumpAmplitude: PD.Numeric;
70
70
  alpha: PD.Numeric;
@@ -38,7 +38,7 @@ export declare namespace Spheres {
38
38
  doubleSided: PD.BooleanParam;
39
39
  ignoreLight: PD.BooleanParam;
40
40
  xrayShaded: PD.Select<boolean | "inverted">;
41
- transparentBackfaces: PD.Select<string>;
41
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
42
42
  solidInterior: PD.BooleanParam;
43
43
  clipPrimitive: PD.BooleanParam;
44
44
  approximate: PD.BooleanParam;
@@ -48,7 +48,7 @@ export declare namespace TextureMesh {
48
48
  flatShaded: PD.BooleanParam;
49
49
  ignoreLight: PD.BooleanParam;
50
50
  xrayShaded: PD.Select<boolean | "inverted">;
51
- transparentBackfaces: PD.Select<string>;
51
+ transparentBackfaces: PD.Select<"on" | "off" | "opaque">;
52
52
  bumpFrequency: PD.Numeric;
53
53
  bumpAmplitude: PD.Numeric;
54
54
  alpha: PD.Numeric;
@@ -2,12 +2,14 @@
2
2
  * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ * @author Gianluca Tomasello <giagitom@gmail.com>
5
6
  */
6
7
  import { Iterator } from '../../mol-data';
7
8
  import { Vec3 } from '../../mol-math/linear-algebra';
8
9
  import { Location } from '../../mol-model/location';
9
10
  export interface LocationValue {
10
11
  location: Location;
12
+ location2: Location;
11
13
  index: number;
12
14
  groupIndex: number;
13
15
  instanceIndex: number;
@@ -21,6 +23,7 @@ export interface LocationIterator extends Iterator<LocationValue> {
21
23
  readonly count: number;
22
24
  readonly stride: number;
23
25
  readonly nonInstanceable: boolean;
26
+ readonly hasLocation2: boolean;
24
27
  move(): LocationValue;
25
28
  reset(): void;
26
29
  skipInstance(): void;
@@ -28,7 +31,7 @@ export interface LocationIterator extends Iterator<LocationValue> {
28
31
  }
29
32
  type LocationGetter = (groupIndex: number, instanceIndex: number) => Location;
30
33
  type IsSecondaryGetter = (groupIndex: number, instanceIndex: number) => boolean;
31
- export declare function LocationIterator(groupCount: number, instanceCount: number, stride: number, getLocation: LocationGetter, nonInstanceable?: boolean, isSecondary?: IsSecondaryGetter): LocationIterator;
34
+ export declare function LocationIterator(groupCount: number, instanceCount: number, stride: number, getLocation: LocationGetter, nonInstanceable?: boolean, isSecondary?: IsSecondaryGetter, getLocation2?: LocationGetter): LocationIterator;
32
35
  /** A position Location */
33
36
  export interface PositionLocation {
34
37
  readonly kind: 'position-location';