molstar 3.3.1 → 3.6.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 (1114) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +202 -194
  3. package/build/viewer/embedded.html +43 -43
  4. package/build/viewer/index.html +106 -106
  5. package/build/viewer/molstar.js +1 -1
  6. package/build/viewer/molstar.js.LICENSE.txt +12 -14
  7. package/lib/apps/docking-viewer/index.html +36 -36
  8. package/lib/apps/docking-viewer/index.js +1 -1
  9. package/lib/apps/docking-viewer/viewport.js +1 -1
  10. package/lib/apps/viewer/app.d.ts +7 -6
  11. package/lib/apps/viewer/app.js +3 -1
  12. package/lib/apps/viewer/embedded.html +43 -43
  13. package/lib/apps/viewer/index.html +106 -106
  14. package/lib/cli/chem-comp-dict/create-saccharides.d.ts +7 -0
  15. package/lib/cli/chem-comp-dict/create-saccharides.js +67 -0
  16. package/lib/cli/chem-comp-dict/util.d.ts +20 -20
  17. package/lib/cli/cif2bcif/converter.js +1 -1
  18. package/lib/cli/cif2bcif/index.js +4 -4
  19. package/lib/cli/cifschema/util/cif-dic.d.ts +1 -1
  20. package/lib/cli/cifschema/util/cif-dic.js +7 -5
  21. package/lib/cli/cifschema/util/generate.d.ts +1 -1
  22. package/lib/cli/cifschema/util/generate.js +12 -3
  23. package/lib/cli/cifschema/util/schema.d.ts +3 -3
  24. package/lib/cli/cifschema/util/schema.js +1 -1
  25. package/lib/commonjs/apps/docking-viewer/index.js +14 -14
  26. package/lib/commonjs/apps/docking-viewer/viewport.js +33 -33
  27. package/lib/commonjs/apps/viewer/app.d.ts +7 -6
  28. package/lib/commonjs/apps/viewer/app.js +26 -24
  29. package/lib/commonjs/apps/viewer/index.js +1 -1
  30. package/lib/commonjs/cli/chem-comp-dict/create-ions.js +6 -6
  31. package/lib/commonjs/cli/chem-comp-dict/create-saccharides.d.ts +7 -0
  32. package/lib/commonjs/cli/chem-comp-dict/create-saccharides.js +69 -0
  33. package/lib/commonjs/cli/chem-comp-dict/create-table.js +8 -8
  34. package/lib/commonjs/cli/chem-comp-dict/util.d.ts +20 -20
  35. package/lib/commonjs/cli/chem-comp-dict/util.js +17 -17
  36. package/lib/commonjs/cli/cif2bcif/converter.js +9 -9
  37. package/lib/commonjs/cli/cif2bcif/index.js +12 -12
  38. package/lib/commonjs/cli/cifschema/index.js +27 -27
  39. package/lib/commonjs/cli/cifschema/util/cif-dic.d.ts +1 -1
  40. package/lib/commonjs/cli/cifschema/util/cif-dic.js +8 -6
  41. package/lib/commonjs/cli/cifschema/util/generate.d.ts +1 -1
  42. package/lib/commonjs/cli/cifschema/util/generate.js +12 -3
  43. package/lib/commonjs/cli/cifschema/util/schema.d.ts +3 -3
  44. package/lib/commonjs/cli/cifschema/util/schema.js +1 -1
  45. package/lib/commonjs/cli/lipid-params/index.js +9 -9
  46. package/lib/commonjs/cli/state-docs/index.js +2 -2
  47. package/lib/commonjs/cli/structure-info/helpers.js +11 -11
  48. package/lib/commonjs/cli/structure-info/model.js +15 -15
  49. package/lib/commonjs/cli/structure-info/volume.js +9 -9
  50. package/lib/commonjs/examples/alpha-orbitals/controls.js +3 -3
  51. package/lib/commonjs/examples/alpha-orbitals/index.js +12 -12
  52. package/lib/commonjs/examples/basic-wrapper/controls.js +2 -2
  53. package/lib/commonjs/examples/basic-wrapper/index.js +23 -23
  54. package/lib/commonjs/examples/basic-wrapper/superposition.js +8 -8
  55. package/lib/commonjs/examples/domain-annotation-server/mapping.js +3 -3
  56. package/lib/commonjs/examples/domain-annotation-server/server.js +6 -6
  57. package/lib/commonjs/examples/domain-annotation-server/test.js +3 -3
  58. package/lib/commonjs/examples/lighting/index.js +7 -7
  59. package/lib/commonjs/examples/proteopedia-wrapper/annotation.js +2 -2
  60. package/lib/commonjs/examples/proteopedia-wrapper/helpers.js +4 -4
  61. package/lib/commonjs/examples/proteopedia-wrapper/index.js +27 -27
  62. package/lib/commonjs/examples/proteopedia-wrapper/ui/controls.js +2 -2
  63. package/lib/commonjs/examples/task.js +15 -15
  64. package/lib/commonjs/extensions/alpha-orbitals/collocation.js +2 -2
  65. package/lib/commonjs/extensions/alpha-orbitals/data-model.js +1 -1
  66. package/lib/commonjs/extensions/alpha-orbitals/density.js +2 -2
  67. package/lib/commonjs/extensions/alpha-orbitals/gpu/compute.js +2 -2
  68. package/lib/commonjs/extensions/alpha-orbitals/orbitals.js +2 -2
  69. package/lib/commonjs/extensions/alpha-orbitals/transforms.js +13 -13
  70. package/lib/commonjs/extensions/anvil/algorithm.js +13 -13
  71. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
  72. package/lib/commonjs/extensions/anvil/behavior.js +14 -14
  73. package/lib/commonjs/extensions/anvil/prop.js +7 -7
  74. package/lib/commonjs/extensions/anvil/representation.d.ts +4 -0
  75. package/lib/commonjs/extensions/anvil/representation.js +5 -5
  76. package/lib/commonjs/extensions/cellpack/index.js +1 -1
  77. package/lib/commonjs/extensions/cellpack/model.js +26 -24
  78. package/lib/commonjs/extensions/cellpack/preset.js +6 -6
  79. package/lib/commonjs/extensions/cellpack/property.js +3 -3
  80. package/lib/commonjs/extensions/cellpack/representation.d.ts +1 -0
  81. package/lib/commonjs/extensions/cellpack/representation.js +2 -2
  82. package/lib/commonjs/extensions/cellpack/state.js +13 -13
  83. package/lib/commonjs/extensions/cellpack/util.js +14 -14
  84. package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.js +7 -7
  85. package/lib/commonjs/extensions/dnatco/confal-pyramids/color.d.ts +397 -2
  86. package/lib/commonjs/extensions/dnatco/confal-pyramids/color.js +223 -131
  87. package/lib/commonjs/extensions/dnatco/confal-pyramids/property.js +6 -8
  88. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  89. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.js +2 -2
  90. package/lib/commonjs/extensions/dnatco/confal-pyramids/util.js +19 -20
  91. package/lib/commonjs/extensions/g3d/data.js +6 -6
  92. package/lib/commonjs/extensions/g3d/format.js +14 -14
  93. package/lib/commonjs/extensions/g3d/model.js +4 -4
  94. package/lib/commonjs/extensions/geo-export/controls.js +3 -3
  95. package/lib/commonjs/extensions/geo-export/glb-exporter.js +9 -9
  96. package/lib/commonjs/extensions/geo-export/index.js +1 -1
  97. package/lib/commonjs/extensions/geo-export/mesh-exporter.js +12 -12
  98. package/lib/commonjs/extensions/geo-export/obj-exporter.js +7 -7
  99. package/lib/commonjs/extensions/geo-export/stl-exporter.js +7 -7
  100. package/lib/commonjs/extensions/geo-export/ui.js +7 -7
  101. package/lib/commonjs/extensions/geo-export/usdz-exporter.js +9 -9
  102. package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.js +9 -9
  103. package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.js +4 -4
  104. package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.js +4 -4
  105. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.js +5 -5
  106. package/lib/commonjs/extensions/model-export/export.js +4 -4
  107. package/lib/commonjs/extensions/model-export/index.js +1 -1
  108. package/lib/commonjs/extensions/model-export/ui.js +5 -5
  109. package/lib/commonjs/extensions/mp4-export/controls.js +5 -5
  110. package/lib/commonjs/extensions/mp4-export/encoder.js +4 -4
  111. package/lib/commonjs/extensions/mp4-export/index.js +1 -1
  112. package/lib/commonjs/extensions/mp4-export/ui.js +5 -5
  113. package/lib/commonjs/extensions/pdbe/preferred-assembly.js +2 -2
  114. package/lib/commonjs/extensions/pdbe/struct-ref-domain.js +2 -2
  115. package/lib/commonjs/extensions/pdbe/structure-quality-report/behavior.js +1 -1
  116. package/lib/commonjs/extensions/pdbe/structure-quality-report/prop.js +8 -8
  117. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -0
  118. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.js +17 -17
  119. package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.js +2 -2
  120. package/lib/commonjs/extensions/rcsb/assembly-symmetry/prop.js +9 -9
  121. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -0
  122. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.js +6 -6
  123. package/lib/commonjs/extensions/rcsb/assembly-symmetry/ui.js +9 -9
  124. package/lib/commonjs/extensions/rcsb/validation-report/behavior.js +17 -17
  125. package/lib/commonjs/extensions/rcsb/validation-report/prop.js +15 -15
  126. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +5 -0
  127. package/lib/commonjs/extensions/rcsb/validation-report/representation.js +3 -3
  128. package/lib/commonjs/extensions/zenodo/index.d.ts +7 -0
  129. package/lib/commonjs/extensions/zenodo/index.js +35 -0
  130. package/lib/commonjs/extensions/zenodo/ui.d.ts +61 -0
  131. package/lib/commonjs/extensions/zenodo/ui.js +306 -0
  132. package/lib/commonjs/mol-canvas3d/camera/stereo.js +1 -1
  133. package/lib/commonjs/mol-canvas3d/camera/util.js +1 -1
  134. package/lib/commonjs/mol-canvas3d/camera.js +2 -1
  135. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -0
  136. package/lib/commonjs/mol-canvas3d/canvas3d.js +14 -14
  137. package/lib/commonjs/mol-canvas3d/controls/trackball.js +1 -1
  138. package/lib/commonjs/mol-canvas3d/helper/bounding-sphere-helper.js +1 -1
  139. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  140. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +5 -5
  141. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  142. package/lib/commonjs/mol-canvas3d/helper/handle-helper.js +5 -5
  143. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  144. package/lib/commonjs/mol-canvas3d/helper/helper.js +1 -1
  145. package/lib/commonjs/mol-canvas3d/helper/interaction-events.js +2 -2
  146. package/lib/commonjs/mol-canvas3d/passes/draw.js +3 -3
  147. package/lib/commonjs/mol-canvas3d/passes/fxaa.js +3 -3
  148. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  149. package/lib/commonjs/mol-canvas3d/passes/image.js +1 -1
  150. package/lib/commonjs/mol-canvas3d/passes/marking.js +6 -6
  151. package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +3 -3
  152. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +12 -12
  153. package/lib/commonjs/mol-canvas3d/passes/smaa.js +9 -9
  154. package/lib/commonjs/mol-canvas3d/passes/wboit.js +3 -3
  155. package/lib/commonjs/mol-canvas3d/util.js +2 -2
  156. package/lib/commonjs/mol-data/db/column.d.ts +10 -3
  157. package/lib/commonjs/mol-data/db/column.js +40 -18
  158. package/lib/commonjs/mol-data/db/table.js +1 -1
  159. package/lib/commonjs/mol-data/db.js +1 -1
  160. package/lib/commonjs/mol-data/generic.js +3 -3
  161. package/lib/commonjs/mol-data/index.js +4 -4
  162. package/lib/commonjs/mol-data/int/interval.js +1 -1
  163. package/lib/commonjs/mol-data/int/ordered-set.js +1 -1
  164. package/lib/commonjs/mol-data/int/segmentation.js +1 -1
  165. package/lib/commonjs/mol-data/int/sorted-array.js +1 -1
  166. package/lib/commonjs/mol-data/util.js +7 -7
  167. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +4 -2
  168. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +4 -4
  169. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +3 -3
  170. package/lib/commonjs/mol-geo/geometry/direct-volume/transfer-function.js +1 -1
  171. package/lib/commonjs/mol-geo/geometry/image/image.js +3 -3
  172. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
  173. package/lib/commonjs/mol-geo/geometry/lines/lines.js +3 -3
  174. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.d.ts +1 -1
  175. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js +5 -3
  176. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  177. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +4 -4
  178. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +1 -1
  179. package/lib/commonjs/mol-geo/geometry/points/points.js +3 -3
  180. package/lib/commonjs/mol-geo/geometry/size-data.js +1 -1
  181. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +2 -1
  182. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +4 -4
  183. package/lib/commonjs/mol-geo/geometry/text/font-atlas.js +1 -1
  184. package/lib/commonjs/mol-geo/geometry/text/text-builder.js +3 -2
  185. package/lib/commonjs/mol-geo/geometry/text/text.js +3 -3
  186. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +1 -1
  187. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +10 -8
  188. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +2 -1
  189. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +4 -4
  190. package/lib/commonjs/mol-geo/primitive/circle.js +1 -1
  191. package/lib/commonjs/mol-geo/primitive/cylinder.js +1 -1
  192. package/lib/commonjs/mol-geo/primitive/polyhedron.js +1 -1
  193. package/lib/commonjs/mol-geo/primitive/prism.js +1 -1
  194. package/lib/commonjs/mol-geo/primitive/star.js +1 -1
  195. package/lib/commonjs/mol-geo/primitive/torus.js +1 -1
  196. package/lib/commonjs/mol-geo/util/marching-cubes/algorithm.js +9 -9
  197. package/lib/commonjs/mol-gl/compute/grid3d.js +5 -5
  198. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +3 -3
  199. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.js +3 -3
  200. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.js +3 -3
  201. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +3 -3
  202. package/lib/commonjs/mol-gl/compute/util.js +3 -3
  203. package/lib/commonjs/mol-gl/renderable/cylinders.js +3 -3
  204. package/lib/commonjs/mol-gl/renderable/direct-volume.js +3 -3
  205. package/lib/commonjs/mol-gl/renderable/image.js +3 -3
  206. package/lib/commonjs/mol-gl/renderable/lines.js +3 -3
  207. package/lib/commonjs/mol-gl/renderable/mesh.js +3 -3
  208. package/lib/commonjs/mol-gl/renderable/points.js +3 -3
  209. package/lib/commonjs/mol-gl/renderable/schema.js +1 -1
  210. package/lib/commonjs/mol-gl/renderable/spheres.js +3 -3
  211. package/lib/commonjs/mol-gl/renderable/text.js +3 -3
  212. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +3 -3
  213. package/lib/commonjs/mol-gl/renderable/util.js +1 -1
  214. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.d.ts +2 -2
  215. package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +2 -2
  216. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  217. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  218. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +2 -2
  219. package/lib/commonjs/mol-gl/shader/image.frag.js +2 -2
  220. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +2 -2
  221. package/lib/commonjs/mol-gl/shader/lines.frag.js +2 -2
  222. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +2 -2
  223. package/lib/commonjs/mol-gl/shader/points.frag.js +2 -2
  224. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +2 -2
  225. package/lib/commonjs/mol-gl/shader/text.frag.js +2 -2
  226. package/lib/commonjs/mol-gl/shader-code.js +2 -1
  227. package/lib/commonjs/mol-gl/webgl/buffer.d.ts +2 -2
  228. package/lib/commonjs/mol-gl/webgl/buffer.js +16 -17
  229. package/lib/commonjs/mol-gl/webgl/context.d.ts +1 -1
  230. package/lib/commonjs/mol-gl/webgl/context.js +5 -5
  231. package/lib/commonjs/mol-gl/webgl/program.d.ts +1 -1
  232. package/lib/commonjs/mol-gl/webgl/program.js +10 -4
  233. package/lib/commonjs/mol-gl/webgl/render-item.js +1 -1
  234. package/lib/commonjs/mol-gl/webgl/resources.js +2 -2
  235. package/lib/commonjs/mol-io/common/binary-cif/classifier.js +7 -6
  236. package/lib/commonjs/mol-io/common/binary-cif/decoder.js +4 -3
  237. package/lib/commonjs/mol-io/common/binary-cif.js +3 -3
  238. package/lib/commonjs/mol-io/common/io-buffer.d.ts +206 -0
  239. package/lib/commonjs/mol-io/common/io-buffer.js +408 -0
  240. package/lib/commonjs/mol-io/common/netcdf/reader.d.ts +78 -0
  241. package/lib/commonjs/mol-io/common/netcdf/reader.js +459 -0
  242. package/lib/commonjs/mol-io/common/typed-array.js +2 -2
  243. package/lib/commonjs/mol-io/reader/ccp4/parser.js +8 -8
  244. package/lib/commonjs/mol-io/reader/cif/binary/parser.js +3 -3
  245. package/lib/commonjs/mol-io/reader/cif/data-model.js +1 -1
  246. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +8 -8
  247. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +12 -11
  248. package/lib/commonjs/mol-io/reader/cif/schema/ccd-extras.d.ts +1 -1
  249. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +12 -12
  250. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +13 -12
  251. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.d.ts +5 -5
  252. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.js +4 -4
  253. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +31 -27
  254. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +44 -39
  255. package/lib/commonjs/mol-io/reader/cif/schema.d.ts +1 -1
  256. package/lib/commonjs/mol-io/reader/cif/schema.js +24 -4
  257. package/lib/commonjs/mol-io/reader/cif/text/parser.js +7 -7
  258. package/lib/commonjs/mol-io/reader/cif.js +1 -1
  259. package/lib/commonjs/mol-io/reader/common/text/tokenizer.js +4 -4
  260. package/lib/commonjs/mol-io/reader/csv/data-model.js +1 -1
  261. package/lib/commonjs/mol-io/reader/csv/parser.js +7 -7
  262. package/lib/commonjs/mol-io/reader/cube/parser.js +2 -2
  263. package/lib/commonjs/mol-io/reader/dcd/parser.js +2 -2
  264. package/lib/commonjs/mol-io/reader/dsn6/parser.js +8 -8
  265. package/lib/commonjs/mol-io/reader/dx/parser.js +4 -4
  266. package/lib/commonjs/mol-io/reader/gro/parser.js +6 -6
  267. package/lib/commonjs/mol-io/reader/mol/parser.js +2 -2
  268. package/lib/commonjs/mol-io/reader/mol2/parser.js +8 -8
  269. package/lib/commonjs/mol-io/reader/nctraj/parser.d.ts +18 -0
  270. package/lib/commonjs/mol-io/reader/nctraj/parser.js +101 -0
  271. package/lib/commonjs/mol-io/reader/obj/parser.js +4 -4
  272. package/lib/commonjs/mol-io/reader/pdb/parser.js +2 -2
  273. package/lib/commonjs/mol-io/reader/ply/parser.js +4 -4
  274. package/lib/commonjs/mol-io/reader/prmtop/parser.d.ts +58 -0
  275. package/lib/commonjs/mol-io/reader/prmtop/parser.js +172 -0
  276. package/lib/commonjs/mol-io/reader/psf/parser.js +8 -8
  277. package/lib/commonjs/mol-io/reader/sdf/parser.js +2 -2
  278. package/lib/commonjs/mol-io/reader/top/parser.d.ts +37 -0
  279. package/lib/commonjs/mol-io/reader/top/parser.js +303 -0
  280. package/lib/commonjs/mol-io/reader/trr/parser.d.ts +22 -0
  281. package/lib/commonjs/mol-io/reader/trr/parser.js +146 -0
  282. package/lib/commonjs/mol-io/reader/xtc/parser.js +4 -4
  283. package/lib/commonjs/mol-io/reader/xyz/parser.js +2 -2
  284. package/lib/commonjs/mol-io/writer/cif/encoder.js +3 -2
  285. package/lib/commonjs/mol-io/writer/cif.js +1 -1
  286. package/lib/commonjs/mol-io/writer/ligand-encoder.js +1 -1
  287. package/lib/commonjs/mol-io/writer/mol/encoder.js +2 -2
  288. package/lib/commonjs/mol-io/writer/mol2/encoder.js +1 -1
  289. package/lib/commonjs/mol-math/geometry/boundary-helper.js +5 -5
  290. package/lib/commonjs/mol-math/geometry/common.d.ts +2 -1
  291. package/lib/commonjs/mol-math/geometry/common.js +1 -1
  292. package/lib/commonjs/mol-math/geometry/gaussian-density/cpu.d.ts +1 -1
  293. package/lib/commonjs/mol-math/geometry/gaussian-density/cpu.js +6 -6
  294. package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.d.ts +1 -1
  295. package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.js +8 -8
  296. package/lib/commonjs/mol-math/geometry/gaussian-density.d.ts +2 -2
  297. package/lib/commonjs/mol-math/geometry/gaussian-density.js +5 -5
  298. package/lib/commonjs/mol-math/geometry/molecular-surface.d.ts +2 -1
  299. package/lib/commonjs/mol-math/geometry/molecular-surface.js +10 -10
  300. package/lib/commonjs/mol-math/geometry/primitives/box3d.js +2 -1
  301. package/lib/commonjs/mol-math/geometry/primitives/sphere3d.js +13 -7
  302. package/lib/commonjs/mol-math/geometry.js +8 -8
  303. package/lib/commonjs/mol-math/graph/inter-unit-graph.js +1 -1
  304. package/lib/commonjs/mol-math/graph.js +1 -1
  305. package/lib/commonjs/mol-math/linear-algebra.js +2 -2
  306. package/lib/commonjs/mol-model/sequence/alignment/alignment.js +1 -1
  307. package/lib/commonjs/mol-model/sequence/sequence.js +2 -1
  308. package/lib/commonjs/mol-model/sequence.js +1 -1
  309. package/lib/commonjs/mol-model/shape.js +1 -1
  310. package/lib/commonjs/mol-model/structure/coordinates.js +1 -1
  311. package/lib/commonjs/mol-model/structure/export/categories/secondary-structure.js +2 -2
  312. package/lib/commonjs/mol-model/structure/model/model.js +17 -9
  313. package/lib/commonjs/mol-model/structure/model/properties/atomic.js +3 -3
  314. package/lib/commonjs/mol-model/structure/model/properties/coarse.js +2 -2
  315. package/lib/commonjs/mol-model/structure/model/properties/common.js +1 -1
  316. package/lib/commonjs/mol-model/structure/model/types/saccharides.d.ts +8 -0
  317. package/lib/commonjs/mol-model/structure/model/types/saccharides.js +11 -0
  318. package/lib/commonjs/mol-model/structure/model/types.d.ts +19 -17
  319. package/lib/commonjs/mol-model/structure/model/types.js +30 -31
  320. package/lib/commonjs/mol-model/structure/model.js +3 -3
  321. package/lib/commonjs/mol-model/structure/query/queries/generators.js +3 -3
  322. package/lib/commonjs/mol-model/structure/query/queries/modifiers.js +2 -2
  323. package/lib/commonjs/mol-model/structure/query.js +6 -6
  324. package/lib/commonjs/mol-model/structure/structure/carbohydrates/compute.js +1 -1
  325. package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.d.ts +1 -1
  326. package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.js +6 -9
  327. package/lib/commonjs/mol-model/structure/structure/element/element.js +5 -5
  328. package/lib/commonjs/mol-model/structure/structure/element.js +1 -1
  329. package/lib/commonjs/mol-model/structure/structure/properties.d.ts +1 -1
  330. package/lib/commonjs/mol-model/structure/structure/structure.js +5 -5
  331. package/lib/commonjs/mol-model/structure/structure/symmetry.js +10 -10
  332. package/lib/commonjs/mol-model/structure/structure/unit/bonds/data.js +2 -2
  333. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -7
  334. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +2 -4
  335. package/lib/commonjs/mol-model/structure/structure/unit/bonds.js +3 -3
  336. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +3 -0
  337. package/lib/commonjs/mol-model/structure/structure/unit.js +4 -4
  338. package/lib/commonjs/mol-model/structure/structure/util/superposition.js +1 -1
  339. package/lib/commonjs/mol-model/structure/structure.js +2 -2
  340. package/lib/commonjs/mol-model/structure/topology.js +1 -1
  341. package/lib/commonjs/mol-model/structure.js +6 -6
  342. package/lib/commonjs/mol-model/volume.js +2 -2
  343. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +2 -0
  344. package/lib/commonjs/mol-model-formats/shape/ply.js +7 -7
  345. package/lib/commonjs/mol-model-formats/structure/basic/atomic.d.ts +1 -1
  346. package/lib/commonjs/mol-model-formats/structure/basic/atomic.js +2 -15
  347. package/lib/commonjs/mol-model-formats/structure/basic/coarse.js +3 -3
  348. package/lib/commonjs/mol-model-formats/structure/basic/entities.js +2 -2
  349. package/lib/commonjs/mol-model-formats/structure/basic/parser.d.ts +1 -1
  350. package/lib/commonjs/mol-model-formats/structure/basic/parser.js +10 -10
  351. package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +4 -4
  352. package/lib/commonjs/mol-model-formats/structure/basic/schema.js +7 -2
  353. package/lib/commonjs/mol-model-formats/structure/basic/sort.js +2 -2
  354. package/lib/commonjs/mol-model-formats/structure/basic/util.d.ts +33 -2
  355. package/lib/commonjs/mol-model-formats/structure/basic/util.js +26 -2
  356. package/lib/commonjs/mol-model-formats/structure/cif-core.js +6 -6
  357. package/lib/commonjs/mol-model-formats/structure/common/component.d.ts +3 -3
  358. package/lib/commonjs/mol-model-formats/structure/common/component.js +51 -47
  359. package/lib/commonjs/mol-model-formats/structure/cube.js +5 -5
  360. package/lib/commonjs/mol-model-formats/structure/dcd.js +2 -2
  361. package/lib/commonjs/mol-model-formats/structure/gro.js +5 -3
  362. package/lib/commonjs/mol-model-formats/structure/mmcif.d.ts +1 -1
  363. package/lib/commonjs/mol-model-formats/structure/mmcif.js +4 -2
  364. package/lib/commonjs/mol-model-formats/structure/mol.js +5 -5
  365. package/lib/commonjs/mol-model-formats/structure/mol2.js +6 -6
  366. package/lib/commonjs/mol-model-formats/structure/nctraj.d.ts +9 -0
  367. package/lib/commonjs/mol-model-formats/structure/nctraj.js +60 -0
  368. package/lib/commonjs/mol-model-formats/structure/pdb/atom-site.d.ts +2 -2
  369. package/lib/commonjs/mol-model-formats/structure/pdb/atom-site.js +72 -7
  370. package/lib/commonjs/mol-model-formats/structure/pdb/secondary-structure.js +11 -11
  371. package/lib/commonjs/mol-model-formats/structure/pdb/to-cif.js +9 -4
  372. package/lib/commonjs/mol-model-formats/structure/pdb.d.ts +1 -1
  373. package/lib/commonjs/mol-model-formats/structure/pdb.js +7 -5
  374. package/lib/commonjs/mol-model-formats/structure/prmtop.d.ts +16 -0
  375. package/lib/commonjs/mol-model-formats/structure/prmtop.js +147 -0
  376. package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +1 -1
  377. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  378. package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +1 -1
  379. package/lib/commonjs/mol-model-formats/structure/property/symmetry.js +11 -1
  380. package/lib/commonjs/mol-model-formats/structure/psf.js +5 -3
  381. package/lib/commonjs/mol-model-formats/structure/top.d.ts +16 -0
  382. package/lib/commonjs/mol-model-formats/structure/top.js +189 -0
  383. package/lib/commonjs/mol-model-formats/structure/trr.d.ts +9 -0
  384. package/lib/commonjs/mol-model-formats/structure/trr.js +46 -0
  385. package/lib/commonjs/mol-model-formats/structure/util.d.ts +2 -2
  386. package/lib/commonjs/mol-model-formats/structure/util.js +19 -20
  387. package/lib/commonjs/mol-model-formats/structure/xtc.js +2 -2
  388. package/lib/commonjs/mol-model-formats/structure/xyz.js +2 -2
  389. package/lib/commonjs/mol-model-formats/volume/ccp4.js +2 -2
  390. package/lib/commonjs/mol-model-formats/volume/cube.js +2 -2
  391. package/lib/commonjs/mol-model-formats/volume/density-server.js +2 -2
  392. package/lib/commonjs/mol-model-formats/volume/dsn6.js +2 -2
  393. package/lib/commonjs/mol-model-formats/volume/dx.js +2 -2
  394. package/lib/commonjs/mol-model-props/common/custom-element-property.js +2 -2
  395. package/lib/commonjs/mol-model-props/common/custom-model-property.js +5 -5
  396. package/lib/commonjs/mol-model-props/common/custom-property.js +1 -1
  397. package/lib/commonjs/mol-model-props/common/custom-structure-property.js +6 -6
  398. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley/area.js +2 -2
  399. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +5 -5
  400. package/lib/commonjs/mol-model-props/computed/accessible-surface-area.js +4 -4
  401. package/lib/commonjs/mol-model-props/computed/chemistry/valence-model.js +3 -3
  402. package/lib/commonjs/mol-model-props/computed/helix-orientation.js +2 -2
  403. package/lib/commonjs/mol-model-props/computed/interactions/common.js +1 -1
  404. package/lib/commonjs/mol-model-props/computed/interactions/contacts.js +1 -1
  405. package/lib/commonjs/mol-model-props/computed/interactions/features.js +1 -1
  406. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js +3 -3
  407. package/lib/commonjs/mol-model-props/computed/interactions/interactions.js +3 -3
  408. package/lib/commonjs/mol-model-props/computed/interactions.js +4 -4
  409. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  410. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +1 -1
  411. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  412. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +3 -3
  413. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +3 -0
  414. package/lib/commonjs/mol-model-props/computed/representations/interactions.js +1 -1
  415. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp.js +2 -2
  416. package/lib/commonjs/mol-model-props/computed/secondary-structure.js +7 -7
  417. package/lib/commonjs/mol-model-props/computed/valence-model.js +4 -4
  418. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/property.js +2 -2
  419. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  420. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.js +2 -2
  421. package/lib/commonjs/mol-model-props/sequence/sifts-mapping.js +2 -2
  422. package/lib/commonjs/mol-model-props/sequence/themes/sifts-mapping.js +3 -3
  423. package/lib/commonjs/mol-plugin/animation-loop.js +2 -2
  424. package/lib/commonjs/mol-plugin/behavior/behavior.js +5 -5
  425. package/lib/commonjs/mol-plugin/behavior/dynamic/camera.js +2 -2
  426. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.js +1 -1
  427. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/interactions.js +1 -1
  428. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.js +1 -1
  429. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.js +1 -1
  430. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.js +1 -1
  431. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/sequence/sifts-mapping.js +1 -1
  432. package/lib/commonjs/mol-plugin/behavior/dynamic/custom-props/structure-info.js +2 -2
  433. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +3 -3
  434. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +11 -11
  435. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.js +12 -12
  436. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  437. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.js +1 -1
  438. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/transformers.js +16 -16
  439. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/util.js +13 -12
  440. package/lib/commonjs/mol-plugin/behavior/static/state.js +6 -6
  441. package/lib/commonjs/mol-plugin/behavior.js +8 -8
  442. package/lib/commonjs/mol-plugin/command.js +2 -2
  443. package/lib/commonjs/mol-plugin/commands.d.ts +1 -0
  444. package/lib/commonjs/mol-plugin/context.d.ts +2 -1
  445. package/lib/commonjs/mol-plugin/context.js +9 -8
  446. package/lib/commonjs/mol-plugin/layout.js +2 -2
  447. package/lib/commonjs/mol-plugin/spec.js +1 -1
  448. package/lib/commonjs/mol-plugin/state.js +5 -5
  449. package/lib/commonjs/mol-plugin/util/task-manager.js +4 -4
  450. package/lib/commonjs/mol-plugin/util/toast.js +1 -1
  451. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  452. package/lib/commonjs/mol-plugin/util/viewport-screenshot.js +17 -17
  453. package/lib/commonjs/mol-plugin-state/actions/file.d.ts +1 -1
  454. package/lib/commonjs/mol-plugin-state/actions/file.js +94 -61
  455. package/lib/commonjs/mol-plugin-state/actions/structure.d.ts +17 -8
  456. package/lib/commonjs/mol-plugin-state/actions/structure.js +190 -20
  457. package/lib/commonjs/mol-plugin-state/actions/volume.js +5 -4
  458. package/lib/commonjs/mol-plugin-state/actions.js +3 -3
  459. package/lib/commonjs/mol-plugin-state/animation/built-in/assembly-unwind.js +2 -2
  460. package/lib/commonjs/mol-plugin-state/animation/built-in/camera-rock.js +3 -3
  461. package/lib/commonjs/mol-plugin-state/animation/built-in/camera-spin.js +3 -3
  462. package/lib/commonjs/mol-plugin-state/animation/built-in/explode-units.js +4 -4
  463. package/lib/commonjs/mol-plugin-state/animation/built-in/model-index.js +2 -2
  464. package/lib/commonjs/mol-plugin-state/animation/built-in/spin-structure.js +5 -5
  465. package/lib/commonjs/mol-plugin-state/animation/built-in/state-interpolation.js +2 -2
  466. package/lib/commonjs/mol-plugin-state/animation/built-in/state-snapshots.js +5 -5
  467. package/lib/commonjs/mol-plugin-state/builder/data.js +2 -2
  468. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.js +16 -16
  469. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.js +28 -28
  470. package/lib/commonjs/mol-plugin-state/builder/structure/representation.js +2 -2
  471. package/lib/commonjs/mol-plugin-state/builder/structure.js +7 -7
  472. package/lib/commonjs/mol-plugin-state/component.js +1 -1
  473. package/lib/commonjs/mol-plugin-state/formats/{structure.d.ts → coordinates.d.ts} +34 -18
  474. package/lib/commonjs/mol-plugin-state/formats/coordinates.js +70 -0
  475. package/lib/commonjs/mol-plugin-state/formats/registry.d.ts +3 -3
  476. package/lib/commonjs/mol-plugin-state/formats/registry.js +13 -8
  477. package/lib/commonjs/mol-plugin-state/formats/shape.js +2 -2
  478. package/lib/commonjs/mol-plugin-state/formats/topology.d.ts +73 -0
  479. package/lib/commonjs/mol-plugin-state/formats/topology.js +87 -0
  480. package/lib/commonjs/mol-plugin-state/formats/trajectory.js +6 -6
  481. package/lib/commonjs/mol-plugin-state/formats/volume.js +21 -21
  482. package/lib/commonjs/mol-plugin-state/helpers/root-structure.js +14 -14
  483. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.js +7 -7
  484. package/lib/commonjs/mol-plugin-state/helpers/structure-component.js +2 -1
  485. package/lib/commonjs/mol-plugin-state/helpers/structure-overpaint.js +11 -11
  486. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  487. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +4 -4
  488. package/lib/commonjs/mol-plugin-state/helpers/structure-substance.js +11 -11
  489. package/lib/commonjs/mol-plugin-state/helpers/structure-transparency.js +11 -11
  490. package/lib/commonjs/mol-plugin-state/manager/animation.js +17 -17
  491. package/lib/commonjs/mol-plugin-state/manager/camera.js +1 -1
  492. package/lib/commonjs/mol-plugin-state/manager/interactivity.js +6 -6
  493. package/lib/commonjs/mol-plugin-state/manager/snapshots.js +14 -14
  494. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +26 -26
  495. package/lib/commonjs/mol-plugin-state/manager/structure/focus.js +2 -2
  496. package/lib/commonjs/mol-plugin-state/manager/structure/hierarchy-state.js +1 -1
  497. package/lib/commonjs/mol-plugin-state/manager/structure/hierarchy.js +8 -8
  498. package/lib/commonjs/mol-plugin-state/manager/structure/measurement.js +21 -21
  499. package/lib/commonjs/mol-plugin-state/manager/structure/selection.js +3 -3
  500. package/lib/commonjs/mol-plugin-state/manager/volume/hierarchy.js +1 -1
  501. package/lib/commonjs/mol-plugin-state/objects.d.ts +47 -1
  502. package/lib/commonjs/mol-plugin-state/objects.js +46 -30
  503. package/lib/commonjs/mol-plugin-state/transforms/data.d.ts +6 -0
  504. package/lib/commonjs/mol-plugin-state/transforms/data.js +93 -41
  505. package/lib/commonjs/mol-plugin-state/transforms/model.d.ts +14 -2
  506. package/lib/commonjs/mol-plugin-state/transforms/model.js +163 -54
  507. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +6 -0
  508. package/lib/commonjs/mol-plugin-state/transforms/representation.js +77 -77
  509. package/lib/commonjs/mol-plugin-state/transforms/shape.js +2 -2
  510. package/lib/commonjs/mol-plugin-state/transforms/volume.js +16 -16
  511. package/lib/commonjs/mol-plugin-state/transforms.js +6 -6
  512. package/lib/commonjs/mol-plugin-ui/base.js +5 -5
  513. package/lib/commonjs/mol-plugin-ui/context.js +1 -1
  514. package/lib/commonjs/mol-plugin-ui/controls/action-menu.js +14 -14
  515. package/lib/commonjs/mol-plugin-ui/controls/color.js +7 -7
  516. package/lib/commonjs/mol-plugin-ui/controls/common.js +16 -16
  517. package/lib/commonjs/mol-plugin-ui/controls/icons.js +70 -70
  518. package/lib/commonjs/mol-plugin-ui/controls/legend.js +7 -7
  519. package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.js +3 -3
  520. package/lib/commonjs/mol-plugin-ui/controls/line-graph/point-component.js +2 -2
  521. package/lib/commonjs/mol-plugin-ui/controls/parameters.js +94 -94
  522. package/lib/commonjs/mol-plugin-ui/controls/screenshot.js +5 -5
  523. package/lib/commonjs/mol-plugin-ui/controls/slider.js +16 -16
  524. package/lib/commonjs/mol-plugin-ui/controls.js +16 -16
  525. package/lib/commonjs/mol-plugin-ui/custom/volume.js +16 -16
  526. package/lib/commonjs/mol-plugin-ui/index.js +4 -4
  527. package/lib/commonjs/mol-plugin-ui/left-panel.d.ts +8 -1
  528. package/lib/commonjs/mol-plugin-ui/left-panel.js +40 -19
  529. package/lib/commonjs/mol-plugin-ui/plugin.js +17 -17
  530. package/lib/commonjs/mol-plugin-ui/react18.d.ts +11 -0
  531. package/lib/commonjs/mol-plugin-ui/react18.js +38 -0
  532. package/lib/commonjs/mol-plugin-ui/sequence/chain.js +1 -1
  533. package/lib/commonjs/mol-plugin-ui/sequence/element.js +1 -1
  534. package/lib/commonjs/mol-plugin-ui/sequence/hetero.js +1 -1
  535. package/lib/commonjs/mol-plugin-ui/sequence/polymer.js +1 -1
  536. package/lib/commonjs/mol-plugin-ui/sequence/sequence.js +6 -6
  537. package/lib/commonjs/mol-plugin-ui/sequence.js +9 -9
  538. package/lib/commonjs/mol-plugin-ui/spec.js +1 -1
  539. package/lib/commonjs/mol-plugin-ui/state/actions.js +2 -2
  540. package/lib/commonjs/mol-plugin-ui/state/animation.js +2 -2
  541. package/lib/commonjs/mol-plugin-ui/state/apply-action.js +1 -1
  542. package/lib/commonjs/mol-plugin-ui/state/common.js +12 -12
  543. package/lib/commonjs/mol-plugin-ui/state/snapshots.js +29 -29
  544. package/lib/commonjs/mol-plugin-ui/state/tree.js +19 -19
  545. package/lib/commonjs/mol-plugin-ui/state/update-transform.js +3 -3
  546. package/lib/commonjs/mol-plugin-ui/structure/components.js +19 -19
  547. package/lib/commonjs/mol-plugin-ui/structure/focus.d.ts +1 -1
  548. package/lib/commonjs/mol-plugin-ui/structure/focus.js +6 -6
  549. package/lib/commonjs/mol-plugin-ui/structure/generic.js +6 -6
  550. package/lib/commonjs/mol-plugin-ui/structure/measurements.js +13 -13
  551. package/lib/commonjs/mol-plugin-ui/structure/quick-styles.js +11 -11
  552. package/lib/commonjs/mol-plugin-ui/structure/selection.js +13 -13
  553. package/lib/commonjs/mol-plugin-ui/structure/source.js +12 -12
  554. package/lib/commonjs/mol-plugin-ui/structure/superposition.js +20 -20
  555. package/lib/commonjs/mol-plugin-ui/structure/volume.js +12 -12
  556. package/lib/commonjs/mol-plugin-ui/task.js +8 -8
  557. package/lib/commonjs/mol-plugin-ui/toast.js +6 -6
  558. package/lib/commonjs/mol-plugin-ui/viewport/canvas.js +5 -5
  559. package/lib/commonjs/mol-plugin-ui/viewport/help.js +14 -14
  560. package/lib/commonjs/mol-plugin-ui/viewport/screenshot.js +8 -8
  561. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +6 -6
  562. package/lib/commonjs/mol-plugin-ui/viewport.js +7 -7
  563. package/lib/commonjs/mol-repr/representation.js +4 -4
  564. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +1 -0
  565. package/lib/commonjs/mol-repr/shape/loci/angle.js +9 -9
  566. package/lib/commonjs/mol-repr/shape/loci/common.js +1 -1
  567. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +1 -0
  568. package/lib/commonjs/mol-repr/shape/loci/dihedral.js +14 -14
  569. package/lib/commonjs/mol-repr/shape/loci/distance.js +5 -5
  570. package/lib/commonjs/mol-repr/shape/loci/label.js +3 -3
  571. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -0
  572. package/lib/commonjs/mol-repr/shape/loci/orientation.js +4 -4
  573. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +1 -0
  574. package/lib/commonjs/mol-repr/shape/loci/plane.js +2 -2
  575. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +1 -0
  576. package/lib/commonjs/mol-repr/shape/model/unitcell.js +2 -2
  577. package/lib/commonjs/mol-repr/shape/representation.js +2 -2
  578. package/lib/commonjs/mol-repr/structure/complex-representation.js +2 -2
  579. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +3 -0
  580. package/lib/commonjs/mol-repr/structure/complex-visual.js +12 -12
  581. package/lib/commonjs/mol-repr/structure/params.d.ts +4 -0
  582. package/lib/commonjs/mol-repr/structure/params.js +8 -8
  583. package/lib/commonjs/mol-repr/structure/registry.d.ts +10 -0
  584. package/lib/commonjs/mol-repr/structure/registry.js +1 -1
  585. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
  586. package/lib/commonjs/mol-repr/structure/representation/backbone.js +1 -1
  587. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  588. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.js +1 -1
  589. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  590. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.js +1 -1
  591. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +3 -0
  592. package/lib/commonjs/mol-repr/structure/representation/cartoon.js +3 -3
  593. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  594. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.js +1 -1
  595. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  596. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.js +1 -1
  597. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.js +1 -1
  598. package/lib/commonjs/mol-repr/structure/representation/label.js +1 -1
  599. package/lib/commonjs/mol-repr/structure/representation/line.js +1 -1
  600. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  601. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.js +1 -1
  602. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -0
  603. package/lib/commonjs/mol-repr/structure/representation/orientation.js +1 -1
  604. package/lib/commonjs/mol-repr/structure/representation/point.js +1 -1
  605. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -0
  606. package/lib/commonjs/mol-repr/structure/representation/putty.js +1 -1
  607. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -0
  608. package/lib/commonjs/mol-repr/structure/representation/spacefill.js +1 -1
  609. package/lib/commonjs/mol-repr/structure/representation.js +1 -1
  610. package/lib/commonjs/mol-repr/structure/units-representation.js +2 -2
  611. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +4 -0
  612. package/lib/commonjs/mol-repr/structure/units-visual.js +16 -16
  613. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  614. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +1 -1
  615. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +1 -1
  616. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  617. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +1 -1
  618. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +1 -1
  619. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  620. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.js +1 -1
  621. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  622. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +1 -1
  623. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  624. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  625. package/lib/commonjs/mol-repr/structure/visual/element-cross.js +1 -1
  626. package/lib/commonjs/mol-repr/structure/visual/element-point.js +1 -1
  627. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +2 -0
  628. package/lib/commonjs/mol-repr/structure/visual/element-sphere.js +1 -1
  629. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  630. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.js +1 -1
  631. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.js +8 -9
  632. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +5 -1
  633. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +20 -20
  634. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -1
  635. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.js +7 -8
  636. package/lib/commonjs/mol-repr/structure/visual/label-text.js +1 -1
  637. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  638. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +6 -6
  639. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -1
  640. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.js +7 -7
  641. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  642. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.js +1 -1
  643. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  644. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.js +1 -1
  645. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  646. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +1 -1
  647. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  648. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.js +1 -1
  649. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  650. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.js +1 -1
  651. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  652. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  653. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  654. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.js +1 -1
  655. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  656. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +1 -1
  657. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  658. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.js +1 -1
  659. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +2 -2
  660. package/lib/commonjs/mol-repr/structure/visual/util/common.d.ts +1 -3
  661. package/lib/commonjs/mol-repr/structure/visual/util/common.js +3 -28
  662. package/lib/commonjs/mol-repr/structure/visual/util/gaussian.js +13 -13
  663. package/lib/commonjs/mol-repr/structure/visual/util/molecular-surface.js +5 -5
  664. package/lib/commonjs/mol-repr/structure/visual/util/polymer.js +4 -4
  665. package/lib/commonjs/mol-repr/util.d.ts +2 -1
  666. package/lib/commonjs/mol-repr/util.js +3 -3
  667. package/lib/commonjs/mol-repr/volume/direct-volume.js +3 -3
  668. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +5 -0
  669. package/lib/commonjs/mol-repr/volume/isosurface.js +9 -9
  670. package/lib/commonjs/mol-repr/volume/registry.d.ts +1 -0
  671. package/lib/commonjs/mol-repr/volume/registry.js +1 -1
  672. package/lib/commonjs/mol-repr/volume/representation.js +5 -5
  673. package/lib/commonjs/mol-repr/volume/slice.js +4 -4
  674. package/lib/commonjs/mol-script/language/builder.d.ts +1 -0
  675. package/lib/commonjs/mol-script/language/parser.js +7 -4
  676. package/lib/commonjs/mol-script/language/symbol-table/internal.js +1 -1
  677. package/lib/commonjs/mol-script/language/symbol-table/structure-query.js +1 -1
  678. package/lib/commonjs/mol-script/runtime/query/compiler.js +1 -1
  679. package/lib/commonjs/mol-script/script/mol-script/symbols.js +1 -1
  680. package/lib/commonjs/mol-state/action.js +1 -1
  681. package/lib/commonjs/mol-state/index.js +8 -8
  682. package/lib/commonjs/mol-state/state/builder.js +2 -2
  683. package/lib/commonjs/mol-state/state/selection.js +1 -1
  684. package/lib/commonjs/mol-state/state.js +21 -21
  685. package/lib/commonjs/mol-state/transform.js +4 -4
  686. package/lib/commonjs/mol-state/transformer.js +1 -1
  687. package/lib/commonjs/mol-task/execution/observable.js +5 -5
  688. package/lib/commonjs/mol-task/task.js +3 -3
  689. package/lib/commonjs/mol-task/util/chunked.js +2 -2
  690. package/lib/commonjs/mol-task/util/multistep.js +1 -1
  691. package/lib/commonjs/mol-task/util/scheduler.d.ts +2 -2
  692. package/lib/commonjs/mol-task/util/scheduler.js +8 -8
  693. package/lib/commonjs/mol-theme/color/atom-id.js +1 -1
  694. package/lib/commonjs/mol-theme/color/chain-id.js +1 -1
  695. package/lib/commonjs/mol-theme/color/element-index.js +1 -1
  696. package/lib/commonjs/mol-theme/color/entity-id.js +1 -1
  697. package/lib/commonjs/mol-theme/color/entity-source.js +2 -2
  698. package/lib/commonjs/mol-theme/color/hydrophobicity.js +2 -2
  699. package/lib/commonjs/mol-theme/color/model-index.js +1 -1
  700. package/lib/commonjs/mol-theme/color/operator-hkl.js +2 -2
  701. package/lib/commonjs/mol-theme/color/operator-name.js +1 -1
  702. package/lib/commonjs/mol-theme/color/polymer-id.js +2 -2
  703. package/lib/commonjs/mol-theme/color/polymer-index.js +2 -2
  704. package/lib/commonjs/mol-theme/color/unit-index.js +2 -2
  705. package/lib/commonjs/mol-theme/label.js +6 -6
  706. package/lib/commonjs/mol-theme/theme.js +3 -3
  707. package/lib/commonjs/mol-util/assets.js +7 -7
  708. package/lib/commonjs/mol-util/color/distinct.js +1 -1
  709. package/lib/commonjs/mol-util/color/palette.js +3 -3
  710. package/lib/commonjs/mol-util/color/scale.js +2 -2
  711. package/lib/commonjs/mol-util/data-source.js +14 -13
  712. package/lib/commonjs/mol-util/file-info.d.ts +1 -3
  713. package/lib/commonjs/mol-util/file-info.js +2 -10
  714. package/lib/commonjs/mol-util/graphql-client.js +4 -4
  715. package/lib/commonjs/mol-util/index.d.ts +1 -0
  716. package/lib/commonjs/mol-util/index.js +8 -2
  717. package/lib/commonjs/mol-util/input/input-observer.js +6 -6
  718. package/lib/commonjs/mol-util/make-dir.js +1 -1
  719. package/lib/commonjs/mol-util/material.js +2 -2
  720. package/lib/commonjs/mol-util/monadic-parser.js +2 -2
  721. package/lib/commonjs/mol-util/param-definition.js +7 -7
  722. package/lib/commonjs/mol-util/read.js +2 -2
  723. package/lib/commonjs/mol-util/retry-if.js +2 -2
  724. package/lib/commonjs/mol-util/string.js +1 -1
  725. package/lib/commonjs/mol-util/zip/deflate.js +4 -3
  726. package/lib/commonjs/mol-util/zip/inflate.js +2 -2
  727. package/lib/commonjs/mol-util/zip/zip.d.ts +7 -1
  728. package/lib/commonjs/mol-util/zip/zip.js +21 -16
  729. package/lib/commonjs/servers/common/file-handle.js +1 -1
  730. package/lib/commonjs/servers/common/swagger-ui/index.js +1 -1
  731. package/lib/commonjs/servers/model/config.d.ts +2 -2
  732. package/lib/commonjs/servers/model/config.js +5 -5
  733. package/lib/commonjs/servers/model/preprocess/converter.js +2 -2
  734. package/lib/commonjs/servers/model/preprocess/master.js +3 -3
  735. package/lib/commonjs/servers/model/preprocess/parallel.js +6 -6
  736. package/lib/commonjs/servers/model/preprocess/preprocess.js +4 -4
  737. package/lib/commonjs/servers/model/preprocess.js +1 -1
  738. package/lib/commonjs/servers/model/properties/providers/pdbe.js +8 -8
  739. package/lib/commonjs/servers/model/properties/providers/wwpdb.js +12 -12
  740. package/lib/commonjs/servers/model/property-provider.js +3 -3
  741. package/lib/commonjs/servers/model/query.js +1 -1
  742. package/lib/commonjs/servers/model/server/api-local.js +2 -2
  743. package/lib/commonjs/servers/model/server/api-schema.js +2 -2
  744. package/lib/commonjs/servers/model/server/api-web.js +5 -5
  745. package/lib/commonjs/servers/model/server/api.js +6 -6
  746. package/lib/commonjs/servers/model/server/query.js +15 -15
  747. package/lib/commonjs/servers/model/server/structure-wrapper.js +21 -21
  748. package/lib/commonjs/servers/model/server.js +2 -2
  749. package/lib/commonjs/servers/model/utils/fetch-props-pdbe.js +6 -6
  750. package/lib/commonjs/servers/model/utils/fetch-retry.js +3 -3
  751. package/lib/commonjs/servers/model/utils/writer.js +3 -3
  752. package/lib/commonjs/servers/plugin-state/config.js +1 -1
  753. package/lib/commonjs/servers/plugin-state/index.js +6 -6
  754. package/lib/commonjs/servers/volume/common/binary-schema.js +1 -1
  755. package/lib/commonjs/servers/volume/common/data-format.js +3 -3
  756. package/lib/commonjs/servers/volume/common/file.js +8 -8
  757. package/lib/commonjs/servers/volume/config.js +6 -6
  758. package/lib/commonjs/servers/volume/pack/format/ccp4.js +4 -4
  759. package/lib/commonjs/servers/volume/pack/format/dsn6.js +4 -4
  760. package/lib/commonjs/servers/volume/pack/format.js +3 -3
  761. package/lib/commonjs/servers/volume/pack/main.js +13 -13
  762. package/lib/commonjs/servers/volume/pack/sampling.js +13 -13
  763. package/lib/commonjs/servers/volume/pack/writer.js +2 -2
  764. package/lib/commonjs/servers/volume/pack.js +1 -1
  765. package/lib/commonjs/servers/volume/query.js +4 -4
  766. package/lib/commonjs/servers/volume/server/algebra/box.js +1 -1
  767. package/lib/commonjs/servers/volume/server/api.js +8 -8
  768. package/lib/commonjs/servers/volume/server/local-api.js +8 -8
  769. package/lib/commonjs/servers/volume/server/query/compose.js +8 -8
  770. package/lib/commonjs/servers/volume/server/query/execute.js +10 -10
  771. package/lib/commonjs/servers/volume/server/query/identify.js +2 -2
  772. package/lib/commonjs/servers/volume/server/web-api.js +7 -7
  773. package/lib/commonjs/servers/volume/server.js +2 -2
  774. package/lib/examples/alpha-orbitals/controls.js +2 -2
  775. package/lib/examples/alpha-orbitals/index.html +61 -61
  776. package/lib/examples/alpha-orbitals/index.js +1 -1
  777. package/lib/examples/basic-wrapper/controls.js +1 -1
  778. package/lib/examples/basic-wrapper/index.html +137 -137
  779. package/lib/examples/basic-wrapper/index.js +1 -1
  780. package/lib/examples/lighting/index.html +88 -88
  781. package/lib/examples/lighting/index.js +1 -1
  782. package/lib/examples/proteopedia-wrapper/index.html +236 -236
  783. package/lib/examples/proteopedia-wrapper/index.js +1 -1
  784. package/lib/examples/proteopedia-wrapper/ui/controls.js +1 -1
  785. package/lib/extensions/anvil/behavior.d.ts +1 -0
  786. package/lib/extensions/anvil/representation.d.ts +4 -0
  787. package/lib/extensions/cellpack/model.js +4 -2
  788. package/lib/extensions/cellpack/representation.d.ts +1 -0
  789. package/lib/extensions/cellpack/state.js +2 -2
  790. package/lib/extensions/dnatco/confal-pyramids/color.d.ts +397 -2
  791. package/lib/extensions/dnatco/confal-pyramids/color.js +224 -132
  792. package/lib/extensions/dnatco/confal-pyramids/property.js +1 -3
  793. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -0
  794. package/lib/extensions/dnatco/confal-pyramids/util.js +19 -20
  795. package/lib/extensions/geo-export/ui.js +2 -2
  796. package/lib/extensions/model-export/ui.js +2 -2
  797. package/lib/extensions/mp4-export/ui.js +2 -2
  798. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -0
  799. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -0
  800. package/lib/extensions/rcsb/assembly-symmetry/ui.js +3 -3
  801. package/lib/extensions/rcsb/validation-report/representation.d.ts +5 -0
  802. package/lib/extensions/zenodo/index.d.ts +7 -0
  803. package/lib/extensions/zenodo/index.js +32 -0
  804. package/lib/extensions/zenodo/ui.d.ts +61 -0
  805. package/lib/extensions/zenodo/ui.js +303 -0
  806. package/lib/mol-canvas3d/camera.js +2 -1
  807. package/lib/mol-canvas3d/canvas3d.d.ts +2 -0
  808. package/lib/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  809. package/lib/mol-canvas3d/helper/camera-helper.js +1 -1
  810. package/lib/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  811. package/lib/mol-canvas3d/helper/handle-helper.js +1 -1
  812. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  813. package/lib/mol-canvas3d/helper/interaction-events.js +1 -1
  814. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  815. package/lib/mol-data/db/column.d.ts +10 -3
  816. package/lib/mol-data/db/column.js +39 -18
  817. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +4 -2
  818. package/lib/mol-geo/geometry/cylinders/cylinders.js +2 -2
  819. package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
  820. package/lib/mol-geo/geometry/mesh/color-smoothing.d.ts +1 -1
  821. package/lib/mol-geo/geometry/mesh/color-smoothing.js +5 -3
  822. package/lib/mol-geo/geometry/mesh/mesh.d.ts +2 -1
  823. package/lib/mol-geo/geometry/mesh/mesh.js +2 -2
  824. package/lib/mol-geo/geometry/points/points.d.ts +1 -1
  825. package/lib/mol-geo/geometry/spheres/spheres.d.ts +2 -1
  826. package/lib/mol-geo/geometry/spheres/spheres.js +2 -2
  827. package/lib/mol-geo/geometry/text/text-builder.js +2 -1
  828. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +1 -1
  829. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +6 -4
  830. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +2 -1
  831. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  832. package/lib/mol-gl/shader/chunks/wboit-write.glsl.d.ts +2 -2
  833. package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +2 -2
  834. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  835. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  836. package/lib/mol-gl/shader/image.frag.d.ts +2 -2
  837. package/lib/mol-gl/shader/image.frag.js +2 -2
  838. package/lib/mol-gl/shader/lines.frag.d.ts +2 -2
  839. package/lib/mol-gl/shader/lines.frag.js +2 -2
  840. package/lib/mol-gl/shader/points.frag.d.ts +2 -2
  841. package/lib/mol-gl/shader/points.frag.js +2 -2
  842. package/lib/mol-gl/shader/text.frag.d.ts +2 -2
  843. package/lib/mol-gl/shader/text.frag.js +2 -2
  844. package/lib/mol-gl/shader-code.js +2 -1
  845. package/lib/mol-gl/webgl/buffer.d.ts +2 -2
  846. package/lib/mol-gl/webgl/buffer.js +14 -15
  847. package/lib/mol-gl/webgl/context.d.ts +1 -1
  848. package/lib/mol-gl/webgl/context.js +2 -2
  849. package/lib/mol-gl/webgl/program.d.ts +1 -1
  850. package/lib/mol-gl/webgl/program.js +10 -4
  851. package/lib/mol-io/common/binary-cif/classifier.js +3 -2
  852. package/lib/mol-io/common/binary-cif/decoder.js +4 -3
  853. package/lib/mol-io/common/io-buffer.d.ts +206 -0
  854. package/lib/mol-io/common/io-buffer.js +405 -0
  855. package/lib/mol-io/common/netcdf/reader.d.ts +78 -0
  856. package/lib/mol-io/common/netcdf/reader.js +456 -0
  857. package/lib/mol-io/reader/cif/schema/bird.d.ts +8 -8
  858. package/lib/mol-io/reader/cif/schema/bird.js +12 -11
  859. package/lib/mol-io/reader/cif/schema/ccd-extras.d.ts +1 -1
  860. package/lib/mol-io/reader/cif/schema/ccd.d.ts +12 -12
  861. package/lib/mol-io/reader/cif/schema/ccd.js +13 -12
  862. package/lib/mol-io/reader/cif/schema/mmcif-extras.d.ts +5 -5
  863. package/lib/mol-io/reader/cif/schema/mmcif-extras.js +2 -2
  864. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +31 -27
  865. package/lib/mol-io/reader/cif/schema/mmcif.js +44 -39
  866. package/lib/mol-io/reader/cif/schema.d.ts +1 -1
  867. package/lib/mol-io/reader/cif/schema.js +22 -2
  868. package/lib/mol-io/reader/nctraj/parser.d.ts +18 -0
  869. package/lib/mol-io/reader/nctraj/parser.js +97 -0
  870. package/lib/mol-io/reader/prmtop/parser.d.ts +58 -0
  871. package/lib/mol-io/reader/prmtop/parser.js +168 -0
  872. package/lib/mol-io/reader/top/parser.d.ts +37 -0
  873. package/lib/mol-io/reader/top/parser.js +299 -0
  874. package/lib/mol-io/reader/trr/parser.d.ts +22 -0
  875. package/lib/mol-io/reader/trr/parser.js +142 -0
  876. package/lib/mol-io/writer/cif/encoder.js +2 -1
  877. package/lib/mol-io/writer/mol/encoder.js +1 -1
  878. package/lib/mol-math/geometry/common.d.ts +2 -1
  879. package/lib/mol-math/geometry/common.js +1 -1
  880. package/lib/mol-math/geometry/gaussian-density/cpu.d.ts +1 -1
  881. package/lib/mol-math/geometry/gaussian-density/cpu.js +2 -2
  882. package/lib/mol-math/geometry/gaussian-density/gpu.d.ts +1 -1
  883. package/lib/mol-math/geometry/gaussian-density/gpu.js +7 -7
  884. package/lib/mol-math/geometry/gaussian-density.d.ts +2 -2
  885. package/lib/mol-math/geometry/gaussian-density.js +1 -1
  886. package/lib/mol-math/geometry/molecular-surface.d.ts +2 -1
  887. package/lib/mol-math/geometry/molecular-surface.js +2 -2
  888. package/lib/mol-math/geometry/primitives/box3d.js +2 -1
  889. package/lib/mol-math/geometry/primitives/sphere3d.js +12 -6
  890. package/lib/mol-model/sequence/sequence.js +2 -1
  891. package/lib/mol-model/structure/model/model.js +14 -6
  892. package/lib/mol-model/structure/model/properties/common.js +1 -1
  893. package/lib/mol-model/structure/model/types/saccharides.d.ts +8 -0
  894. package/lib/mol-model/structure/model/types/saccharides.js +8 -0
  895. package/lib/mol-model/structure/model/types.d.ts +19 -17
  896. package/lib/mol-model/structure/model/types.js +30 -31
  897. package/lib/mol-model/structure/query/queries/generators.js +1 -1
  898. package/lib/mol-model/structure/structure/carbohydrates/constants.d.ts +1 -1
  899. package/lib/mol-model/structure/structure/carbohydrates/constants.js +6 -9
  900. package/lib/mol-model/structure/structure/properties.d.ts +1 -1
  901. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +2 -4
  902. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -3
  903. package/lib/mol-model/structure/structure/unit/rings.js +3 -0
  904. package/lib/mol-model-formats/shape/ply.d.ts +2 -0
  905. package/lib/mol-model-formats/structure/basic/atomic.d.ts +1 -1
  906. package/lib/mol-model-formats/structure/basic/atomic.js +1 -14
  907. package/lib/mol-model-formats/structure/basic/entities.js +1 -1
  908. package/lib/mol-model-formats/structure/basic/parser.d.ts +1 -1
  909. package/lib/mol-model-formats/structure/basic/parser.js +1 -1
  910. package/lib/mol-model-formats/structure/basic/schema.d.ts +4 -4
  911. package/lib/mol-model-formats/structure/basic/schema.js +7 -2
  912. package/lib/mol-model-formats/structure/basic/util.d.ts +33 -2
  913. package/lib/mol-model-formats/structure/basic/util.js +24 -1
  914. package/lib/mol-model-formats/structure/cif-core.js +4 -4
  915. package/lib/mol-model-formats/structure/common/component.d.ts +3 -3
  916. package/lib/mol-model-formats/structure/common/component.js +51 -47
  917. package/lib/mol-model-formats/structure/cube.js +3 -3
  918. package/lib/mol-model-formats/structure/gro.js +3 -1
  919. package/lib/mol-model-formats/structure/mmcif.d.ts +1 -1
  920. package/lib/mol-model-formats/structure/mmcif.js +4 -2
  921. package/lib/mol-model-formats/structure/mol.js +3 -3
  922. package/lib/mol-model-formats/structure/mol2.js +4 -4
  923. package/lib/mol-model-formats/structure/nctraj.d.ts +9 -0
  924. package/lib/mol-model-formats/structure/nctraj.js +56 -0
  925. package/lib/mol-model-formats/structure/pdb/atom-site.d.ts +2 -2
  926. package/lib/mol-model-formats/structure/pdb/atom-site.js +72 -7
  927. package/lib/mol-model-formats/structure/pdb/secondary-structure.js +11 -11
  928. package/lib/mol-model-formats/structure/pdb/to-cif.js +7 -2
  929. package/lib/mol-model-formats/structure/pdb.d.ts +1 -1
  930. package/lib/mol-model-formats/structure/pdb.js +5 -3
  931. package/lib/mol-model-formats/structure/prmtop.d.ts +16 -0
  932. package/lib/mol-model-formats/structure/prmtop.js +144 -0
  933. package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +1 -1
  934. package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +1 -1
  935. package/lib/mol-model-formats/structure/property/symmetry.js +11 -1
  936. package/lib/mol-model-formats/structure/psf.js +3 -1
  937. package/lib/mol-model-formats/structure/top.d.ts +16 -0
  938. package/lib/mol-model-formats/structure/top.js +186 -0
  939. package/lib/mol-model-formats/structure/trr.d.ts +9 -0
  940. package/lib/mol-model-formats/structure/trr.js +42 -0
  941. package/lib/mol-model-formats/structure/util.d.ts +2 -2
  942. package/lib/mol-model-formats/structure/util.js +19 -20
  943. package/lib/mol-model-formats/structure/xyz.js +2 -2
  944. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -0
  945. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -0
  946. package/lib/mol-model-props/computed/representations/interactions.d.ts +3 -0
  947. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -0
  948. package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
  949. package/lib/mol-plugin/behavior/dynamic/volume-streaming/util.js +3 -2
  950. package/lib/mol-plugin/commands.d.ts +1 -0
  951. package/lib/mol-plugin/context.d.ts +2 -1
  952. package/lib/mol-plugin/context.js +4 -3
  953. package/lib/mol-plugin/spec.js +1 -1
  954. package/lib/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  955. package/lib/mol-plugin/version.js +2 -2
  956. package/lib/mol-plugin-state/actions/file.d.ts +1 -1
  957. package/lib/mol-plugin-state/actions/file.js +88 -55
  958. package/lib/mol-plugin-state/actions/structure.d.ts +17 -8
  959. package/lib/mol-plugin-state/actions/structure.js +174 -4
  960. package/lib/mol-plugin-state/actions/volume.js +3 -2
  961. package/lib/mol-plugin-state/formats/{structure.d.ts → coordinates.d.ts} +34 -18
  962. package/lib/mol-plugin-state/formats/coordinates.js +67 -0
  963. package/lib/mol-plugin-state/formats/registry.d.ts +3 -3
  964. package/lib/mol-plugin-state/formats/registry.js +13 -8
  965. package/lib/mol-plugin-state/formats/topology.d.ts +73 -0
  966. package/lib/mol-plugin-state/formats/topology.js +84 -0
  967. package/lib/mol-plugin-state/helpers/structure-component.js +2 -1
  968. package/lib/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  969. package/lib/mol-plugin-state/helpers/structure-selection-query.js +1 -1
  970. package/lib/mol-plugin-state/manager/snapshots.js +4 -4
  971. package/lib/mol-plugin-state/objects.d.ts +47 -1
  972. package/lib/mol-plugin-state/objects.js +17 -1
  973. package/lib/mol-plugin-state/transforms/data.d.ts +6 -0
  974. package/lib/mol-plugin-state/transforms/data.js +61 -9
  975. package/lib/mol-plugin-state/transforms/model.d.ts +14 -2
  976. package/lib/mol-plugin-state/transforms/model.js +112 -3
  977. package/lib/mol-plugin-state/transforms/representation.d.ts +6 -0
  978. package/lib/mol-plugin-ui/base.js +1 -1
  979. package/lib/mol-plugin-ui/controls/action-menu.js +7 -7
  980. package/lib/mol-plugin-ui/controls/color.js +3 -3
  981. package/lib/mol-plugin-ui/controls/common.js +10 -10
  982. package/lib/mol-plugin-ui/controls/icons.js +70 -70
  983. package/lib/mol-plugin-ui/controls/legend.js +3 -3
  984. package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.js +1 -1
  985. package/lib/mol-plugin-ui/controls/parameters.js +51 -51
  986. package/lib/mol-plugin-ui/controls/screenshot.js +2 -2
  987. package/lib/mol-plugin-ui/controls/slider.js +5 -5
  988. package/lib/mol-plugin-ui/controls.js +7 -7
  989. package/lib/mol-plugin-ui/custom/volume.js +4 -4
  990. package/lib/mol-plugin-ui/left-panel.d.ts +8 -1
  991. package/lib/mol-plugin-ui/left-panel.js +33 -12
  992. package/lib/mol-plugin-ui/plugin.js +10 -10
  993. package/lib/mol-plugin-ui/react18.d.ts +11 -0
  994. package/lib/mol-plugin-ui/react18.js +34 -0
  995. package/lib/mol-plugin-ui/sequence/sequence.js +1 -1
  996. package/lib/mol-plugin-ui/sequence.js +5 -5
  997. package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
  998. package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
  999. package/lib/mol-plugin-ui/skin/base/components/controls.scss +418 -418
  1000. package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
  1001. package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
  1002. package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
  1003. package/lib/mol-plugin-ui/skin/base/components/misc.scss +643 -643
  1004. package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
  1005. package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
  1006. package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
  1007. package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
  1008. package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
  1009. package/lib/mol-plugin-ui/skin/base/components/viewport.scss +128 -128
  1010. package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
  1011. package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
  1012. package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
  1013. package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
  1014. package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
  1015. package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
  1016. package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
  1017. package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
  1018. package/lib/mol-plugin-ui/skin/base/variables.scss +85 -85
  1019. package/lib/mol-plugin-ui/skin/blue.scss +1 -1
  1020. package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
  1021. package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
  1022. package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
  1023. package/lib/mol-plugin-ui/skin/dark.scss +1 -1
  1024. package/lib/mol-plugin-ui/skin/light.scss +1 -1
  1025. package/lib/mol-plugin-ui/state/actions.js +1 -1
  1026. package/lib/mol-plugin-ui/state/animation.js +1 -1
  1027. package/lib/mol-plugin-ui/state/common.js +7 -7
  1028. package/lib/mol-plugin-ui/state/snapshots.js +9 -9
  1029. package/lib/mol-plugin-ui/state/tree.js +14 -14
  1030. package/lib/mol-plugin-ui/state/update-transform.js +1 -1
  1031. package/lib/mol-plugin-ui/structure/components.js +10 -10
  1032. package/lib/mol-plugin-ui/structure/focus.d.ts +1 -1
  1033. package/lib/mol-plugin-ui/structure/focus.js +3 -3
  1034. package/lib/mol-plugin-ui/structure/generic.js +4 -4
  1035. package/lib/mol-plugin-ui/structure/measurements.js +8 -8
  1036. package/lib/mol-plugin-ui/structure/quick-styles.js +2 -2
  1037. package/lib/mol-plugin-ui/structure/selection.js +7 -7
  1038. package/lib/mol-plugin-ui/structure/source.js +4 -4
  1039. package/lib/mol-plugin-ui/structure/superposition.js +8 -8
  1040. package/lib/mol-plugin-ui/structure/volume.js +4 -4
  1041. package/lib/mol-plugin-ui/task.js +5 -5
  1042. package/lib/mol-plugin-ui/toast.js +4 -4
  1043. package/lib/mol-plugin-ui/viewport/canvas.js +3 -3
  1044. package/lib/mol-plugin-ui/viewport/help.js +8 -8
  1045. package/lib/mol-plugin-ui/viewport/screenshot.js +3 -3
  1046. package/lib/mol-plugin-ui/viewport/simple-settings.js +1 -1
  1047. package/lib/mol-plugin-ui/viewport.js +4 -4
  1048. package/lib/mol-repr/shape/loci/angle.d.ts +1 -0
  1049. package/lib/mol-repr/shape/loci/dihedral.d.ts +1 -0
  1050. package/lib/mol-repr/shape/loci/orientation.d.ts +1 -0
  1051. package/lib/mol-repr/shape/loci/plane.d.ts +1 -0
  1052. package/lib/mol-repr/shape/model/unitcell.d.ts +1 -0
  1053. package/lib/mol-repr/structure/complex-visual.d.ts +3 -0
  1054. package/lib/mol-repr/structure/params.d.ts +4 -0
  1055. package/lib/mol-repr/structure/registry.d.ts +10 -0
  1056. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
  1057. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +3 -0
  1058. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +3 -0
  1059. package/lib/mol-repr/structure/representation/cartoon.d.ts +3 -0
  1060. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +3 -0
  1061. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
  1062. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
  1063. package/lib/mol-repr/structure/representation/orientation.d.ts +3 -0
  1064. package/lib/mol-repr/structure/representation/putty.d.ts +3 -0
  1065. package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -0
  1066. package/lib/mol-repr/structure/units-visual.d.ts +4 -0
  1067. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -0
  1068. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -0
  1069. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -0
  1070. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -0
  1071. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -0
  1072. package/lib/mol-repr/structure/visual/element-sphere.d.ts +2 -0
  1073. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -0
  1074. package/lib/mol-repr/structure/visual/gaussian-density-volume.js +2 -3
  1075. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +5 -1
  1076. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +10 -10
  1077. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -1
  1078. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.js +4 -5
  1079. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
  1080. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +4 -4
  1081. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -1
  1082. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.js +5 -5
  1083. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -0
  1084. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -0
  1085. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -0
  1086. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
  1087. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
  1088. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -0
  1089. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -0
  1090. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -0
  1091. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -0
  1092. package/lib/mol-repr/structure/visual/util/common.d.ts +1 -3
  1093. package/lib/mol-repr/structure/visual/util/common.js +1 -24
  1094. package/lib/mol-repr/util.d.ts +2 -1
  1095. package/lib/mol-repr/util.js +2 -2
  1096. package/lib/mol-repr/volume/isosurface.d.ts +5 -0
  1097. package/lib/mol-repr/volume/registry.d.ts +1 -0
  1098. package/lib/mol-script/language/builder.d.ts +1 -0
  1099. package/lib/mol-script/language/parser.js +7 -4
  1100. package/lib/mol-task/util/scheduler.d.ts +2 -2
  1101. package/lib/mol-task/util/scheduler.js +7 -7
  1102. package/lib/mol-theme/color/hydrophobicity.js +2 -2
  1103. package/lib/mol-util/data-source.js +2 -1
  1104. package/lib/mol-util/file-info.d.ts +1 -3
  1105. package/lib/mol-util/file-info.js +2 -10
  1106. package/lib/mol-util/index.d.ts +1 -0
  1107. package/lib/mol-util/index.js +5 -0
  1108. package/lib/mol-util/zip/deflate.js +2 -1
  1109. package/lib/mol-util/zip/zip.d.ts +7 -1
  1110. package/lib/mol-util/zip/zip.js +5 -1
  1111. package/lib/servers/model/config.d.ts +2 -2
  1112. package/package.json +162 -160
  1113. package/lib/commonjs/mol-plugin-state/formats/structure.js +0 -64
  1114. package/lib/mol-plugin-state/formats/structure.js +0 -61
@@ -26,7 +26,7 @@ exports.canComputeGrid3dOnGPU = canComputeGrid3dOnGPU;
26
26
  var FrameBufferName = 'grid3d-computable';
27
27
  var Texture0Name = 'grid3d-computable-0';
28
28
  var Texture1Name = 'grid3d-computable-1';
29
- var SchemaBase = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadSchema), { uDimensions: (0, schema_1.UniformSpec)('v3'), uMin: (0, schema_1.UniformSpec)('v3'), uDelta: (0, schema_1.UniformSpec)('v3'), uWidth: (0, schema_1.UniformSpec)('f'), uLittleEndian: (0, schema_1.UniformSpec)('b') });
29
+ var SchemaBase = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { uDimensions: (0, schema_1.UniformSpec)('v3'), uMin: (0, schema_1.UniformSpec)('v3'), uDelta: (0, schema_1.UniformSpec)('v3'), uWidth: (0, schema_1.UniformSpec)('f'), uLittleEndian: (0, schema_1.UniformSpec)('b') });
30
30
  var CumulativeSumSchema = {
31
31
  tCumulativeSum: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest')
32
32
  };
@@ -57,13 +57,13 @@ function createGrid3dComputeRenderable(spec) {
57
57
  .replace('{MAIN}', spec.mainCode)
58
58
  .replace('{RETURN}', spec.returnCode);
59
59
  var shader = (0, shader_code_1.ShaderCode)(id, quad_vert_1.quad_vert, code);
60
- return function (ctx, webgl, grid, params) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
60
+ return function (ctx, webgl, grid, params) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
61
61
  var schema, _i, _a, b, framebuffer, tex, _b, nx, ny, nz, uWidth, values, renderable, cells, array, gl, states, yieldPeriod, i;
62
62
  var _c;
63
- return (0, tslib_1.__generator)(this, function (_d) {
63
+ return tslib_1.__generator(this, function (_d) {
64
64
  switch (_d.label) {
65
65
  case 0:
66
- schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, SchemaBase), (spec.cumulative ? CumulativeSumSchema : {})), spec.schema);
66
+ schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, SchemaBase), (spec.cumulative ? CumulativeSumSchema : {})), spec.schema);
67
67
  if (!webgl.isWebGL2) {
68
68
  if (spec.loopBounds) {
69
69
  for (_i = 0, _a = spec.loopBounds; _i < _a.length; _i++) {
@@ -89,7 +89,7 @@ function createGrid3dComputeRenderable(spec) {
89
89
  tex = [webgl.namedTextures[Texture0Name], webgl.namedTextures[Texture1Name]];
90
90
  _b = grid.dimensions, nx = _b[0], ny = _b[1], nz = _b[2];
91
91
  uWidth = Math.ceil(Math.sqrt(nx * ny * nz));
92
- values = (0, tslib_1.__assign)({ uDimensions: grid.dimensions, uMin: grid.box.min, uDelta: (0, common_1.getRegularGrid3dDelta)(grid), uWidth: uWidth, uLittleEndian: (0, is_little_endian_1.isLittleEndian)() }, spec.values(params, grid));
92
+ values = tslib_1.__assign({ uDimensions: grid.dimensions, uMin: grid.box.min, uDelta: (0, common_1.getRegularGrid3dDelta)(grid), uWidth: uWidth, uLittleEndian: (0, is_little_endian_1.isLittleEndian)() }, spec.values(params, grid));
93
93
  if (!webgl.isWebGL2) {
94
94
  values.WEBGL1 = true;
95
95
  }
@@ -18,7 +18,7 @@ var misc_1 = require("../../../mol-math/misc");
18
18
  var quad_vert_1 = require("../../../mol-gl/shader/quad.vert");
19
19
  var reduction_frag_1 = require("../../../mol-gl/shader/histogram-pyramid/reduction.frag");
20
20
  var compat_1 = require("../../webgl/compat");
21
- var HistopyramidReductionSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadSchema), { tInputLevel: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), tPreviousLevel: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), uSize: (0, schema_1.UniformSpec)('f'), uTexSize: (0, schema_1.UniformSpec)('f'), uFirst: (0, schema_1.UniformSpec)('b') });
21
+ var HistopyramidReductionSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tInputLevel: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), tPreviousLevel: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), uSize: (0, schema_1.UniformSpec)('f'), uTexSize: (0, schema_1.UniformSpec)('f'), uFirst: (0, schema_1.UniformSpec)('b') });
22
22
  var HistogramPyramidName = 'histogram-pyramid';
23
23
  function getHistopyramidReductionRenderable(ctx, inputLevel, previousLevel) {
24
24
  if (ctx.namedComputeRenderables[HistogramPyramidName]) {
@@ -33,8 +33,8 @@ function getHistopyramidReductionRenderable(ctx, inputLevel, previousLevel) {
33
33
  return ctx.namedComputeRenderables[HistogramPyramidName];
34
34
  }
35
35
  function createHistopyramidReductionRenderable(ctx, inputLevel, previousLevel) {
36
- var values = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadValues), { tInputLevel: mol_util_1.ValueCell.create(inputLevel), tPreviousLevel: mol_util_1.ValueCell.create(previousLevel), uSize: mol_util_1.ValueCell.create(0), uTexSize: mol_util_1.ValueCell.create(0), uFirst: mol_util_1.ValueCell.create(true) });
37
- var schema = (0, tslib_1.__assign)({}, HistopyramidReductionSchema);
36
+ var values = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadValues), { tInputLevel: mol_util_1.ValueCell.create(inputLevel), tPreviousLevel: mol_util_1.ValueCell.create(previousLevel), uSize: mol_util_1.ValueCell.create(0), uTexSize: mol_util_1.ValueCell.create(0), uFirst: mol_util_1.ValueCell.create(true) });
37
+ var schema = tslib_1.__assign({}, HistopyramidReductionSchema);
38
38
  var shaderCode = (0, shader_code_1.ShaderCode)('reduction', quad_vert_1.quad_vert, reduction_frag_1.reduction_frag, {}, { 0: 'ivec4' });
39
39
  var renderItem = (0, render_item_1.createComputeRenderItem)(ctx, 'triangles', shaderCode, schema, values);
40
40
  return (0, renderable_1.createComputeRenderable)(renderItem, values);
@@ -17,7 +17,7 @@ var util_1 = require("../util");
17
17
  var quad_vert_1 = require("../../../mol-gl/shader/quad.vert");
18
18
  var sum_frag_1 = require("../../../mol-gl/shader/histogram-pyramid/sum.frag");
19
19
  var compat_1 = require("../../webgl/compat");
20
- var HistopyramidSumSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadSchema), { tTexture: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest') });
20
+ var HistopyramidSumSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tTexture: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest') });
21
21
  var HistopyramidSumName = 'histopyramid-sum';
22
22
  function getHistopyramidSumRenderable(ctx, texture) {
23
23
  if (ctx.namedComputeRenderables[HistopyramidSumName]) {
@@ -31,8 +31,8 @@ function getHistopyramidSumRenderable(ctx, texture) {
31
31
  return ctx.namedComputeRenderables[HistopyramidSumName];
32
32
  }
33
33
  function createHistopyramidSumRenderable(ctx, texture) {
34
- var values = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadValues), { tTexture: mol_util_1.ValueCell.create(texture) });
35
- var schema = (0, tslib_1.__assign)({}, HistopyramidSumSchema);
34
+ var values = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadValues), { tTexture: mol_util_1.ValueCell.create(texture) });
35
+ var schema = tslib_1.__assign({}, HistopyramidSumSchema);
36
36
  var shaderCode = (0, shader_code_1.ShaderCode)('sum', quad_vert_1.quad_vert, sum_frag_1.sum_frag, {}, { 0: 'ivec4' });
37
37
  var renderItem = (0, render_item_1.createComputeRenderItem)(ctx, 'triangles', shaderCode, schema, values);
38
38
  return (0, renderable_1.createComputeRenderable)(renderItem, values);
@@ -16,7 +16,7 @@ var util_1 = require("../util");
16
16
  var tables_1 = require("./tables");
17
17
  var quad_vert_1 = require("../../../mol-gl/shader/quad.vert");
18
18
  var active_voxels_frag_1 = require("../../../mol-gl/shader/marching-cubes/active-voxels.frag");
19
- var ActiveVoxelsSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadSchema), { tTriCount: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'nearest'), tVolumeData: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uIsoValue: (0, schema_1.UniformSpec)('f'), uGridDim: (0, schema_1.UniformSpec)('v3'), uGridTexDim: (0, schema_1.UniformSpec)('v3'), uScale: (0, schema_1.UniformSpec)('v2') });
19
+ var ActiveVoxelsSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tTriCount: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'nearest'), tVolumeData: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uIsoValue: (0, schema_1.UniformSpec)('f'), uGridDim: (0, schema_1.UniformSpec)('v3'), uGridTexDim: (0, schema_1.UniformSpec)('v3'), uScale: (0, schema_1.UniformSpec)('v2') });
20
20
  var ActiveVoxelsName = 'active-voxels';
21
21
  function getActiveVoxelsRenderable(ctx, volumeData, gridDim, gridTexDim, isoValue, scale) {
22
22
  if (ctx.namedComputeRenderables[ActiveVoxelsName]) {
@@ -35,8 +35,8 @@ function getActiveVoxelsRenderable(ctx, volumeData, gridDim, gridTexDim, isoValu
35
35
  return ctx.namedComputeRenderables[ActiveVoxelsName];
36
36
  }
37
37
  function createActiveVoxelsRenderable(ctx, volumeData, gridDim, gridTexDim, isoValue, scale) {
38
- var values = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadValues), { tTriCount: mol_util_1.ValueCell.create((0, tables_1.getTriCount)()), uQuadScale: mol_util_1.ValueCell.create(scale), tVolumeData: mol_util_1.ValueCell.create(volumeData), uIsoValue: mol_util_1.ValueCell.create(isoValue), uGridDim: mol_util_1.ValueCell.create(gridDim), uGridTexDim: mol_util_1.ValueCell.create(gridTexDim), uScale: mol_util_1.ValueCell.create(scale) });
39
- var schema = (0, tslib_1.__assign)({}, ActiveVoxelsSchema);
38
+ var values = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadValues), { tTriCount: mol_util_1.ValueCell.create((0, tables_1.getTriCount)()), uQuadScale: mol_util_1.ValueCell.create(scale), tVolumeData: mol_util_1.ValueCell.create(volumeData), uIsoValue: mol_util_1.ValueCell.create(isoValue), uGridDim: mol_util_1.ValueCell.create(gridDim), uGridTexDim: mol_util_1.ValueCell.create(gridTexDim), uScale: mol_util_1.ValueCell.create(scale) });
39
+ var schema = tslib_1.__assign({}, ActiveVoxelsSchema);
40
40
  var shaderCode = (0, shader_code_1.ShaderCode)('active-voxels', quad_vert_1.quad_vert, active_voxels_frag_1.activeVoxels_frag);
41
41
  var renderItem = (0, render_item_1.createComputeRenderItem)(ctx, 'triangles', shaderCode, schema, values);
42
42
  return (0, renderable_1.createComputeRenderable)(renderItem, values);
@@ -19,7 +19,7 @@ var quad_vert_1 = require("../../../mol-gl/shader/quad.vert");
19
19
  var isosurface_frag_1 = require("../../../mol-gl/shader/marching-cubes/isosurface.frag");
20
20
  var active_voxels_1 = require("./active-voxels");
21
21
  var compat_1 = require("../../webgl/compat");
22
- var IsosurfaceSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadSchema), { tTriIndices: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'nearest'), tActiveVoxelsPyramid: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), tActiveVoxelsBase: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), tVolumeData: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uIsoValue: (0, schema_1.UniformSpec)('f'), uSize: (0, schema_1.UniformSpec)('f'), uLevels: (0, schema_1.UniformSpec)('f'), uCount: (0, schema_1.UniformSpec)('f'), uInvert: (0, schema_1.UniformSpec)('b'), uGridDim: (0, schema_1.UniformSpec)('v3'), uGridTexDim: (0, schema_1.UniformSpec)('v3'), uGridTransform: (0, schema_1.UniformSpec)('m4'), uScale: (0, schema_1.UniformSpec)('v2'), dPackedGroup: (0, schema_1.DefineSpec)('boolean'), dAxisOrder: (0, schema_1.DefineSpec)('string', ['012', '021', '102', '120', '201', '210']) });
22
+ var IsosurfaceSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tTriIndices: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'nearest'), tActiveVoxelsPyramid: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), tActiveVoxelsBase: (0, schema_1.TextureSpec)('texture', 'rgba', 'float', 'nearest'), tVolumeData: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uIsoValue: (0, schema_1.UniformSpec)('f'), uSize: (0, schema_1.UniformSpec)('f'), uLevels: (0, schema_1.UniformSpec)('f'), uCount: (0, schema_1.UniformSpec)('f'), uInvert: (0, schema_1.UniformSpec)('b'), uGridDim: (0, schema_1.UniformSpec)('v3'), uGridTexDim: (0, schema_1.UniformSpec)('v3'), uGridTransform: (0, schema_1.UniformSpec)('m4'), uScale: (0, schema_1.UniformSpec)('v2'), dPackedGroup: (0, schema_1.DefineSpec)('boolean'), dAxisOrder: (0, schema_1.DefineSpec)('string', ['012', '021', '102', '120', '201', '210']) });
23
23
  var IsosurfaceName = 'isosurface';
24
24
  function getIsosurfaceRenderable(ctx, activeVoxelsPyramid, activeVoxelsBase, volumeData, gridDim, gridTexDim, transform, isoValue, levels, scale, count, invert, packedGroup, axisOrder) {
25
25
  if (ctx.namedComputeRenderables[IsosurfaceName]) {
@@ -47,8 +47,8 @@ function getIsosurfaceRenderable(ctx, activeVoxelsPyramid, activeVoxelsBase, vol
47
47
  }
48
48
  function createIsosurfaceRenderable(ctx, activeVoxelsPyramid, activeVoxelsBase, volumeData, gridDim, gridTexDim, transform, isoValue, levels, scale, count, invert, packedGroup, axisOrder) {
49
49
  // console.log('uSize', Math.pow(2, levels))
50
- var values = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, util_1.QuadValues), { tTriIndices: mol_util_1.ValueCell.create((0, tables_1.getTriIndices)()), tActiveVoxelsPyramid: mol_util_1.ValueCell.create(activeVoxelsPyramid), tActiveVoxelsBase: mol_util_1.ValueCell.create(activeVoxelsBase), tVolumeData: mol_util_1.ValueCell.create(volumeData), uIsoValue: mol_util_1.ValueCell.create(isoValue), uSize: mol_util_1.ValueCell.create(Math.pow(2, levels)), uLevels: mol_util_1.ValueCell.create(levels), uCount: mol_util_1.ValueCell.create(count), uInvert: mol_util_1.ValueCell.create(invert), uGridDim: mol_util_1.ValueCell.create(gridDim), uGridTexDim: mol_util_1.ValueCell.create(gridTexDim), uGridTransform: mol_util_1.ValueCell.create(transform), uScale: mol_util_1.ValueCell.create(scale), dPackedGroup: mol_util_1.ValueCell.create(packedGroup), dAxisOrder: mol_util_1.ValueCell.create(axisOrder.join('')) });
51
- var schema = (0, tslib_1.__assign)({}, IsosurfaceSchema);
50
+ var values = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadValues), { tTriIndices: mol_util_1.ValueCell.create((0, tables_1.getTriIndices)()), tActiveVoxelsPyramid: mol_util_1.ValueCell.create(activeVoxelsPyramid), tActiveVoxelsBase: mol_util_1.ValueCell.create(activeVoxelsBase), tVolumeData: mol_util_1.ValueCell.create(volumeData), uIsoValue: mol_util_1.ValueCell.create(isoValue), uSize: mol_util_1.ValueCell.create(Math.pow(2, levels)), uLevels: mol_util_1.ValueCell.create(levels), uCount: mol_util_1.ValueCell.create(count), uInvert: mol_util_1.ValueCell.create(invert), uGridDim: mol_util_1.ValueCell.create(gridDim), uGridTexDim: mol_util_1.ValueCell.create(gridTexDim), uGridTransform: mol_util_1.ValueCell.create(transform), uScale: mol_util_1.ValueCell.create(scale), dPackedGroup: mol_util_1.ValueCell.create(packedGroup), dAxisOrder: mol_util_1.ValueCell.create(axisOrder.join('')) });
51
+ var schema = tslib_1.__assign({}, IsosurfaceSchema);
52
52
  var shaderCode = (0, shader_code_1.ShaderCode)('isosurface', quad_vert_1.quad_vert, isosurface_frag_1.isosurface_frag, { drawBuffers: 'required' });
53
53
  var renderItem = (0, render_item_1.createComputeRenderItem)(ctx, 'triangles', shaderCode, schema, values);
54
54
  return (0, renderable_1.createComputeRenderable)(renderItem, values);
@@ -33,11 +33,11 @@ exports.QuadValues = {
33
33
  uQuadScale: mol_util_1.ValueCell.create(linear_algebra_1.Vec2.create(1, 1)),
34
34
  };
35
35
  //
36
- var CopySchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, exports.QuadSchema), { tColor: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uTexSize: (0, schema_1.UniformSpec)('v2') });
36
+ var CopySchema = tslib_1.__assign(tslib_1.__assign({}, exports.QuadSchema), { tColor: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uTexSize: (0, schema_1.UniformSpec)('v2') });
37
37
  var CopyShaderCode = (0, shader_code_1.ShaderCode)('copy', quad_vert_1.quad_vert, copy_frag_1.copy_frag);
38
38
  function createCopyRenderable(ctx, texture) {
39
- var values = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, exports.QuadValues), { tColor: mol_util_1.ValueCell.create(texture), uTexSize: mol_util_1.ValueCell.create(linear_algebra_1.Vec2.create(texture.getWidth(), texture.getHeight())) });
40
- var schema = (0, tslib_1.__assign)({}, CopySchema);
39
+ var values = tslib_1.__assign(tslib_1.__assign({}, exports.QuadValues), { tColor: mol_util_1.ValueCell.create(texture), uTexSize: mol_util_1.ValueCell.create(linear_algebra_1.Vec2.create(texture.getWidth(), texture.getHeight())) });
40
+ var schema = tslib_1.__assign({}, CopySchema);
41
41
  var renderItem = (0, render_item_1.createComputeRenderItem)(ctx, 'triangles', CopyShaderCode, schema, values);
42
42
  return (0, renderable_1.createComputeRenderable)(renderItem, values);
43
43
  }
@@ -12,14 +12,14 @@ 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 = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, 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'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
16
16
  function CylindersRenderable(ctx, id, values, state, materialId, variants) {
17
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.CylindersSchema);
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 = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.CylindersShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.CylindersRenderable = CylindersRenderable;
@@ -12,9 +12,9 @@ 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.DirectVolumeSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), { aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), elements: (0, schema_1.ElementsSpec)('uint32'), uBboxMin: (0, schema_1.UniformSpec)('v3'), uBboxMax: (0, schema_1.UniformSpec)('v3'), uBboxSize: (0, schema_1.UniformSpec)('v3'), uMaxSteps: (0, schema_1.UniformSpec)('i'), uStepScale: (0, schema_1.UniformSpec)('f'), uJumpLength: (0, schema_1.UniformSpec)('f'), uTransform: (0, schema_1.UniformSpec)('m4'), uGridDim: (0, schema_1.UniformSpec)('v3'), tTransferTex: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'linear'), uTransferScale: (0, schema_1.UniformSpec)('f'), dGridTexType: (0, schema_1.DefineSpec)('string', ['2d', '3d']), uGridTexDim: (0, schema_1.UniformSpec)('v3'), tGridTex: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'linear'), uGridStats: (0, schema_1.UniformSpec)('v4'), uCellDim: (0, schema_1.UniformSpec)('v3'), uCartnToUnit: (0, schema_1.UniformSpec)('m4'), uUnitToCartn: (0, schema_1.UniformSpec)('m4'), dPackedGroup: (0, schema_1.DefineSpec)('boolean'), dAxisOrder: (0, schema_1.DefineSpec)('string', ['012', '021', '102', '120', '201', '210']), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean') });
15
+ exports.DirectVolumeSchema = tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), { aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), elements: (0, schema_1.ElementsSpec)('uint32'), uBboxMin: (0, schema_1.UniformSpec)('v3'), uBboxMax: (0, schema_1.UniformSpec)('v3'), uBboxSize: (0, schema_1.UniformSpec)('v3'), uMaxSteps: (0, schema_1.UniformSpec)('i'), uStepScale: (0, schema_1.UniformSpec)('f'), uJumpLength: (0, schema_1.UniformSpec)('f'), uTransform: (0, schema_1.UniformSpec)('m4'), uGridDim: (0, schema_1.UniformSpec)('v3'), tTransferTex: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'linear'), uTransferScale: (0, schema_1.UniformSpec)('f'), dGridTexType: (0, schema_1.DefineSpec)('string', ['2d', '3d']), uGridTexDim: (0, schema_1.UniformSpec)('v3'), tGridTex: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'linear'), uGridStats: (0, schema_1.UniformSpec)('v4'), uCellDim: (0, schema_1.UniformSpec)('v3'), uCartnToUnit: (0, schema_1.UniformSpec)('m4'), uUnitToCartn: (0, schema_1.UniformSpec)('m4'), dPackedGroup: (0, schema_1.DefineSpec)('boolean'), dAxisOrder: (0, schema_1.DefineSpec)('string', ['012', '021', '102', '120', '201', '210']), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean') });
16
16
  function DirectVolumeRenderable(ctx, id, values, state, materialId, variants) {
17
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.DirectVolumeSchema);
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.DirectVolumeSchema);
18
18
  if (!ctx.isWebGL2) {
19
19
  // workaround for webgl1 limitation that loop counters need to be `const`
20
20
  schema.uMaxSteps = (0, schema_1.DefineSpec)('number');
@@ -23,7 +23,7 @@ function DirectVolumeRenderable(ctx, id, values, state, materialId, variants) {
23
23
  uObjectId: mol_util_1.ValueCell.create(id),
24
24
  };
25
25
  var shaderCode = shader_code_1.DirectVolumeShaderCode;
26
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
26
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
27
27
  return (0, renderable_1.createRenderable)(renderItem, values, state);
28
28
  }
29
29
  exports.DirectVolumeRenderable = DirectVolumeRenderable;
@@ -13,14 +13,14 @@ var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
15
  var image_1 = require("../../mol-geo/geometry/image/image");
16
- exports.ImageSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aUv: (0, schema_1.AttributeSpec)('float32', 2, 0), elements: (0, schema_1.ElementsSpec)('uint32'), uImageTexDim: (0, schema_1.UniformSpec)('v2'), tImageTex: (0, schema_1.TextureSpec)('image-uint8', 'rgba', 'ubyte', 'nearest'), tGroupTex: (0, schema_1.TextureSpec)('image-uint8', 'rgba', 'ubyte', 'nearest'), dInterpolation: (0, schema_1.DefineSpec)('string', image_1.InterpolationTypeNames) });
16
+ exports.ImageSchema = 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), aUv: (0, schema_1.AttributeSpec)('float32', 2, 0), elements: (0, schema_1.ElementsSpec)('uint32'), uImageTexDim: (0, schema_1.UniformSpec)('v2'), tImageTex: (0, schema_1.TextureSpec)('image-uint8', 'rgba', 'ubyte', 'nearest'), tGroupTex: (0, schema_1.TextureSpec)('image-uint8', 'rgba', 'ubyte', 'nearest'), dInterpolation: (0, schema_1.DefineSpec)('string', image_1.InterpolationTypeNames) });
17
17
  function ImageRenderable(ctx, id, values, state, materialId, variants) {
18
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.ImageSchema);
18
+ var schema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.ImageSchema);
19
19
  var internalValues = {
20
20
  uObjectId: mol_util_1.ValueCell.create(id),
21
21
  };
22
22
  var shaderCode = shader_code_1.ImageShaderCode;
23
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
23
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
24
24
  return (0, renderable_1.createRenderable)(renderItem, values, state);
25
25
  }
26
26
  exports.ImageRenderable = ImageRenderable;
@@ -12,14 +12,14 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var mol_util_1 = require("../../mol-util");
14
14
  var shader_code_1 = require("../shader-code");
15
- exports.LinesSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), aStart: (0, schema_1.AttributeSpec)('float32', 3, 0), aEnd: (0, schema_1.AttributeSpec)('float32', 3, 0), elements: (0, schema_1.ElementsSpec)('uint32'), dLineSizeAttenuation: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean') });
15
+ exports.LinesSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), aStart: (0, schema_1.AttributeSpec)('float32', 3, 0), aEnd: (0, schema_1.AttributeSpec)('float32', 3, 0), elements: (0, schema_1.ElementsSpec)('uint32'), dLineSizeAttenuation: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean') });
16
16
  function LinesRenderable(ctx, id, values, state, materialId, variants) {
17
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.LinesSchema);
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.LinesSchema);
18
18
  var internalValues = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.LinesShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.LinesRenderable = LinesRenderable;
@@ -12,14 +12,14 @@ 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 = (0, tslib_1.__assign)((0, 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'), 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
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.MeshSchema);
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 = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.MeshShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.MeshRenderable = MeshRenderable;
@@ -12,14 +12,14 @@ 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.PointsSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, 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), dPointSizeAttenuation: (0, schema_1.DefineSpec)('boolean'), dPointStyle: (0, schema_1.DefineSpec)('string', ['square', 'circle', 'fuzzy']) });
15
+ exports.PointsSchema = 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), dPointSizeAttenuation: (0, schema_1.DefineSpec)('boolean'), dPointStyle: (0, schema_1.DefineSpec)('string', ['square', 'circle', 'fuzzy']) });
16
16
  function PointsRenderable(ctx, id, values, state, materialId, variants) {
17
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.PointsSchema);
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.PointsSchema);
18
18
  var internalValues = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.PointsShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'points', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'points', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.PointsRenderable = PointsRenderable;
@@ -176,7 +176,7 @@ exports.ClippingSchema = {
176
176
  tClipping: TextureSpec('image-uint8', 'alpha', 'ubyte', 'nearest'),
177
177
  dClipping: DefineSpec('boolean'),
178
178
  };
179
- exports.BaseSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({ dGeometryType: DefineSpec('string', ['cylinders', 'directVolume', 'image', 'lines', 'mesh', 'points', 'spheres', 'text', 'textureMesh']) }, exports.ColorSchema), exports.MarkerSchema), exports.OverpaintSchema), exports.TransparencySchema), exports.SubstanceSchema), exports.ClippingSchema), { dLightCount: DefineSpec('number'), dClipObjectCount: DefineSpec('number'), dClipVariant: DefineSpec('string', ['instance', 'pixel']), uClipObjectType: UniformSpec('i[]'), uClipObjectInvert: UniformSpec('b[]'), uClipObjectPosition: UniformSpec('v3[]'), uClipObjectRotation: UniformSpec('v4[]'), uClipObjectScale: UniformSpec('v3[]'), aInstance: AttributeSpec('float32', 1, 1),
179
+ exports.BaseSchema = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ dGeometryType: DefineSpec('string', ['cylinders', 'directVolume', 'image', 'lines', 'mesh', 'points', 'spheres', 'text', 'textureMesh']) }, exports.ColorSchema), exports.MarkerSchema), exports.OverpaintSchema), exports.TransparencySchema), exports.SubstanceSchema), exports.ClippingSchema), { dLightCount: DefineSpec('number'), dClipObjectCount: DefineSpec('number'), dClipVariant: DefineSpec('string', ['instance', 'pixel']), uClipObjectType: UniformSpec('i[]'), uClipObjectInvert: UniformSpec('b[]'), uClipObjectPosition: UniformSpec('v3[]'), uClipObjectRotation: UniformSpec('v4[]'), uClipObjectScale: UniformSpec('v3[]'), aInstance: AttributeSpec('float32', 1, 1),
180
180
  /**
181
181
  * final per-instance transform calculated for instance `i` as
182
182
  * `aTransform[i] = matrix * transform[i] * extraTransform[i]`
@@ -12,14 +12,14 @@ 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 = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, 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'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
16
16
  function SpheresRenderable(ctx, id, values, state, materialId, variants) {
17
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.SpheresSchema);
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 = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.SpheresShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.SpheresRenderable = SpheresRenderable;
@@ -12,14 +12,14 @@ 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.TextSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, 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), aDepth: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), aTexCoord: (0, schema_1.AttributeSpec)('float32', 2, 0), tFont: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'linear'), padding: (0, schema_1.ValueSpec)('number'), uBorderWidth: (0, schema_1.UniformSpec)('f'), uBorderColor: (0, schema_1.UniformSpec)('v3'), uOffsetX: (0, schema_1.UniformSpec)('f'), uOffsetY: (0, schema_1.UniformSpec)('f'), uOffsetZ: (0, schema_1.UniformSpec)('f'), uBackgroundColor: (0, schema_1.UniformSpec)('v3'), uBackgroundOpacity: (0, schema_1.UniformSpec)('f') });
15
+ exports.TextSchema = 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), aDepth: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), aTexCoord: (0, schema_1.AttributeSpec)('float32', 2, 0), tFont: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'linear'), padding: (0, schema_1.ValueSpec)('number'), uBorderWidth: (0, schema_1.UniformSpec)('f'), uBorderColor: (0, schema_1.UniformSpec)('v3'), uOffsetX: (0, schema_1.UniformSpec)('f'), uOffsetY: (0, schema_1.UniformSpec)('f'), uOffsetZ: (0, schema_1.UniformSpec)('f'), uBackgroundColor: (0, schema_1.UniformSpec)('v3'), uBackgroundOpacity: (0, schema_1.UniformSpec)('f') });
16
16
  function TextRenderable(ctx, id, values, state, materialId, variants) {
17
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.TextSchema);
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.TextSchema);
18
18
  var internalValues = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.TextShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.TextRenderable = TextRenderable;
@@ -12,14 +12,14 @@ 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 = (0, tslib_1.__assign)((0, 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'), 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
- var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.TextureMeshSchema);
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 = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.MeshShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, tslib_1.__assign(tslib_1.__assign({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.TextureMeshRenderable = TextureMeshRenderable;
@@ -56,7 +56,7 @@ var tmpCanvasCtx;
56
56
  var tmpContainer;
57
57
  function printImageData(imageData, options) {
58
58
  if (options === void 0) { options = {}; }
59
- var o = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DefaultPrintImageOptions), options);
59
+ var o = tslib_1.__assign(tslib_1.__assign({}, DefaultPrintImageOptions), options);
60
60
  var canvas = tmpCanvas || document.createElement('canvas');
61
61
  tmpCanvas = canvas;
62
62
  canvas.width = imageData.width;
@@ -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";
@@ -4,4 +4,4 @@
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author Michael Krone <michael.krone@uni-tuebingen.de>
6
6
  */
7
- export declare const directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\nuniform float uMarker;\nuniform vec2 uMarkerTexDim;\nuniform sampler2D tMarker;\n\nuniform float uMetalness;\nuniform float uRoughness;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\nuniform float uXrayEdgeFalloff;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\n\nuniform bool uRenderWboit;\nuniform bool uDoubleSided;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dColorType_uniform)\n uniform vec3 uColor;\n#elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n#endif\n\n#ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nfloat transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0)).a;\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec4 material;\n vec4 overpaint;\n float metalness = uMetalness;\n float roughness = uRoughness;\n\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n vec3 vViewPosition = mvPosition.xyz;\n material.a = transferFunction(value);\n\n #ifdef dPackedGroup\n float group = unpackRGBToInt(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n // note that we swap x and z because the texture is flipped around y\n #if defined(dAxisOrder_012)\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y; // 210\n #elif defined(dAxisOrder_021)\n float group = g.y + g.z * uGridDim.y + g.x * uGridDim.y * uGridDim.z; // 120\n #elif defined(dAxisOrder_102)\n float group = g.z + g.x * uGridDim.z + g.y * uGridDim.z * uGridDim.x; // 201\n #elif defined(dAxisOrder_120)\n float group = g.x + g.z * uGridDim.x + g.y * uGridDim.x * uGridDim.z; // 021\n #elif defined(dAxisOrder_201)\n float group = g.y + g.x * uGridDim.y + g.z * uGridDim.y * uGridDim.x; // 102\n #elif defined(dAxisOrder_210)\n float group = g.x + g.y * uGridDim.x + g.z * uGridDim.x * uGridDim.y; // 012\n #endif\n #endif\n\n #if defined(dColorType_direct) && defined(dUsePalette)\n material.rgb = texture2D(tPalette, vec2(value, 0.0)).rgb;\n #elif defined(dColorType_uniform)\n material.rgb = uColor;\n #elif defined(dColorType_instance)\n material.rgb = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n material.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n material.rgb = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n overpaint = readFromTexture(tOverpaint, vInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n overpaint = texture3dFrom1dTrilinear(tOverpaint, isoPos, uGridDim, uOverpaintTexDim, vInstance * float(uVertexCount));\n #endif\n\n material.rgb = mix(material.rgb, overpaint.rgb, overpaint.a);\n #endif\n\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n float marker = uMarker;\n if (uMarker == -1.0) {\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n bool interior = false;\n #include wboit_write\n}\n";
7
+ export declare const directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\nuniform float uMarker;\nuniform vec2 uMarkerTexDim;\nuniform sampler2D tMarker;\n\nuniform float uMetalness;\nuniform float uRoughness;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\nuniform float uXrayEdgeFalloff;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dColorType_uniform)\n uniform vec3 uColor;\n#elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n#endif\n\n#ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nfloat transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0)).a;\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec4 material;\n vec4 overpaint;\n float metalness = uMetalness;\n float roughness = uRoughness;\n\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n vec3 vViewPosition = mvPosition.xyz;\n material.a = transferFunction(value);\n\n #ifdef dPackedGroup\n float group = unpackRGBToInt(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n // note that we swap x and z because the texture is flipped around y\n #if defined(dAxisOrder_012)\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y; // 210\n #elif defined(dAxisOrder_021)\n float group = g.y + g.z * uGridDim.y + g.x * uGridDim.y * uGridDim.z; // 120\n #elif defined(dAxisOrder_102)\n float group = g.z + g.x * uGridDim.z + g.y * uGridDim.z * uGridDim.x; // 201\n #elif defined(dAxisOrder_120)\n float group = g.x + g.z * uGridDim.x + g.y * uGridDim.x * uGridDim.z; // 021\n #elif defined(dAxisOrder_201)\n float group = g.y + g.x * uGridDim.y + g.z * uGridDim.y * uGridDim.x; // 102\n #elif defined(dAxisOrder_210)\n float group = g.x + g.y * uGridDim.x + g.z * uGridDim.x * uGridDim.y; // 012\n #endif\n #endif\n\n #if defined(dColorType_direct) && defined(dUsePalette)\n material.rgb = texture2D(tPalette, vec2(value, 0.0)).rgb;\n #elif defined(dColorType_uniform)\n material.rgb = uColor;\n #elif defined(dColorType_instance)\n material.rgb = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n material.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n material.rgb = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n overpaint = readFromTexture(tOverpaint, vInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n overpaint = texture3dFrom1dTrilinear(tOverpaint, isoPos, uGridDim, uOverpaintTexDim, vInstance * float(uVertexCount));\n #endif\n\n material.rgb = mix(material.rgb, overpaint.rgb, overpaint.a);\n #endif\n\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n float marker = uMarker;\n if (uMarker == -1.0) {\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n #include wboit_write\n}\n";
@@ -7,4 +7,4 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.directVolume_frag = void 0;
10
- exports.directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\nuniform float uMarker;\nuniform vec2 uMarkerTexDim;\nuniform sampler2D tMarker;\n\nuniform float uMetalness;\nuniform float uRoughness;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\nuniform float uXrayEdgeFalloff;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\n\nuniform bool uRenderWboit;\nuniform bool uDoubleSided;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dColorType_uniform)\n uniform vec3 uColor;\n#elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n#endif\n\n#ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nfloat transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0)).a;\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec4 material;\n vec4 overpaint;\n float metalness = uMetalness;\n float roughness = uRoughness;\n\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n vec3 vViewPosition = mvPosition.xyz;\n material.a = transferFunction(value);\n\n #ifdef dPackedGroup\n float group = unpackRGBToInt(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n // note that we swap x and z because the texture is flipped around y\n #if defined(dAxisOrder_012)\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y; // 210\n #elif defined(dAxisOrder_021)\n float group = g.y + g.z * uGridDim.y + g.x * uGridDim.y * uGridDim.z; // 120\n #elif defined(dAxisOrder_102)\n float group = g.z + g.x * uGridDim.z + g.y * uGridDim.z * uGridDim.x; // 201\n #elif defined(dAxisOrder_120)\n float group = g.x + g.z * uGridDim.x + g.y * uGridDim.x * uGridDim.z; // 021\n #elif defined(dAxisOrder_201)\n float group = g.y + g.x * uGridDim.y + g.z * uGridDim.y * uGridDim.x; // 102\n #elif defined(dAxisOrder_210)\n float group = g.x + g.y * uGridDim.x + g.z * uGridDim.x * uGridDim.y; // 012\n #endif\n #endif\n\n #if defined(dColorType_direct) && defined(dUsePalette)\n material.rgb = texture2D(tPalette, vec2(value, 0.0)).rgb;\n #elif defined(dColorType_uniform)\n material.rgb = uColor;\n #elif defined(dColorType_instance)\n material.rgb = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n material.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n material.rgb = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n overpaint = readFromTexture(tOverpaint, vInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n overpaint = texture3dFrom1dTrilinear(tOverpaint, isoPos, uGridDim, uOverpaintTexDim, vInstance * float(uVertexCount));\n #endif\n\n material.rgb = mix(material.rgb, overpaint.rgb, overpaint.a);\n #endif\n\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n float marker = uMarker;\n if (uMarker == -1.0) {\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n bool interior = false;\n #include wboit_write\n}\n";
10
+ exports.directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\nuniform float uMarker;\nuniform vec2 uMarkerTexDim;\nuniform sampler2D tMarker;\n\nuniform float uMetalness;\nuniform float uRoughness;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\nuniform float uXrayEdgeFalloff;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dColorType_uniform)\n uniform vec3 uColor;\n#elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n#endif\n\n#ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nfloat transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0)).a;\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec4 material;\n vec4 overpaint;\n float metalness = uMetalness;\n float roughness = uRoughness;\n\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n vec3 vViewPosition = mvPosition.xyz;\n material.a = transferFunction(value);\n\n #ifdef dPackedGroup\n float group = unpackRGBToInt(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n // note that we swap x and z because the texture is flipped around y\n #if defined(dAxisOrder_012)\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y; // 210\n #elif defined(dAxisOrder_021)\n float group = g.y + g.z * uGridDim.y + g.x * uGridDim.y * uGridDim.z; // 120\n #elif defined(dAxisOrder_102)\n float group = g.z + g.x * uGridDim.z + g.y * uGridDim.z * uGridDim.x; // 201\n #elif defined(dAxisOrder_120)\n float group = g.x + g.z * uGridDim.x + g.y * uGridDim.x * uGridDim.z; // 021\n #elif defined(dAxisOrder_201)\n float group = g.y + g.x * uGridDim.y + g.z * uGridDim.y * uGridDim.x; // 102\n #elif defined(dAxisOrder_210)\n float group = g.x + g.y * uGridDim.x + g.z * uGridDim.x * uGridDim.y; // 012\n #endif\n #endif\n\n #if defined(dColorType_direct) && defined(dUsePalette)\n material.rgb = texture2D(tPalette, vec2(value, 0.0)).rgb;\n #elif defined(dColorType_uniform)\n material.rgb = uColor;\n #elif defined(dColorType_instance)\n material.rgb = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n material.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n material.rgb = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n material.rgb = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n overpaint = readFromTexture(tOverpaint, vInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n overpaint = texture3dFrom1dTrilinear(tOverpaint, isoPos, uGridDim, uOverpaintTexDim, vInstance * float(uVertexCount));\n #endif\n\n material.rgb = mix(material.rgb, overpaint.rgb, overpaint.a);\n #endif\n\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n float marker = uMarker;\n if (uMarker == -1.0) {\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n #include wboit_write\n}\n";
@@ -1,6 +1,6 @@
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
  */
6
- export declare const image_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_frag_params\n#include common_clip\n\nuniform vec2 uImageTexDim;\nuniform sampler2D tImageTex;\nuniform sampler2D tGroupTex;\n\nuniform vec2 uMarkerTexDim;\nuniform sampler2D tMarker;\n\nvarying vec2 vUv;\nvarying float vInstance;\n\n#if defined(dInterpolation_catmulrom) || defined(dInterpolation_mitchell) || defined(dInterpolation_bspline)\n #define dInterpolation_cubic\n#endif\n\n#if defined(dInterpolation_cubic)\n #if defined(dInterpolation_catmulrom) || defined(dInterpolation_mitchell)\n #if defined(dInterpolation_catmulrom)\n const float B = 0.0;\n const float C = 0.5;\n #elif defined(dInterpolation_mitchell)\n const float B = 0.333;\n const float C = 0.333;\n #endif\n\n float cubicFilter(float x){\n float f = x;\n if (f < 0.0) {\n f = -f;\n }\n if (f < 1.0) {\n return ((12.0 - 9.0 * B - 6.0 * C) * (f * f * f) +\n (-18.0 + 12.0 * B + 6.0 * C) * (f * f) +\n (6.0 - 2.0 * B)) / 6.0;\n }else if (f >= 1.0 && f < 2.0){\n return ((-B - 6.0 * C) * ( f * f * f)\n + (6.0 * B + 30.0 * C) * (f * f) +\n (-(12.0 * B) - 48.0 * C) * f +\n 8.0 * B + 24.0 * C) / 6.0;\n }else{\n return 0.0;\n }\n }\n #elif defined(dInterpolation_bspline)\n float cubicFilter(float x) {\n float f = x;\n if (f < 0.0) {\n f = -f;\n }\n if (f >= 0.0 && f <= 1.0){\n return (2.0 / 3.0) + (0.5) * (f * f * f) - (f * f);\n } else if (f > 1.0 && f <= 2.0) {\n return 1.0 / 6.0 * pow((2.0 - f), 3.0);\n }\n return 1.0;\n }\n #endif\n\n vec4 biCubic(sampler2D tex, vec2 texCoord) {\n vec2 texelSize = 1.0 / uImageTexDim;\n texCoord -= texelSize / 2.0;\n vec4 nSum = vec4(0.0);\n float nDenom = 0.0;\n vec2 cell = fract(texCoord * uImageTexDim);\n for (float m = -1.0; m <= 2.0; ++m) {\n for (float n = -1.0; n <= 2.0; ++n) {\n vec4 vecData = texture2D(tex, texCoord + texelSize * vec2(m, n));\n float c = cubicFilter(m - cell.x) * cubicFilter(-n + cell.y);\n nSum += vecData * c;\n nDenom += c;\n }\n }\n return nSum / nDenom;\n }\n#endif\n\nvoid main() {\n #include clip_pixel\n\n #if defined(dInterpolation_cubic)\n vec4 imageData = biCubic(tImageTex, vUv);\n #else\n vec4 imageData = texture2D(tImageTex, vUv);\n #endif\n imageData.a = clamp(imageData.a, 0.0, 1.0);\n if (imageData.a > 0.9) imageData.a = 1.0;\n\n float fragmentDepth = gl_FragCoord.z;\n bool interior = false;\n\n #if defined(dRenderVariant_pick)\n if (imageData.a < 0.3)\n discard;\n if (uPickType == 1) {\n gl_FragColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n gl_FragColor = vec4(packIntToRGB(vInstance), 1.0);\n } else {\n gl_FragColor = vec4(texture2D(tGroupTex, vUv).rgb, 1.0);\n }\n #elif defined(dRenderVariant_depth)\n if (imageData.a < 0.05)\n discard;\n gl_FragColor = packDepthToRGBA(gl_FragCoord.z);\n #elif defined(dRenderVariant_marking)\n float marker = uMarker;\n if (uMarker == -1.0) {\n float group = unpackRGBToInt(texture2D(tGroupTex, vUv).rgb);\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n if (uMarkingType == 1) {\n if (marker > 0.0 || imageData.a < 0.05)\n discard;\n gl_FragColor = packDepthToRGBA(gl_FragCoord.z);\n } else {\n if (marker == 0.0 || imageData.a < 0.05)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n gl_FragColor = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0);\n }\n #elif defined(dRenderVariant_color)\n if (imageData.a < 0.05)\n discard;\n gl_FragColor = imageData;\n gl_FragColor.a *= uAlpha;\n\n float marker = uMarker;\n if (uMarker == -1.0) {\n float group = unpackRGBToInt(texture2D(tGroupTex, vUv).rgb);\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n\n #include apply_marker_color\n #include apply_fog\n #include wboit_write\n #endif\n}\n";
6
+ export declare const image_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_frag_params\n#include common_clip\n\nuniform vec2 uImageTexDim;\nuniform sampler2D tImageTex;\nuniform sampler2D tGroupTex;\n\nuniform vec2 uMarkerTexDim;\nuniform sampler2D tMarker;\n\nvarying vec2 vUv;\nvarying float vInstance;\n\n#if defined(dInterpolation_catmulrom) || defined(dInterpolation_mitchell) || defined(dInterpolation_bspline)\n #define dInterpolation_cubic\n#endif\n\n#if defined(dInterpolation_cubic)\n #if defined(dInterpolation_catmulrom) || defined(dInterpolation_mitchell)\n #if defined(dInterpolation_catmulrom)\n const float B = 0.0;\n const float C = 0.5;\n #elif defined(dInterpolation_mitchell)\n const float B = 0.333;\n const float C = 0.333;\n #endif\n\n float cubicFilter(float x){\n float f = x;\n if (f < 0.0) {\n f = -f;\n }\n if (f < 1.0) {\n return ((12.0 - 9.0 * B - 6.0 * C) * (f * f * f) +\n (-18.0 + 12.0 * B + 6.0 * C) * (f * f) +\n (6.0 - 2.0 * B)) / 6.0;\n }else if (f >= 1.0 && f < 2.0){\n return ((-B - 6.0 * C) * ( f * f * f)\n + (6.0 * B + 30.0 * C) * (f * f) +\n (-(12.0 * B) - 48.0 * C) * f +\n 8.0 * B + 24.0 * C) / 6.0;\n }else{\n return 0.0;\n }\n }\n #elif defined(dInterpolation_bspline)\n float cubicFilter(float x) {\n float f = x;\n if (f < 0.0) {\n f = -f;\n }\n if (f >= 0.0 && f <= 1.0){\n return (2.0 / 3.0) + (0.5) * (f * f * f) - (f * f);\n } else if (f > 1.0 && f <= 2.0) {\n return 1.0 / 6.0 * pow((2.0 - f), 3.0);\n }\n return 1.0;\n }\n #endif\n\n vec4 biCubic(sampler2D tex, vec2 texCoord) {\n vec2 texelSize = 1.0 / uImageTexDim;\n texCoord -= texelSize / 2.0;\n vec4 nSum = vec4(0.0);\n float nDenom = 0.0;\n vec2 cell = fract(texCoord * uImageTexDim);\n for (float m = -1.0; m <= 2.0; ++m) {\n for (float n = -1.0; n <= 2.0; ++n) {\n vec4 vecData = texture2D(tex, texCoord + texelSize * vec2(m, n));\n float c = cubicFilter(m - cell.x) * cubicFilter(-n + cell.y);\n nSum += vecData * c;\n nDenom += c;\n }\n }\n return nSum / nDenom;\n }\n#endif\n\nvoid main() {\n #include clip_pixel\n\n #if defined(dInterpolation_cubic)\n vec4 imageData = biCubic(tImageTex, vUv);\n #else\n vec4 imageData = texture2D(tImageTex, vUv);\n #endif\n imageData.a = clamp(imageData.a, 0.0, 1.0);\n if (imageData.a > 0.9) imageData.a = 1.0;\n\n float fragmentDepth = gl_FragCoord.z;\n\n #if defined(dRenderVariant_pick)\n if (imageData.a < 0.3)\n discard;\n if (uPickType == 1) {\n gl_FragColor = vec4(packIntToRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n gl_FragColor = vec4(packIntToRGB(vInstance), 1.0);\n } else {\n gl_FragColor = vec4(texture2D(tGroupTex, vUv).rgb, 1.0);\n }\n #elif defined(dRenderVariant_depth)\n if (imageData.a < 0.05)\n discard;\n gl_FragColor = packDepthToRGBA(gl_FragCoord.z);\n #elif defined(dRenderVariant_marking)\n float marker = uMarker;\n if (uMarker == -1.0) {\n float group = unpackRGBToInt(texture2D(tGroupTex, vUv).rgb);\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n if (uMarkingType == 1) {\n if (marker > 0.0 || imageData.a < 0.05)\n discard;\n gl_FragColor = packDepthToRGBA(gl_FragCoord.z);\n } else {\n if (marker == 0.0 || imageData.a < 0.05)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n gl_FragColor = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0);\n }\n #elif defined(dRenderVariant_color)\n if (imageData.a < 0.05)\n discard;\n gl_FragColor = imageData;\n gl_FragColor.a *= uAlpha;\n\n float marker = uMarker;\n if (uMarker == -1.0) {\n float group = unpackRGBToInt(texture2D(tGroupTex, vUv).rgb);\n marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n\n #include apply_marker_color\n #include apply_fog\n #include wboit_write\n #endif\n}\n";