molstar 3.5.0 → 3.7.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 (359) hide show
  1. package/build/viewer/index.html +1 -1
  2. package/build/viewer/molstar.css +1 -1
  3. package/build/viewer/molstar.js +1 -1
  4. package/build/viewer/molstar.js.LICENSE.txt +12 -14
  5. package/lib/apps/docking-viewer/index.js +1 -1
  6. package/lib/apps/viewer/app.js +1 -1
  7. package/lib/apps/viewer/index.html +1 -1
  8. package/lib/cli/chem-comp-dict/util.d.ts +20 -20
  9. package/lib/cli/cifschema/util/cif-dic.d.ts +1 -1
  10. package/lib/cli/cifschema/util/cif-dic.js +7 -5
  11. package/lib/cli/cifschema/util/generate.d.ts +1 -1
  12. package/lib/cli/cifschema/util/generate.js +12 -3
  13. package/lib/cli/cifschema/util/schema.d.ts +3 -3
  14. package/lib/cli/cifschema/util/schema.js +1 -1
  15. package/lib/commonjs/apps/docking-viewer/index.js +2 -2
  16. package/lib/commonjs/apps/viewer/app.js +2 -2
  17. package/lib/commonjs/cli/chem-comp-dict/util.d.ts +20 -20
  18. package/lib/commonjs/cli/cifschema/util/cif-dic.d.ts +1 -1
  19. package/lib/commonjs/cli/cifschema/util/cif-dic.js +7 -5
  20. package/lib/commonjs/cli/cifschema/util/generate.d.ts +1 -1
  21. package/lib/commonjs/cli/cifschema/util/generate.js +12 -3
  22. package/lib/commonjs/cli/cifschema/util/schema.d.ts +3 -3
  23. package/lib/commonjs/cli/cifschema/util/schema.js +1 -1
  24. package/lib/commonjs/examples/alpha-orbitals/index.js +22 -17
  25. package/lib/commonjs/examples/basic-wrapper/index.js +2 -2
  26. package/lib/commonjs/examples/lighting/index.js +2 -2
  27. package/lib/commonjs/examples/proteopedia-wrapper/index.js +2 -2
  28. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
  29. package/lib/commonjs/extensions/anvil/representation.d.ts +4 -0
  30. package/lib/commonjs/extensions/cellpack/representation.d.ts +1 -0
  31. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  32. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -0
  33. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -0
  34. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +5 -0
  35. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -0
  36. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  37. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  38. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  39. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  40. package/lib/commonjs/mol-data/db/column.d.ts +10 -3
  41. package/lib/commonjs/mol-data/db/column.js +39 -17
  42. package/lib/commonjs/mol-geo/geometry/color-data.d.ts +2 -8
  43. package/lib/commonjs/mol-geo/geometry/color-data.js +16 -3
  44. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +4 -2
  45. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +4 -3
  46. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  47. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +4 -3
  48. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +2 -1
  49. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +4 -3
  50. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +2 -1
  51. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +16 -5
  52. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +2 -1
  53. package/lib/commonjs/mol-gl/renderable/cylinders.js +2 -2
  54. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +2 -1
  55. package/lib/commonjs/mol-gl/renderable/mesh.js +2 -2
  56. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +2 -1
  57. package/lib/commonjs/mol-gl/renderable/spheres.js +2 -2
  58. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +2 -1
  59. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +2 -2
  60. package/lib/commonjs/mol-gl/renderer.js +54 -23
  61. package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.d.ts +1 -1
  62. package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.js +1 -1
  63. package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.d.ts +1 -1
  64. package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.js +1 -1
  65. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  66. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  67. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.d.ts +2 -2
  68. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +2 -2
  69. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  70. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  71. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +2 -2
  72. package/lib/commonjs/mol-gl/shader/image.frag.js +2 -2
  73. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +2 -2
  74. package/lib/commonjs/mol-gl/shader/lines.frag.js +2 -2
  75. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +2 -2
  76. package/lib/commonjs/mol-gl/shader/points.frag.js +2 -2
  77. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +2 -2
  78. package/lib/commonjs/mol-gl/shader/text.frag.js +2 -2
  79. package/lib/commonjs/mol-gl/webgl/buffer.d.ts +2 -2
  80. package/lib/commonjs/mol-gl/webgl/buffer.js +12 -12
  81. package/lib/commonjs/mol-gl/webgl/program.d.ts +1 -1
  82. package/lib/commonjs/mol-gl/webgl/program.js +10 -4
  83. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +8 -8
  84. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +12 -11
  85. package/lib/commonjs/mol-io/reader/cif/schema/ccd-extras.d.ts +1 -1
  86. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +12 -12
  87. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +13 -12
  88. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.d.ts +5 -5
  89. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.js +2 -2
  90. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +30 -26
  91. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +44 -39
  92. package/lib/commonjs/mol-io/reader/cif/schema.d.ts +1 -1
  93. package/lib/commonjs/mol-io/reader/cif/schema.js +22 -2
  94. package/lib/commonjs/mol-io/writer/ligand-encoder.d.ts +4 -2
  95. package/lib/commonjs/mol-io/writer/ligand-encoder.js +9 -4
  96. package/lib/commonjs/mol-io/writer/mol/encoder.js +17 -5
  97. package/lib/commonjs/mol-io/writer/mol2/encoder.js +17 -4
  98. package/lib/commonjs/mol-model/structure/model/model.js +14 -6
  99. package/lib/commonjs/mol-model/structure/model/properties/common.js +1 -1
  100. package/lib/commonjs/mol-model/structure/model/types.d.ts +19 -17
  101. package/lib/commonjs/mol-model/structure/model/types.js +30 -31
  102. package/lib/commonjs/mol-model/structure/query/queries/generators.js +1 -1
  103. package/lib/commonjs/mol-model/structure/structure/properties.d.ts +1 -1
  104. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +2 -4
  105. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -3
  106. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +3 -0
  107. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +2 -0
  108. package/lib/commonjs/mol-model-formats/structure/basic/entities.js +1 -1
  109. package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +2 -2
  110. package/lib/commonjs/mol-model-formats/structure/common/component.d.ts +3 -3
  111. package/lib/commonjs/mol-model-formats/structure/common/component.js +46 -46
  112. package/lib/commonjs/mol-model-formats/structure/pdb/atom-site.d.ts +2 -2
  113. package/lib/commonjs/mol-model-formats/structure/pdb/atom-site.js +72 -7
  114. package/lib/commonjs/mol-model-formats/structure/pdb/secondary-structure.js +11 -11
  115. package/lib/commonjs/mol-model-formats/structure/pdb/to-cif.js +7 -2
  116. package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +1 -1
  117. package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +1 -1
  118. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  119. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  120. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +3 -0
  121. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  122. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/util.js +3 -2
  123. package/lib/commonjs/mol-plugin/commands.d.ts +1 -0
  124. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  125. package/lib/commonjs/mol-plugin-state/actions/structure.d.ts +6 -6
  126. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  127. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +1 -1
  128. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +6 -0
  129. package/lib/commonjs/mol-plugin-ui/base.d.ts +3 -1
  130. package/lib/commonjs/mol-plugin-ui/controls/color.d.ts +1 -1
  131. package/lib/commonjs/mol-plugin-ui/controls/common.d.ts +2 -0
  132. package/lib/commonjs/mol-plugin-ui/hooks/use-behavior.d.ts +1 -1
  133. package/lib/commonjs/mol-plugin-ui/hooks/use-behavior.js +21 -7
  134. package/lib/commonjs/mol-plugin-ui/plugin.d.ts +2 -0
  135. package/lib/commonjs/mol-plugin-ui/plugin.js +2 -2
  136. package/lib/commonjs/mol-plugin-ui/react18.d.ts +11 -0
  137. package/lib/commonjs/mol-plugin-ui/react18.js +38 -0
  138. package/lib/commonjs/mol-plugin-ui/spec.d.ts +1 -0
  139. package/lib/commonjs/mol-plugin-ui/state/common.js +6 -7
  140. package/lib/commonjs/mol-plugin-ui/structure/focus.d.ts +1 -1
  141. package/lib/commonjs/mol-plugin-ui/structure/focus.js +2 -2
  142. package/lib/commonjs/mol-plugin-ui/task.d.ts +2 -21
  143. package/lib/commonjs/mol-plugin-ui/task.js +39 -43
  144. package/lib/commonjs/mol-plugin-ui/viewport/help.d.ts +4 -1
  145. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +1 -0
  146. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +1 -0
  147. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -0
  148. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +1 -0
  149. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +1 -0
  150. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +3 -0
  151. package/lib/commonjs/mol-repr/structure/params.d.ts +4 -0
  152. package/lib/commonjs/mol-repr/structure/registry.d.ts +10 -0
  153. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
  154. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  155. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  156. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +3 -0
  157. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  158. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  159. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  160. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -0
  161. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -0
  162. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -0
  163. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +4 -0
  164. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  165. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  166. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  167. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  168. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  169. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +2 -0
  170. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  171. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  172. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  173. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  174. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  175. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  176. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  177. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  178. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  179. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  180. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  181. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  182. package/lib/commonjs/mol-repr/util.d.ts +2 -1
  183. package/lib/commonjs/mol-repr/util.js +2 -2
  184. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +5 -0
  185. package/lib/commonjs/mol-repr/volume/registry.d.ts +1 -0
  186. package/lib/commonjs/mol-theme/color.d.ts +9 -2
  187. package/lib/commonjs/mol-theme/color.js +1 -1
  188. package/lib/commonjs/servers/model/server/query.js +1 -3
  189. package/lib/commonjs/servers/model/version.d.ts +1 -1
  190. package/lib/commonjs/servers/model/version.js +1 -1
  191. package/lib/examples/alpha-orbitals/index.js +21 -16
  192. package/lib/examples/basic-wrapper/index.js +1 -1
  193. package/lib/examples/lighting/index.js +1 -1
  194. package/lib/examples/proteopedia-wrapper/index.js +1 -1
  195. package/lib/extensions/anvil/behavior.d.ts +1 -0
  196. package/lib/extensions/anvil/representation.d.ts +4 -0
  197. package/lib/extensions/cellpack/representation.d.ts +1 -0
  198. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  199. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -0
  200. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -0
  201. package/lib/extensions/rcsb/validation-report/representation.d.ts +5 -0
  202. package/lib/mol-canvas3d/canvas3d.d.ts +2 -0
  203. package/lib/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  204. package/lib/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  205. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  206. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  207. package/lib/mol-data/db/column.d.ts +10 -3
  208. package/lib/mol-data/db/column.js +39 -18
  209. package/lib/mol-geo/geometry/color-data.d.ts +2 -8
  210. package/lib/mol-geo/geometry/color-data.js +16 -3
  211. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +4 -2
  212. package/lib/mol-geo/geometry/cylinders/cylinders.js +4 -3
  213. package/lib/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  214. package/lib/mol-geo/geometry/mesh/mesh.js +4 -3
  215. package/lib/mol-geo/geometry/spheres/spheres.d.ts +2 -1
  216. package/lib/mol-geo/geometry/spheres/spheres.js +4 -3
  217. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +2 -1
  218. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +16 -5
  219. package/lib/mol-gl/renderable/cylinders.d.ts +2 -1
  220. package/lib/mol-gl/renderable/cylinders.js +2 -2
  221. package/lib/mol-gl/renderable/mesh.d.ts +2 -1
  222. package/lib/mol-gl/renderable/mesh.js +2 -2
  223. package/lib/mol-gl/renderable/spheres.d.ts +2 -1
  224. package/lib/mol-gl/renderable/spheres.js +2 -2
  225. package/lib/mol-gl/renderable/texture-mesh.d.ts +2 -1
  226. package/lib/mol-gl/renderable/texture-mesh.js +2 -2
  227. package/lib/mol-gl/renderer.js +54 -23
  228. package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.d.ts +1 -1
  229. package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.js +1 -1
  230. package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.d.ts +1 -1
  231. package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.js +1 -1
  232. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  233. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  234. package/lib/mol-gl/shader/chunks/wboit-write.glsl.d.ts +2 -2
  235. package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +2 -2
  236. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  237. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  238. package/lib/mol-gl/shader/image.frag.d.ts +2 -2
  239. package/lib/mol-gl/shader/image.frag.js +2 -2
  240. package/lib/mol-gl/shader/lines.frag.d.ts +2 -2
  241. package/lib/mol-gl/shader/lines.frag.js +2 -2
  242. package/lib/mol-gl/shader/points.frag.d.ts +2 -2
  243. package/lib/mol-gl/shader/points.frag.js +2 -2
  244. package/lib/mol-gl/shader/text.frag.d.ts +2 -2
  245. package/lib/mol-gl/shader/text.frag.js +2 -2
  246. package/lib/mol-gl/webgl/buffer.d.ts +2 -2
  247. package/lib/mol-gl/webgl/buffer.js +12 -12
  248. package/lib/mol-gl/webgl/program.d.ts +1 -1
  249. package/lib/mol-gl/webgl/program.js +10 -4
  250. package/lib/mol-io/reader/cif/schema/bird.d.ts +8 -8
  251. package/lib/mol-io/reader/cif/schema/bird.js +12 -11
  252. package/lib/mol-io/reader/cif/schema/ccd-extras.d.ts +1 -1
  253. package/lib/mol-io/reader/cif/schema/ccd.d.ts +12 -12
  254. package/lib/mol-io/reader/cif/schema/ccd.js +13 -12
  255. package/lib/mol-io/reader/cif/schema/mmcif-extras.d.ts +5 -5
  256. package/lib/mol-io/reader/cif/schema/mmcif-extras.js +2 -2
  257. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +30 -26
  258. package/lib/mol-io/reader/cif/schema/mmcif.js +44 -39
  259. package/lib/mol-io/reader/cif/schema.d.ts +1 -1
  260. package/lib/mol-io/reader/cif/schema.js +22 -2
  261. package/lib/mol-io/writer/ligand-encoder.d.ts +4 -2
  262. package/lib/mol-io/writer/ligand-encoder.js +9 -4
  263. package/lib/mol-io/writer/mol/encoder.js +17 -5
  264. package/lib/mol-io/writer/mol2/encoder.js +17 -4
  265. package/lib/mol-model/structure/model/model.js +14 -6
  266. package/lib/mol-model/structure/model/properties/common.js +1 -1
  267. package/lib/mol-model/structure/model/types.d.ts +19 -17
  268. package/lib/mol-model/structure/model/types.js +30 -31
  269. package/lib/mol-model/structure/query/queries/generators.js +1 -1
  270. package/lib/mol-model/structure/structure/properties.d.ts +1 -1
  271. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +2 -4
  272. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -3
  273. package/lib/mol-model/structure/structure/unit/rings.js +3 -0
  274. package/lib/mol-model-formats/shape/ply.d.ts +2 -0
  275. package/lib/mol-model-formats/structure/basic/entities.js +1 -1
  276. package/lib/mol-model-formats/structure/basic/schema.d.ts +2 -2
  277. package/lib/mol-model-formats/structure/common/component.d.ts +3 -3
  278. package/lib/mol-model-formats/structure/common/component.js +46 -46
  279. package/lib/mol-model-formats/structure/pdb/atom-site.d.ts +2 -2
  280. package/lib/mol-model-formats/structure/pdb/atom-site.js +72 -7
  281. package/lib/mol-model-formats/structure/pdb/secondary-structure.js +11 -11
  282. package/lib/mol-model-formats/structure/pdb/to-cif.js +7 -2
  283. package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +1 -1
  284. package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +1 -1
  285. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  286. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  287. package/lib/mol-model-props/computed/representations/interactions.d.ts +3 -0
  288. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  289. package/lib/mol-plugin/behavior/dynamic/volume-streaming/util.js +3 -2
  290. package/lib/mol-plugin/commands.d.ts +1 -0
  291. package/lib/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  292. package/lib/mol-plugin/version.js +2 -2
  293. package/lib/mol-plugin-state/actions/structure.d.ts +6 -6
  294. package/lib/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  295. package/lib/mol-plugin-state/helpers/structure-selection-query.js +1 -1
  296. package/lib/mol-plugin-state/transforms/representation.d.ts +6 -0
  297. package/lib/mol-plugin-ui/base.d.ts +3 -1
  298. package/lib/mol-plugin-ui/controls/color.d.ts +1 -1
  299. package/lib/mol-plugin-ui/controls/common.d.ts +2 -0
  300. package/lib/mol-plugin-ui/hooks/use-behavior.d.ts +1 -1
  301. package/lib/mol-plugin-ui/hooks/use-behavior.js +20 -7
  302. package/lib/mol-plugin-ui/plugin.d.ts +2 -0
  303. package/lib/mol-plugin-ui/plugin.js +2 -2
  304. package/lib/mol-plugin-ui/react18.d.ts +11 -0
  305. package/lib/mol-plugin-ui/react18.js +34 -0
  306. package/lib/mol-plugin-ui/spec.d.ts +1 -0
  307. package/lib/mol-plugin-ui/state/common.js +7 -8
  308. package/lib/mol-plugin-ui/structure/focus.d.ts +1 -1
  309. package/lib/mol-plugin-ui/structure/focus.js +2 -2
  310. package/lib/mol-plugin-ui/task.d.ts +2 -21
  311. package/lib/mol-plugin-ui/task.js +40 -46
  312. package/lib/mol-plugin-ui/viewport/help.d.ts +4 -1
  313. package/lib/mol-repr/shape/loci/angle.d.ts +1 -0
  314. package/lib/mol-repr/shape/loci/dihedral.d.ts +1 -0
  315. package/lib/mol-repr/shape/loci/orientation.d.ts +1 -0
  316. package/lib/mol-repr/shape/loci/plane.d.ts +1 -0
  317. package/lib/mol-repr/shape/model/unitcell.d.ts +1 -0
  318. package/lib/mol-repr/structure/complex-visual.d.ts +3 -0
  319. package/lib/mol-repr/structure/params.d.ts +4 -0
  320. package/lib/mol-repr/structure/registry.d.ts +10 -0
  321. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
  322. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  323. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  324. package/lib/mol-repr/structure/representation/cartoon.d.ts +3 -0
  325. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  326. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  327. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  328. package/lib/mol-repr/structure/representation/orientation.d.ts +3 -0
  329. package/lib/mol-repr/structure/representation/putty.d.ts +3 -0
  330. package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -0
  331. package/lib/mol-repr/structure/units-visual.d.ts +4 -0
  332. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  333. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  334. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  335. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  336. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  337. package/lib/mol-repr/structure/visual/element-sphere.d.ts +2 -0
  338. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  339. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
  340. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  341. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  342. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  343. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  344. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  345. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  346. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  347. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  348. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  349. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  350. package/lib/mol-repr/util.d.ts +2 -1
  351. package/lib/mol-repr/util.js +2 -2
  352. package/lib/mol-repr/volume/isosurface.d.ts +5 -0
  353. package/lib/mol-repr/volume/registry.d.ts +1 -0
  354. package/lib/mol-theme/color.d.ts +9 -2
  355. package/lib/mol-theme/color.js +1 -1
  356. package/lib/servers/model/server/query.js +1 -3
  357. package/lib/servers/model/version.d.ts +1 -1
  358. package/lib/servers/model/version.js +1 -1
  359. package/package.json +21 -19
@@ -33,6 +33,7 @@ export declare const HelperParams: {
33
33
  flipSided: any;
34
34
  flatShaded: any;
35
35
  xrayShaded: any;
36
+ transparentBackfaces: any;
36
37
  bumpFrequency: any;
37
38
  bumpAmplitude: any;
38
39
  quality: any;
@@ -65,6 +66,7 @@ export declare const DefaultHelperProps: PD.Values<{
65
66
  flipSided: any;
66
67
  flatShaded: any;
67
68
  xrayShaded: any;
69
+ transparentBackfaces: any;
68
70
  bumpFrequency: any;
69
71
  bumpAmplitude: any;
70
72
  quality: any;
@@ -60,6 +60,7 @@ export declare const ImageParams: {
60
60
  flipSided: any;
61
61
  flatShaded: any;
62
62
  xrayShaded: any;
63
+ transparentBackfaces: any;
63
64
  bumpFrequency: any;
64
65
  bumpAmplitude: any;
65
66
  quality: any;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2022 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>
@@ -28,6 +28,7 @@ declare namespace Column {
28
28
  export type Str = {
29
29
  '@type': 'str';
30
30
  T: string;
31
+ transform?: 'uppercase' | 'lowercase';
31
32
  } & Base<'str'>;
32
33
  export type Int = {
33
34
  '@type': 'int';
@@ -50,6 +51,7 @@ declare namespace Column {
50
51
  export type Aliased<T> = {
51
52
  '@type': 'aliased';
52
53
  T: T;
54
+ transform?: T extends string ? 'uppercase' | 'lowercase' : never;
53
55
  } & Base<T extends string ? 'str' : 'int'>;
54
56
  export type List<T extends number | string> = {
55
57
  '@type': 'list';
@@ -58,16 +60,21 @@ declare namespace Column {
58
60
  itemParse: (x: string) => T;
59
61
  } & Base<'list'>;
60
62
  export const str: Str;
63
+ export const ustr: Str;
64
+ export const lstr: Str;
61
65
  export const int: Int;
62
66
  export const coord: Coordinate;
63
67
  export const float: Float;
64
- export function Str(defaultValue?: string): Str;
68
+ export function Str(options?: {
69
+ defaultValue?: string;
70
+ transform?: 'uppercase' | 'lowercase';
71
+ }): Str;
65
72
  export function Int(defaultValue?: number): Int;
66
73
  export function Float(defaultValue?: number): Float;
67
74
  export function Tensor(space: Tensors.Space, baseType?: Int | Float): Tensor;
68
75
  export function Vector(dim: number, baseType?: Int | Float): Tensor;
69
76
  export function Matrix(rows: number, cols: number, baseType?: Int | Float): Tensor;
70
- export function Aliased<T>(t: Str | Int, defaultValue?: T): Aliased<T>;
77
+ export function Aliased<T>(t: Str | Int): Aliased<T>;
71
78
  export function List<T extends number | string>(separator: string, itemParse: (x: string) => T, defaultValue?: T[]): List<T>;
72
79
  export {};
73
80
  }
@@ -1,10 +1,9 @@
1
1
  /**
2
- * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2022 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>
6
6
  */
7
- import { __assign } from "tslib";
8
7
  import * as ColumnHelpers from './column-helpers';
9
8
  import { Tensor as Tensors } from '../../mol-math/linear-algebra';
10
9
  import { parseInt as fastParseInt, parseFloat as fastParseFloat } from '../../mol-io/reader/common/text/number-parser';
@@ -14,13 +13,12 @@ var Column;
14
13
  (function (Schema) {
15
14
  // T also serves as a default value for undefined columns
16
15
  Schema.str = { '@type': 'str', T: '', valueType: 'str' };
16
+ Schema.ustr = { '@type': 'str', T: '', valueType: 'str', transform: 'uppercase' };
17
+ Schema.lstr = { '@type': 'str', T: '', valueType: 'str', transform: 'lowercase' };
17
18
  Schema.int = { '@type': 'int', T: 0, valueType: 'int' };
18
19
  Schema.coord = { '@type': 'coord', T: 0, valueType: 'float' };
19
20
  Schema.float = { '@type': 'float', T: 0, valueType: 'float' };
20
- function Str(defaultValue) {
21
- if (defaultValue === void 0) { defaultValue = ''; }
22
- return { '@type': 'str', T: defaultValue, valueType: 'str' };
23
- }
21
+ function Str(options) { var _a; return { '@type': 'str', T: (_a = options === null || options === void 0 ? void 0 : options.defaultValue) !== null && _a !== void 0 ? _a : '', transform: options === null || options === void 0 ? void 0 : options.transform, valueType: 'str' }; }
24
22
  Schema.Str = Str;
25
23
  ;
26
24
  function Int(defaultValue) {
@@ -50,9 +48,7 @@ var Column;
50
48
  return Tensor(Tensors.ColumnMajorMatrix(rows, cols, baseType['@type'] === 'int' ? Int32Array : Float64Array), baseType);
51
49
  }
52
50
  Schema.Matrix = Matrix;
53
- function Aliased(t, defaultValue) {
54
- if (typeof defaultValue !== 'undefined')
55
- return __assign(__assign({}, t), { T: defaultValue });
51
+ function Aliased(t) {
56
52
  return t;
57
53
  }
58
54
  Schema.Aliased = Aliased;
@@ -265,8 +261,13 @@ function lambdaColumn(_a) {
265
261
  function arrayColumn(_a) {
266
262
  var array = _a.array, schema = _a.schema, valueKind = _a.valueKind;
267
263
  var rowCount = array.length;
264
+ var defaultValue = schema.T;
268
265
  var value = schema.valueType === 'str'
269
- ? function (row) { var v = array[row]; return typeof v === 'string' ? v : '' + v; }
266
+ ? schema.transform === 'lowercase'
267
+ ? function (row) { var v = array[row]; return typeof v === 'string' ? v.toLowerCase() : "".concat(v !== null && v !== void 0 ? v : defaultValue).toLowerCase(); }
268
+ : schema.transform === 'uppercase'
269
+ ? function (row) { var v = array[row]; return typeof v === 'string' ? v.toUpperCase() : "".concat(v !== null && v !== void 0 ? v : defaultValue).toUpperCase(); }
270
+ : function (row) { var v = array[row]; return typeof v === 'string' ? v : "".concat(v !== null && v !== void 0 ? v : defaultValue); }
270
271
  : function (row) { return array[row]; };
271
272
  var isTyped = ColumnHelpers.isTypedArray(array);
272
273
  return {
@@ -277,15 +278,35 @@ function arrayColumn(_a) {
277
278
  value: value,
278
279
  valueKind: valueKind ? valueKind : function (row) { return 0 /* Present */; },
279
280
  toArray: schema.valueType === 'str'
280
- ? function (params) {
281
- var _a = ColumnHelpers.getArrayBounds(rowCount, params), start = _a.start, end = _a.end;
282
- var ret = new (params && typeof params.array !== 'undefined' ? params.array : array.constructor)(end - start);
283
- for (var i = 0, _i = end - start; i < _i; i++) {
284
- var v = array[start + i];
285
- ret[i] = typeof v === 'string' ? v : '' + v;
281
+ ? schema.transform === 'lowercase'
282
+ ? function (params) {
283
+ var _a = ColumnHelpers.getArrayBounds(rowCount, params), start = _a.start, end = _a.end;
284
+ var ret = new (params && typeof params.array !== 'undefined' ? params.array : array.constructor)(end - start);
285
+ for (var i = 0, _i = end - start; i < _i; i++) {
286
+ var v = array[start + i];
287
+ ret[i] = typeof v === 'string' ? v.toLowerCase() : "".concat(v !== null && v !== void 0 ? v : defaultValue).toLowerCase();
288
+ }
289
+ return ret;
286
290
  }
287
- return ret;
288
- }
291
+ : schema.transform === 'uppercase'
292
+ ? function (params) {
293
+ var _a = ColumnHelpers.getArrayBounds(rowCount, params), start = _a.start, end = _a.end;
294
+ var ret = new (params && typeof params.array !== 'undefined' ? params.array : array.constructor)(end - start);
295
+ for (var i = 0, _i = end - start; i < _i; i++) {
296
+ var v = array[start + i];
297
+ ret[i] = typeof v === 'string' ? v.toUpperCase() : "".concat(v !== null && v !== void 0 ? v : defaultValue).toUpperCase();
298
+ }
299
+ return ret;
300
+ }
301
+ : function (params) {
302
+ var _a = ColumnHelpers.getArrayBounds(rowCount, params), start = _a.start, end = _a.end;
303
+ var ret = new (params && typeof params.array !== 'undefined' ? params.array : array.constructor)(end - start);
304
+ for (var i = 0, _i = end - start; i < _i; i++) {
305
+ var v = array[start + i];
306
+ ret[i] = typeof v === 'string' ? v : "".concat(v !== null && v !== void 0 ? v : defaultValue);
307
+ }
308
+ return ret;
309
+ }
289
310
  : isTyped
290
311
  ? function (params) { return ColumnHelpers.typedArrayWindow(array, params); }
291
312
  : function (params) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -9,7 +9,7 @@ import { TextureImage } from '../../mol-gl/renderable/util';
9
9
  import { Color } from '../../mol-util/color';
10
10
  import { Vec2, Vec3, Vec4 } from '../../mol-math/linear-algebra';
11
11
  import { LocationIterator } from '../util/location-iterator';
12
- import { ColorTheme } from '../../mol-theme/color';
12
+ import { ColorTheme, ColorVolume } from '../../mol-theme/color';
13
13
  import { Texture } from '../../mol-gl/webgl/texture';
14
14
  export declare type ColorType = 'uniform' | 'instance' | 'group' | 'groupInstance' | 'vertex' | 'vertexInstance' | 'volume' | 'volumeInstance' | 'direct';
15
15
  export declare type ColorData = {
@@ -26,10 +26,4 @@ export declare type ColorData = {
26
26
  export declare function createColors(locationIt: LocationIterator, positionIt: LocationIterator, colorTheme: ColorTheme<any>, colorData?: ColorData): ColorData;
27
27
  export declare function createValueColor(value: Color, colorData?: ColorData): ColorData;
28
28
  export declare function createTextureColor(colors: TextureImage<Uint8Array>, type: ColorType, colorData?: ColorData): ColorData;
29
- interface ColorVolume {
30
- colors: Texture;
31
- dimension: Vec3;
32
- transform: Vec4;
33
- }
34
29
  export declare function createGridColor(grid: ColorVolume, type: ColorType, colorData?: ColorData): ColorData;
35
- export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -30,8 +30,20 @@ function _createColors(locationIt, positionIt, colorTheme, colorData) {
30
30
  case 'groupInstance': return createGroupInstanceColor(locationIt, colorTheme.color, colorData);
31
31
  case 'vertex': return createVertexColor(positionIt, colorTheme.color, colorData);
32
32
  case 'vertexInstance': return createVertexInstanceColor(positionIt, colorTheme.color, colorData);
33
- case 'volume': return createGridColor(colorTheme.grid, 'volume', colorData);
34
- case 'volumeInstance': return createGridColor(colorTheme.grid, 'volumeInstance', colorData);
33
+ case 'volume':
34
+ if (colorTheme.grid) {
35
+ return createGridColor(colorTheme.grid, 'volume', colorData);
36
+ }
37
+ else {
38
+ throw new Error('Grid missing for "volume" color theme');
39
+ }
40
+ case 'volumeInstance':
41
+ if (colorTheme.grid) {
42
+ return createGridColor(colorTheme.grid, 'volumeInstance', colorData);
43
+ }
44
+ else {
45
+ throw new Error('Grid missing for "volume" color theme');
46
+ }
35
47
  case 'direct': return createDirectColor(colorData);
36
48
  }
37
49
  }
@@ -178,6 +190,7 @@ function createVertexInstanceColor(locationIt, color, colorData) {
178
190
  }
179
191
  return createTextureColor(colors, 'vertexInstance', colorData);
180
192
  }
193
+ //
181
194
  export function createGridColor(grid, type, colorData) {
182
195
  var colors = grid.colors, dimension = grid.dimension, transform = grid.transform;
183
196
  var width = colors.getWidth();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -43,13 +43,15 @@ export declare namespace Cylinders {
43
43
  doubleSided: PD.BooleanParam;
44
44
  ignoreLight: PD.BooleanParam;
45
45
  xrayShaded: PD.BooleanParam;
46
+ transparentBackfaces: PD.Select<string>;
46
47
  bumpFrequency: PD.Numeric;
47
48
  bumpAmplitude: PD.Numeric;
48
49
  alpha: PD.Numeric;
49
50
  quality: PD.Select<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest">;
50
51
  material: PD.Group<PD.Normalize<{
51
52
  metalness: number;
52
- roughness: number; /** Number of cylinders */
53
+ roughness: number;
54
+ /** Number of cylinders */
53
55
  bumpiness: number;
54
56
  }>>;
55
57
  clip: PD.Group<PD.Normalize<{
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -107,7 +107,7 @@ export var Cylinders;
107
107
  }
108
108
  Cylinders.transform = transform;
109
109
  //
110
- Cylinders.Params = __assign(__assign({}, BaseGeometry.Params), { sizeFactor: PD.Numeric(1, { min: 0, max: 10, step: 0.1 }), sizeAspectRatio: PD.Numeric(1, { min: 0, max: 3, step: 0.01 }), doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
110
+ Cylinders.Params = __assign(__assign({}, BaseGeometry.Params), { sizeFactor: PD.Numeric(1, { min: 0, max: 10, step: 0.1 }), sizeAspectRatio: PD.Numeric(1, { min: 0, max: 3, step: 0.01 }), doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), transparentBackfaces: PD.Select('off', PD.arrayToOptions(['off', 'on', 'opaque']), BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
111
111
  Cylinders.Utils = {
112
112
  Params: Cylinders.Params,
113
113
  createEmpty: createEmpty,
@@ -153,7 +153,7 @@ export var Cylinders;
153
153
  var padding = getMaxSize(size) * props.sizeFactor;
154
154
  var invariantBoundingSphere = Sphere3D.clone(cylinders.boundingSphere);
155
155
  var boundingSphere = calculateTransformBoundingSphere(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
156
- return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('cylinders'), aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, elements: cylinders.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: ValueCell.create(padding) }), BaseGeometry.createValues(props, counts)), { uSizeFactor: ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: ValueCell.create(props.doubleSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude) });
156
+ return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('cylinders'), aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, elements: cylinders.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: ValueCell.create(padding) }), BaseGeometry.createValues(props, counts)), { uSizeFactor: ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: ValueCell.create(props.doubleSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), dOpaqueBackfaces: ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude) });
157
157
  }
158
158
  function createValuesSimple(cylinders, props, colorValue, sizeValue, transform) {
159
159
  var s = BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -166,6 +166,7 @@ export var Cylinders;
166
166
  ValueCell.updateIfChanged(values.uDoubleSided, props.doubleSided);
167
167
  ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
168
168
  ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
169
+ ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
169
170
  ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
170
171
  ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
171
172
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -62,6 +62,7 @@ export declare namespace Mesh {
62
62
  flatShaded: PD.BooleanParam;
63
63
  ignoreLight: PD.BooleanParam;
64
64
  xrayShaded: PD.BooleanParam;
65
+ transparentBackfaces: PD.Select<string>;
65
66
  bumpFrequency: PD.Numeric;
66
67
  bumpAmplitude: PD.Numeric;
67
68
  alpha: PD.Numeric;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -551,7 +551,7 @@ export var Mesh;
551
551
  }
552
552
  Mesh.smoothEdges = smoothEdges;
553
553
  //
554
- Mesh.Params = __assign(__assign({}, BaseGeometry.Params), { doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), flipSided: PD.Boolean(false, BaseGeometry.ShadingCategory), flatShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
554
+ Mesh.Params = __assign(__assign({}, BaseGeometry.Params), { doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), flipSided: PD.Boolean(false, BaseGeometry.ShadingCategory), flatShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), transparentBackfaces: PD.Select('off', PD.arrayToOptions(['off', 'on', 'opaque']), BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
555
555
  Mesh.Utils = {
556
556
  Params: Mesh.Params,
557
557
  createEmpty: createEmpty,
@@ -593,7 +593,7 @@ export var Mesh;
593
593
  var counts = { drawCount: mesh.triangleCount * 3, vertexCount: mesh.vertexCount, groupCount: groupCount, instanceCount: instanceCount };
594
594
  var invariantBoundingSphere = Sphere3D.clone(mesh.boundingSphere);
595
595
  var boundingSphere = calculateTransformBoundingSphere(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
596
- return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('mesh'), aPosition: mesh.vertexBuffer, aNormal: mesh.normalBuffer, aGroup: mesh.groupBuffer, elements: mesh.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), material), clipping), transform), BaseGeometry.createValues(props, counts)), { uDoubleSided: ValueCell.create(props.doubleSided), dFlatShaded: ValueCell.create(props.flatShaded), dFlipSided: ValueCell.create(props.flipSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude), meta: ValueCell.create(mesh.meta) });
596
+ return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('mesh'), aPosition: mesh.vertexBuffer, aNormal: mesh.normalBuffer, aGroup: mesh.groupBuffer, elements: mesh.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), material), clipping), transform), BaseGeometry.createValues(props, counts)), { uDoubleSided: ValueCell.create(props.doubleSided), dFlatShaded: ValueCell.create(props.flatShaded), dFlipSided: ValueCell.create(props.flipSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), dOpaqueBackfaces: ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude), meta: ValueCell.create(mesh.meta) });
597
597
  }
598
598
  function createValuesSimple(mesh, props, colorValue, sizeValue, transform) {
599
599
  var s = BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -607,6 +607,7 @@ export var Mesh;
607
607
  ValueCell.updateIfChanged(values.dFlipSided, props.flipSided);
608
608
  ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
609
609
  ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
610
+ ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
610
611
  ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
611
612
  ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
612
613
  }
@@ -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-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -34,6 +34,7 @@ export declare namespace Spheres {
34
34
  doubleSided: PD.BooleanParam;
35
35
  ignoreLight: PD.BooleanParam;
36
36
  xrayShaded: PD.BooleanParam;
37
+ transparentBackfaces: PD.Select<string>;
37
38
  bumpFrequency: PD.Numeric;
38
39
  bumpAmplitude: PD.Numeric;
39
40
  alpha: PD.Numeric;
@@ -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-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -88,7 +88,7 @@ export var Spheres;
88
88
  ValueCell.update(spheres.groupBuffer, groups);
89
89
  return spheres;
90
90
  }
91
- Spheres.Params = __assign(__assign({}, BaseGeometry.Params), { sizeFactor: PD.Numeric(1, { min: 0, max: 10, step: 0.1 }), doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
91
+ Spheres.Params = __assign(__assign({}, BaseGeometry.Params), { sizeFactor: PD.Numeric(1, { min: 0, max: 10, step: 0.1 }), doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), transparentBackfaces: PD.Select('off', PD.arrayToOptions(['off', 'on', 'opaque']), BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
92
92
  Spheres.Utils = {
93
93
  Params: Spheres.Params,
94
94
  createEmpty: createEmpty,
@@ -132,7 +132,7 @@ export var Spheres;
132
132
  var padding = spheres.boundingSphere.radius ? getMaxSize(size) * props.sizeFactor : 0;
133
133
  var invariantBoundingSphere = Sphere3D.expand(Sphere3D(), spheres.boundingSphere, padding);
134
134
  var boundingSphere = calculateTransformBoundingSphere(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
135
- return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('spheres'), aPosition: spheres.centerBuffer, aMapping: spheres.mappingBuffer, aGroup: spheres.groupBuffer, elements: spheres.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: ValueCell.create(padding) }), BaseGeometry.createValues(props, counts)), { uSizeFactor: ValueCell.create(props.sizeFactor), uDoubleSided: ValueCell.create(props.doubleSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude) });
135
+ return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('spheres'), aPosition: spheres.centerBuffer, aMapping: spheres.mappingBuffer, aGroup: spheres.groupBuffer, elements: spheres.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: ValueCell.create(padding) }), BaseGeometry.createValues(props, counts)), { uSizeFactor: ValueCell.create(props.sizeFactor), uDoubleSided: ValueCell.create(props.doubleSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), dOpaqueBackfaces: ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude) });
136
136
  }
137
137
  function createValuesSimple(spheres, props, colorValue, sizeValue, transform) {
138
138
  var s = BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -145,6 +145,7 @@ export var Spheres;
145
145
  ValueCell.updateIfChanged(values.uDoubleSided, props.doubleSided);
146
146
  ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
147
147
  ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
148
+ ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
148
149
  ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
149
150
  ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
150
151
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -45,6 +45,7 @@ export declare namespace TextureMesh {
45
45
  flatShaded: PD.BooleanParam;
46
46
  ignoreLight: PD.BooleanParam;
47
47
  xrayShaded: PD.BooleanParam;
48
+ transparentBackfaces: PD.Select<string>;
48
49
  bumpFrequency: PD.Numeric;
49
50
  bumpAmplitude: PD.Numeric;
50
51
  alpha: PD.Numeric;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -86,7 +86,7 @@ export var TextureMesh;
86
86
  return create(0, 0, vt, gt, nt, bs, textureMesh);
87
87
  }
88
88
  TextureMesh.createEmpty = createEmpty;
89
- TextureMesh.Params = __assign(__assign({}, BaseGeometry.Params), { doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), flipSided: PD.Boolean(false, BaseGeometry.ShadingCategory), flatShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
89
+ TextureMesh.Params = __assign(__assign({}, BaseGeometry.Params), { doubleSided: PD.Boolean(false, BaseGeometry.CustomQualityParamInfo), flipSided: PD.Boolean(false, BaseGeometry.ShadingCategory), flatShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), ignoreLight: PD.Boolean(false, BaseGeometry.ShadingCategory), xrayShaded: PD.Boolean(false, BaseGeometry.ShadingCategory), transparentBackfaces: PD.Select('off', PD.arrayToOptions(['off', 'on', 'opaque']), BaseGeometry.ShadingCategory), bumpFrequency: PD.Numeric(0, { min: 0, max: 10, step: 0.1 }, BaseGeometry.ShadingCategory), bumpAmplitude: PD.Numeric(1, { min: 0, max: 5, step: 0.1 }, BaseGeometry.ShadingCategory) });
90
90
  TextureMesh.Utils = {
91
91
  Params: TextureMesh.Params,
92
92
  createEmpty: createEmpty,
@@ -94,8 +94,8 @@ export var TextureMesh;
94
94
  createValuesSimple: createValuesSimple,
95
95
  updateValues: updateValues,
96
96
  updateBoundingSphere: updateBoundingSphere,
97
- createRenderableState: BaseGeometry.createRenderableState,
98
- updateRenderableState: BaseGeometry.updateRenderableState,
97
+ createRenderableState: createRenderableState,
98
+ updateRenderableState: updateRenderableState,
99
99
  createPositionIterator: function () { return LocationIterator(1, 1, 1, function () { return NullLocation; }); }
100
100
  };
101
101
  function createValues(textureMesh, transform, locationIt, theme, props) {
@@ -110,7 +110,7 @@ export var TextureMesh;
110
110
  var counts = { drawCount: textureMesh.vertexCount, vertexCount: textureMesh.vertexCount, groupCount: groupCount, instanceCount: instanceCount };
111
111
  var invariantBoundingSphere = Sphere3D.clone(textureMesh.boundingSphere);
112
112
  var boundingSphere = calculateTransformBoundingSphere(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
113
- return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('textureMesh'), uGeoTexDim: textureMesh.geoTextureDim, tPosition: textureMesh.vertexTexture, tGroup: textureMesh.groupTexture, tNormal: textureMesh.normalTexture, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), substance), clipping), transform), BaseGeometry.createValues(props, counts)), { uDoubleSided: ValueCell.create(props.doubleSided), dFlatShaded: ValueCell.create(props.flatShaded), dFlipSided: ValueCell.create(props.flipSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude), meta: ValueCell.create(textureMesh.meta) });
113
+ return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: ValueCell.create('textureMesh'), uGeoTexDim: textureMesh.geoTextureDim, tPosition: textureMesh.vertexTexture, tGroup: textureMesh.groupTexture, tNormal: textureMesh.normalTexture, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), substance), clipping), transform), BaseGeometry.createValues(props, counts)), { uDoubleSided: ValueCell.create(props.doubleSided), dFlatShaded: ValueCell.create(props.flatShaded), dFlipSided: ValueCell.create(props.flipSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), dOpaqueBackfaces: ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude), meta: ValueCell.create(textureMesh.meta) });
114
114
  }
115
115
  function createValuesSimple(textureMesh, props, colorValue, sizeValue, transform) {
116
116
  var s = BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -124,6 +124,7 @@ export var TextureMesh;
124
124
  ValueCell.updateIfChanged(values.dFlipSided, props.flipSided);
125
125
  ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
126
126
  ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
127
+ ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
127
128
  ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
128
129
  ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
129
130
  }
@@ -138,4 +139,14 @@ export var TextureMesh;
138
139
  ValueCell.update(values.uInvariantBoundingSphere, Vec4.fromSphere(values.uInvariantBoundingSphere.ref.value, invariantBoundingSphere));
139
140
  }
140
141
  }
142
+ function createRenderableState(props) {
143
+ var state = BaseGeometry.createRenderableState(props);
144
+ updateRenderableState(state, props);
145
+ return state;
146
+ }
147
+ function updateRenderableState(state, props) {
148
+ BaseGeometry.updateRenderableState(state, props);
149
+ state.opaque = state.opaque && !props.xrayShaded;
150
+ state.writeDepth = state.opaque;
151
+ }
141
152
  })(TextureMesh || (TextureMesh = {}));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2020-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -19,6 +19,7 @@ export declare const CylindersSchema: {
19
19
  uDoubleSided: UniformSpec<"b">;
20
20
  dIgnoreLight: DefineSpec<"boolean">;
21
21
  dXrayShaded: DefineSpec<"boolean">;
22
+ dOpaqueBackfaces: DefineSpec<"boolean">;
22
23
  uBumpFrequency: UniformSpec<"f">;
23
24
  uBumpAmplitude: UniformSpec<"f">;
24
25
  uSize: UniformSpec<"f">;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2020-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -9,7 +9,7 @@ import { createGraphicsRenderItem } from '../webgl/render-item';
9
9
  import { GlobalUniformSchema, BaseSchema, AttributeSpec, InternalSchema, SizeSchema, ElementsSpec, ValueSpec, DefineSpec, GlobalTextureSchema, UniformSpec } from './schema';
10
10
  import { CylindersShaderCode } from '../shader-code';
11
11
  import { ValueCell } from '../../mol-util';
12
- export var CylindersSchema = __assign(__assign(__assign({}, BaseSchema), SizeSchema), { aGroup: AttributeSpec('float32', 1, 0), aStart: AttributeSpec('float32', 3, 0), aEnd: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 3, 0), aScale: AttributeSpec('float32', 1, 0), aCap: AttributeSpec('float32', 1, 0), elements: ElementsSpec('uint32'), padding: ValueSpec('number'), uDoubleSided: UniformSpec('b'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f') });
12
+ export var CylindersSchema = __assign(__assign(__assign({}, BaseSchema), SizeSchema), { aGroup: AttributeSpec('float32', 1, 0), aStart: AttributeSpec('float32', 3, 0), aEnd: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 3, 0), aScale: AttributeSpec('float32', 1, 0), aCap: AttributeSpec('float32', 1, 0), elements: ElementsSpec('uint32'), padding: ValueSpec('number'), uDoubleSided: UniformSpec('b'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), dOpaqueBackfaces: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f') });
13
13
  export function CylindersRenderable(ctx, id, values, state, materialId, variants) {
14
14
  var schema = __assign(__assign(__assign(__assign({}, GlobalUniformSchema), GlobalTextureSchema), InternalSchema), CylindersSchema);
15
15
  var internalValues = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -17,6 +17,7 @@ export declare const MeshSchema: {
17
17
  readonly dFlipSided: DefineSpec<"boolean">;
18
18
  readonly dIgnoreLight: DefineSpec<"boolean">;
19
19
  readonly dXrayShaded: DefineSpec<"boolean">;
20
+ readonly dOpaqueBackfaces: DefineSpec<"boolean">;
20
21
  readonly uBumpFrequency: UniformSpec<"f">;
21
22
  readonly uBumpAmplitude: UniformSpec<"f">;
22
23
  readonly meta: ValueSpec<"unknown">;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -9,7 +9,7 @@ import { createGraphicsRenderItem } from '../webgl/render-item';
9
9
  import { GlobalUniformSchema, BaseSchema, AttributeSpec, ElementsSpec, DefineSpec, InternalSchema, GlobalTextureSchema, ValueSpec, UniformSpec } from './schema';
10
10
  import { MeshShaderCode } from '../shader-code';
11
11
  import { ValueCell } from '../../mol-util';
12
- export var MeshSchema = __assign(__assign({}, BaseSchema), { aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aNormal: AttributeSpec('float32', 3, 0), elements: ElementsSpec('uint32'), dFlatShaded: DefineSpec('boolean'), uDoubleSided: UniformSpec('b'), dFlipSided: DefineSpec('boolean'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f'), meta: ValueSpec('unknown') });
12
+ export var MeshSchema = __assign(__assign({}, BaseSchema), { aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aNormal: AttributeSpec('float32', 3, 0), elements: ElementsSpec('uint32'), dFlatShaded: DefineSpec('boolean'), uDoubleSided: UniformSpec('b'), dFlipSided: DefineSpec('boolean'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), dOpaqueBackfaces: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f'), meta: ValueSpec('unknown') });
13
13
  export function MeshRenderable(ctx, id, values, state, materialId, variants) {
14
14
  var schema = __assign(__assign(__assign(__assign({}, GlobalUniformSchema), GlobalTextureSchema), InternalSchema), MeshSchema);
15
15
  var internalValues = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -16,6 +16,7 @@ export declare const SpheresSchema: {
16
16
  uDoubleSided: UniformSpec<"b">;
17
17
  dIgnoreLight: DefineSpec<"boolean">;
18
18
  dXrayShaded: DefineSpec<"boolean">;
19
+ dOpaqueBackfaces: DefineSpec<"boolean">;
19
20
  uBumpFrequency: UniformSpec<"f">;
20
21
  uBumpAmplitude: UniformSpec<"f">;
21
22
  uSize: UniformSpec<"f">;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -9,7 +9,7 @@ import { createGraphicsRenderItem } from '../webgl/render-item';
9
9
  import { GlobalUniformSchema, BaseSchema, AttributeSpec, InternalSchema, SizeSchema, ElementsSpec, ValueSpec, DefineSpec, GlobalTextureSchema, UniformSpec } from './schema';
10
10
  import { SpheresShaderCode } from '../shader-code';
11
11
  import { ValueCell } from '../../mol-util';
12
- export var SpheresSchema = __assign(__assign(__assign({}, BaseSchema), SizeSchema), { aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 2, 0), elements: ElementsSpec('uint32'), padding: ValueSpec('number'), uDoubleSided: UniformSpec('b'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f') });
12
+ export var SpheresSchema = __assign(__assign(__assign({}, BaseSchema), SizeSchema), { aGroup: AttributeSpec('float32', 1, 0), aPosition: AttributeSpec('float32', 3, 0), aMapping: AttributeSpec('float32', 2, 0), elements: ElementsSpec('uint32'), padding: ValueSpec('number'), uDoubleSided: UniformSpec('b'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), dOpaqueBackfaces: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f') });
13
13
  export function SpheresRenderable(ctx, id, values, state, materialId, variants) {
14
14
  var schema = __assign(__assign(__assign(__assign({}, GlobalUniformSchema), GlobalTextureSchema), InternalSchema), SpheresSchema);
15
15
  var internalValues = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -17,6 +17,7 @@ export declare const TextureMeshSchema: {
17
17
  dFlipSided: DefineSpec<"boolean">;
18
18
  dIgnoreLight: DefineSpec<"boolean">;
19
19
  dXrayShaded: DefineSpec<"boolean">;
20
+ dOpaqueBackfaces: DefineSpec<"boolean">;
20
21
  uBumpFrequency: UniformSpec<"f">;
21
22
  uBumpAmplitude: UniformSpec<"f">;
22
23
  meta: ValueSpec<"unknown">;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
@@ -9,7 +9,7 @@ import { createGraphicsRenderItem } from '../webgl/render-item';
9
9
  import { GlobalUniformSchema, BaseSchema, DefineSpec, InternalSchema, UniformSpec, TextureSpec, GlobalTextureSchema, ValueSpec } from './schema';
10
10
  import { MeshShaderCode } from '../shader-code';
11
11
  import { ValueCell } from '../../mol-util';
12
- export var TextureMeshSchema = __assign(__assign({}, BaseSchema), { uGeoTexDim: UniformSpec('v2', 'buffered'), tPosition: TextureSpec('texture', 'rgb', 'float', 'nearest'), tGroup: TextureSpec('texture', 'alpha', 'float', 'nearest'), tNormal: TextureSpec('texture', 'rgb', 'float', 'nearest'), dFlatShaded: DefineSpec('boolean'), uDoubleSided: UniformSpec('b'), dFlipSided: DefineSpec('boolean'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f'), meta: ValueSpec('unknown') });
12
+ export var TextureMeshSchema = __assign(__assign({}, BaseSchema), { uGeoTexDim: UniformSpec('v2', 'buffered'), tPosition: TextureSpec('texture', 'rgb', 'float', 'nearest'), tGroup: TextureSpec('texture', 'alpha', 'float', 'nearest'), tNormal: TextureSpec('texture', 'rgb', 'float', 'nearest'), dFlatShaded: DefineSpec('boolean'), uDoubleSided: UniformSpec('b'), dFlipSided: DefineSpec('boolean'), dIgnoreLight: DefineSpec('boolean'), dXrayShaded: DefineSpec('boolean'), dOpaqueBackfaces: DefineSpec('boolean'), uBumpFrequency: UniformSpec('f'), uBumpAmplitude: UniformSpec('f'), meta: ValueSpec('unknown') });
13
13
  export function TextureMeshRenderable(ctx, id, values, state, materialId, variants) {
14
14
  var schema = __assign(__assign(__assign(__assign({}, GlobalUniformSchema), GlobalTextureSchema), InternalSchema), TextureMeshSchema);
15
15
  var internalValues = {