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
@@ -21,6 +21,7 @@ var color_1 = require("../../mol-theme/color");
21
21
  var mol_util_1 = require("../../mol-util");
22
22
  var size_data_1 = require("../../mol-geo/geometry/size-data");
23
23
  var color_data_1 = require("../../mol-geo/geometry/color-data");
24
+ var linear_algebra_1 = require("../../mol-math/linear-algebra");
24
25
  var representation_1 = require("../representation");
25
26
  var base_1 = require("../../mol-geo/geometry/base");
26
27
  var rxjs_1 = require("rxjs");
@@ -42,25 +43,28 @@ function VolumeVisual(builder, materialId) {
42
43
  var newProps;
43
44
  var newTheme;
44
45
  var newVolume;
46
+ var newKey;
45
47
  var currentProps = Object.assign({}, defaultProps);
46
48
  var currentTheme = theme_1.Theme.createEmpty();
47
49
  var currentVolume;
50
+ var currentKey;
48
51
  var geometry;
49
52
  var geometryVersion = -1;
50
53
  var locationIt;
51
54
  var positionIt;
52
- function prepareUpdate(theme, props, volume) {
55
+ function prepareUpdate(theme, props, volume, key) {
53
56
  if (!volume && !currentVolume) {
54
57
  throw new Error('missing volume');
55
58
  }
56
59
  newProps = Object.assign({}, currentProps, props);
57
60
  newTheme = theme;
58
61
  newVolume = volume;
62
+ newKey = key;
59
63
  util_1.VisualUpdateState.reset(updateState);
60
64
  if (!renderObject) {
61
65
  updateState.createNew = true;
62
66
  }
63
- else if (!currentVolume || !volume_1.Volume.areEquivalent(newVolume, currentVolume)) {
67
+ else if (!volume_1.Volume.areEquivalent(newVolume, currentVolume) || newKey !== currentKey) {
64
68
  updateState.createNew = true;
65
69
  }
66
70
  if (updateState.createNew) {
@@ -79,7 +83,7 @@ function VolumeVisual(builder, materialId) {
79
83
  }
80
84
  function update(newGeometry) {
81
85
  if (updateState.createNew) {
82
- locationIt = createLocationIterator(newVolume);
86
+ locationIt = createLocationIterator(newVolume, newKey);
83
87
  if (newGeometry) {
84
88
  renderObject = createVolumeRenderObject(newVolume, newGeometry, locationIt, newTheme, newProps, materialId);
85
89
  positionIt = createPositionIterator(newGeometry, renderObject.values);
@@ -94,7 +98,7 @@ function VolumeVisual(builder, materialId) {
94
98
  }
95
99
  if (updateState.updateTransform) {
96
100
  // console.log('update transform');
97
- locationIt = createLocationIterator(newVolume);
101
+ locationIt = createLocationIterator(newVolume, newKey);
98
102
  var instanceCount = locationIt.instanceCount, groupCount = locationIt.groupCount;
99
103
  if (newProps.instanceGranularity) {
100
104
  (0, marker_data_1.createMarkers)(instanceCount, 'instance', renderObject.values);
@@ -135,21 +139,32 @@ function VolumeVisual(builder, materialId) {
135
139
  currentProps = newProps;
136
140
  currentTheme = newTheme;
137
141
  currentVolume = newVolume;
142
+ currentKey = newKey;
138
143
  if (newGeometry) {
139
144
  geometry = newGeometry;
140
145
  geometryVersion += 1;
141
146
  }
142
147
  }
143
- function eachInstance(loci, volume, apply) {
148
+ function eachInstance(loci, volume, key, apply) {
144
149
  var changed = false;
145
- if (!volume_1.Volume.Cell.isLoci(loci))
146
- return false;
147
- if (volume_1.Volume.Cell.isLociEmpty(loci))
148
- return false;
149
- if (!volume_1.Volume.areEquivalent(loci.volume, volume))
150
- return false;
151
- if (apply(int_1.Interval.ofSingleton(0)))
152
- changed = true;
150
+ if (volume_1.Volume.Cell.isLoci(loci)) {
151
+ if (volume_1.Volume.Cell.isLociEmpty(loci))
152
+ return false;
153
+ if (!volume_1.Volume.areEquivalent(loci.volume, volume))
154
+ return false;
155
+ if (apply(int_1.Interval.ofSingleton(0)))
156
+ changed = true;
157
+ }
158
+ else if (volume_1.Volume.Segment.isLoci(loci)) {
159
+ if (volume_1.Volume.Segment.isLociEmpty(loci))
160
+ return false;
161
+ if (!volume_1.Volume.areEquivalent(loci.volume, volume))
162
+ return false;
163
+ if (!int_1.SortedArray.has(loci.segments, key))
164
+ return false;
165
+ if (apply(int_1.Interval.ofSingleton(0)))
166
+ changed = true;
167
+ }
153
168
  return changed;
154
169
  }
155
170
  function lociApply(loci, apply) {
@@ -163,10 +178,10 @@ function VolumeVisual(builder, materialId) {
163
178
  }
164
179
  else {
165
180
  if (currentProps.instanceGranularity) {
166
- return eachInstance(loci, currentVolume, apply);
181
+ return eachInstance(loci, currentVolume, currentKey, apply);
167
182
  }
168
183
  else {
169
- return eachLocation(loci, currentVolume, currentProps, apply);
184
+ return eachLocation(loci, currentVolume, currentKey, currentProps, apply);
170
185
  }
171
186
  }
172
187
  }
@@ -174,14 +189,14 @@ function VolumeVisual(builder, materialId) {
174
189
  get groupCount() { return locationIt ? locationIt.count : 0; },
175
190
  get renderObject() { return renderObject; },
176
191
  get geometryVersion() { return geometryVersion; },
177
- createOrUpdate: function (ctx, theme, props, volume) {
192
+ createOrUpdate: function (ctx, theme, props, volumeKey) {
178
193
  if (props === void 0) { props = {}; }
179
194
  return tslib_1.__awaiter(this, void 0, void 0, function () {
180
195
  var newGeometry;
181
196
  return tslib_1.__generator(this, function (_a) {
182
- prepareUpdate(theme, props, volume || currentVolume);
197
+ prepareUpdate(theme, props, (volumeKey === null || volumeKey === void 0 ? void 0 : volumeKey.volume) || currentVolume, (volumeKey === null || volumeKey === void 0 ? void 0 : volumeKey.key) || currentKey);
183
198
  if (updateState.createGeometry) {
184
- newGeometry = createGeometry(ctx, newVolume, newTheme, newProps, geometry);
199
+ newGeometry = createGeometry(ctx, newVolume, newKey, newTheme, newProps, geometry);
185
200
  return [2 /*return*/, (0, type_helpers_1.isPromiseLike)(newGeometry) ? newGeometry.then(update) : update(newGeometry)];
186
201
  }
187
202
  else {
@@ -192,7 +207,7 @@ function VolumeVisual(builder, materialId) {
192
207
  });
193
208
  },
194
209
  getLoci: function (pickingId) {
195
- return renderObject ? getLoci(pickingId, currentVolume, currentProps, renderObject.id) : loci_1.EmptyLoci;
210
+ return renderObject ? getLoci(pickingId, currentVolume, currentKey, currentProps, renderObject.id) : loci_1.EmptyLoci;
196
211
  },
197
212
  mark: function (loci, action) {
198
213
  return visual_1.Visual.mark(renderObject, loci, action, lociApply);
@@ -242,7 +257,8 @@ function VolumeRepresentationProvider(p) { return p; }
242
257
  exports.VolumeRepresentationProvider = VolumeRepresentationProvider;
243
258
  //
244
259
  exports.VolumeParams = tslib_1.__assign({}, base_1.BaseGeometry.Params);
245
- function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci) {
260
+ function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci, getKeys) {
261
+ if (getKeys === void 0) { getKeys = function () { return [-1]; }; }
246
262
  var version = 0;
247
263
  var webgl = ctx.webgl;
248
264
  var updated = new rxjs_1.Subject();
@@ -250,11 +266,31 @@ function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci) {
250
266
  var materialId = (0, render_object_1.getNextMaterialId)();
251
267
  var renderObjects = [];
252
268
  var _state = representation_1.Representation.createState();
253
- var visual;
269
+ var visuals = new Map();
254
270
  var _volume;
271
+ var _keys;
255
272
  var _params;
256
273
  var _props;
257
274
  var _theme = theme_1.Theme.createEmpty();
275
+ function visual(runtime, key) {
276
+ var _a;
277
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
278
+ var visual;
279
+ return tslib_1.__generator(this, function (_b) {
280
+ visual = visuals.get(key);
281
+ if (!visual) {
282
+ visual = visualCtor(materialId, _volume, key, _props, webgl);
283
+ visuals.set(key, visual);
284
+ }
285
+ else if ((_a = visual.mustRecreate) === null || _a === void 0 ? void 0 : _a.call(visual, { volume: _volume, key: key }, _props, webgl)) {
286
+ visual.destroy();
287
+ visual = visualCtor(materialId, _volume, key, _props, webgl);
288
+ visuals.set(key, visual);
289
+ }
290
+ return [2 /*return*/, visual.createOrUpdate({ webgl: webgl, runtime: runtime }, _theme, _props, { volume: _volume, key: key })];
291
+ });
292
+ });
293
+ }
258
294
  function createOrUpdate(props, volume) {
259
295
  var _this = this;
260
296
  if (props === void 0) { props = {}; }
@@ -266,32 +302,42 @@ function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci) {
266
302
  }
267
303
  var qualityProps = (0, util_1.getQualityProps)(Object.assign({}, _props, props), _volume);
268
304
  Object.assign(_props, props, qualityProps);
305
+ _keys = getKeys(_props);
269
306
  return mol_task_1.Task.create('Creating or updating VolumeRepresentation', function (runtime) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
270
- var promise;
271
- var _a;
272
- return tslib_1.__generator(this, function (_b) {
273
- switch (_b.label) {
307
+ var toDelete, i, il, segment, promise;
308
+ return tslib_1.__generator(this, function (_a) {
309
+ switch (_a.label) {
274
310
  case 0:
275
- if (!visual) {
276
- visual = visualCtor(materialId, _volume, _props, webgl);
277
- }
278
- else if ((_a = visual.mustRecreate) === null || _a === void 0 ? void 0 : _a.call(visual, _volume, _props, webgl)) {
279
- visual.destroy();
280
- visual = visualCtor(materialId, _volume, _props, webgl);
281
- }
282
- promise = visual.createOrUpdate({ webgl: webgl, runtime: runtime }, _theme, _props, volume);
283
- if (!promise) return [3 /*break*/, 2];
284
- return [4 /*yield*/, promise];
311
+ toDelete = new Set(visuals.keys());
312
+ i = 0, il = _keys.length;
313
+ _a.label = 1;
285
314
  case 1:
286
- _b.sent();
287
- _b.label = 2;
315
+ if (!(i < il)) return [3 /*break*/, 4];
316
+ segment = _keys[i];
317
+ toDelete.delete(segment);
318
+ promise = visual(runtime, segment);
319
+ if (!promise) return [3 /*break*/, 3];
320
+ return [4 /*yield*/, promise];
288
321
  case 2:
322
+ _a.sent();
323
+ _a.label = 3;
324
+ case 3:
325
+ ++i;
326
+ return [3 /*break*/, 1];
327
+ case 4:
328
+ toDelete.forEach(function (segment) {
329
+ var _a;
330
+ (_a = visuals.get(segment)) === null || _a === void 0 ? void 0 : _a.destroy();
331
+ visuals.delete(segment);
332
+ });
289
333
  // update list of renderObjects
290
334
  renderObjects.length = 0;
291
- if (visual && visual.renderObject) {
292
- renderObjects.push(visual.renderObject);
293
- geometryState.add(visual.renderObject.id, visual.geometryVersion);
294
- }
335
+ visuals.forEach(function (visual) {
336
+ if (visual.renderObject) {
337
+ renderObjects.push(visual.renderObject);
338
+ geometryState.add(visual.renderObject.id, visual.geometryVersion);
339
+ }
340
+ });
295
341
  geometryState.snapshot();
296
342
  // increment version
297
343
  updated.next(version++);
@@ -301,9 +347,13 @@ function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci) {
301
347
  }); });
302
348
  }
303
349
  function mark(loci, action) {
304
- return visual ? visual.mark(loci, action) : false;
350
+ var changed = false;
351
+ visuals.forEach(function (visual) {
352
+ changed = visual.mark(loci, action) || changed;
353
+ });
354
+ return changed;
305
355
  }
306
- function setState(state) {
356
+ function setVisualState(visual, state) {
307
357
  if (state.visible !== undefined && visual)
308
358
  visual.setVisibility(state.visible);
309
359
  if (state.alphaFactor !== undefined && visual)
@@ -314,21 +364,60 @@ function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci) {
314
364
  visual.setOverpaint(state.overpaint);
315
365
  if (state.transparency !== undefined && visual)
316
366
  visual.setTransparency(state.transparency);
367
+ if (state.substance !== undefined && visual)
368
+ visual.setSubstance(state.substance);
369
+ if (state.clipping !== undefined && visual)
370
+ visual.setClipping(state.clipping);
317
371
  if (state.transform !== undefined && visual)
318
372
  visual.setTransform(state.transform);
373
+ if (state.themeStrength !== undefined && visual)
374
+ visual.setThemeStrength(state.themeStrength);
375
+ }
376
+ function setState(state) {
377
+ var visible = state.visible, alphaFactor = state.alphaFactor, pickable = state.pickable, overpaint = state.overpaint, transparency = state.transparency, substance = state.substance, clipping = state.clipping, transform = state.transform, themeStrength = state.themeStrength, syncManually = state.syncManually, markerActions = state.markerActions;
378
+ var newState = {};
379
+ if (visible !== _state.visible)
380
+ newState.visible = visible;
381
+ if (alphaFactor !== _state.alphaFactor)
382
+ newState.alphaFactor = alphaFactor;
383
+ if (pickable !== _state.pickable)
384
+ newState.pickable = pickable;
385
+ if (overpaint !== undefined)
386
+ newState.overpaint = overpaint;
387
+ if (transparency !== undefined)
388
+ newState.transparency = transparency;
389
+ if (substance !== undefined)
390
+ newState.substance = substance;
391
+ if (clipping !== undefined)
392
+ newState.clipping = clipping;
393
+ if (themeStrength !== undefined)
394
+ newState.themeStrength = themeStrength;
395
+ if (transform !== undefined && !linear_algebra_1.Mat4.areEqual(transform, _state.transform, linear_algebra_1.EPSILON)) {
396
+ newState.transform = transform;
397
+ }
398
+ if (syncManually !== _state.syncManually)
399
+ newState.syncManually = syncManually;
400
+ if (markerActions !== _state.markerActions)
401
+ newState.markerActions = markerActions;
402
+ visuals.forEach(function (visual) { return setVisualState(visual, newState); });
319
403
  representation_1.Representation.updateState(_state, state);
320
404
  }
321
405
  function setTheme(theme) {
322
406
  _theme = theme;
323
407
  }
324
408
  function destroy() {
325
- if (visual)
326
- visual.destroy();
409
+ visuals.forEach(function (visual) { return visual.destroy(); });
410
+ visuals.clear();
327
411
  }
328
412
  return {
329
413
  label: label,
330
414
  get groupCount() {
331
- return visual ? visual.groupCount : 0;
415
+ var groupCount = 0;
416
+ visuals.forEach(function (visual) {
417
+ if (visual.renderObject)
418
+ groupCount += visual.groupCount;
419
+ });
420
+ return groupCount;
332
421
  },
333
422
  get props() { return _props; },
334
423
  get params() { return _params; },
@@ -341,7 +430,13 @@ function VolumeRepresentation(label, ctx, getParams, visualCtor, getLoci) {
341
430
  setState: setState,
342
431
  setTheme: setTheme,
343
432
  getLoci: function (pickingId) {
344
- return visual ? visual.getLoci(pickingId) : loci_1.EmptyLoci;
433
+ var loci = loci_1.EmptyLoci;
434
+ visuals.forEach(function (visual) {
435
+ var _loci = visual.getLoci(pickingId);
436
+ if (!(0, loci_1.isEmptyLoci)(_loci))
437
+ loci = _loci;
438
+ });
439
+ return loci;
345
440
  },
346
441
  getAllLoci: function () {
347
442
  return [getLoci(_volume, _props)];
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Copyright (c) 2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ *
4
+ * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
+ */
6
+ import { ParamDefinition as PD } from '../../mol-util/param-definition';
7
+ import { Volume } from '../../mol-model/volume';
8
+ import { VisualContext } from '../visual';
9
+ import { Theme, ThemeRegistryContext } from '../../mol-theme/theme';
10
+ import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
11
+ import { VolumeVisual, VolumeRepresentation, VolumeRepresentationProvider } from './representation';
12
+ import { RepresentationContext, RepresentationParamsGetter } from '../representation';
13
+ import { Loci } from '../../mol-model/loci';
14
+ import { Interval } from '../../mol-data/int';
15
+ import { WebGLContext } from '../../mol-gl/webgl/context';
16
+ export declare const VolumeSegmentParams: {
17
+ segments: PD.Converted<number[], string[]>;
18
+ };
19
+ export type VolumeSegmentParams = typeof VolumeSegmentParams;
20
+ export type VolumeSegmentProps = PD.Values<VolumeSegmentParams>;
21
+ export declare function SegmentVisual(materialId: number, volume: Volume, key: number, props: PD.Values<SegmentMeshParams>, webgl?: WebGLContext): VolumeVisual<{
22
+ quality: {
23
+ isEssential: boolean;
24
+ type: "select";
25
+ 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])[];
26
+ cycle?: boolean | undefined;
27
+ isOptional?: boolean | undefined;
28
+ defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
29
+ label?: string | undefined;
30
+ description?: string | undefined;
31
+ legend?: import("../../mol-util/legend").Legend | undefined;
32
+ fieldLabels?: {
33
+ [name: string]: string;
34
+ } | undefined;
35
+ isHidden?: boolean | undefined;
36
+ shortLabel?: boolean | undefined;
37
+ twoColumns?: boolean | undefined;
38
+ category?: string | undefined;
39
+ hideIf?: ((currentGroup: any) => boolean) | undefined;
40
+ help?: ((value: any) => {
41
+ description?: string | undefined;
42
+ legend?: import("../../mol-util/legend").Legend | undefined;
43
+ }) | undefined;
44
+ };
45
+ tryUseGpu: PD.BooleanParam;
46
+ segments: PD.Converted<number[], string[]>;
47
+ doubleSided: PD.BooleanParam;
48
+ flipSided: PD.BooleanParam;
49
+ flatShaded: PD.BooleanParam;
50
+ ignoreLight: PD.BooleanParam;
51
+ xrayShaded: PD.BooleanParam;
52
+ transparentBackfaces: PD.Select<string>;
53
+ bumpFrequency: PD.Numeric;
54
+ bumpAmplitude: PD.Numeric;
55
+ alpha: PD.Numeric;
56
+ material: PD.Group<PD.Normalize<{
57
+ metalness: number;
58
+ roughness: number;
59
+ bumpiness: number;
60
+ }>>;
61
+ clip: PD.Group<PD.Normalize<{
62
+ variant: import("../../mol-util/clip").Clip.Variant;
63
+ objects: PD.Normalize<{
64
+ type: any;
65
+ invert: any;
66
+ position: any;
67
+ rotation: any;
68
+ scale: any;
69
+ }>[];
70
+ }>>;
71
+ instanceGranularity: PD.BooleanParam;
72
+ }>;
73
+ export declare function eachSegment(loci: Loci, volume: Volume, key: number, props: VolumeSegmentProps, apply: (interval: Interval) => boolean): boolean;
74
+ export declare function createVolumeSegmentMesh(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: VolumeSegmentProps, mesh?: Mesh): Promise<Mesh>;
75
+ export declare const SegmentMeshParams: {
76
+ quality: {
77
+ isEssential: boolean;
78
+ type: "select";
79
+ 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])[];
80
+ cycle?: boolean | undefined;
81
+ isOptional?: boolean | undefined;
82
+ defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
83
+ label?: string | undefined;
84
+ description?: string | undefined;
85
+ legend?: import("../../mol-util/legend").Legend | undefined;
86
+ fieldLabels?: {
87
+ [name: string]: string;
88
+ } | undefined;
89
+ isHidden?: boolean | undefined;
90
+ shortLabel?: boolean | undefined;
91
+ twoColumns?: boolean | undefined;
92
+ category?: string | undefined;
93
+ hideIf?: ((currentGroup: any) => boolean) | undefined;
94
+ help?: ((value: any) => {
95
+ description?: string | undefined;
96
+ legend?: import("../../mol-util/legend").Legend | undefined;
97
+ }) | undefined;
98
+ };
99
+ tryUseGpu: PD.BooleanParam;
100
+ segments: PD.Converted<number[], string[]>;
101
+ doubleSided: PD.BooleanParam;
102
+ flipSided: PD.BooleanParam;
103
+ flatShaded: PD.BooleanParam;
104
+ ignoreLight: PD.BooleanParam;
105
+ xrayShaded: PD.BooleanParam;
106
+ transparentBackfaces: PD.Select<string>;
107
+ bumpFrequency: PD.Numeric;
108
+ bumpAmplitude: PD.Numeric;
109
+ alpha: PD.Numeric;
110
+ material: PD.Group<PD.Normalize<{
111
+ metalness: number;
112
+ roughness: number;
113
+ bumpiness: number;
114
+ }>>;
115
+ clip: PD.Group<PD.Normalize<{
116
+ variant: import("../../mol-util/clip").Clip.Variant;
117
+ objects: PD.Normalize<{
118
+ type: any;
119
+ invert: any;
120
+ position: any;
121
+ rotation: any;
122
+ scale: any;
123
+ }>[];
124
+ }>>;
125
+ instanceGranularity: PD.BooleanParam;
126
+ };
127
+ export type SegmentMeshParams = typeof SegmentMeshParams;
128
+ export declare function SegmentMeshVisual(materialId: number): VolumeVisual<SegmentMeshParams>;
129
+ export declare function SegmentTextureMeshVisual(materialId: number): VolumeVisual<SegmentMeshParams>;
130
+ export declare const SegmentParams: {
131
+ visuals: PD.MultiSelect<"segment">;
132
+ bumpFrequency: PD.Numeric;
133
+ quality: {
134
+ isEssential: boolean;
135
+ type: "select";
136
+ 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])[];
137
+ cycle?: boolean | undefined;
138
+ isOptional?: boolean | undefined;
139
+ defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
140
+ label?: string | undefined;
141
+ description?: string | undefined;
142
+ legend?: import("../../mol-util/legend").Legend | undefined;
143
+ fieldLabels?: {
144
+ [name: string]: string;
145
+ } | undefined;
146
+ isHidden?: boolean | undefined;
147
+ shortLabel?: boolean | undefined;
148
+ twoColumns?: boolean | undefined;
149
+ category?: string | undefined;
150
+ hideIf?: ((currentGroup: any) => boolean) | undefined;
151
+ help?: ((value: any) => {
152
+ description?: string | undefined;
153
+ legend?: import("../../mol-util/legend").Legend | undefined;
154
+ }) | undefined;
155
+ };
156
+ tryUseGpu: PD.BooleanParam;
157
+ segments: PD.Converted<number[], string[]>;
158
+ doubleSided: PD.BooleanParam;
159
+ flipSided: PD.BooleanParam;
160
+ flatShaded: PD.BooleanParam;
161
+ ignoreLight: PD.BooleanParam;
162
+ xrayShaded: PD.BooleanParam;
163
+ transparentBackfaces: PD.Select<string>;
164
+ bumpAmplitude: PD.Numeric;
165
+ alpha: PD.Numeric;
166
+ material: PD.Group<PD.Normalize<{
167
+ metalness: number;
168
+ roughness: number;
169
+ bumpiness: number;
170
+ }>>;
171
+ clip: PD.Group<PD.Normalize<{
172
+ variant: import("../../mol-util/clip").Clip.Variant;
173
+ objects: PD.Normalize<{
174
+ type: any;
175
+ invert: any;
176
+ position: any;
177
+ rotation: any;
178
+ scale: any;
179
+ }>[];
180
+ }>>;
181
+ instanceGranularity: PD.BooleanParam;
182
+ };
183
+ export type SegmentParams = typeof SegmentParams;
184
+ export declare function getSegmentParams(ctx: ThemeRegistryContext, volume: Volume): {
185
+ visuals: PD.MultiSelect<"segment">;
186
+ bumpFrequency: PD.Numeric;
187
+ quality: {
188
+ isEssential: boolean;
189
+ type: "select";
190
+ 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])[];
191
+ cycle?: boolean | undefined;
192
+ isOptional?: boolean | undefined;
193
+ defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
194
+ label?: string | undefined;
195
+ description?: string | undefined;
196
+ legend?: import("../../mol-util/legend").Legend | undefined;
197
+ fieldLabels?: {
198
+ [name: string]: string;
199
+ } | undefined;
200
+ isHidden?: boolean | undefined;
201
+ shortLabel?: boolean | undefined;
202
+ twoColumns?: boolean | undefined;
203
+ category?: string | undefined;
204
+ hideIf?: ((currentGroup: any) => boolean) | undefined;
205
+ help?: ((value: any) => {
206
+ description?: string | undefined;
207
+ legend?: import("../../mol-util/legend").Legend | undefined;
208
+ }) | undefined;
209
+ };
210
+ tryUseGpu: PD.BooleanParam;
211
+ segments: PD.Converted<number[], string[]>;
212
+ doubleSided: PD.BooleanParam;
213
+ flipSided: PD.BooleanParam;
214
+ flatShaded: PD.BooleanParam;
215
+ ignoreLight: PD.BooleanParam;
216
+ xrayShaded: PD.BooleanParam;
217
+ transparentBackfaces: PD.Select<string>;
218
+ bumpAmplitude: PD.Numeric;
219
+ alpha: PD.Numeric;
220
+ material: PD.Group<PD.Normalize<{
221
+ metalness: number;
222
+ roughness: number;
223
+ bumpiness: number;
224
+ }>>;
225
+ clip: PD.Group<PD.Normalize<{
226
+ variant: import("../../mol-util/clip").Clip.Variant;
227
+ objects: PD.Normalize<{
228
+ type: any;
229
+ invert: any;
230
+ position: any;
231
+ rotation: any;
232
+ scale: any;
233
+ }>[];
234
+ }>>;
235
+ instanceGranularity: PD.BooleanParam;
236
+ };
237
+ export type SegmentRepresentation = VolumeRepresentation<SegmentParams>;
238
+ export declare function SegmentRepresentation(ctx: RepresentationContext, getParams: RepresentationParamsGetter<Volume, SegmentParams>): SegmentRepresentation;
239
+ export declare const SegmentRepresentationProvider: VolumeRepresentationProvider<{
240
+ visuals: PD.MultiSelect<"segment">;
241
+ bumpFrequency: PD.Numeric;
242
+ quality: {
243
+ isEssential: boolean;
244
+ type: "select";
245
+ 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])[];
246
+ cycle?: boolean | undefined;
247
+ isOptional?: boolean | undefined;
248
+ defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
249
+ label?: string | undefined;
250
+ description?: string | undefined;
251
+ legend?: import("../../mol-util/legend").Legend | undefined;
252
+ fieldLabels?: {
253
+ [name: string]: string;
254
+ } | undefined;
255
+ isHidden?: boolean | undefined;
256
+ shortLabel?: boolean | undefined;
257
+ twoColumns?: boolean | undefined;
258
+ category?: string | undefined;
259
+ hideIf?: ((currentGroup: any) => boolean) | undefined;
260
+ help?: ((value: any) => {
261
+ description?: string | undefined;
262
+ legend?: import("../../mol-util/legend").Legend | undefined;
263
+ }) | undefined;
264
+ };
265
+ tryUseGpu: PD.BooleanParam;
266
+ segments: PD.Converted<number[], string[]>;
267
+ doubleSided: PD.BooleanParam;
268
+ flipSided: PD.BooleanParam;
269
+ flatShaded: PD.BooleanParam;
270
+ ignoreLight: PD.BooleanParam;
271
+ xrayShaded: PD.BooleanParam;
272
+ transparentBackfaces: PD.Select<string>;
273
+ bumpAmplitude: PD.Numeric;
274
+ alpha: PD.Numeric;
275
+ material: PD.Group<PD.Normalize<{
276
+ metalness: number;
277
+ roughness: number;
278
+ bumpiness: number;
279
+ }>>;
280
+ clip: PD.Group<PD.Normalize<{
281
+ variant: import("../../mol-util/clip").Clip.Variant;
282
+ objects: PD.Normalize<{
283
+ type: any;
284
+ invert: any;
285
+ position: any;
286
+ rotation: any;
287
+ scale: any;
288
+ }>[];
289
+ }>>;
290
+ instanceGranularity: PD.BooleanParam;
291
+ }, "segment">;