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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -554,7 +554,7 @@ var Mesh;
554
554
  }
555
555
  Mesh.smoothEdges = smoothEdges;
556
556
  //
557
- Mesh.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), flipSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), flatShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
557
+ Mesh.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), flipSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), flatShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), transparentBackfaces: param_definition_1.ParamDefinition.Select('off', param_definition_1.ParamDefinition.arrayToOptions(['off', 'on', 'opaque']), base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
558
558
  Mesh.Utils = {
559
559
  Params: Mesh.Params,
560
560
  createEmpty: createEmpty,
@@ -596,7 +596,7 @@ var Mesh;
596
596
  var counts = { drawCount: mesh.triangleCount * 3, vertexCount: mesh.vertexCount, groupCount: groupCount, instanceCount: instanceCount };
597
597
  var invariantBoundingSphere = geometry_1.Sphere3D.clone(mesh.boundingSphere);
598
598
  var boundingSphere = (0, util_3.calculateTransformBoundingSphere)(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
599
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('mesh'), aPosition: mesh.vertexBuffer, aNormal: mesh.normalBuffer, aGroup: mesh.groupBuffer, elements: mesh.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), material), clipping), transform), base_1.BaseGeometry.createValues(props, counts)), { uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dFlatShaded: mol_util_1.ValueCell.create(props.flatShaded), dFlipSided: mol_util_1.ValueCell.create(props.flipSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude), meta: mol_util_1.ValueCell.create(mesh.meta) });
599
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('mesh'), aPosition: mesh.vertexBuffer, aNormal: mesh.normalBuffer, aGroup: mesh.groupBuffer, elements: mesh.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), material), clipping), transform), base_1.BaseGeometry.createValues(props, counts)), { uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dFlatShaded: mol_util_1.ValueCell.create(props.flatShaded), dFlipSided: mol_util_1.ValueCell.create(props.flipSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), dOpaqueBackfaces: mol_util_1.ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude), meta: mol_util_1.ValueCell.create(mesh.meta) });
600
600
  }
601
601
  function createValuesSimple(mesh, props, colorValue, sizeValue, transform) {
602
602
  var s = base_1.BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -610,6 +610,7 @@ var Mesh;
610
610
  mol_util_1.ValueCell.updateIfChanged(values.dFlipSided, props.flipSided);
611
611
  mol_util_1.ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
612
612
  mol_util_1.ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
613
+ mol_util_1.ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
613
614
  mol_util_1.ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
614
615
  mol_util_1.ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
615
616
  }
@@ -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,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-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -91,7 +91,7 @@ var Spheres;
91
91
  mol_util_1.ValueCell.update(spheres.groupBuffer, groups);
92
92
  return spheres;
93
93
  }
94
- Spheres.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { sizeFactor: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 10, step: 0.1 }), doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
94
+ Spheres.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { sizeFactor: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 10, step: 0.1 }), doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), transparentBackfaces: param_definition_1.ParamDefinition.Select('off', param_definition_1.ParamDefinition.arrayToOptions(['off', 'on', 'opaque']), base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
95
95
  Spheres.Utils = {
96
96
  Params: Spheres.Params,
97
97
  createEmpty: createEmpty,
@@ -135,7 +135,7 @@ var Spheres;
135
135
  var padding = spheres.boundingSphere.radius ? (0, size_data_1.getMaxSize)(size) * props.sizeFactor : 0;
136
136
  var invariantBoundingSphere = geometry_1.Sphere3D.expand((0, geometry_1.Sphere3D)(), spheres.boundingSphere, padding);
137
137
  var boundingSphere = (0, util_1.calculateTransformBoundingSphere)(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
138
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('spheres'), aPosition: spheres.centerBuffer, aMapping: spheres.mappingBuffer, aGroup: spheres.groupBuffer, elements: spheres.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: mol_util_1.ValueCell.create(padding) }), base_1.BaseGeometry.createValues(props, counts)), { uSizeFactor: mol_util_1.ValueCell.create(props.sizeFactor), uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude) });
138
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('spheres'), aPosition: spheres.centerBuffer, aMapping: spheres.mappingBuffer, aGroup: spheres.groupBuffer, elements: spheres.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: mol_util_1.ValueCell.create(padding) }), base_1.BaseGeometry.createValues(props, counts)), { uSizeFactor: mol_util_1.ValueCell.create(props.sizeFactor), uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), dOpaqueBackfaces: mol_util_1.ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude) });
139
139
  }
140
140
  function createValuesSimple(spheres, props, colorValue, sizeValue, transform) {
141
141
  var s = base_1.BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -148,6 +148,7 @@ var Spheres;
148
148
  mol_util_1.ValueCell.updateIfChanged(values.uDoubleSided, props.doubleSided);
149
149
  mol_util_1.ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
150
150
  mol_util_1.ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
151
+ mol_util_1.ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
151
152
  mol_util_1.ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
152
153
  mol_util_1.ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
153
154
  }
@@ -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,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -89,7 +89,7 @@ var TextureMesh;
89
89
  return create(0, 0, vt, gt, nt, bs, textureMesh);
90
90
  }
91
91
  TextureMesh.createEmpty = createEmpty;
92
- TextureMesh.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), flipSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), flatShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
92
+ TextureMesh.Params = tslib_1.__assign(tslib_1.__assign({}, base_1.BaseGeometry.Params), { doubleSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.CustomQualityParamInfo), flipSided: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), flatShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), ignoreLight: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), xrayShaded: param_definition_1.ParamDefinition.Boolean(false, base_1.BaseGeometry.ShadingCategory), transparentBackfaces: param_definition_1.ParamDefinition.Select('off', param_definition_1.ParamDefinition.arrayToOptions(['off', 'on', 'opaque']), base_1.BaseGeometry.ShadingCategory), bumpFrequency: param_definition_1.ParamDefinition.Numeric(0, { min: 0, max: 10, step: 0.1 }, base_1.BaseGeometry.ShadingCategory), bumpAmplitude: param_definition_1.ParamDefinition.Numeric(1, { min: 0, max: 5, step: 0.1 }, base_1.BaseGeometry.ShadingCategory) });
93
93
  TextureMesh.Utils = {
94
94
  Params: TextureMesh.Params,
95
95
  createEmpty: createEmpty,
@@ -97,8 +97,8 @@ var TextureMesh;
97
97
  createValuesSimple: createValuesSimple,
98
98
  updateValues: updateValues,
99
99
  updateBoundingSphere: updateBoundingSphere,
100
- createRenderableState: base_1.BaseGeometry.createRenderableState,
101
- updateRenderableState: base_1.BaseGeometry.updateRenderableState,
100
+ createRenderableState: createRenderableState,
101
+ updateRenderableState: updateRenderableState,
102
102
  createPositionIterator: function () { return (0, location_iterator_1.LocationIterator)(1, 1, 1, function () { return location_1.NullLocation; }); }
103
103
  };
104
104
  function createValues(textureMesh, transform, locationIt, theme, props) {
@@ -113,7 +113,7 @@ var TextureMesh;
113
113
  var counts = { drawCount: textureMesh.vertexCount, vertexCount: textureMesh.vertexCount, groupCount: groupCount, instanceCount: instanceCount };
114
114
  var invariantBoundingSphere = geometry_1.Sphere3D.clone(textureMesh.boundingSphere);
115
115
  var boundingSphere = (0, util_1.calculateTransformBoundingSphere)(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
116
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('textureMesh'), uGeoTexDim: textureMesh.geoTextureDim, tPosition: textureMesh.vertexTexture, tGroup: textureMesh.groupTexture, tNormal: textureMesh.normalTexture, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), substance), clipping), transform), base_1.BaseGeometry.createValues(props, counts)), { uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dFlatShaded: mol_util_1.ValueCell.create(props.flatShaded), dFlipSided: mol_util_1.ValueCell.create(props.flipSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude), meta: mol_util_1.ValueCell.create(textureMesh.meta) });
116
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: mol_util_1.ValueCell.create('textureMesh'), uGeoTexDim: textureMesh.geoTextureDim, tPosition: textureMesh.vertexTexture, tGroup: textureMesh.groupTexture, tNormal: textureMesh.normalTexture, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), marker), overpaint), transparency), substance), clipping), transform), base_1.BaseGeometry.createValues(props, counts)), { uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dFlatShaded: mol_util_1.ValueCell.create(props.flatShaded), dFlipSided: mol_util_1.ValueCell.create(props.flipSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), dOpaqueBackfaces: mol_util_1.ValueCell.create(props.transparentBackfaces === 'opaque'), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude), meta: mol_util_1.ValueCell.create(textureMesh.meta) });
117
117
  }
118
118
  function createValuesSimple(textureMesh, props, colorValue, sizeValue, transform) {
119
119
  var s = base_1.BaseGeometry.createSimple(colorValue, sizeValue, transform);
@@ -127,6 +127,7 @@ var TextureMesh;
127
127
  mol_util_1.ValueCell.updateIfChanged(values.dFlipSided, props.flipSided);
128
128
  mol_util_1.ValueCell.updateIfChanged(values.dIgnoreLight, props.ignoreLight);
129
129
  mol_util_1.ValueCell.updateIfChanged(values.dXrayShaded, props.xrayShaded);
130
+ mol_util_1.ValueCell.updateIfChanged(values.dOpaqueBackfaces, props.transparentBackfaces === 'opaque');
130
131
  mol_util_1.ValueCell.updateIfChanged(values.uBumpFrequency, props.bumpFrequency);
131
132
  mol_util_1.ValueCell.updateIfChanged(values.uBumpAmplitude, props.bumpAmplitude);
132
133
  }
@@ -141,4 +142,14 @@ var TextureMesh;
141
142
  mol_util_1.ValueCell.update(values.uInvariantBoundingSphere, linear_algebra_1.Vec4.fromSphere(values.uInvariantBoundingSphere.ref.value, invariantBoundingSphere));
142
143
  }
143
144
  }
145
+ function createRenderableState(props) {
146
+ var state = base_1.BaseGeometry.createRenderableState(props);
147
+ updateRenderableState(state, props);
148
+ return state;
149
+ }
150
+ function updateRenderableState(state, props) {
151
+ base_1.BaseGeometry.updateRenderableState(state, props);
152
+ state.opaque = state.opaque && !props.xrayShaded;
153
+ state.writeDepth = state.opaque;
154
+ }
144
155
  })(TextureMesh = exports.TextureMesh || (exports.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,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2020-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2020-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -12,7 +12,7 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.CylindersSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aStart: (0, schema_1.AttributeSpec)('float32', 3, 0), aEnd: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 3, 0), aScale: (0, schema_1.AttributeSpec)('float32', 1, 0), aCap: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
15
+ exports.CylindersSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aStart: (0, schema_1.AttributeSpec)('float32', 3, 0), aEnd: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 3, 0), aScale: (0, schema_1.AttributeSpec)('float32', 1, 0), aCap: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), dOpaqueBackfaces: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
16
16
  function CylindersRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.CylindersSchema);
18
18
  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,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -12,7 +12,7 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.MeshSchema = tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aNormal: (0, schema_1.AttributeSpec)('float32', 3, 0), elements: (0, schema_1.ElementsSpec)('uint32'), dFlatShaded: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f'), meta: (0, schema_1.ValueSpec)('unknown') });
15
+ exports.MeshSchema = tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aNormal: (0, schema_1.AttributeSpec)('float32', 3, 0), elements: (0, schema_1.ElementsSpec)('uint32'), dFlatShaded: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), dOpaqueBackfaces: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f'), meta: (0, schema_1.ValueSpec)('unknown') });
16
16
  function MeshRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.MeshSchema);
18
18
  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,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -12,7 +12,7 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.SpheresSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
15
+ exports.SpheresSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), dOpaqueBackfaces: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
16
16
  function SpheresRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.SpheresSchema);
18
18
  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,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2019-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -12,7 +12,7 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.TextureMeshSchema = tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), { uGeoTexDim: (0, schema_1.UniformSpec)('v2', 'buffered'), tPosition: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), tGroup: (0, schema_1.TextureSpec)('texture', 'alpha', 'float', 'nearest'), tNormal: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), dFlatShaded: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f'), meta: (0, schema_1.ValueSpec)('unknown') });
15
+ exports.TextureMeshSchema = tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), { uGeoTexDim: (0, schema_1.UniformSpec)('v2', 'buffered'), tPosition: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), tGroup: (0, schema_1.TextureSpec)('texture', 'alpha', 'float', 'nearest'), tNormal: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), dFlatShaded: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), dOpaqueBackfaces: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f'), meta: (0, schema_1.ValueSpec)('unknown') });
16
16
  function TextureMeshRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.TextureMeshSchema);
18
18
  var internalValues = {
@@ -125,7 +125,8 @@ var Renderer;
125
125
  };
126
126
  var globalUniformList = Object.entries(globalUniforms);
127
127
  var globalUniformsNeedUpdate = true;
128
- var renderObject = function (r, variant) {
128
+ var renderObject = function (r, variant, flag) {
129
+ var _a, _b, _c;
129
130
  if (r.state.disposed || !r.state.visible || (!r.state.pickable && variant === 'pick')) {
130
131
  return;
131
132
  }
@@ -160,6 +161,28 @@ var Renderer;
160
161
  state.depthMask(false);
161
162
  }
162
163
  }
164
+ else if (flag === 1 /* BlendedFront */) {
165
+ state.enable(gl.CULL_FACE);
166
+ if ((_a = r.values.dFlipSided) === null || _a === void 0 ? void 0 : _a.ref.value) {
167
+ state.frontFace(gl.CW);
168
+ state.cullFace(gl.FRONT);
169
+ }
170
+ else {
171
+ state.frontFace(gl.CCW);
172
+ state.cullFace(gl.BACK);
173
+ }
174
+ }
175
+ else if (flag === 2 /* BlendedBack */) {
176
+ state.enable(gl.CULL_FACE);
177
+ if ((_b = r.values.dFlipSided) === null || _b === void 0 ? void 0 : _b.ref.value) {
178
+ state.frontFace(gl.CW);
179
+ state.cullFace(gl.BACK);
180
+ }
181
+ else {
182
+ state.frontFace(gl.CCW);
183
+ state.cullFace(gl.FRONT);
184
+ }
185
+ }
163
186
  else {
164
187
  if (r.values.uDoubleSided) {
165
188
  if (r.values.uDoubleSided.ref.value || r.values.hasReflection.ref.value) {
@@ -173,15 +196,9 @@ var Renderer;
173
196
  // webgl default
174
197
  state.disable(gl.CULL_FACE);
175
198
  }
176
- if (r.values.dFlipSided) {
177
- if (r.values.dFlipSided.ref.value) {
178
- state.frontFace(gl.CW);
179
- state.cullFace(gl.FRONT);
180
- }
181
- else {
182
- state.frontFace(gl.CCW);
183
- state.cullFace(gl.BACK);
184
- }
199
+ if ((_c = r.values.dFlipSided) === null || _c === void 0 ? void 0 : _c.ref.value) {
200
+ state.frontFace(gl.CW);
201
+ state.cullFace(gl.FRONT);
185
202
  }
186
203
  else {
187
204
  // webgl default
@@ -232,7 +249,7 @@ var Renderer;
232
249
  var renderables = group.renderables;
233
250
  for (var i = 0, il = renderables.length; i < il; ++i) {
234
251
  if (!renderables[i].state.colorOnly) {
235
- renderObject(renderables[i], variant);
252
+ renderObject(renderables[i], variant, 0 /* None */);
236
253
  }
237
254
  }
238
255
  };
@@ -243,7 +260,7 @@ var Renderer;
243
260
  updateInternal(group, camera, depthTexture, false, false);
244
261
  var renderables = group.renderables;
245
262
  for (var i = 0, il = renderables.length; i < il; ++i) {
246
- renderObject(renderables[i], 'depth');
263
+ renderObject(renderables[i], 'depth', 0 /* None */);
247
264
  }
248
265
  };
249
266
  var renderMarkingDepth = function (group, camera, depthTexture) {
@@ -256,7 +273,7 @@ var Renderer;
256
273
  for (var i = 0, il = renderables.length; i < il; ++i) {
257
274
  var r = renderables[i];
258
275
  if (r.values.markerAverage.ref.value !== 1) {
259
- renderObject(renderables[i], 'marking');
276
+ renderObject(renderables[i], 'marking', 0 /* None */);
260
277
  }
261
278
  }
262
279
  };
@@ -270,7 +287,7 @@ var Renderer;
270
287
  for (var i = 0, il = renderables.length; i < il; ++i) {
271
288
  var r = renderables[i];
272
289
  if (r.values.markerAverage.ref.value > 0) {
273
- renderObject(renderables[i], 'marking');
290
+ renderObject(renderables[i], 'marking', 0 /* None */);
274
291
  }
275
292
  }
276
293
  };
@@ -279,6 +296,7 @@ var Renderer;
279
296
  renderBlendedTransparent(group, camera, depthTexture);
280
297
  };
281
298
  var renderBlendedOpaque = function (group, camera, depthTexture) {
299
+ var _a, _b;
282
300
  state.disable(gl.BLEND);
283
301
  state.enable(gl.DEPTH_TEST);
284
302
  state.depthMask(true);
@@ -287,11 +305,15 @@ var Renderer;
287
305
  for (var i = 0, il = renderables.length; i < il; ++i) {
288
306
  var r = renderables[i];
289
307
  if (r.state.opaque) {
290
- renderObject(r, 'colorBlended');
308
+ renderObject(r, 'colorBlended', 0 /* None */);
309
+ }
310
+ else if (((_a = r.values.uDoubleSided) === null || _a === void 0 ? void 0 : _a.ref.value) && ((_b = r.values.dOpaqueBackfaces) === null || _b === void 0 ? void 0 : _b.ref.value)) {
311
+ renderObject(r, 'colorBlended', 2 /* BlendedBack */);
291
312
  }
292
313
  }
293
314
  };
294
315
  var renderBlendedTransparent = function (group, camera, depthTexture) {
316
+ var _a, _b;
295
317
  state.enable(gl.DEPTH_TEST);
296
318
  updateInternal(group, camera, depthTexture, false, false);
297
319
  var renderables = group.renderables;
@@ -306,14 +328,23 @@ var Renderer;
306
328
  for (var i = 0, il = renderables.length; i < il; ++i) {
307
329
  var r = renderables[i];
308
330
  if (!r.state.opaque && r.state.writeDepth) {
309
- renderObject(r, 'colorBlended');
331
+ renderObject(r, 'colorBlended', 0 /* None */);
310
332
  }
311
333
  }
312
334
  state.depthMask(false);
313
335
  for (var i = 0, il = renderables.length; i < il; ++i) {
314
336
  var r = renderables[i];
315
337
  if (!r.state.opaque && !r.state.writeDepth) {
316
- renderObject(r, 'colorBlended');
338
+ if ((_a = r.values.uDoubleSided) === null || _a === void 0 ? void 0 : _a.ref.value) {
339
+ // render frontfaces and backfaces separately to avoid artefacts
340
+ if (!((_b = r.values.dOpaqueBackfaces) === null || _b === void 0 ? void 0 : _b.ref.value)) {
341
+ renderObject(r, 'colorBlended', 2 /* BlendedBack */);
342
+ }
343
+ renderObject(r, 'colorBlended', 1 /* BlendedFront */);
344
+ }
345
+ else {
346
+ renderObject(r, 'colorBlended', 0 /* None */);
347
+ }
317
348
  }
318
349
  }
319
350
  };
@@ -329,7 +360,7 @@ var Renderer;
329
360
  // uAlpha is updated in "render" so we need to recompute it here
330
361
  var alpha = (0, interpolate_1.clamp)(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
331
362
  if (alpha === 1 && r.values.transparencyAverage.ref.value !== 1 && !((_a = r.values.dXrayShaded) === null || _a === void 0 ? void 0 : _a.ref.value)) {
332
- renderObject(r, 'colorBlended');
363
+ renderObject(r, 'colorBlended', 0 /* None */);
333
364
  }
334
365
  }
335
366
  };
@@ -345,12 +376,12 @@ var Renderer;
345
376
  // uAlpha is updated in "render" so we need to recompute it here
346
377
  var alpha = (0, interpolate_1.clamp)(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
347
378
  if (alpha < 1 || r.values.transparencyAverage.ref.value > 0 || ((_a = r.values.dXrayShaded) === null || _a === void 0 ? void 0 : _a.ref.value)) {
348
- renderObject(r, 'colorBlended');
379
+ renderObject(r, 'colorBlended', 0 /* None */);
349
380
  }
350
381
  }
351
382
  };
352
383
  var renderWboitOpaque = function (group, camera, depthTexture) {
353
- var _a, _b;
384
+ var _a, _b, _c;
354
385
  state.disable(gl.BLEND);
355
386
  state.enable(gl.DEPTH_TEST);
356
387
  state.depthMask(true);
@@ -361,8 +392,8 @@ var Renderer;
361
392
  // TODO: simplify, handle in renderable.state???
362
393
  // uAlpha is updated in "render" so we need to recompute it here
363
394
  var alpha = (0, interpolate_1.clamp)(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
364
- if (alpha === 1 && r.values.transparencyAverage.ref.value !== 1 && r.values.dGeometryType.ref.value !== 'directVolume' && ((_a = r.values.dPointStyle) === null || _a === void 0 ? void 0 : _a.ref.value) !== 'fuzzy' && !((_b = r.values.dXrayShaded) === null || _b === void 0 ? void 0 : _b.ref.value)) {
365
- renderObject(r, 'colorWboit');
395
+ if ((alpha === 1 && r.values.transparencyAverage.ref.value !== 1 && r.values.dGeometryType.ref.value !== 'directVolume' && ((_a = r.values.dPointStyle) === null || _a === void 0 ? void 0 : _a.ref.value) !== 'fuzzy' && !((_b = r.values.dXrayShaded) === null || _b === void 0 ? void 0 : _b.ref.value)) || ((_c = r.values.dOpaqueBackfaces) === null || _c === void 0 ? void 0 : _c.ref.value)) {
396
+ renderObject(r, 'colorWboit', 0 /* None */);
366
397
  }
367
398
  }
368
399
  };
@@ -376,7 +407,7 @@ var Renderer;
376
407
  // uAlpha is updated in "render" so we need to recompute it here
377
408
  var alpha = (0, interpolate_1.clamp)(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
378
409
  if (alpha < 1 || r.values.transparencyAverage.ref.value > 0 || r.values.dGeometryType.ref.value === 'directVolume' || ((_a = r.values.dPointStyle) === null || _a === void 0 ? void 0 : _a.ref.value) === 'fuzzy' || !!r.values.uBackgroundColor || ((_b = r.values.dXrayShaded) === null || _b === void 0 ? void 0 : _b.ref.value)) {
379
- renderObject(r, 'colorWboit');
410
+ renderObject(r, 'colorWboit', 0 /* None */);
380
411
  }
381
412
  }
382
413
  };
@@ -1 +1 @@
1
- export declare const apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n}\n";
1
+ export declare const apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n\n #ifdef dOpaqueBackfaces\n gl_FragColor.a = 1.0;\n #endif\n}\n";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.apply_interior_color = void 0;
4
- exports.apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n}\n";
4
+ exports.apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n\n #ifdef dOpaqueBackfaces\n gl_FragColor.a = 1.0;\n #endif\n}\n";
@@ -1 +1 @@
1
- export declare const check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1)\n discard; // ignore so the element below can be picked\n";
1
+ export declare const check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\n// if not opaque enough ignore so the element below can be picked\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1) {\n #ifdef dOpaqueBackfaces\n if (!interior) discard;\n #else\n discard;\n #endif\n}\n";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.check_picking_alpha = void 0;
4
- exports.check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1)\n discard; // ignore so the element below can be picked\n";
4
+ exports.check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\n// if not opaque enough ignore so the element below can be picked\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1) {\n #ifdef dOpaqueBackfaces\n if (!interior) discard;\n #else\n discard;\n #endif\n}\n";
@@ -1 +1 @@
1
- export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
1
+ export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #elif defined(dColorType_direct)\n varying vec4 vColor;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.color_vert_params = void 0;
4
- exports.color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
4
+ exports.color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #elif defined(dColorType_direct)\n varying vec4 vColor;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
@@ -1,7 +1,7 @@
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
  * @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
6
6
  */
7
- export declare const wboit_write = "\n#if defined(dRenderVariant_colorWboit)\n if (!uRenderWboit) {\n if (preFogAlpha < 1.0) {\n discard;\n }\n } else if (uRenderWboit) {\n // the 'fragmentDepth > 0.99' check is to handle precision issues with packed depth\n if (preFogAlpha != 1.0 && !interior && (fragmentDepth < getDepth(gl_FragCoord.xy / uDrawingBufferSize) || fragmentDepth > 0.99)) {\n float alpha = gl_FragColor.a;\n float wboitWeight = alpha * clamp(pow(1.0 - fragmentDepth, 2.0), 0.01, 1.0);\n gl_FragColor = vec4(gl_FragColor.rgb * alpha * wboitWeight, alpha);\n // extra alpha is to handle pre-multiplied alpha\n #ifndef dGeometryType_directVolume\n gl_FragData[1] = vec4((uTransparentBackground ? alpha : 1.0) * alpha * wboitWeight);\n #else\n gl_FragData[1] = vec4(alpha * alpha * wboitWeight);\n #endif\n } else {\n discard;\n }\n }\n#endif\n";
7
+ export declare const wboit_write = "\n#if defined(dRenderVariant_colorWboit)\n if (!uRenderWboit) {\n if (preFogAlpha < 1.0) {\n discard;\n }\n } else if (uRenderWboit) {\n // the 'fragmentDepth > 0.99' check is to handle precision issues with packed depth\n if (preFogAlpha != 1.0 && (fragmentDepth < getDepth(gl_FragCoord.xy / uDrawingBufferSize) || fragmentDepth > 0.99)) {\n float alpha = gl_FragColor.a;\n float wboitWeight = alpha * clamp(pow(1.0 - fragmentDepth, 2.0), 0.01, 1.0);\n gl_FragColor = vec4(gl_FragColor.rgb * alpha * wboitWeight, alpha);\n // extra alpha is to handle pre-multiplied alpha\n #ifndef dGeometryType_directVolume\n gl_FragData[1] = vec4((uTransparentBackground ? alpha : 1.0) * alpha * wboitWeight);\n #else\n gl_FragData[1] = vec4(alpha * alpha * wboitWeight);\n #endif\n } else {\n discard;\n }\n }\n#endif\n";
@@ -1,10 +1,10 @@
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-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  * @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.wboit_write = void 0;
10
- exports.wboit_write = "\n#if defined(dRenderVariant_colorWboit)\n if (!uRenderWboit) {\n if (preFogAlpha < 1.0) {\n discard;\n }\n } else if (uRenderWboit) {\n // the 'fragmentDepth > 0.99' check is to handle precision issues with packed depth\n if (preFogAlpha != 1.0 && !interior && (fragmentDepth < getDepth(gl_FragCoord.xy / uDrawingBufferSize) || fragmentDepth > 0.99)) {\n float alpha = gl_FragColor.a;\n float wboitWeight = alpha * clamp(pow(1.0 - fragmentDepth, 2.0), 0.01, 1.0);\n gl_FragColor = vec4(gl_FragColor.rgb * alpha * wboitWeight, alpha);\n // extra alpha is to handle pre-multiplied alpha\n #ifndef dGeometryType_directVolume\n gl_FragData[1] = vec4((uTransparentBackground ? alpha : 1.0) * alpha * wboitWeight);\n #else\n gl_FragData[1] = vec4(alpha * alpha * wboitWeight);\n #endif\n } else {\n discard;\n }\n }\n#endif\n";
10
+ exports.wboit_write = "\n#if defined(dRenderVariant_colorWboit)\n if (!uRenderWboit) {\n if (preFogAlpha < 1.0) {\n discard;\n }\n } else if (uRenderWboit) {\n // the 'fragmentDepth > 0.99' check is to handle precision issues with packed depth\n if (preFogAlpha != 1.0 && (fragmentDepth < getDepth(gl_FragCoord.xy / uDrawingBufferSize) || fragmentDepth > 0.99)) {\n float alpha = gl_FragColor.a;\n float wboitWeight = alpha * clamp(pow(1.0 - fragmentDepth, 2.0), 0.01, 1.0);\n gl_FragColor = vec4(gl_FragColor.rgb * alpha * wboitWeight, alpha);\n // extra alpha is to handle pre-multiplied alpha\n #ifndef dGeometryType_directVolume\n gl_FragData[1] = vec4((uTransparentBackground ? alpha : 1.0) * alpha * wboitWeight);\n #else\n gl_FragData[1] = vec4(alpha * alpha * wboitWeight);\n #endif\n } else {\n discard;\n }\n }\n#endif\n";