molstar 3.26.0 → 3.28.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 (499) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +202 -202
  3. package/build/viewer/embedded.html +52 -52
  4. package/build/viewer/index.html +115 -115
  5. package/build/viewer/molstar.css +1 -1
  6. package/build/viewer/molstar.js +1 -1
  7. package/lib/apps/docking-viewer/index.html +36 -36
  8. package/lib/apps/docking-viewer/viewport.d.ts +2 -0
  9. package/lib/apps/docking-viewer/viewport.js +1 -0
  10. package/lib/apps/viewer/app.d.ts +3 -1
  11. package/lib/apps/viewer/app.js +4 -0
  12. package/lib/apps/viewer/embedded.html +52 -52
  13. package/lib/apps/viewer/index.html +115 -115
  14. package/lib/cli/structure-info/volume.js +1 -1
  15. package/lib/commonjs/apps/docking-viewer/viewport.d.ts +2 -0
  16. package/lib/commonjs/apps/docking-viewer/viewport.js +1 -0
  17. package/lib/commonjs/apps/viewer/app.d.ts +3 -1
  18. package/lib/commonjs/apps/viewer/app.js +4 -0
  19. package/lib/commonjs/cli/structure-info/volume.js +1 -1
  20. package/lib/commonjs/examples/lighting/index.js +1 -1
  21. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
  22. package/lib/commonjs/extensions/cellpack/model.js +2 -1
  23. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -0
  24. package/lib/commonjs/extensions/meshes/choice.d.ts +26 -0
  25. package/lib/commonjs/extensions/meshes/choice.js +31 -0
  26. package/lib/commonjs/extensions/meshes/examples.d.ts +26 -0
  27. package/lib/commonjs/extensions/meshes/examples.js +337 -0
  28. package/lib/commonjs/extensions/meshes/mesh-cif-schema.d.ts +29 -0
  29. package/lib/commonjs/extensions/meshes/mesh-cif-schema.js +34 -0
  30. package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +66 -0
  31. package/lib/commonjs/extensions/meshes/mesh-extension.js +221 -0
  32. package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.d.ts +105 -0
  33. package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.js +379 -0
  34. package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.d.ts +54 -0
  35. package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.js +30 -0
  36. package/lib/commonjs/extensions/meshes/mesh-streaming/transformers.d.ts +42 -0
  37. package/lib/commonjs/extensions/meshes/mesh-streaming/transformers.js +273 -0
  38. package/lib/commonjs/extensions/meshes/mesh-utils.d.ts +41 -0
  39. package/lib/commonjs/extensions/meshes/mesh-utils.js +357 -0
  40. package/lib/commonjs/extensions/meshes/metadata.d.ts +108 -0
  41. package/lib/commonjs/extensions/meshes/metadata.js +72 -0
  42. package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.d.ts +2 -0
  43. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.d.ts +1 -0
  44. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.js +16 -4
  45. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -2
  46. package/lib/commonjs/extensions/rcsb/validation-report/behavior.d.ts +3 -0
  47. package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.d.ts +17 -0
  48. package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.js +156 -0
  49. package/lib/commonjs/extensions/volumes-and-segmentations/entry-models.d.ts +12 -0
  50. package/lib/commonjs/extensions/volumes-and-segmentations/entry-models.js +96 -0
  51. package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.d.ts +122 -0
  52. package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.js +576 -0
  53. package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.d.ts +20 -0
  54. package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.js +200 -0
  55. package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.d.ts +88 -0
  56. package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.js +32 -0
  57. package/lib/commonjs/extensions/volumes-and-segmentations/entry-volume.d.ts +35 -0
  58. package/lib/commonjs/extensions/volumes-and-segmentations/entry-volume.js +234 -0
  59. package/lib/commonjs/extensions/volumes-and-segmentations/external-api.d.ts +11 -0
  60. package/lib/commonjs/extensions/volumes-and-segmentations/external-api.js +85 -0
  61. package/lib/commonjs/extensions/volumes-and-segmentations/global-state.d.ts +51 -0
  62. package/lib/commonjs/extensions/volumes-and-segmentations/global-state.js +83 -0
  63. package/lib/commonjs/extensions/volumes-and-segmentations/helpers.d.ts +56 -0
  64. package/lib/commonjs/extensions/volumes-and-segmentations/helpers.js +171 -0
  65. package/lib/commonjs/extensions/volumes-and-segmentations/index.d.ts +20 -0
  66. package/lib/commonjs/extensions/volumes-and-segmentations/index.js +130 -0
  67. package/lib/commonjs/extensions/volumes-and-segmentations/transformers.d.ts +33 -0
  68. package/lib/commonjs/extensions/volumes-and-segmentations/transformers.js +85 -0
  69. package/lib/commonjs/extensions/volumes-and-segmentations/ui.d.ts +29 -0
  70. package/lib/commonjs/extensions/volumes-and-segmentations/ui.js +232 -0
  71. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/api.d.ts +22 -0
  72. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/api.js +83 -0
  73. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/data.d.ts +92 -0
  74. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/data.js +7 -0
  75. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/utils.d.ts +23 -0
  76. package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/utils.js +78 -0
  77. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -0
  78. package/lib/commonjs/mol-canvas3d/passes/draw.js +3 -3
  79. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  80. package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +2 -1
  81. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +27 -13
  82. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
  83. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +3 -2
  84. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  85. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +1 -1
  86. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +1 -0
  87. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +3 -2
  88. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +1 -2
  89. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +4 -6
  90. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +1 -0
  91. package/lib/commonjs/mol-gl/renderable/cylinders.js +1 -1
  92. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +1 -0
  93. package/lib/commonjs/mol-gl/renderable/spheres.js +1 -1
  94. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  95. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  96. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.d.ts +1 -1
  97. package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +1 -1
  98. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.d.ts +1 -1
  99. package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +1 -1
  100. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.d.ts +2 -2
  101. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +2 -2
  102. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  103. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  104. package/lib/commonjs/mol-gl/shader/cylinders.vert.d.ts +2 -2
  105. package/lib/commonjs/mol-gl/shader/cylinders.vert.js +2 -2
  106. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  107. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  108. package/lib/commonjs/mol-gl/shader/outlines.frag.d.ts +1 -1
  109. package/lib/commonjs/mol-gl/shader/outlines.frag.js +1 -1
  110. package/lib/commonjs/mol-gl/shader/postprocessing.frag.d.ts +1 -1
  111. package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +1 -1
  112. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  113. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  114. package/lib/commonjs/mol-gl/shader/spheres.vert.d.ts +2 -2
  115. package/lib/commonjs/mol-gl/shader/spheres.vert.js +2 -2
  116. package/lib/commonjs/mol-gl/webgl/renderbuffer.d.ts +1 -1
  117. package/lib/commonjs/mol-gl/webgl/renderbuffer.js +15 -0
  118. package/lib/commonjs/mol-gl/webgl/state.d.ts +12 -0
  119. package/lib/commonjs/mol-gl/webgl/state.js +136 -0
  120. package/lib/commonjs/mol-io/reader/cif/schema/segmentation.d.ts +38 -0
  121. package/lib/commonjs/mol-io/reader/cif/schema/segmentation.js +22 -0
  122. package/lib/commonjs/mol-io/reader/cif.d.ts +3 -1
  123. package/lib/commonjs/mol-io/reader/cif.js +3 -1
  124. package/lib/commonjs/mol-model/location.d.ts +2 -1
  125. package/lib/commonjs/mol-model/loci.d.ts +11 -11
  126. package/lib/commonjs/mol-model/loci.js +13 -1
  127. package/lib/commonjs/mol-model/sequence/alignment/sequence.d.ts +4 -1
  128. package/lib/commonjs/mol-model/sequence/alignment/sequence.js +4 -1
  129. package/lib/commonjs/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -0
  130. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-index.js +8 -0
  131. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +21 -5
  132. package/lib/commonjs/mol-model/structure/structure/util/superposition.d.ts +1 -0
  133. package/lib/commonjs/mol-model/structure/structure/util/superposition.js +2 -1
  134. package/lib/commonjs/mol-model/volume/volume.d.ts +35 -2
  135. package/lib/commonjs/mol-model/volume/volume.js +77 -2
  136. package/lib/commonjs/mol-model-formats/volume/segmentation.d.ts +23 -0
  137. package/lib/commonjs/mol-model-formats/volume/segmentation.js +138 -0
  138. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  139. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -0
  140. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +2 -1
  141. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  142. package/lib/commonjs/mol-plugin/commands.d.ts +1 -0
  143. package/lib/commonjs/mol-plugin-state/animation/built-in/model-index.js +4 -1
  144. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -0
  145. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -0
  146. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +13 -4
  147. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.js +6 -1
  148. package/lib/commonjs/mol-plugin-state/builder/structure/representation.d.ts +1 -0
  149. package/lib/commonjs/mol-plugin-state/formats/provider.d.ts +2 -2
  150. package/lib/commonjs/mol-plugin-state/formats/provider.js +11 -3
  151. package/lib/commonjs/mol-plugin-state/formats/registry.js +6 -5
  152. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +27 -0
  153. package/lib/commonjs/mol-plugin-state/formats/volume.js +65 -1
  154. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +1 -1
  155. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +18 -13
  156. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +1 -2
  157. package/lib/commonjs/mol-plugin-state/transforms/representation.js +5 -6
  158. package/lib/commonjs/mol-plugin-state/transforms/volume.d.ts +11 -1
  159. package/lib/commonjs/mol-plugin-state/transforms/volume.js +55 -2
  160. package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.d.ts +1 -0
  161. package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.js +33 -13
  162. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -0
  163. package/lib/commonjs/mol-plugin-ui/controls/parameters.js +22 -5
  164. package/lib/commonjs/mol-plugin-ui/sequence/sequence.d.ts +25 -17
  165. package/lib/commonjs/mol-plugin-ui/sequence.d.ts +19 -1
  166. package/lib/commonjs/mol-plugin-ui/sequence.js +8 -1
  167. package/lib/commonjs/mol-plugin-ui/state/apply-action.d.ts +2 -10
  168. package/lib/commonjs/mol-plugin-ui/state/apply-action.js +2 -2
  169. package/lib/commonjs/mol-plugin-ui/structure/quick-styles.js +2 -2
  170. package/lib/commonjs/mol-plugin-ui/structure/superposition.d.ts +1 -1
  171. package/lib/commonjs/mol-plugin-ui/structure/volume.d.ts +1 -1
  172. package/lib/commonjs/mol-plugin-ui/structure/volume.js +3 -2
  173. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +1 -0
  174. package/lib/commonjs/mol-repr/structure/params.d.ts +2 -0
  175. package/lib/commonjs/mol-repr/structure/registry.d.ts +12 -0
  176. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
  177. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +6 -0
  178. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +6 -0
  179. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  180. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
  181. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +3 -0
  182. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  183. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +3 -0
  184. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +6 -0
  185. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +2 -0
  186. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +4 -0
  187. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +2 -0
  188. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
  189. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +1 -0
  190. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +4 -0
  191. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -0
  192. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
  193. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +1 -0
  194. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +1 -0
  195. package/lib/commonjs/mol-repr/structure/visual/element-cross.js +2 -1
  196. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +1 -0
  197. package/lib/commonjs/mol-repr/structure/visual/element-point.js +2 -1
  198. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +4 -0
  199. package/lib/commonjs/mol-repr/structure/visual/element-sphere.js +3 -1
  200. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
  201. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.js +6 -2
  202. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  203. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -1
  204. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
  205. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.js +3 -1
  206. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  207. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +4 -0
  208. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
  209. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.js +2 -0
  210. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  211. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  212. package/lib/commonjs/mol-repr/structure/visual/util/bond.d.ts +7 -0
  213. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +18 -7
  214. package/lib/commonjs/mol-repr/structure/visual/util/common.d.ts +4 -1
  215. package/lib/commonjs/mol-repr/structure/visual/util/common.js +10 -6
  216. package/lib/commonjs/mol-repr/structure/visual/util/element.d.ts +1 -0
  217. package/lib/commonjs/mol-repr/structure/visual/util/element.js +2 -3
  218. package/lib/commonjs/mol-repr/structure/visual/util/gaussian.d.ts +2 -0
  219. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +4 -4
  220. package/lib/commonjs/mol-repr/volume/direct-volume.js +8 -6
  221. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +4 -4
  222. package/lib/commonjs/mol-repr/volume/isosurface.js +17 -16
  223. package/lib/commonjs/mol-repr/volume/registry.d.ts +54 -1
  224. package/lib/commonjs/mol-repr/volume/registry.js +3 -1
  225. package/lib/commonjs/mol-repr/volume/representation.d.ts +11 -7
  226. package/lib/commonjs/mol-repr/volume/representation.js +142 -47
  227. package/lib/commonjs/mol-repr/volume/segment.d.ts +291 -0
  228. package/lib/commonjs/mol-repr/volume/segment.js +289 -0
  229. package/lib/commonjs/mol-repr/volume/slice.d.ts +2 -2
  230. package/lib/commonjs/mol-repr/volume/slice.js +5 -5
  231. package/lib/commonjs/mol-repr/volume/util.d.ts +12 -3
  232. package/lib/commonjs/mol-repr/volume/util.js +72 -6
  233. package/lib/commonjs/mol-script/language/builder.d.ts +1 -0
  234. package/lib/commonjs/mol-theme/color/volume-segment.d.ts +41 -0
  235. package/lib/commonjs/mol-theme/color/volume-segment.js +58 -0
  236. package/lib/commonjs/mol-theme/color/volume-value.js +2 -1
  237. package/lib/commonjs/mol-theme/color.d.ts +15 -0
  238. package/lib/commonjs/mol-theme/color.js +2 -0
  239. package/lib/commonjs/mol-theme/label.d.ts +1 -1
  240. package/lib/commonjs/mol-theme/label.js +13 -1
  241. package/lib/commonjs/mol-util/param-definition.d.ts +4 -1
  242. package/lib/commonjs/mol-util/param-definition.js +5 -2
  243. package/lib/examples/alpha-orbitals/index.html +72 -72
  244. package/lib/examples/basic-wrapper/index.html +137 -137
  245. package/lib/examples/lighting/index.html +88 -88
  246. package/lib/examples/lighting/index.js +1 -1
  247. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  248. package/lib/extensions/anvil/behavior.d.ts +1 -0
  249. package/lib/extensions/cellpack/model.js +2 -1
  250. package/lib/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -0
  251. package/lib/extensions/meshes/choice.d.ts +26 -0
  252. package/lib/extensions/meshes/choice.js +28 -0
  253. package/lib/extensions/meshes/examples.d.ts +26 -0
  254. package/lib/extensions/meshes/examples.js +325 -0
  255. package/lib/extensions/meshes/mesh-cif-schema.d.ts +29 -0
  256. package/lib/extensions/meshes/mesh-cif-schema.js +30 -0
  257. package/lib/extensions/meshes/mesh-extension.d.ts +66 -0
  258. package/lib/extensions/meshes/mesh-extension.js +218 -0
  259. package/lib/extensions/meshes/mesh-streaming/behavior.d.ts +105 -0
  260. package/lib/extensions/meshes/mesh-streaming/behavior.js +375 -0
  261. package/lib/extensions/meshes/mesh-streaming/server-info.d.ts +54 -0
  262. package/lib/extensions/meshes/mesh-streaming/server-info.js +26 -0
  263. package/lib/extensions/meshes/mesh-streaming/transformers.d.ts +42 -0
  264. package/lib/extensions/meshes/mesh-streaming/transformers.js +270 -0
  265. package/lib/extensions/meshes/mesh-utils.d.ts +41 -0
  266. package/lib/extensions/meshes/mesh-utils.js +346 -0
  267. package/lib/extensions/meshes/metadata.d.ts +108 -0
  268. package/lib/extensions/meshes/metadata.js +69 -0
  269. package/lib/extensions/model-archive/quality-assessment/behavior.d.ts +2 -0
  270. package/lib/extensions/model-archive/quality-assessment/prop.d.ts +1 -0
  271. package/lib/extensions/model-archive/quality-assessment/prop.js +16 -4
  272. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -2
  273. package/lib/extensions/rcsb/validation-report/behavior.d.ts +3 -0
  274. package/lib/extensions/volumes-and-segmentations/entry-meshes.d.ts +17 -0
  275. package/lib/extensions/volumes-and-segmentations/entry-meshes.js +153 -0
  276. package/lib/extensions/volumes-and-segmentations/entry-models.d.ts +12 -0
  277. package/lib/extensions/volumes-and-segmentations/entry-models.js +93 -0
  278. package/lib/extensions/volumes-and-segmentations/entry-root.d.ts +122 -0
  279. package/lib/extensions/volumes-and-segmentations/entry-root.js +571 -0
  280. package/lib/extensions/volumes-and-segmentations/entry-segmentation.d.ts +20 -0
  281. package/lib/extensions/volumes-and-segmentations/entry-segmentation.js +197 -0
  282. package/lib/extensions/volumes-and-segmentations/entry-state.d.ts +88 -0
  283. package/lib/extensions/volumes-and-segmentations/entry-state.js +29 -0
  284. package/lib/extensions/volumes-and-segmentations/entry-volume.d.ts +35 -0
  285. package/lib/extensions/volumes-and-segmentations/entry-volume.js +231 -0
  286. package/lib/extensions/volumes-and-segmentations/external-api.d.ts +11 -0
  287. package/lib/extensions/volumes-and-segmentations/external-api.js +80 -0
  288. package/lib/extensions/volumes-and-segmentations/global-state.d.ts +51 -0
  289. package/lib/extensions/volumes-and-segmentations/global-state.js +80 -0
  290. package/lib/extensions/volumes-and-segmentations/helpers.d.ts +56 -0
  291. package/lib/extensions/volumes-and-segmentations/helpers.js +163 -0
  292. package/lib/extensions/volumes-and-segmentations/index.d.ts +20 -0
  293. package/lib/extensions/volumes-and-segmentations/index.js +127 -0
  294. package/lib/extensions/volumes-and-segmentations/transformers.d.ts +33 -0
  295. package/lib/extensions/volumes-and-segmentations/transformers.js +82 -0
  296. package/lib/extensions/volumes-and-segmentations/ui.d.ts +29 -0
  297. package/lib/extensions/volumes-and-segmentations/ui.js +229 -0
  298. package/lib/extensions/volumes-and-segmentations/volseg-api/api.d.ts +22 -0
  299. package/lib/extensions/volumes-and-segmentations/volseg-api/api.js +80 -0
  300. package/lib/extensions/volumes-and-segmentations/volseg-api/data.d.ts +92 -0
  301. package/lib/extensions/volumes-and-segmentations/volseg-api/data.js +6 -0
  302. package/lib/extensions/volumes-and-segmentations/volseg-api/utils.d.ts +23 -0
  303. package/lib/extensions/volumes-and-segmentations/volseg-api/utils.js +75 -0
  304. package/lib/mol-canvas3d/canvas3d.d.ts +2 -0
  305. package/lib/mol-canvas3d/passes/draw.js +3 -3
  306. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  307. package/lib/mol-canvas3d/passes/postprocessing.d.ts +2 -1
  308. package/lib/mol-canvas3d/passes/postprocessing.js +27 -13
  309. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
  310. package/lib/mol-geo/geometry/cylinders/cylinders.js +3 -2
  311. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  312. package/lib/mol-geo/geometry/points/points.d.ts +1 -1
  313. package/lib/mol-geo/geometry/spheres/spheres.d.ts +1 -0
  314. package/lib/mol-geo/geometry/spheres/spheres.js +3 -2
  315. package/lib/mol-gl/compute/histogram-pyramid/reduction.js +1 -2
  316. package/lib/mol-gl/compute/marching-cubes/isosurface.js +4 -6
  317. package/lib/mol-gl/renderable/cylinders.d.ts +1 -0
  318. package/lib/mol-gl/renderable/cylinders.js +1 -1
  319. package/lib/mol-gl/renderable/spheres.d.ts +1 -0
  320. package/lib/mol-gl/renderable/spheres.js +1 -1
  321. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  322. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  323. package/lib/mol-gl/shader/chunks/clip-instance.glsl.d.ts +1 -1
  324. package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +1 -1
  325. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.d.ts +1 -1
  326. package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +1 -1
  327. package/lib/mol-gl/shader/chunks/common-clip.glsl.d.ts +2 -2
  328. package/lib/mol-gl/shader/chunks/common-clip.glsl.js +2 -2
  329. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  330. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  331. package/lib/mol-gl/shader/cylinders.vert.d.ts +2 -2
  332. package/lib/mol-gl/shader/cylinders.vert.js +2 -2
  333. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  334. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  335. package/lib/mol-gl/shader/outlines.frag.d.ts +1 -1
  336. package/lib/mol-gl/shader/outlines.frag.js +1 -1
  337. package/lib/mol-gl/shader/postprocessing.frag.d.ts +1 -1
  338. package/lib/mol-gl/shader/postprocessing.frag.js +1 -1
  339. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  340. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  341. package/lib/mol-gl/shader/spheres.vert.d.ts +2 -2
  342. package/lib/mol-gl/shader/spheres.vert.js +2 -2
  343. package/lib/mol-gl/webgl/renderbuffer.d.ts +1 -1
  344. package/lib/mol-gl/webgl/renderbuffer.js +15 -0
  345. package/lib/mol-gl/webgl/state.d.ts +12 -0
  346. package/lib/mol-gl/webgl/state.js +136 -0
  347. package/lib/mol-io/reader/cif/schema/segmentation.d.ts +38 -0
  348. package/lib/mol-io/reader/cif/schema/segmentation.js +19 -0
  349. package/lib/mol-io/reader/cif.d.ts +3 -1
  350. package/lib/mol-io/reader/cif.js +3 -1
  351. package/lib/mol-model/location.d.ts +2 -1
  352. package/lib/mol-model/loci.d.ts +11 -11
  353. package/lib/mol-model/loci.js +13 -1
  354. package/lib/mol-model/sequence/alignment/sequence.d.ts +4 -1
  355. package/lib/mol-model/sequence/alignment/sequence.js +3 -2
  356. package/lib/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -0
  357. package/lib/mol-model/structure/model/properties/utils/atomic-index.js +8 -0
  358. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +21 -5
  359. package/lib/mol-model/structure/structure/util/superposition.d.ts +1 -0
  360. package/lib/mol-model/structure/structure/util/superposition.js +1 -1
  361. package/lib/mol-model/volume/volume.d.ts +35 -2
  362. package/lib/mol-model/volume/volume.js +79 -4
  363. package/lib/mol-model-formats/volume/segmentation.d.ts +23 -0
  364. package/lib/mol-model-formats/volume/segmentation.js +135 -0
  365. package/lib/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  366. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -0
  367. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +2 -1
  368. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  369. package/lib/mol-plugin/commands.d.ts +1 -0
  370. package/lib/mol-plugin/version.js +2 -2
  371. package/lib/mol-plugin-state/animation/built-in/model-index.js +4 -1
  372. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -0
  373. package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -0
  374. package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +13 -4
  375. package/lib/mol-plugin-state/builder/structure/representation-preset.js +6 -1
  376. package/lib/mol-plugin-state/builder/structure/representation.d.ts +1 -0
  377. package/lib/mol-plugin-state/formats/provider.d.ts +2 -2
  378. package/lib/mol-plugin-state/formats/provider.js +11 -3
  379. package/lib/mol-plugin-state/formats/registry.js +6 -5
  380. package/lib/mol-plugin-state/formats/volume.d.ts +27 -0
  381. package/lib/mol-plugin-state/formats/volume.js +64 -0
  382. package/lib/mol-plugin-state/manager/structure/component.d.ts +1 -1
  383. package/lib/mol-plugin-state/manager/structure/component.js +18 -13
  384. package/lib/mol-plugin-state/transforms/representation.d.ts +1 -2
  385. package/lib/mol-plugin-state/transforms/representation.js +5 -6
  386. package/lib/mol-plugin-state/transforms/volume.d.ts +11 -1
  387. package/lib/mol-plugin-state/transforms/volume.js +54 -1
  388. package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.d.ts +1 -0
  389. package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.js +33 -13
  390. package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -0
  391. package/lib/mol-plugin-ui/controls/parameters.js +22 -5
  392. package/lib/mol-plugin-ui/sequence/sequence.d.ts +25 -17
  393. package/lib/mol-plugin-ui/sequence.d.ts +19 -1
  394. package/lib/mol-plugin-ui/sequence.js +7 -7
  395. package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
  396. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  397. package/lib/mol-plugin-ui/skin/base/components/controls.scss +418 -418
  398. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  399. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  400. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  401. package/lib/mol-plugin-ui/skin/base/components/misc.scss +643 -643
  402. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  403. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  404. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  405. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  406. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  407. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +137 -128
  408. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  409. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  410. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  411. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  412. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  413. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  414. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  415. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  416. package/lib/mol-plugin-ui/skin/base/variables.scss +85 -85
  417. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  418. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  419. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  420. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  421. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  422. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  423. package/lib/mol-plugin-ui/state/apply-action.d.ts +2 -10
  424. package/lib/mol-plugin-ui/state/apply-action.js +2 -2
  425. package/lib/mol-plugin-ui/structure/quick-styles.js +2 -2
  426. package/lib/mol-plugin-ui/structure/superposition.d.ts +1 -1
  427. package/lib/mol-plugin-ui/structure/volume.d.ts +1 -1
  428. package/lib/mol-plugin-ui/structure/volume.js +3 -2
  429. package/lib/mol-repr/structure/complex-visual.d.ts +1 -0
  430. package/lib/mol-repr/structure/params.d.ts +2 -0
  431. package/lib/mol-repr/structure/registry.d.ts +12 -0
  432. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
  433. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +6 -0
  434. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +6 -0
  435. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  436. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
  437. package/lib/mol-repr/structure/representation/line.d.ts +3 -0
  438. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  439. package/lib/mol-repr/structure/representation/point.d.ts +3 -0
  440. package/lib/mol-repr/structure/representation/spacefill.d.ts +6 -0
  441. package/lib/mol-repr/structure/units-visual.d.ts +2 -0
  442. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +4 -0
  443. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +2 -0
  444. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
  445. package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +1 -0
  446. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +4 -0
  447. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -0
  448. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
  449. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +1 -0
  450. package/lib/mol-repr/structure/visual/element-cross.d.ts +1 -0
  451. package/lib/mol-repr/structure/visual/element-cross.js +2 -1
  452. package/lib/mol-repr/structure/visual/element-point.d.ts +1 -0
  453. package/lib/mol-repr/structure/visual/element-point.js +2 -1
  454. package/lib/mol-repr/structure/visual/element-sphere.d.ts +4 -0
  455. package/lib/mol-repr/structure/visual/element-sphere.js +3 -1
  456. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
  457. package/lib/mol-repr/structure/visual/gaussian-density-volume.js +6 -2
  458. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  459. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -1
  460. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
  461. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.js +3 -1
  462. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  463. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +4 -0
  464. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
  465. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.js +2 -0
  466. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  467. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  468. package/lib/mol-repr/structure/visual/util/bond.d.ts +7 -0
  469. package/lib/mol-repr/structure/visual/util/bond.js +19 -8
  470. package/lib/mol-repr/structure/visual/util/common.d.ts +4 -1
  471. package/lib/mol-repr/structure/visual/util/common.js +10 -6
  472. package/lib/mol-repr/structure/visual/util/element.d.ts +1 -0
  473. package/lib/mol-repr/structure/visual/util/element.js +3 -4
  474. package/lib/mol-repr/structure/visual/util/gaussian.d.ts +2 -0
  475. package/lib/mol-repr/volume/direct-volume.d.ts +4 -4
  476. package/lib/mol-repr/volume/direct-volume.js +8 -6
  477. package/lib/mol-repr/volume/isosurface.d.ts +4 -4
  478. package/lib/mol-repr/volume/isosurface.js +17 -16
  479. package/lib/mol-repr/volume/registry.d.ts +54 -1
  480. package/lib/mol-repr/volume/registry.js +3 -1
  481. package/lib/mol-repr/volume/representation.d.ts +11 -7
  482. package/lib/mol-repr/volume/representation.js +144 -49
  483. package/lib/mol-repr/volume/segment.d.ts +291 -0
  484. package/lib/mol-repr/volume/segment.js +279 -0
  485. package/lib/mol-repr/volume/slice.d.ts +2 -2
  486. package/lib/mol-repr/volume/slice.js +5 -5
  487. package/lib/mol-repr/volume/util.d.ts +12 -3
  488. package/lib/mol-repr/volume/util.js +71 -6
  489. package/lib/mol-script/language/builder.d.ts +1 -0
  490. package/lib/mol-theme/color/volume-segment.d.ts +41 -0
  491. package/lib/mol-theme/color/volume-segment.js +53 -0
  492. package/lib/mol-theme/color/volume-value.js +2 -1
  493. package/lib/mol-theme/color.d.ts +15 -0
  494. package/lib/mol-theme/color.js +2 -0
  495. package/lib/mol-theme/label.d.ts +1 -1
  496. package/lib/mol-theme/label.js +13 -1
  497. package/lib/mol-util/param-definition.d.ts +4 -1
  498. package/lib/mol-util/param-definition.js +5 -2
  499. package/package.json +169 -168
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ * @author David Sehnal <david.sehnal@gmail.com>
5
6
  */
6
7
  import { Unit, Structure, ElementIndex, StructureElement, ResidueIndex } from '../../../../mol-model/structure';
7
8
  import { TransformData } from '../../../../mol-geo/geometry/transform-data';
@@ -52,11 +53,13 @@ export declare function ensureReasonableResolution<T>(box: Box3D, props: {
52
53
  export declare function getConformation(unit: Unit): import("../../../../mol-model/structure/model/properties/atomic").AtomicConformation | import("../../../../mol-model/structure/model/properties/coarse").CoarseSphereConformation | import("../../../../mol-model/structure/model/properties/coarse").CoarseGaussianConformation;
53
54
  export declare const CommonSurfaceParams: {
54
55
  ignoreHydrogens: PD.BooleanParam;
56
+ ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
55
57
  traceOnly: PD.BooleanParam;
56
58
  includeParent: PD.BooleanParam;
57
59
  };
58
60
  export declare const DefaultCommonSurfaceProps: PD.Values<{
59
61
  ignoreHydrogens: PD.BooleanParam;
62
+ ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
60
63
  traceOnly: PD.BooleanParam;
61
64
  includeParent: PD.BooleanParam;
62
65
  }>;
@@ -83,6 +86,6 @@ export declare function getStructureConformationAndRadius(structure: Structure,
83
86
  boundary: import("../../../../mol-math/geometry/boundary").Boundary;
84
87
  radius: (index: number) => number;
85
88
  };
86
- export declare function isHydrogen(unit: Unit, element: ElementIndex): boolean;
89
+ export declare function isHydrogen(structure: Structure, unit: Unit, element: ElementIndex, variant: 'all' | 'non-polar'): boolean;
87
90
  export declare function isH(atomicNumber: ArrayLike<number>, element: ElementIndex): boolean;
88
91
  export declare function isTrace(unit: Unit, element: ElementIndex): boolean;
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
+ * @author David Sehnal <david.sehnal@gmail.com>
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  exports.isTrace = exports.isH = exports.isHydrogen = exports.getStructureConformationAndRadius = exports.getUnitConformationAndRadius = exports.DefaultCommonSurfaceProps = exports.CommonSurfaceParams = exports.getConformation = exports.ensureReasonableResolution = exports.getVolumeSliceInfo = exports.includesUnitKind = exports.UnitKindOptions = exports.UnitKindInfo = exports.createUnitsTransform = exports.getAltResidueLociFromId = exports.getAltResidueLoci = exports.getResidueLoci = void 0;
@@ -17,6 +18,7 @@ var array_1 = require("../../../../mol-util/array");
17
18
  var param_definition_1 = require("../../../../mol-util/param-definition");
18
19
  var boundary_1 = require("../../../../mol-math/geometry/boundary");
19
20
  var geometry_1 = require("../../../../mol-math/geometry");
21
+ var functional_group_1 = require("../../../../mol-model-props/computed/chemistry/functional-group");
20
22
  /** Return a Loci for the elements of a whole residue the elementIndex belongs to. */
21
23
  function getResidueLoci(structure, unit, elementIndex) {
22
24
  var elements = unit.elements, model = unit.model;
@@ -136,6 +138,7 @@ function getConformation(unit) {
136
138
  exports.getConformation = getConformation;
137
139
  exports.CommonSurfaceParams = {
138
140
  ignoreHydrogens: param_definition_1.ParamDefinition.Boolean(false, { description: 'Whether or not to include hydrogen atoms in the surface calculation.' }),
141
+ ignoreHydrogensVariant: param_definition_1.ParamDefinition.Select('all', param_definition_1.ParamDefinition.arrayToOptions(['all', 'non-polar'])),
139
142
  traceOnly: param_definition_1.ParamDefinition.Boolean(false, { description: 'Whether or not to only use trace atoms in the surface calculation.' }),
140
143
  includeParent: param_definition_1.ParamDefinition.Boolean(false, { description: 'Include elements of the parent structure in surface calculation to get a surface patch of the current structure.' }),
141
144
  };
@@ -160,7 +163,7 @@ function filterUnitId(id, elements, indices) {
160
163
  }
161
164
  }
162
165
  function getUnitConformationAndRadius(structure, unit, sizeTheme, props) {
163
- var ignoreHydrogens = props.ignoreHydrogens, traceOnly = props.traceOnly, includeParent = props.includeParent;
166
+ var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, traceOnly = props.traceOnly, includeParent = props.includeParent;
164
167
  var rootUnit = includeParent ? structure.root.unitMap.get(unit.id) : unit;
165
168
  var differentRoot = includeParent && rootUnit !== unit;
166
169
  var _a = getConformation(rootUnit), x = _a.x, y = _a.y, z = _a.z;
@@ -175,7 +178,7 @@ function getUnitConformationAndRadius(structure, unit, sizeTheme, props) {
175
178
  var _id = [];
176
179
  for (var i = 0, il = elements.length; i < il; ++i) {
177
180
  var eI = elements[i];
178
- if (ignoreHydrogens && isHydrogen(rootUnit, eI))
181
+ if (ignoreHydrogens && isHydrogen(structure, rootUnit, eI, ignoreHydrogensVariant))
179
182
  continue;
180
183
  if (traceOnly && !isTrace(rootUnit, eI))
181
184
  continue;
@@ -205,7 +208,7 @@ function getUnitConformationAndRadius(structure, unit, sizeTheme, props) {
205
208
  }
206
209
  exports.getUnitConformationAndRadius = getUnitConformationAndRadius;
207
210
  function getStructureConformationAndRadius(structure, sizeTheme, props) {
208
- var ignoreHydrogens = props.ignoreHydrogens, traceOnly = props.traceOnly, includeParent = props.includeParent;
211
+ var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, traceOnly = props.traceOnly, includeParent = props.includeParent;
209
212
  var differentRoot = includeParent && !!structure.parent;
210
213
  var l = structure_1.StructureElement.Location.create(structure.root);
211
214
  var _a = structure.boundary.sphere, center = _a.center, sphereRadius = _a.radius;
@@ -233,7 +236,7 @@ function getStructureConformationAndRadius(structure, sizeTheme, props) {
233
236
  l.unit = unit;
234
237
  for (var j = 0, jl = elements.length; j < jl; ++j) {
235
238
  var eI = elements[j];
236
- if (ignoreHydrogens && isHydrogen(unit, eI))
239
+ if (ignoreHydrogens && isHydrogen(structure, unit, eI, ignoreHydrogensVariant))
237
240
  continue;
238
241
  if (traceOnly && !isTrace(unit, eI))
239
242
  continue;
@@ -296,10 +299,11 @@ function getStructureConformationAndRadius(structure, sizeTheme, props) {
296
299
  }
297
300
  exports.getStructureConformationAndRadius = getStructureConformationAndRadius;
298
301
  var _H = atomic_1.AtomicNumbers['H'];
299
- function isHydrogen(unit, element) {
302
+ function isHydrogen(structure, unit, element, variant) {
300
303
  if (structure_1.Unit.isCoarse(unit))
301
304
  return false;
302
- return unit.model.atomicHierarchy.derived.atom.atomicNumber[element] === _H;
305
+ return (unit.model.atomicHierarchy.derived.atom.atomicNumber[element] === _H &&
306
+ (variant === 'all' || !(0, functional_group_1.hasPolarNeighbour)(structure, unit, int_1.SortedArray.indexOf(unit.elements, element))));
303
307
  }
304
308
  exports.isHydrogen = isHydrogen;
305
309
  function isH(atomicNumber, element) {
@@ -16,6 +16,7 @@ import { Spheres } from '../../../../mol-geo/geometry/spheres/spheres';
16
16
  import { StructureGroup } from './common';
17
17
  type ElementProps = {
18
18
  ignoreHydrogens: boolean;
19
+ ignoreHydrogensVariant: 'all' | 'non-polar';
19
20
  traceOnly: boolean;
20
21
  };
21
22
  export type ElementSphereMeshProps = {
@@ -23,8 +23,7 @@ var geometry_1 = require("../../../../mol-math/geometry");
23
23
  // avoiding namespace lookup improved performance in Chrome (Aug 2020)
24
24
  var v3add = linear_algebra_1.Vec3.add;
25
25
  function makeElementIgnoreTest(structure, unit, props) {
26
- var ignoreHydrogens = props.ignoreHydrogens, traceOnly = props.traceOnly;
27
- var atomicNumber = unit.model.atomicHierarchy.derived.atom.atomicNumber;
26
+ var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, traceOnly = props.traceOnly;
28
27
  var isCoarse = structure_1.Unit.isCoarse(unit);
29
28
  var child = structure.child;
30
29
  var childUnit = child === null || child === void 0 ? void 0 : child.unitMap.get(unit.id);
@@ -34,7 +33,7 @@ function makeElementIgnoreTest(structure, unit, props) {
34
33
  return;
35
34
  return function (element) {
36
35
  return ((!!childUnit && !int_1.SortedArray.has(childUnit.elements, element)) ||
37
- (!isCoarse && ignoreHydrogens && (0, common_1.isH)(atomicNumber, element)) ||
36
+ (!isCoarse && ignoreHydrogens && (0, common_1.isHydrogen)(structure, unit, element, ignoreHydrogensVariant)) ||
38
37
  (traceOnly && !(0, common_1.isTrace)(unit, element)));
39
38
  };
40
39
  }
@@ -11,6 +11,7 @@ import { WebGLContext } from '../../../../mol-gl/webgl/context';
11
11
  import { SizeTheme } from '../../../../mol-theme/size';
12
12
  export declare const GaussianDensityParams: {
13
13
  ignoreHydrogens: PD.BooleanParam;
14
+ ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
14
15
  traceOnly: PD.BooleanParam;
15
16
  includeParent: PD.BooleanParam;
16
17
  resolution: PD.Numeric;
@@ -19,6 +20,7 @@ export declare const GaussianDensityParams: {
19
20
  };
20
21
  export declare const DefaultGaussianDensityProps: PD.Values<{
21
22
  ignoreHydrogens: PD.BooleanParam;
23
+ ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
22
24
  traceOnly: PD.BooleanParam;
23
25
  includeParent: PD.BooleanParam;
24
26
  resolution: PD.Numeric;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -17,11 +17,11 @@ import { Loci } from '../../mol-model/loci';
17
17
  import { PickingId } from '../../mol-geo/geometry/picking';
18
18
  export declare function createDirectVolume2d(ctx: RuntimeContext, webgl: WebGLContext, volume: Volume, directVolume?: DirectVolume): DirectVolume;
19
19
  export declare function createDirectVolume3d(ctx: RuntimeContext, webgl: WebGLContext, volume: Volume, directVolume?: DirectVolume): DirectVolume;
20
- export declare function createDirectVolume(ctx: VisualContext, volume: Volume, theme: Theme, props: PD.Values<DirectVolumeParams>, directVolume?: DirectVolume): Promise<DirectVolume>;
21
- export declare function getDirectVolumeLoci(pickingId: PickingId, volume: Volume, props: DirectVolumeProps, id: number): Volume.Cell.Loci | {
20
+ export declare function createDirectVolume(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: PD.Values<DirectVolumeParams>, directVolume?: DirectVolume): Promise<DirectVolume>;
21
+ export declare function getDirectVolumeLoci(pickingId: PickingId, volume: Volume, key: number, props: DirectVolumeProps, id: number): Volume.Cell.Loci | {
22
22
  kind: "empty-loci";
23
23
  };
24
- export declare function eachDirectVolume(loci: Loci, volume: Volume, props: DirectVolumeProps, apply: (interval: Interval) => boolean): boolean;
24
+ export declare function eachDirectVolume(loci: Loci, volume: Volume, key: number, props: DirectVolumeProps, apply: (interval: Interval) => boolean): boolean;
25
25
  export declare const DirectVolumeParams: {
26
26
  quality: {
27
27
  isEssential: boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -73,7 +73,7 @@ function createDirectVolume3d(ctx, webgl, volume, directVolume) {
73
73
  }
74
74
  exports.createDirectVolume3d = createDirectVolume3d;
75
75
  //
76
- function createDirectVolume(ctx, volume, theme, props, directVolume) {
76
+ function createDirectVolume(ctx, volume, key, theme, props, directVolume) {
77
77
  return tslib_1.__awaiter(this, void 0, void 0, function () {
78
78
  var runtime, webgl;
79
79
  return tslib_1.__generator(this, function (_a) {
@@ -90,7 +90,7 @@ exports.createDirectVolume = createDirectVolume;
90
90
  function getLoci(volume, props) {
91
91
  return volume_1.Volume.Loci(volume);
92
92
  }
93
- function getDirectVolumeLoci(pickingId, volume, props, id) {
93
+ function getDirectVolumeLoci(pickingId, volume, key, props, id) {
94
94
  var objectId = pickingId.objectId, groupId = pickingId.groupId;
95
95
  if (id === objectId) {
96
96
  return volume_1.Volume.Cell.Loci(volume, int_1.Interval.ofSingleton(groupId));
@@ -98,14 +98,16 @@ function getDirectVolumeLoci(pickingId, volume, props, id) {
98
98
  return loci_1.EmptyLoci;
99
99
  }
100
100
  exports.getDirectVolumeLoci = getDirectVolumeLoci;
101
- function eachDirectVolume(loci, volume, props, apply) {
101
+ function eachDirectVolume(loci, volume, key, props, apply) {
102
102
  return (0, util_1.eachVolumeLoci)(loci, volume, undefined, apply);
103
103
  }
104
104
  exports.eachDirectVolume = eachDirectVolume;
105
105
  //
106
106
  exports.DirectVolumeParams = tslib_1.__assign(tslib_1.__assign({}, direct_volume_1.DirectVolume.Params), { quality: tslib_1.__assign(tslib_1.__assign({}, direct_volume_1.DirectVolume.Params.quality), { isEssential: false }) });
107
107
  function getDirectVolumeParams(ctx, volume) {
108
- return param_definition_1.ParamDefinition.clone(exports.DirectVolumeParams);
108
+ var params = param_definition_1.ParamDefinition.clone(exports.DirectVolumeParams);
109
+ params.controlPoints.getVolume = function () { return volume; };
110
+ return params;
109
111
  }
110
112
  exports.getDirectVolumeParams = getDirectVolumeParams;
111
113
  function DirectVolumeVisual(materialId) {
@@ -137,5 +139,5 @@ exports.DirectVolumeRepresentationProvider = (0, representation_1.VolumeRepresen
137
139
  defaultValues: param_definition_1.ParamDefinition.getDefaultValues(exports.DirectVolumeParams),
138
140
  defaultColorTheme: { name: 'volume-value' },
139
141
  defaultSizeTheme: { name: 'uniform' },
140
- isApplicable: function (volume) { return !volume_1.Volume.isEmpty(volume); }
142
+ isApplicable: function (volume) { return !volume_1.Volume.isEmpty(volume) && !volume_1.Volume.Segmentation.get(volume); }
141
143
  });
@@ -41,7 +41,7 @@ export declare const VolumeIsosurfaceParams: {
41
41
  };
42
42
  export type VolumeIsosurfaceParams = typeof VolumeIsosurfaceParams;
43
43
  export type VolumeIsosurfaceProps = PD.Values<VolumeIsosurfaceParams>;
44
- export declare function IsosurfaceVisual(materialId: number, volume: Volume, props: PD.Values<IsosurfaceMeshParams>, webgl?: WebGLContext): VolumeVisual<{
44
+ export declare function IsosurfaceVisual(materialId: number, volume: Volume, key: number, props: PD.Values<IsosurfaceMeshParams>, webgl?: WebGLContext): VolumeVisual<{
45
45
  quality: {
46
46
  isEssential: boolean;
47
47
  type: "select";
@@ -114,8 +114,8 @@ export declare function IsosurfaceVisual(materialId: number, volume: Volume, pro
114
114
  }>>;
115
115
  instanceGranularity: PD.BooleanParam;
116
116
  }>;
117
- export declare function eachIsosurface(loci: Loci, volume: Volume, props: VolumeIsosurfaceProps, apply: (interval: Interval) => boolean): boolean;
118
- export declare function createVolumeIsosurfaceMesh(ctx: VisualContext, volume: Volume, theme: Theme, props: VolumeIsosurfaceProps, mesh?: Mesh): Promise<Mesh>;
117
+ export declare function eachIsosurface(loci: Loci, volume: Volume, key: number, props: VolumeIsosurfaceProps, apply: (interval: Interval) => boolean): boolean;
118
+ export declare function createVolumeIsosurfaceMesh(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: VolumeIsosurfaceProps, mesh?: Mesh): Promise<Mesh>;
119
119
  export declare const IsosurfaceMeshParams: {
120
120
  quality: {
121
121
  isEssential: boolean;
@@ -192,7 +192,7 @@ export declare const IsosurfaceMeshParams: {
192
192
  export type IsosurfaceMeshParams = typeof IsosurfaceMeshParams;
193
193
  export declare function IsosurfaceMeshVisual(materialId: number): VolumeVisual<IsosurfaceMeshParams>;
194
194
  export declare function IsosurfaceTextureMeshVisual(materialId: number): VolumeVisual<IsosurfaceMeshParams>;
195
- export declare function createVolumeIsosurfaceWireframe(ctx: VisualContext, volume: Volume, theme: Theme, props: VolumeIsosurfaceProps, lines?: Lines): Promise<Lines>;
195
+ export declare function createVolumeIsosurfaceWireframe(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: VolumeIsosurfaceProps, lines?: Lines): Promise<Lines>;
196
196
  export declare const IsosurfaceWireframeParams: {
197
197
  quality: {
198
198
  isEssential: boolean;
@@ -44,7 +44,7 @@ function suitableForGpu(volume, webgl) {
44
44
  var powerOfTwoSize = (0, util_1.getVolumeTexture2dLayout)(gridDim, Padding).powerOfTwoSize;
45
45
  return powerOfTwoSize <= webgl.maxTextureSize / 2;
46
46
  }
47
- function IsosurfaceVisual(materialId, volume, props, webgl) {
47
+ function IsosurfaceVisual(materialId, volume, key, props, webgl) {
48
48
  if (props.tryUseGpu && webgl && gpuSupport(webgl) && suitableForGpu(volume, webgl)) {
49
49
  return IsosurfaceTextureMeshVisual(materialId);
50
50
  }
@@ -54,7 +54,7 @@ exports.IsosurfaceVisual = IsosurfaceVisual;
54
54
  function getLoci(volume, props) {
55
55
  return volume_1.Volume.Isosurface.Loci(volume, props.isoValue);
56
56
  }
57
- function getIsosurfaceLoci(pickingId, volume, props, id) {
57
+ function getIsosurfaceLoci(pickingId, volume, key, props, id) {
58
58
  var objectId = pickingId.objectId, groupId = pickingId.groupId;
59
59
  if (id === objectId) {
60
60
  var granularity = volume_1.Volume.PickingGranularity.get(volume);
@@ -70,12 +70,12 @@ function getIsosurfaceLoci(pickingId, volume, props, id) {
70
70
  }
71
71
  return loci_1.EmptyLoci;
72
72
  }
73
- function eachIsosurface(loci, volume, props, apply) {
74
- return (0, util_1.eachVolumeLoci)(loci, volume, props.isoValue, apply);
73
+ function eachIsosurface(loci, volume, key, props, apply) {
74
+ return (0, util_1.eachVolumeLoci)(loci, volume, { isoValue: props.isoValue }, apply);
75
75
  }
76
76
  exports.eachIsosurface = eachIsosurface;
77
77
  //
78
- function createVolumeIsosurfaceMesh(ctx, volume, theme, props, mesh) {
78
+ function createVolumeIsosurfaceMesh(ctx, volume, key, theme, props, mesh) {
79
79
  return tslib_1.__awaiter(this, void 0, void 0, function () {
80
80
  var ids, surface, transform;
81
81
  return tslib_1.__generator(this, function (_a) {
@@ -101,7 +101,7 @@ function createVolumeIsosurfaceMesh(ctx, volume, theme, props, mesh) {
101
101
  else {
102
102
  value_cell_1.ValueCell.updateIfChanged(surface.varyingGroup, true);
103
103
  }
104
- surface.setBoundingSphere(volume_1.Volume.getBoundingSphere(volume));
104
+ surface.setBoundingSphere(volume_1.Volume.Isosurface.getBoundingSphere(volume, props.isoValue));
105
105
  return [2 /*return*/, surface];
106
106
  }
107
107
  });
@@ -121,8 +121,8 @@ function IsosurfaceMeshVisual(materialId) {
121
121
  state.createGeometry = true;
122
122
  },
123
123
  geometryUtils: mesh_1.Mesh.Utils,
124
- mustRecreate: function (volume, props, webgl) {
125
- return props.tryUseGpu && !!webgl && suitableForGpu(volume, webgl);
124
+ mustRecreate: function (volumekey, props, webgl) {
125
+ return props.tryUseGpu && !!webgl && suitableForGpu(volumekey.volume, webgl);
126
126
  }
127
127
  }, materialId);
128
128
  }
@@ -164,9 +164,9 @@ var VolumeIsosurfaceTexture;
164
164
  }
165
165
  VolumeIsosurfaceTexture.get = get;
166
166
  })(VolumeIsosurfaceTexture || (VolumeIsosurfaceTexture = {}));
167
- function createVolumeIsosurfaceTextureMesh(ctx, volume, theme, props, textureMesh) {
167
+ function createVolumeIsosurfaceTextureMesh(ctx, volume, key, theme, props, textureMesh) {
168
168
  return tslib_1.__awaiter(this, void 0, void 0, function () {
169
- var _a, max, min, diff, value, isoLevel, _b, texture, gridDimension, gridTexDim, gridTexScale, transform, axisOrder, buffer, gv, groupCount, surface;
169
+ var _a, max, min, diff, value, isoLevel, _b, texture, gridDimension, gridTexDim, gridTexScale, transform, axisOrder, buffer, gv, groupCount, boundingSphere, surface;
170
170
  return tslib_1.__generator(this, function (_c) {
171
171
  if (!ctx.webgl)
172
172
  throw new Error('webgl context required to create volume isosurface texture-mesh');
@@ -182,7 +182,8 @@ function createVolumeIsosurfaceTextureMesh(ctx, volume, theme, props, textureMes
182
182
  buffer = textureMesh === null || textureMesh === void 0 ? void 0 : textureMesh.doubleBuffer.get();
183
183
  gv = (0, isosurface_1.extractIsosurface)(ctx.webgl, texture, gridDimension, gridTexDim, gridTexScale, transform, isoLevel, value < 0, false, axisOrder, true, buffer === null || buffer === void 0 ? void 0 : buffer.vertex, buffer === null || buffer === void 0 ? void 0 : buffer.group, buffer === null || buffer === void 0 ? void 0 : buffer.normal);
184
184
  groupCount = volume.grid.cells.data.length;
185
- surface = texture_mesh_1.TextureMesh.create(gv.vertexCount, groupCount, gv.vertexTexture, gv.groupTexture, gv.normalTexture, volume_1.Volume.getBoundingSphere(volume), textureMesh);
185
+ boundingSphere = volume_1.Volume.getBoundingSphere(volume);
186
+ surface = texture_mesh_1.TextureMesh.create(gv.vertexCount, groupCount, gv.vertexTexture, gv.groupTexture, gv.normalTexture, boundingSphere, textureMesh);
186
187
  surface.meta.webgl = ctx.webgl;
187
188
  return [2 /*return*/, surface];
188
189
  });
@@ -200,8 +201,8 @@ function IsosurfaceTextureMeshVisual(materialId) {
200
201
  state.createGeometry = true;
201
202
  },
202
203
  geometryUtils: texture_mesh_1.TextureMesh.Utils,
203
- mustRecreate: function (volume, props, webgl) {
204
- return !props.tryUseGpu || !webgl || !suitableForGpu(volume, webgl);
204
+ mustRecreate: function (volumeKey, props, webgl) {
205
+ return !props.tryUseGpu || !webgl || !suitableForGpu(volumeKey.volume, webgl);
205
206
  },
206
207
  dispose: function (geometry) {
207
208
  geometry.vertexTexture.ref.value.destroy();
@@ -213,7 +214,7 @@ function IsosurfaceTextureMeshVisual(materialId) {
213
214
  }
214
215
  exports.IsosurfaceTextureMeshVisual = IsosurfaceTextureMeshVisual;
215
216
  //
216
- function createVolumeIsosurfaceWireframe(ctx, volume, theme, props, lines) {
217
+ function createVolumeIsosurfaceWireframe(ctx, volume, key, theme, props, lines) {
217
218
  return tslib_1.__awaiter(this, void 0, void 0, function () {
218
219
  var ids, wireframe, transform;
219
220
  return tslib_1.__generator(this, function (_a) {
@@ -230,7 +231,7 @@ function createVolumeIsosurfaceWireframe(ctx, volume, theme, props, lines) {
230
231
  wireframe = _a.sent();
231
232
  transform = volume_1.Grid.getGridToCartesianTransform(volume.grid);
232
233
  lines_1.Lines.transform(wireframe, transform);
233
- wireframe.setBoundingSphere(volume_1.Volume.getBoundingSphere(volume));
234
+ wireframe.setBoundingSphere(volume_1.Volume.Isosurface.getBoundingSphere(volume, props.isoValue));
234
235
  return [2 /*return*/, wireframe];
235
236
  }
236
237
  });
@@ -278,5 +279,5 @@ exports.IsosurfaceRepresentationProvider = (0, representation_1.VolumeRepresenta
278
279
  defaultValues: param_definition_1.ParamDefinition.getDefaultValues(exports.IsosurfaceParams),
279
280
  defaultColorTheme: { name: 'uniform' },
280
281
  defaultSizeTheme: { name: 'uniform' },
281
- isApplicable: function (volume) { return !volume_1.Volume.isEmpty(volume); }
282
+ isApplicable: function (volume) { return !volume_1.Volume.isEmpty(volume) && !volume_1.Volume.Segmentation.get(volume); }
282
283
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -199,6 +199,59 @@ export declare namespace VolumeRepresentationRegistry {
199
199
  }>>;
200
200
  instanceGranularity: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
201
201
  }, "direct-volume">;
202
+ segment: import("./representation").VolumeRepresentationProvider<{
203
+ visuals: import("../../mol-util/param-definition").ParamDefinition.MultiSelect<"segment">;
204
+ bumpFrequency: import("../../mol-util/param-definition").ParamDefinition.Numeric;
205
+ quality: {
206
+ isEssential: boolean;
207
+ type: "select";
208
+ options: readonly (readonly ["auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest", string] | readonly ["auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest", string, string | undefined])[];
209
+ cycle?: boolean | undefined;
210
+ isOptional?: boolean | undefined;
211
+ defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
212
+ label?: string | undefined;
213
+ description?: string | undefined;
214
+ legend?: import("../../mol-util/legend").Legend | undefined;
215
+ fieldLabels?: {
216
+ [name: string]: string;
217
+ } | undefined;
218
+ isHidden?: boolean | undefined;
219
+ shortLabel?: boolean | undefined;
220
+ twoColumns?: boolean | undefined;
221
+ category?: string | undefined;
222
+ hideIf?: ((currentGroup: any) => boolean) | undefined;
223
+ help?: ((value: any) => {
224
+ description?: string | undefined;
225
+ legend?: import("../../mol-util/legend").Legend | undefined;
226
+ }) | undefined;
227
+ };
228
+ tryUseGpu: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
229
+ segments: import("../../mol-util/param-definition").ParamDefinition.Converted<number[], string[]>;
230
+ doubleSided: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
231
+ flipSided: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
232
+ flatShaded: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
233
+ ignoreLight: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
234
+ xrayShaded: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
235
+ transparentBackfaces: import("../../mol-util/param-definition").ParamDefinition.Select<string>;
236
+ bumpAmplitude: import("../../mol-util/param-definition").ParamDefinition.Numeric;
237
+ alpha: import("../../mol-util/param-definition").ParamDefinition.Numeric;
238
+ material: import("../../mol-util/param-definition").ParamDefinition.Group<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
239
+ metalness: number;
240
+ roughness: number;
241
+ bumpiness: number;
242
+ }>>;
243
+ clip: import("../../mol-util/param-definition").ParamDefinition.Group<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
244
+ variant: import("../../mol-util/clip").Clip.Variant;
245
+ objects: import("../../mol-util/param-definition").ParamDefinition.Normalize<{
246
+ type: any;
247
+ invert: any;
248
+ position: any;
249
+ rotation: any;
250
+ scale: any;
251
+ }>[];
252
+ }>>;
253
+ instanceGranularity: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
254
+ }, "segment">;
202
255
  };
203
256
  type _BuiltIn = typeof BuiltIn;
204
257
  export type BuiltIn = keyof _BuiltIn;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -12,6 +12,7 @@ var isosurface_1 = require("./isosurface");
12
12
  var object_1 = require("../../mol-util/object");
13
13
  var slice_1 = require("./slice");
14
14
  var direct_volume_1 = require("./direct-volume");
15
+ var segment_1 = require("./segment");
15
16
  var VolumeRepresentationRegistry = /** @class */ (function (_super) {
16
17
  tslib_1.__extends(VolumeRepresentationRegistry, _super);
17
18
  function VolumeRepresentationRegistry() {
@@ -31,6 +32,7 @@ exports.VolumeRepresentationRegistry = VolumeRepresentationRegistry;
31
32
  'isosurface': isosurface_1.IsosurfaceRepresentationProvider,
32
33
  'slice': slice_1.SliceRepresentationProvider,
33
34
  'direct-volume': direct_volume_1.DirectVolumeRepresentationProvider,
35
+ 'segment': segment_1.SegmentRepresentationProvider,
34
36
  };
35
37
  })(VolumeRepresentationRegistry = exports.VolumeRepresentationRegistry || (exports.VolumeRepresentationRegistry = {}));
36
38
  exports.VolumeRepresentationRegistry = VolumeRepresentationRegistry;
@@ -15,16 +15,20 @@ import { Interval } from '../../mol-data/int';
15
15
  import { VisualUpdateState } from '../util';
16
16
  import { Representation, RepresentationProvider, RepresentationContext, RepresentationParamsGetter } from '../representation';
17
17
  import { WebGLContext } from '../../mol-gl/webgl/context';
18
- export interface VolumeVisual<P extends VolumeParams> extends Visual<Volume, P> {
18
+ export type VolumeKey = {
19
+ volume: Volume;
20
+ key: number;
21
+ };
22
+ export interface VolumeVisual<P extends VolumeParams> extends Visual<VolumeKey, P> {
19
23
  }
20
24
  interface VolumeVisualBuilder<P extends VolumeParams, G extends Geometry> {
21
25
  defaultProps: PD.Values<P>;
22
- createGeometry(ctx: VisualContext, volume: Volume, theme: Theme, props: PD.Values<P>, geometry?: G): Promise<G> | G;
23
- createLocationIterator(volume: Volume): LocationIterator;
24
- getLoci(pickingId: PickingId, volume: Volume, props: PD.Values<P>, id: number): Loci;
25
- eachLocation(loci: Loci, volume: Volume, props: PD.Values<P>, apply: (interval: Interval) => boolean): boolean;
26
+ createGeometry(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: PD.Values<P>, geometry?: G): Promise<G> | G;
27
+ createLocationIterator(volume: Volume, key: number): LocationIterator;
28
+ getLoci(pickingId: PickingId, volume: Volume, key: number, props: PD.Values<P>, id: number): Loci;
29
+ eachLocation(loci: Loci, volume: Volume, key: number, props: PD.Values<P>, apply: (interval: Interval) => boolean): boolean;
26
30
  setUpdateState(state: VisualUpdateState, volume: Volume, newProps: PD.Values<P>, currentProps: PD.Values<P>, newTheme: Theme, currentTheme: Theme): void;
27
- mustRecreate?: (volume: Volume, props: PD.Values<P>) => boolean;
31
+ mustRecreate?: (volumeKey: VolumeKey, props: PD.Values<P>) => boolean;
28
32
  dispose?: (geometry: G) => void;
29
33
  }
30
34
  interface VolumeVisualGeometryBuilder<P extends VolumeParams, G extends Geometry> extends VolumeVisualBuilder<P, G> {
@@ -56,5 +60,5 @@ export declare const VolumeParams: {
56
60
  instanceGranularity: PD.BooleanParam;
57
61
  };
58
62
  export type VolumeParams = typeof VolumeParams;
59
- export declare function VolumeRepresentation<P extends VolumeParams>(label: string, ctx: RepresentationContext, getParams: RepresentationParamsGetter<Volume, P>, visualCtor: (materialId: number, volume: Volume, props: PD.Values<P>, webgl?: WebGLContext) => VolumeVisual<P>, getLoci: (volume: Volume, props: PD.Values<P>) => Loci): VolumeRepresentation<P>;
63
+ export declare function VolumeRepresentation<P extends VolumeParams>(label: string, ctx: RepresentationContext, getParams: RepresentationParamsGetter<Volume, P>, visualCtor: (materialId: number, volume: Volume, key: number, props: PD.Values<P>, webgl?: WebGLContext) => VolumeVisual<P>, getLoci: (volume: Volume, props: PD.Values<P>) => Loci, getKeys?: (props: PD.Values<P>) => ArrayLike<number>): VolumeRepresentation<P>;
60
64
  export {};