molstar 3.0.0-dev.6 → 3.0.0-dev.7

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 (367) hide show
  1. package/build/viewer/molstar.js +1 -1
  2. package/lib/commonjs/extensions/anvil/behavior.d.ts +4 -0
  3. package/lib/commonjs/extensions/anvil/representation.d.ts +50 -0
  4. package/lib/commonjs/extensions/cellpack/representation.d.ts +10 -0
  5. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +30 -0
  6. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -0
  7. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +10 -0
  8. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +50 -0
  9. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -8
  10. package/lib/commonjs/mol-canvas3d/canvas3d.js +2 -1
  11. package/lib/commonjs/mol-canvas3d/helper/bounding-sphere-helper.js +3 -2
  12. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +4 -0
  13. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +2 -2
  14. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +4 -0
  15. package/lib/commonjs/mol-canvas3d/helper/handle-helper.js +2 -2
  16. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  17. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  18. package/lib/commonjs/mol-canvas3d/passes/pick.js +9 -9
  19. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +3 -3
  20. package/lib/commonjs/mol-canvas3d/passes/smaa.js +1 -1
  21. package/lib/commonjs/mol-geo/geometry/base.d.ts +18 -0
  22. package/lib/commonjs/mol-geo/geometry/base.js +18 -1
  23. package/lib/commonjs/mol-geo/geometry/clipping-data.d.ts +1 -3
  24. package/lib/commonjs/mol-geo/geometry/clipping-data.js +3 -8
  25. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +10 -0
  26. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +2 -2
  27. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +10 -0
  28. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +2 -2
  29. package/lib/commonjs/mol-geo/geometry/image/image.d.ts +10 -0
  30. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +10 -0
  31. package/lib/commonjs/mol-geo/geometry/lines/lines.js +1 -1
  32. package/lib/commonjs/mol-geo/geometry/marker-data.d.ts +0 -1
  33. package/lib/commonjs/mol-geo/geometry/marker-data.js +0 -4
  34. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +10 -0
  35. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +2 -2
  36. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +10 -0
  37. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +10 -0
  38. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +2 -2
  39. package/lib/commonjs/mol-geo/geometry/text/text.d.ts +10 -0
  40. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +10 -0
  41. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  42. package/lib/commonjs/mol-gl/render-object.d.ts +2 -1
  43. package/lib/commonjs/mol-gl/render-object.js +10 -10
  44. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +10 -5
  45. package/lib/commonjs/mol-gl/renderable/cylinders.js +3 -3
  46. package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +10 -5
  47. package/lib/commonjs/mol-gl/renderable/direct-volume.js +3 -3
  48. package/lib/commonjs/mol-gl/renderable/image.d.ts +9 -4
  49. package/lib/commonjs/mol-gl/renderable/image.js +2 -2
  50. package/lib/commonjs/mol-gl/renderable/lines.d.ts +38 -33
  51. package/lib/commonjs/mol-gl/renderable/lines.js +3 -3
  52. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +10 -5
  53. package/lib/commonjs/mol-gl/renderable/mesh.js +3 -3
  54. package/lib/commonjs/mol-gl/renderable/points.d.ts +9 -4
  55. package/lib/commonjs/mol-gl/renderable/points.js +2 -2
  56. package/lib/commonjs/mol-gl/renderable/schema.d.ts +9 -11
  57. package/lib/commonjs/mol-gl/renderable/schema.js +3 -9
  58. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +10 -5
  59. package/lib/commonjs/mol-gl/renderable/spheres.js +3 -3
  60. package/lib/commonjs/mol-gl/renderable/text.d.ts +9 -4
  61. package/lib/commonjs/mol-gl/renderable/text.js +2 -2
  62. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +10 -5
  63. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +3 -3
  64. package/lib/commonjs/mol-gl/renderable.d.ts +0 -1
  65. package/lib/commonjs/mol-gl/renderer.d.ts +12 -12
  66. package/lib/commonjs/mol-gl/renderer.js +12 -74
  67. package/lib/commonjs/mol-gl/scene.d.ts +2 -2
  68. package/lib/commonjs/mol-gl/scene.js +7 -5
  69. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  70. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  71. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  72. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  73. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.d.ts +1 -1
  74. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +1 -1
  75. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  76. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  77. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  78. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  79. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  80. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  81. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  82. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +1 -1
  83. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.d.ts +1 -1
  84. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +1 -1
  85. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
  86. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +1 -1
  87. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  88. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  89. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  90. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  91. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
  92. package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
  93. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  94. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  95. package/lib/commonjs/mol-gl/shader/mesh.vert.d.ts +1 -1
  96. package/lib/commonjs/mol-gl/shader/mesh.vert.js +1 -1
  97. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  98. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  99. package/lib/commonjs/mol-gl/shader-code.d.ts +3 -1
  100. package/lib/commonjs/mol-gl/shader-code.js +42 -13
  101. package/lib/commonjs/mol-gl/webgl/render-item.d.ts +7 -6
  102. package/lib/commonjs/mol-gl/webgl/render-item.js +10 -8
  103. package/lib/commonjs/mol-gl/webgl/resources.js +8 -1
  104. package/lib/commonjs/mol-math/linear-algebra/3d/quat.d.ts +9 -1
  105. package/lib/commonjs/mol-math/linear-algebra/3d/quat.js +20 -1
  106. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +20 -0
  107. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +10 -0
  108. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +10 -0
  109. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +30 -0
  110. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +40 -0
  111. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +11 -0
  112. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +3 -1
  113. package/lib/commonjs/mol-plugin/commands.d.ts +1 -4
  114. package/lib/commonjs/mol-plugin/spec.js +1 -0
  115. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +12 -0
  116. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.d.ts +1 -1
  117. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.js +1 -1
  118. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +13 -1
  119. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +13 -8
  120. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +32 -0
  121. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +2 -6
  122. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +10 -0
  123. package/lib/commonjs/mol-repr/shape/loci/common.d.ts +10 -0
  124. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +10 -0
  125. package/lib/commonjs/mol-repr/shape/loci/distance.d.ts +10 -0
  126. package/lib/commonjs/mol-repr/shape/loci/label.d.ts +10 -0
  127. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +10 -0
  128. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +10 -0
  129. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +10 -0
  130. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +60 -0
  131. package/lib/commonjs/mol-repr/structure/params.d.ts +80 -0
  132. package/lib/commonjs/mol-repr/structure/registry.d.ts +140 -0
  133. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +30 -0
  134. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +30 -0
  135. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +30 -0
  136. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +30 -0
  137. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +30 -0
  138. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +30 -0
  139. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +30 -0
  140. package/lib/commonjs/mol-repr/structure/representation/label.d.ts +30 -0
  141. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +30 -0
  142. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +30 -0
  143. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +30 -0
  144. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +30 -0
  145. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +30 -0
  146. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +30 -0
  147. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +80 -0
  148. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +20 -0
  149. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +10 -0
  150. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +20 -0
  151. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +10 -0
  152. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +10 -0
  153. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +10 -0
  154. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +10 -0
  155. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +10 -0
  156. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +10 -0
  157. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +20 -0
  158. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +10 -0
  159. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +20 -0
  160. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +40 -0
  161. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +10 -0
  162. package/lib/commonjs/mol-repr/structure/visual/label-text.d.ts +10 -0
  163. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +10 -0
  164. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +10 -0
  165. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +10 -0
  166. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +10 -0
  167. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +10 -0
  168. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +20 -0
  169. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +20 -0
  170. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +10 -0
  171. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +10 -0
  172. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +10 -0
  173. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +10 -0
  174. package/lib/commonjs/mol-repr/visual.js +11 -7
  175. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +30 -0
  176. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +60 -0
  177. package/lib/commonjs/mol-repr/volume/registry.d.ts +30 -0
  178. package/lib/commonjs/mol-repr/volume/representation.d.ts +10 -0
  179. package/lib/commonjs/mol-repr/volume/slice.d.ts +30 -0
  180. package/lib/commonjs/mol-theme/clipping.d.ts +7 -15
  181. package/lib/commonjs/mol-theme/clipping.js +5 -12
  182. package/lib/commonjs/mol-util/clip.d.ts +49 -0
  183. package/lib/commonjs/mol-util/clip.js +97 -0
  184. package/lib/extensions/anvil/behavior.d.ts +4 -0
  185. package/lib/extensions/anvil/representation.d.ts +50 -0
  186. package/lib/extensions/cellpack/representation.d.ts +10 -0
  187. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +30 -0
  188. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -0
  189. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +10 -0
  190. package/lib/extensions/rcsb/validation-report/representation.d.ts +50 -0
  191. package/lib/mol-canvas3d/canvas3d.d.ts +2 -8
  192. package/lib/mol-canvas3d/canvas3d.js +2 -1
  193. package/lib/mol-canvas3d/helper/bounding-sphere-helper.js +3 -2
  194. package/lib/mol-canvas3d/helper/camera-helper.d.ts +4 -0
  195. package/lib/mol-canvas3d/helper/camera-helper.js +2 -2
  196. package/lib/mol-canvas3d/helper/handle-helper.d.ts +4 -0
  197. package/lib/mol-canvas3d/helper/handle-helper.js +2 -2
  198. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  199. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  200. package/lib/mol-canvas3d/passes/pick.js +9 -9
  201. package/lib/mol-canvas3d/passes/postprocessing.js +3 -3
  202. package/lib/mol-canvas3d/passes/smaa.js +1 -1
  203. package/lib/mol-geo/geometry/base.d.ts +18 -0
  204. package/lib/mol-geo/geometry/base.js +18 -1
  205. package/lib/mol-geo/geometry/clipping-data.d.ts +1 -3
  206. package/lib/mol-geo/geometry/clipping-data.js +3 -8
  207. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +10 -0
  208. package/lib/mol-geo/geometry/cylinders/cylinders.js +2 -2
  209. package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +10 -0
  210. package/lib/mol-geo/geometry/direct-volume/direct-volume.js +2 -2
  211. package/lib/mol-geo/geometry/image/image.d.ts +10 -0
  212. package/lib/mol-geo/geometry/lines/lines.d.ts +10 -0
  213. package/lib/mol-geo/geometry/lines/lines.js +1 -1
  214. package/lib/mol-geo/geometry/marker-data.d.ts +0 -1
  215. package/lib/mol-geo/geometry/marker-data.js +0 -4
  216. package/lib/mol-geo/geometry/mesh/mesh.d.ts +10 -0
  217. package/lib/mol-geo/geometry/mesh/mesh.js +2 -2
  218. package/lib/mol-geo/geometry/points/points.d.ts +10 -0
  219. package/lib/mol-geo/geometry/spheres/spheres.d.ts +10 -0
  220. package/lib/mol-geo/geometry/spheres/spheres.js +2 -2
  221. package/lib/mol-geo/geometry/text/text.d.ts +10 -0
  222. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +10 -0
  223. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  224. package/lib/mol-gl/render-object.d.ts +2 -1
  225. package/lib/mol-gl/render-object.js +10 -10
  226. package/lib/mol-gl/renderable/cylinders.d.ts +10 -5
  227. package/lib/mol-gl/renderable/cylinders.js +3 -3
  228. package/lib/mol-gl/renderable/direct-volume.d.ts +10 -5
  229. package/lib/mol-gl/renderable/direct-volume.js +3 -3
  230. package/lib/mol-gl/renderable/image.d.ts +9 -4
  231. package/lib/mol-gl/renderable/image.js +2 -2
  232. package/lib/mol-gl/renderable/lines.d.ts +38 -33
  233. package/lib/mol-gl/renderable/lines.js +4 -4
  234. package/lib/mol-gl/renderable/mesh.d.ts +10 -5
  235. package/lib/mol-gl/renderable/mesh.js +3 -3
  236. package/lib/mol-gl/renderable/points.d.ts +9 -4
  237. package/lib/mol-gl/renderable/points.js +2 -2
  238. package/lib/mol-gl/renderable/schema.d.ts +9 -11
  239. package/lib/mol-gl/renderable/schema.js +3 -9
  240. package/lib/mol-gl/renderable/spheres.d.ts +10 -5
  241. package/lib/mol-gl/renderable/spheres.js +3 -3
  242. package/lib/mol-gl/renderable/text.d.ts +9 -4
  243. package/lib/mol-gl/renderable/text.js +2 -2
  244. package/lib/mol-gl/renderable/texture-mesh.d.ts +10 -5
  245. package/lib/mol-gl/renderable/texture-mesh.js +3 -3
  246. package/lib/mol-gl/renderable.d.ts +0 -1
  247. package/lib/mol-gl/renderer.d.ts +12 -12
  248. package/lib/mol-gl/renderer.js +13 -75
  249. package/lib/mol-gl/scene.d.ts +2 -2
  250. package/lib/mol-gl/scene.js +7 -5
  251. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  252. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  253. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  254. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  255. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.d.ts +1 -1
  256. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +1 -1
  257. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  258. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  259. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  260. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  261. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  262. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  263. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  264. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +1 -1
  265. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.d.ts +1 -1
  266. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +1 -1
  267. package/lib/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
  268. package/lib/mol-gl/shader/chunks/common.glsl.js +1 -1
  269. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  270. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  271. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  272. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  273. package/lib/mol-gl/shader/image.frag.d.ts +1 -1
  274. package/lib/mol-gl/shader/image.frag.js +1 -1
  275. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  276. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  277. package/lib/mol-gl/shader/mesh.vert.d.ts +1 -1
  278. package/lib/mol-gl/shader/mesh.vert.js +1 -1
  279. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  280. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  281. package/lib/mol-gl/shader-code.d.ts +3 -1
  282. package/lib/mol-gl/shader-code.js +42 -13
  283. package/lib/mol-gl/webgl/render-item.d.ts +7 -6
  284. package/lib/mol-gl/webgl/render-item.js +8 -6
  285. package/lib/mol-gl/webgl/resources.js +8 -1
  286. package/lib/mol-math/linear-algebra/3d/quat.d.ts +9 -1
  287. package/lib/mol-math/linear-algebra/3d/quat.js +20 -1
  288. package/lib/mol-model-formats/shape/ply.d.ts +20 -0
  289. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +10 -0
  290. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +10 -0
  291. package/lib/mol-model-props/computed/representations/interactions.d.ts +30 -0
  292. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +40 -0
  293. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +11 -0
  294. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +3 -1
  295. package/lib/mol-plugin/commands.d.ts +1 -4
  296. package/lib/mol-plugin/spec.js +1 -0
  297. package/lib/mol-plugin/util/viewport-screenshot.d.ts +12 -0
  298. package/lib/mol-plugin/version.js +2 -2
  299. package/lib/mol-plugin-state/helpers/structure-clipping.d.ts +1 -1
  300. package/lib/mol-plugin-state/helpers/structure-clipping.js +1 -1
  301. package/lib/mol-plugin-state/manager/structure/component.d.ts +13 -1
  302. package/lib/mol-plugin-state/manager/structure/component.js +13 -8
  303. package/lib/mol-plugin-state/transforms/representation.d.ts +32 -0
  304. package/lib/mol-plugin-ui/viewport/simple-settings.js +2 -6
  305. package/lib/mol-repr/shape/loci/angle.d.ts +10 -0
  306. package/lib/mol-repr/shape/loci/common.d.ts +10 -0
  307. package/lib/mol-repr/shape/loci/dihedral.d.ts +10 -0
  308. package/lib/mol-repr/shape/loci/distance.d.ts +10 -0
  309. package/lib/mol-repr/shape/loci/label.d.ts +10 -0
  310. package/lib/mol-repr/shape/loci/orientation.d.ts +10 -0
  311. package/lib/mol-repr/shape/loci/plane.d.ts +10 -0
  312. package/lib/mol-repr/shape/model/unitcell.d.ts +10 -0
  313. package/lib/mol-repr/structure/complex-visual.d.ts +60 -0
  314. package/lib/mol-repr/structure/params.d.ts +80 -0
  315. package/lib/mol-repr/structure/registry.d.ts +140 -0
  316. package/lib/mol-repr/structure/representation/backbone.d.ts +30 -0
  317. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +30 -0
  318. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +30 -0
  319. package/lib/mol-repr/structure/representation/cartoon.d.ts +30 -0
  320. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +30 -0
  321. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +30 -0
  322. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +30 -0
  323. package/lib/mol-repr/structure/representation/label.d.ts +30 -0
  324. package/lib/mol-repr/structure/representation/line.d.ts +30 -0
  325. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +30 -0
  326. package/lib/mol-repr/structure/representation/orientation.d.ts +30 -0
  327. package/lib/mol-repr/structure/representation/point.d.ts +30 -0
  328. package/lib/mol-repr/structure/representation/putty.d.ts +30 -0
  329. package/lib/mol-repr/structure/representation/spacefill.d.ts +30 -0
  330. package/lib/mol-repr/structure/units-visual.d.ts +80 -0
  331. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +20 -0
  332. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +10 -0
  333. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +20 -0
  334. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +10 -0
  335. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +10 -0
  336. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +10 -0
  337. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +10 -0
  338. package/lib/mol-repr/structure/visual/element-cross.d.ts +10 -0
  339. package/lib/mol-repr/structure/visual/element-point.d.ts +10 -0
  340. package/lib/mol-repr/structure/visual/element-sphere.d.ts +20 -0
  341. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +10 -0
  342. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +20 -0
  343. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +40 -0
  344. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +10 -0
  345. package/lib/mol-repr/structure/visual/label-text.d.ts +10 -0
  346. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +10 -0
  347. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +10 -0
  348. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +10 -0
  349. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +10 -0
  350. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +10 -0
  351. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +20 -0
  352. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +20 -0
  353. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +10 -0
  354. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +10 -0
  355. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +10 -0
  356. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +10 -0
  357. package/lib/mol-repr/visual.js +11 -7
  358. package/lib/mol-repr/volume/direct-volume.d.ts +30 -0
  359. package/lib/mol-repr/volume/isosurface.d.ts +60 -0
  360. package/lib/mol-repr/volume/registry.d.ts +30 -0
  361. package/lib/mol-repr/volume/representation.d.ts +10 -0
  362. package/lib/mol-repr/volume/slice.d.ts +30 -0
  363. package/lib/mol-theme/clipping.d.ts +7 -15
  364. package/lib/mol-theme/clipping.js +5 -12
  365. package/lib/mol-util/clip.d.ts +49 -0
  366. package/lib/mol-util/clip.js +93 -0
  367. package/package.json +1 -1
@@ -113,42 +113,70 @@ function replaceCounts(str, defines) {
113
113
  function preprocess(str, defines) {
114
114
  return unrollLoops(replaceCounts(str, defines));
115
115
  }
116
- function ShaderCode(name, vert, frag, extensions, outTypes) {
116
+ function ShaderCode(name, vert, frag, extensions, outTypes, ignoreDefine) {
117
117
  if (extensions === void 0) { extensions = {}; }
118
118
  if (outTypes === void 0) { outTypes = {}; }
119
- return { id: shaderCodeId(), name: name, vert: addIncludes(vert), frag: addIncludes(frag), extensions: extensions, outTypes: outTypes };
119
+ return { id: shaderCodeId(), name: name, vert: addIncludes(vert), frag: addIncludes(frag), extensions: extensions, outTypes: outTypes, ignoreDefine: ignoreDefine };
120
120
  }
121
121
  exports.ShaderCode = ShaderCode;
122
122
  // Note: `drawBuffers` need to be 'optional' for wboit
123
+ function ignoreDefine(name, variant, defines) {
124
+ var _a;
125
+ if (variant.startsWith('color')) {
126
+ if (name === 'dLightCount') {
127
+ return !!((_a = defines.dIgnoreLight) === null || _a === void 0 ? void 0 : _a.ref.value);
128
+ }
129
+ }
130
+ else {
131
+ return [
132
+ 'dColorType', 'dUsePalette',
133
+ 'dLightCount',
134
+ 'dOverpaintType', 'dOverpaint',
135
+ 'dSubstanceType', 'dSubstance',
136
+ ].includes(name);
137
+ }
138
+ return false;
139
+ }
140
+ ;
141
+ function ignoreDefineUnlit(name, variant, defines) {
142
+ if (name === 'dLightCount')
143
+ return true;
144
+ return ignoreDefine(name, variant, defines);
145
+ }
146
+ ;
123
147
  var points_vert_1 = require("./shader/points.vert");
124
148
  var points_frag_1 = require("./shader/points.frag");
125
- exports.PointsShaderCode = ShaderCode('points', points_vert_1.points_vert, points_frag_1.points_frag, { drawBuffers: 'optional' });
149
+ exports.PointsShaderCode = ShaderCode('points', points_vert_1.points_vert, points_frag_1.points_frag, { drawBuffers: 'optional' }, {}, ignoreDefineUnlit);
126
150
  var spheres_vert_1 = require("./shader/spheres.vert");
127
151
  var spheres_frag_1 = require("./shader/spheres.frag");
128
- exports.SpheresShaderCode = ShaderCode('spheres', spheres_vert_1.spheres_vert, spheres_frag_1.spheres_frag, { fragDepth: 'required', drawBuffers: 'optional' });
152
+ exports.SpheresShaderCode = ShaderCode('spheres', spheres_vert_1.spheres_vert, spheres_frag_1.spheres_frag, { fragDepth: 'required', drawBuffers: 'optional' }, {}, ignoreDefine);
129
153
  var cylinders_vert_1 = require("./shader/cylinders.vert");
130
154
  var cylinders_frag_1 = require("./shader/cylinders.frag");
131
- exports.CylindersShaderCode = ShaderCode('cylinders', cylinders_vert_1.cylinders_vert, cylinders_frag_1.cylinders_frag, { fragDepth: 'required', drawBuffers: 'optional' });
155
+ exports.CylindersShaderCode = ShaderCode('cylinders', cylinders_vert_1.cylinders_vert, cylinders_frag_1.cylinders_frag, { fragDepth: 'required', drawBuffers: 'optional' }, {}, ignoreDefine);
132
156
  var text_vert_1 = require("./shader/text.vert");
133
157
  var text_frag_1 = require("./shader/text.frag");
134
- exports.TextShaderCode = ShaderCode('text', text_vert_1.text_vert, text_frag_1.text_frag, { drawBuffers: 'optional' });
158
+ exports.TextShaderCode = ShaderCode('text', text_vert_1.text_vert, text_frag_1.text_frag, { drawBuffers: 'optional' }, {}, ignoreDefineUnlit);
135
159
  var lines_vert_1 = require("./shader/lines.vert");
136
160
  var lines_frag_1 = require("./shader/lines.frag");
137
- exports.LinesShaderCode = ShaderCode('lines', lines_vert_1.lines_vert, lines_frag_1.lines_frag, { drawBuffers: 'optional' });
161
+ exports.LinesShaderCode = ShaderCode('lines', lines_vert_1.lines_vert, lines_frag_1.lines_frag, { drawBuffers: 'optional' }, {}, ignoreDefineUnlit);
138
162
  var mesh_vert_1 = require("./shader/mesh.vert");
139
163
  var mesh_frag_1 = require("./shader/mesh.frag");
140
- exports.MeshShaderCode = ShaderCode('mesh', mesh_vert_1.mesh_vert, mesh_frag_1.mesh_frag, { drawBuffers: 'optional' });
164
+ exports.MeshShaderCode = ShaderCode('mesh', mesh_vert_1.mesh_vert, mesh_frag_1.mesh_frag, { drawBuffers: 'optional' }, {}, ignoreDefine);
141
165
  var direct_volume_vert_1 = require("./shader/direct-volume.vert");
142
166
  var direct_volume_frag_1 = require("./shader/direct-volume.frag");
143
167
  exports.DirectVolumeShaderCode = ShaderCode('direct-volume', direct_volume_vert_1.directVolume_vert, direct_volume_frag_1.directVolume_frag, { fragDepth: 'optional', drawBuffers: 'optional' });
144
168
  var image_vert_1 = require("./shader/image.vert");
145
169
  var image_frag_1 = require("./shader/image.frag");
146
- exports.ImageShaderCode = ShaderCode('image', image_vert_1.image_vert, image_frag_1.image_frag, { drawBuffers: 'optional' });
147
- function getDefinesCode(defines) {
170
+ exports.ImageShaderCode = ShaderCode('image', image_vert_1.image_vert, image_frag_1.image_frag, { drawBuffers: 'optional' }, {}, ignoreDefineUnlit);
171
+ function getDefinesCode(defines, ignore) {
172
+ var _a;
148
173
  if (defines === undefined)
149
174
  return '';
175
+ var variant = (((_a = defines.dRenderVariant) === null || _a === void 0 ? void 0 : _a.ref.value) || '');
150
176
  var lines = [];
151
177
  for (var name_1 in defines) {
178
+ if (ignore === null || ignore === void 0 ? void 0 : ignore(name_1, variant, defines))
179
+ continue;
152
180
  var define = defines[name_1];
153
181
  var v = define.ref.value;
154
182
  if (v !== undefined) {
@@ -233,7 +261,8 @@ function transformGlsl300Frag(frag) {
233
261
  return frag.replace(/gl_FragData\[([0-9]+)\]/g, 'out_FragData$1');
234
262
  }
235
263
  function addShaderDefines(gl, extensions, defines, shaders) {
236
- var header = getDefinesCode(defines);
264
+ var vertHeader = getDefinesCode(defines, shaders.ignoreDefine);
265
+ var fragHeader = getDefinesCode(defines, shaders.ignoreDefine);
237
266
  var vertPrefix = (0, compat_1.isWebGL2)(gl) ? glsl300VertPrefix : '';
238
267
  var fragPrefix = (0, compat_1.isWebGL2)(gl)
239
268
  ? getGlsl300FragPrefix(gl, extensions, shaders.extensions, shaders.outTypes)
@@ -242,8 +271,8 @@ function addShaderDefines(gl, extensions, defines, shaders) {
242
271
  return {
243
272
  id: shaderCodeId(),
244
273
  name: shaders.name,
245
- vert: "".concat(vertPrefix).concat(header).concat(preprocess(shaders.vert, defines)),
246
- frag: "".concat(fragPrefix).concat(header).concat(preprocess(frag, defines)),
274
+ vert: "".concat(vertPrefix).concat(vertHeader).concat(preprocess(shaders.vert, defines)),
275
+ frag: "".concat(fragPrefix).concat(fragHeader).concat(preprocess(frag, defines)),
247
276
  extensions: shaders.extensions,
248
277
  outTypes: shaders.outTypes
249
278
  };
@@ -21,18 +21,19 @@ export interface RenderItem<T extends string> {
21
21
  declare const GraphicsRenderVariant: {
22
22
  colorBlended: string;
23
23
  colorWboit: string;
24
- pickObject: string;
25
- pickInstance: string;
26
- pickGroup: string;
24
+ pick: string;
27
25
  depth: string;
28
- markingDepth: string;
29
- markingMask: string;
26
+ marking: string;
30
27
  };
31
28
  export declare type GraphicsRenderVariant = keyof typeof GraphicsRenderVariant;
29
+ export declare const GraphicsRenderVariants: ("depth" | "colorBlended" | "colorWboit" | "pick" | "marking")[];
30
+ export declare const GraphicsRenderVariantsBlended: ("depth" | "colorBlended" | "colorWboit" | "pick" | "marking")[];
31
+ export declare const GraphicsRenderVariantsWboit: ("depth" | "colorBlended" | "colorWboit" | "pick" | "marking")[];
32
32
  declare const ComputeRenderVariant: {
33
33
  compute: string;
34
34
  };
35
35
  export declare type ComputeRenderVariant = keyof typeof ComputeRenderVariant;
36
+ export declare const ComputeRenderVariants: "compute"[];
36
37
  declare function createValueChanges(): {
37
38
  attributes: boolean;
38
39
  defines: boolean;
@@ -41,7 +42,7 @@ declare function createValueChanges(): {
41
42
  };
42
43
  declare type ValueChanges = ReturnType<typeof createValueChanges>;
43
44
  export declare type GraphicsRenderItem = RenderItem<GraphicsRenderVariant>;
44
- export declare function createGraphicsRenderItem(ctx: WebGLContext, drawMode: DrawMode, shaderCode: ShaderCode, schema: RenderableSchema, values: RenderableValues, materialId: number): RenderItem<"depth" | "colorBlended" | "colorWboit" | "pickObject" | "pickInstance" | "pickGroup" | "markingDepth" | "markingMask">;
45
+ export declare function createGraphicsRenderItem(ctx: WebGLContext, drawMode: DrawMode, shaderCode: ShaderCode, schema: RenderableSchema, values: RenderableValues, materialId: number, variants: GraphicsRenderVariant[]): RenderItem<"depth" | "colorBlended" | "colorWboit" | "pick" | "marking">;
45
46
  export declare type ComputeRenderItem = RenderItem<ComputeRenderVariant>;
46
47
  export declare function createComputeRenderItem(ctx: WebGLContext, drawMode: DrawMode, shaderCode: ShaderCode, schema: RenderableSchema, values: RenderableValues, materialId?: number): RenderItem<"compute">;
47
48
  /**
@@ -5,7 +5,7 @@
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createRenderItem = exports.createComputeRenderItem = exports.createGraphicsRenderItem = exports.getDrawMode = void 0;
8
+ exports.createRenderItem = exports.createComputeRenderItem = exports.createGraphicsRenderItem = exports.ComputeRenderVariants = exports.GraphicsRenderVariantsWboit = exports.GraphicsRenderVariantsBlended = exports.GraphicsRenderVariants = exports.getDrawMode = void 0;
9
9
  var tslib_1 = require("tslib");
10
10
  var buffer_1 = require("./buffer");
11
11
  var texture_1 = require("./texture");
@@ -33,10 +33,12 @@ function getDrawMode(ctx, drawMode) {
33
33
  }
34
34
  exports.getDrawMode = getDrawMode;
35
35
  //
36
- var GraphicsRenderVariant = { 'colorBlended': '', 'colorWboit': '', 'pickObject': '', 'pickInstance': '', 'pickGroup': '', 'depth': '', 'markingDepth': '', 'markingMask': '' };
37
- var GraphicsRenderVariants = Object.keys(GraphicsRenderVariant);
38
- var ComputeRenderVariant = { 'compute': '' };
39
- var ComputeRenderVariants = Object.keys(ComputeRenderVariant);
36
+ var GraphicsRenderVariant = { colorBlended: '', colorWboit: '', pick: '', depth: '', marking: '' };
37
+ exports.GraphicsRenderVariants = Object.keys(GraphicsRenderVariant);
38
+ exports.GraphicsRenderVariantsBlended = exports.GraphicsRenderVariants.filter(function (v) { return v !== 'colorWboit'; });
39
+ exports.GraphicsRenderVariantsWboit = exports.GraphicsRenderVariants.filter(function (v) { return v !== 'colorBlended'; });
40
+ var ComputeRenderVariant = { compute: '' };
41
+ exports.ComputeRenderVariants = Object.keys(ComputeRenderVariant);
40
42
  function createProgramVariant(ctx, variant, defineValues, shaderCode, schema) {
41
43
  defineValues = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defineValues), { dRenderVariant: mol_util_1.ValueCell.create(variant) });
42
44
  if (schema.dRenderVariant === undefined) {
@@ -58,13 +60,13 @@ function resetValueChanges(valueChanges) {
58
60
  valueChanges.elements = false;
59
61
  valueChanges.textures = false;
60
62
  }
61
- function createGraphicsRenderItem(ctx, drawMode, shaderCode, schema, values, materialId) {
62
- return createRenderItem(ctx, drawMode, shaderCode, schema, values, materialId, GraphicsRenderVariants);
63
+ function createGraphicsRenderItem(ctx, drawMode, shaderCode, schema, values, materialId, variants) {
64
+ return createRenderItem(ctx, drawMode, shaderCode, schema, values, materialId, variants);
63
65
  }
64
66
  exports.createGraphicsRenderItem = createGraphicsRenderItem;
65
67
  function createComputeRenderItem(ctx, drawMode, shaderCode, schema, values, materialId) {
66
68
  if (materialId === void 0) { materialId = -1; }
67
- return createRenderItem(ctx, drawMode, shaderCode, schema, values, materialId, ComputeRenderVariants);
69
+ return createRenderItem(ctx, drawMode, shaderCode, schema, values, materialId, exports.ComputeRenderVariants);
68
70
  }
69
71
  exports.createComputeRenderItem = createComputeRenderItem;
70
72
  /**
@@ -51,8 +51,15 @@ function createResources(gl, state, stats, extensions) {
51
51
  return wrapCached(shaderCache.get({ type: type, source: source }));
52
52
  }
53
53
  var programCache = (0, reference_cache_1.createReferenceCache)(function (props) {
54
+ var _a;
54
55
  var array = [props.shaderCode.id];
55
- Object.keys(props.defineValues).forEach(function (k) { return array.push((0, util_1.hashString)(k), defineValueHash(props.defineValues[k].ref.value)); });
56
+ var variant = (((_a = props.defineValues.dRenderVariant) === null || _a === void 0 ? void 0 : _a.ref.value) || '');
57
+ Object.keys(props.defineValues).forEach(function (k) {
58
+ var _a, _b;
59
+ if (!((_b = (_a = props.shaderCode).ignoreDefine) === null || _b === void 0 ? void 0 : _b.call(_a, k, variant, props.defineValues))) {
60
+ array.push((0, util_1.hashString)(k), defineValueHash(props.defineValues[k].ref.value));
61
+ }
62
+ });
56
63
  return (0, util_1.hashFnv32a)(array).toString();
57
64
  }, function (props) { return wrap('program', (0, program_1.createProgram)(gl, state, extensions, getShader, props)); }, function (program) { program.destroy(); });
58
65
  return {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2017-2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author David Sehnal <david.sehnal@gmail.com>
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -70,6 +70,14 @@ declare namespace Quat {
70
70
  function fromArray(a: Quat, array: NumberArray, offset: number): Quat;
71
71
  function copy(out: Quat, a: Quat): Quat;
72
72
  function set(out: Quat, x: number, y: number, z: number, w: number): Quat;
73
+ /**
74
+ * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)
75
+ */
76
+ function exactEquals(a: Quat, b: Quat): boolean;
77
+ /**
78
+ * Returns whether or not the quaternions have approximately the same elements in the same position.
79
+ */
80
+ function equals(a: Quat, b: Quat): boolean;
73
81
  function add(out: Quat, a: Quat, b: Quat): Quat;
74
82
  function normalize(out: Quat, a: Quat): Quat;
75
83
  function rotationTo(out: Quat, a: Vec3, b: Vec3): Quat;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2017-2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
6
6
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -315,6 +315,25 @@ exports.Quat = Quat;
315
315
  return out;
316
316
  }
317
317
  Quat.set = set;
318
+ /**
319
+ * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)
320
+ */
321
+ function exactEquals(a, b) {
322
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];
323
+ }
324
+ Quat.exactEquals = exactEquals;
325
+ /**
326
+ * Returns whether or not the quaternions have approximately the same elements in the same position.
327
+ */
328
+ function equals(a, b) {
329
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];
330
+ var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
331
+ return (Math.abs(a0 - b0) <= common_1.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&
332
+ Math.abs(a1 - b1) <= common_1.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&
333
+ Math.abs(a2 - b2) <= common_1.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&
334
+ Math.abs(a3 - b3) <= common_1.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)));
335
+ }
336
+ Quat.equals = equals;
318
337
  function add(out, a, b) {
319
338
  out[0] = a[0] + b[0];
320
339
  out[1] = a[1] + b[1];
@@ -39,6 +39,16 @@ export declare const PlyShapeParams: {
39
39
  roughness: number;
40
40
  bumpiness: number;
41
41
  }>>;
42
+ clip: PD.Group<PD.Normalize<{
43
+ variant: import("../../mol-util/clip").Clip.Variant;
44
+ objects: PD.Normalize<{
45
+ type: any;
46
+ invert: any;
47
+ position: any;
48
+ rotation: any;
49
+ scale: any;
50
+ }>[];
51
+ }>>;
42
52
  };
43
53
  export declare type PlyShapeParams = typeof PlyShapeParams;
44
54
  export declare function shapeFromPly(source: PlyFile, params?: {}): Task<ShapeProvider<PlyFile, Mesh, {
@@ -70,4 +80,14 @@ export declare function shapeFromPly(source: PlyFile, params?: {}): Task<ShapePr
70
80
  roughness: number;
71
81
  bumpiness: number;
72
82
  }>>;
83
+ clip: PD.Group<PD.Normalize<{
84
+ variant: import("../../mol-util/clip").Clip.Variant;
85
+ objects: PD.Normalize<{
86
+ type: any;
87
+ invert: any;
88
+ position: any;
89
+ rotation: any;
90
+ scale: any;
91
+ }>[];
92
+ }>>;
73
93
  }>>;
@@ -34,6 +34,16 @@ export declare const InteractionsInterUnitParams: {
34
34
  roughness: number;
35
35
  bumpiness: number;
36
36
  }>>;
37
+ clip: PD.Group<PD.Normalize<{
38
+ variant: import("../../../mol-util/clip").Clip.Variant;
39
+ objects: PD.Normalize<{
40
+ type: any;
41
+ invert: any;
42
+ position: any;
43
+ rotation: any;
44
+ scale: any;
45
+ }>[];
46
+ }>>;
37
47
  };
38
48
  export declare type InteractionsInterUnitParams = typeof InteractionsInterUnitParams;
39
49
  export declare function InteractionsInterUnitVisual(materialId: number): ComplexVisual<InteractionsInterUnitParams>;
@@ -34,6 +34,16 @@ export declare const InteractionsIntraUnitParams: {
34
34
  roughness: number;
35
35
  bumpiness: number;
36
36
  }>>;
37
+ clip: PD.Group<PD.Normalize<{
38
+ variant: import("../../../mol-util/clip").Clip.Variant;
39
+ objects: PD.Normalize<{
40
+ type: any;
41
+ invert: any;
42
+ position: any;
43
+ rotation: any;
44
+ scale: any;
45
+ }>[];
46
+ }>>;
37
47
  };
38
48
  export declare type InteractionsIntraUnitParams = typeof InteractionsIntraUnitParams;
39
49
  export declare function InteractionsIntraUnitVisual(materialId: number): UnitsVisual<InteractionsIntraUnitParams>;
@@ -38,6 +38,16 @@ export declare const InteractionsParams: {
38
38
  roughness: number;
39
39
  bumpiness: number;
40
40
  }>>;
41
+ clip: PD.Group<PD.Normalize<{
42
+ variant: import("../../../mol-util/clip").Clip.Variant;
43
+ objects: PD.Normalize<{
44
+ type: any;
45
+ invert: any;
46
+ position: any;
47
+ rotation: any;
48
+ scale: any;
49
+ }>[];
50
+ }>>;
41
51
  };
42
52
  export declare type InteractionsParams = typeof InteractionsParams;
43
53
  export declare function getInteractionParams(ctx: ThemeRegistryContext, structure: Structure): {
@@ -70,6 +80,16 @@ export declare function getInteractionParams(ctx: ThemeRegistryContext, structur
70
80
  roughness: number;
71
81
  bumpiness: number;
72
82
  }>>;
83
+ clip: PD.Group<PD.Normalize<{
84
+ variant: import("../../../mol-util/clip").Clip.Variant;
85
+ objects: PD.Normalize<{
86
+ type: any;
87
+ invert: any;
88
+ position: any;
89
+ rotation: any;
90
+ scale: any;
91
+ }>[];
92
+ }>>;
73
93
  };
74
94
  export declare type InteractionRepresentation = StructureRepresentation<InteractionsParams>;
75
95
  export declare function InteractionRepresentation(ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, InteractionsParams>): InteractionRepresentation;
@@ -103,4 +123,14 @@ export declare const InteractionsRepresentationProvider: StructureRepresentation
103
123
  roughness: number;
104
124
  bumpiness: number;
105
125
  }>>;
126
+ clip: PD.Group<PD.Normalize<{
127
+ variant: import("../../../mol-util/clip").Clip.Variant;
128
+ objects: PD.Normalize<{
129
+ type: any;
130
+ invert: any;
131
+ position: any;
132
+ rotation: any;
133
+ scale: any;
134
+ }>[];
135
+ }>>;
106
136
  }, "interactions">;
@@ -39,6 +39,16 @@ export declare const CrossLinkRestraintCylinderParams: {
39
39
  roughness: number;
40
40
  bumpiness: number;
41
41
  }>>;
42
+ clip: PD.Group<PD.Normalize<{
43
+ variant: import("../../../mol-util/clip").Clip.Variant;
44
+ objects: PD.Normalize<{
45
+ type: any;
46
+ invert: any;
47
+ position: any;
48
+ rotation: any;
49
+ scale: any;
50
+ }>[];
51
+ }>>;
42
52
  };
43
53
  export declare type CrossLinkRestraintCylinderParams = typeof CrossLinkRestraintCylinderParams;
44
54
  export declare function CrossLinkRestraintVisual(materialId: number): ComplexVisual<CrossLinkRestraintCylinderParams>;
@@ -71,6 +81,16 @@ export declare const CrossLinkRestraintParams: {
71
81
  roughness: number;
72
82
  bumpiness: number;
73
83
  }>>;
84
+ clip: PD.Group<PD.Normalize<{
85
+ variant: import("../../../mol-util/clip").Clip.Variant;
86
+ objects: PD.Normalize<{
87
+ type: any;
88
+ invert: any;
89
+ position: any;
90
+ rotation: any;
91
+ scale: any;
92
+ }>[];
93
+ }>>;
74
94
  };
75
95
  export declare type CrossLinkRestraintParams = typeof CrossLinkRestraintParams;
76
96
  export declare function getCrossLinkRestraintParams(ctx: ThemeRegistryContext, structure: Structure): {
@@ -102,6 +122,16 @@ export declare function getCrossLinkRestraintParams(ctx: ThemeRegistryContext, s
102
122
  roughness: number;
103
123
  bumpiness: number;
104
124
  }>>;
125
+ clip: PD.Group<PD.Normalize<{
126
+ variant: import("../../../mol-util/clip").Clip.Variant;
127
+ objects: PD.Normalize<{
128
+ type: any;
129
+ invert: any;
130
+ position: any;
131
+ rotation: any;
132
+ scale: any;
133
+ }>[];
134
+ }>>;
105
135
  };
106
136
  export declare type CrossLinkRestraintRepresentation = StructureRepresentation<CrossLinkRestraintParams>;
107
137
  export declare function CrossLinkRestraintRepresentation(ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, CrossLinkRestraintParams>): CrossLinkRestraintRepresentation;
@@ -134,4 +164,14 @@ export declare const CrossLinkRestraintRepresentationProvider: StructureRepresen
134
164
  roughness: number;
135
165
  bumpiness: number;
136
166
  }>>;
167
+ clip: PD.Group<PD.Normalize<{
168
+ variant: import("../../../mol-util/clip").Clip.Variant;
169
+ objects: PD.Normalize<{
170
+ type: any;
171
+ invert: any;
172
+ position: any;
173
+ rotation: any;
174
+ scale: any;
175
+ }>[];
176
+ }>>;
137
177
  }, CrossLinkRestraint.Tag>;
@@ -7,6 +7,7 @@
7
7
  import { PluginBehavior } from '../../../behavior';
8
8
  import { ParamDefinition as PD } from '../../../../mol-util/param-definition';
9
9
  import { PluginContext } from '../../../context';
10
+ import { Clip } from '../../../../mol-util/clip';
10
11
  declare const StructureFocusRepresentationParams: (plugin: PluginContext) => {
11
12
  expandRadius: PD.Numeric;
12
13
  targetParams: PD.Group<PD.Normalize<{
@@ -26,6 +27,16 @@ declare const StructureFocusRepresentationParams: (plugin: PluginContext) => {
26
27
  roughness: number;
27
28
  bumpiness: number;
28
29
  }>>;
30
+ clip: PD.Group<PD.Normalize<{
31
+ variant: Clip.Variant;
32
+ objects: PD.Normalize<{
33
+ type: any;
34
+ invert: any;
35
+ position: any;
36
+ rotation: any;
37
+ scale: any;
38
+ }>[];
39
+ }>>;
29
40
  };
30
41
  declare type StructureFocusRepresentationProps = PD.ValuesFor<ReturnType<typeof StructureFocusRepresentationParams>>;
31
42
  export declare enum StructureFocusRepresentationTags {
@@ -20,6 +20,7 @@ var size_1 = require("../../../../mol-theme/size");
20
20
  var param_definition_1 = require("../../../../mol-util/param-definition");
21
21
  var commands_1 = require("../../../commands");
22
22
  var material_1 = require("../../../../mol-util/material");
23
+ var clip_1 = require("../../../../mol-util/clip");
23
24
  var StructureFocusRepresentationParams = function (plugin) {
24
25
  var reprParams = transforms_1.StateTransforms.Representation.StructureRepresentation3D.definition.params(void 0, plugin);
25
26
  return {
@@ -44,6 +45,7 @@ var StructureFocusRepresentationParams = function (plugin) {
44
45
  excludeTargetFromSurroundings: param_definition_1.ParamDefinition.Boolean(false, { label: 'Exclude Target', description: 'Exclude the focus "target" from the surroudings component.' }),
45
46
  ignoreHydrogens: param_definition_1.ParamDefinition.Boolean(false),
46
47
  material: material_1.Material.getParam(),
48
+ clip: param_definition_1.ParamDefinition.Group(clip_1.Clip.Params),
47
49
  };
48
50
  };
49
51
  var FocusComponents = ['target', 'surroundings', 'interactions'];
@@ -71,7 +73,7 @@ var StructureFocusRepresentationBehavior = /** @class */ (function (_super) {
71
73
  StructureFocusRepresentationBehavior.prototype.getReprParams = function (reprParams) {
72
74
  return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this.params.targetParams), { type: {
73
75
  name: reprParams.type.name,
74
- params: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, reprParams.type.params), { ignoreHydrogens: this.params.ignoreHydrogens, material: this.params.material })
76
+ params: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, reprParams.type.params), { ignoreHydrogens: this.params.ignoreHydrogens, material: this.params.material, clip: this.params.clip })
75
77
  } });
76
78
  };
77
79
  StructureFocusRepresentationBehavior.prototype.ensureShape = function (cell) {
@@ -272,10 +272,6 @@ export declare const PluginCommands: {
272
272
  }>[];
273
273
  ambientColor: import("../mol-util/color").Color;
274
274
  ambientIntensity: number;
275
- clip: import("../mol-util/param-definition").ParamDefinition.Normalize<{
276
- variant: any;
277
- objects: any;
278
- }>;
279
275
  }>>;
280
276
  trackball: import("../mol-util/param-definition").ParamDefinition.Group<import("../mol-util/param-definition").ParamDefinition.Normalize<{
281
277
  noScroll: boolean;
@@ -334,6 +330,7 @@ export declare const PluginCommands: {
334
330
  bumpAmplitude: any;
335
331
  quality: any;
336
332
  material: any;
333
+ clip: any;
337
334
  }>, "on">;
338
335
  }>>;
339
336
  }>> | ((old: Canvas3DProps) => Partial<Canvas3DProps> | void);
@@ -70,6 +70,7 @@ var DefaultPluginSpec = function () { return ({
70
70
  PluginSpec.Action(transforms_1.StateTransforms.Representation.UnwindStructureAssemblyRepresentation3D),
71
71
  PluginSpec.Action(transforms_1.StateTransforms.Representation.OverpaintStructureRepresentation3DFromScript),
72
72
  PluginSpec.Action(transforms_1.StateTransforms.Representation.TransparencyStructureRepresentation3DFromScript),
73
+ PluginSpec.Action(transforms_1.StateTransforms.Representation.ClippingStructureRepresentation3DFromScript),
73
74
  PluginSpec.Action(transforms_1.StateTransforms.Representation.SubstanceStructureRepresentation3DFromScript),
74
75
  PluginSpec.Action(volume_1.AssignColorVolume),
75
76
  PluginSpec.Action(transforms_1.StateTransforms.Volume.VolumeFromCcp4),
@@ -45,6 +45,10 @@ declare class ViewportScreenshotHelper extends PluginComponent {
45
45
  roughness: number;
46
46
  bumpiness: number;
47
47
  }>;
48
+ clip: PD.Normalize<{
49
+ variant: any;
50
+ objects: any;
51
+ }>;
48
52
  }>, "on">>;
49
53
  };
50
54
  readonly behaviors: {
@@ -73,6 +77,10 @@ declare class ViewportScreenshotHelper extends PluginComponent {
73
77
  roughness: number;
74
78
  bumpiness: number;
75
79
  }>;
80
+ clip: PD.Normalize<{
81
+ variant: any;
82
+ objects: any;
83
+ }>;
76
84
  }>, "on">>;
77
85
  }>>;
78
86
  cropParams: import("rxjs").BehaviorSubject<{
@@ -109,6 +117,10 @@ declare class ViewportScreenshotHelper extends PluginComponent {
109
117
  roughness: number;
110
118
  bumpiness: number;
111
119
  }>;
120
+ clip: PD.Normalize<{
121
+ variant: any;
122
+ objects: any;
123
+ }>;
112
124
  }>, "on">>;
113
125
  }>;
114
126
  get cropParams(): {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author David Sehnal <david.sehnal@gmail.com>
5
+ * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
6
  */
6
7
  import { PluginContext } from '../../../mol-plugin/context';
7
8
  import { StateTransformer } from '../../../mol-state';
@@ -13,6 +14,7 @@ import { StatefulPluginComponent } from '../../component';
13
14
  import { StructureSelectionQuery } from '../../helpers/structure-selection-query';
14
15
  import { StructureRepresentation3D } from '../../transforms/representation';
15
16
  import { StructureHierarchyRef, StructureComponentRef, StructureRef, StructureRepresentationRef } from './hierarchy-state';
17
+ import { Clip } from '../../../mol-util/clip';
16
18
  export { StructureComponentManager };
17
19
  interface StructureComponentManagerState {
18
20
  options: StructureComponentManager.Options;
@@ -63,6 +65,16 @@ declare namespace StructureComponentManager {
63
65
  roughness: number;
64
66
  bumpiness: number;
65
67
  }>>;
68
+ clipObjects: PD.Group<PD.Normalize<{
69
+ variant: Clip.Variant;
70
+ objects: PD.Normalize<{
71
+ type: any;
72
+ invert: any;
73
+ position: any;
74
+ rotation: any;
75
+ scale: any;
76
+ }>[];
77
+ }>>;
66
78
  interactions: PD.Group<PD.Normalize<{
67
79
  providers: PD.Normalize<{
68
80
  ionic: any;