molstar 2.3.8 → 3.0.0-dev.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 (701) hide show
  1. package/build/viewer/molstar.js +1 -1
  2. package/lib/apps/docking-viewer/viewport.d.ts +2 -2
  3. package/lib/apps/docking-viewer/viewport.js +14 -14
  4. package/lib/apps/docking-viewer/viewport.js.map +1 -1
  5. package/lib/cli/chem-comp-dict/util.d.ts +4 -4
  6. package/lib/cli/cifschema/util/cif-dic.js +1 -0
  7. package/lib/cli/cifschema/util/cif-dic.js.map +1 -1
  8. package/lib/commonjs/apps/docking-viewer/viewport.js +14 -14
  9. package/lib/commonjs/apps/docking-viewer/viewport.js.map +1 -1
  10. package/lib/commonjs/cli/cifschema/util/cif-dic.js +1 -0
  11. package/lib/commonjs/cli/cifschema/util/cif-dic.js.map +1 -1
  12. package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
  13. package/lib/commonjs/extensions/anvil/representation.d.ts +20 -0
  14. package/lib/commonjs/extensions/cellpack/representation.d.ts +4 -0
  15. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +12 -0
  16. package/lib/commonjs/extensions/geo-export/controls.js +16 -18
  17. package/lib/commonjs/extensions/geo-export/controls.js.map +1 -1
  18. package/lib/commonjs/extensions/geo-export/glb-exporter.d.ts +5 -3
  19. package/lib/commonjs/extensions/geo-export/glb-exporter.js +49 -27
  20. package/lib/commonjs/extensions/geo-export/glb-exporter.js.map +1 -1
  21. package/lib/commonjs/extensions/geo-export/mesh-exporter.d.ts +31 -2
  22. package/lib/commonjs/extensions/geo-export/mesh-exporter.js +87 -15
  23. package/lib/commonjs/extensions/geo-export/mesh-exporter.js.map +1 -1
  24. package/lib/commonjs/extensions/geo-export/obj-exporter.d.ts +1 -0
  25. package/lib/commonjs/extensions/geo-export/obj-exporter.js +24 -15
  26. package/lib/commonjs/extensions/geo-export/obj-exporter.js.map +1 -1
  27. package/lib/commonjs/extensions/geo-export/ui.js +24 -20
  28. package/lib/commonjs/extensions/geo-export/ui.js.map +1 -1
  29. package/lib/commonjs/extensions/geo-export/usdz-exporter.d.ts +3 -5
  30. package/lib/commonjs/extensions/geo-export/usdz-exporter.js +39 -30
  31. package/lib/commonjs/extensions/geo-export/usdz-exporter.js.map +1 -1
  32. package/lib/commonjs/extensions/mp4-export/controls.js +1 -1
  33. package/lib/commonjs/extensions/mp4-export/controls.js.map +1 -1
  34. package/lib/commonjs/extensions/mp4-export/ui.js +7 -6
  35. package/lib/commonjs/extensions/mp4-export/ui.js.map +1 -1
  36. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +3 -2
  37. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +4 -0
  38. package/lib/commonjs/extensions/rcsb/graphql/types.d.ts +22 -21
  39. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +20 -0
  40. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +22 -18
  41. package/lib/commonjs/mol-canvas3d/controls/trackball.d.ts +2 -2
  42. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +1 -0
  43. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -0
  44. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  45. package/lib/commonjs/mol-canvas3d/passes/draw.js +3 -11
  46. package/lib/commonjs/mol-canvas3d/passes/draw.js.map +1 -1
  47. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  48. package/lib/commonjs/mol-geo/geometry/base.d.ts +24 -3
  49. package/lib/commonjs/mol-geo/geometry/base.js +51 -6
  50. package/lib/commonjs/mol-geo/geometry/base.js.map +1 -1
  51. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +4 -0
  52. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +3 -1
  53. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js.map +1 -1
  54. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +4 -0
  55. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +4 -3
  56. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js.map +1 -1
  57. package/lib/commonjs/mol-geo/geometry/image/image.d.ts +4 -0
  58. package/lib/commonjs/mol-geo/geometry/image/image.js +3 -1
  59. package/lib/commonjs/mol-geo/geometry/image/image.js.map +1 -1
  60. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +4 -0
  61. package/lib/commonjs/mol-geo/geometry/lines/lines.js +3 -1
  62. package/lib/commonjs/mol-geo/geometry/lines/lines.js.map +1 -1
  63. package/lib/commonjs/mol-geo/geometry/mesh/builder/tube.js +18 -8
  64. package/lib/commonjs/mol-geo/geometry/mesh/builder/tube.js.map +1 -1
  65. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.d.ts +10 -2
  66. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js +188 -35
  67. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js.map +1 -1
  68. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +4 -0
  69. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +3 -1
  70. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js.map +1 -1
  71. package/lib/commonjs/mol-geo/geometry/overpaint-data.d.ts +7 -2
  72. package/lib/commonjs/mol-geo/geometry/overpaint-data.js +10 -1
  73. package/lib/commonjs/mol-geo/geometry/overpaint-data.js.map +1 -1
  74. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +4 -0
  75. package/lib/commonjs/mol-geo/geometry/points/points.js +3 -1
  76. package/lib/commonjs/mol-geo/geometry/points/points.js.map +1 -1
  77. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +4 -1
  78. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +3 -1
  79. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js.map +1 -1
  80. package/lib/commonjs/mol-geo/geometry/substance-data.d.ts +23 -0
  81. package/lib/commonjs/mol-geo/geometry/substance-data.js +68 -0
  82. package/lib/commonjs/mol-geo/geometry/substance-data.js.map +1 -0
  83. package/lib/commonjs/mol-geo/geometry/text/text.d.ts +4 -0
  84. package/lib/commonjs/mol-geo/geometry/text/text.js +3 -1
  85. package/lib/commonjs/mol-geo/geometry/text/text.js.map +1 -1
  86. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +8 -3
  87. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +194 -27
  88. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js.map +1 -1
  89. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +7 -1
  90. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +4 -1
  91. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js.map +1 -1
  92. package/lib/commonjs/mol-geo/geometry/transparency-data.d.ts +7 -2
  93. package/lib/commonjs/mol-geo/geometry/transparency-data.js +10 -1
  94. package/lib/commonjs/mol-geo/geometry/transparency-data.js.map +1 -1
  95. package/lib/commonjs/mol-gl/_spec/renderer.spec.js +2 -2
  96. package/lib/commonjs/mol-gl/_spec/renderer.spec.js.map +1 -1
  97. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +3 -3
  98. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js.map +1 -1
  99. package/lib/commonjs/mol-gl/compute/util.d.ts +25 -6
  100. package/lib/commonjs/mol-gl/compute/util.js +76 -21
  101. package/lib/commonjs/mol-gl/compute/util.js.map +1 -1
  102. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +18 -0
  103. package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +18 -0
  104. package/lib/commonjs/mol-gl/renderable/image.d.ts +18 -0
  105. package/lib/commonjs/mol-gl/renderable/lines.d.ts +18 -0
  106. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +18 -0
  107. package/lib/commonjs/mol-gl/renderable/points.d.ts +18 -0
  108. package/lib/commonjs/mol-gl/renderable/points.js +1 -2
  109. package/lib/commonjs/mol-gl/renderable/points.js.map +1 -1
  110. package/lib/commonjs/mol-gl/renderable/schema.d.ts +40 -5
  111. package/lib/commonjs/mol-gl/renderable/schema.js +23 -11
  112. package/lib/commonjs/mol-gl/renderable/schema.js.map +1 -1
  113. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +18 -0
  114. package/lib/commonjs/mol-gl/renderable/text.d.ts +18 -0
  115. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +32 -13
  116. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +1 -1
  117. package/lib/commonjs/mol-gl/renderable/texture-mesh.js.map +1 -1
  118. package/lib/commonjs/mol-gl/renderer.d.ts +9 -15
  119. package/lib/commonjs/mol-gl/renderer.js +56 -61
  120. package/lib/commonjs/mol-gl/renderer.js.map +1 -1
  121. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +3 -3
  122. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +3 -3
  123. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js.map +1 -1
  124. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  125. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  126. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js.map +1 -1
  127. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  128. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  129. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js.map +1 -1
  130. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  131. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  132. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js.map +1 -1
  133. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  134. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  135. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js.map +1 -1
  136. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.d.ts +1 -1
  137. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +1 -1
  138. package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js.map +1 -1
  139. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.d.ts +3 -3
  140. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js +3 -3
  141. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js.map +1 -1
  142. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.d.ts +1 -1
  143. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +1 -1
  144. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js.map +1 -1
  145. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.d.ts +1 -1
  146. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +1 -1
  147. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js.map +1 -1
  148. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.d.ts +1 -1
  149. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js +1 -1
  150. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js.map +1 -1
  151. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  152. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  153. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js.map +1 -1
  154. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  155. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  156. package/lib/commonjs/mol-gl/shader/mesh.frag.js.map +1 -1
  157. package/lib/commonjs/mol-gl/shader/mesh.vert.d.ts +1 -1
  158. package/lib/commonjs/mol-gl/shader/mesh.vert.js +1 -1
  159. package/lib/commonjs/mol-gl/shader/mesh.vert.js.map +1 -1
  160. package/lib/commonjs/mol-gl/shader-code.d.ts +0 -1
  161. package/lib/commonjs/mol-gl/shader-code.js +31 -13
  162. package/lib/commonjs/mol-gl/shader-code.js.map +1 -1
  163. package/lib/commonjs/mol-gl/webgl/extensions.js +2 -4
  164. package/lib/commonjs/mol-gl/webgl/extensions.js.map +1 -1
  165. package/lib/commonjs/mol-gl/webgl/render-item.js +1 -4
  166. package/lib/commonjs/mol-gl/webgl/render-item.js.map +1 -1
  167. package/lib/commonjs/mol-gl/webgl/resources.js +1 -1
  168. package/lib/commonjs/mol-gl/webgl/resources.js.map +1 -1
  169. package/lib/commonjs/mol-gl/webgl/vertex-array.d.ts +3 -2
  170. package/lib/commonjs/mol-gl/webgl/vertex-array.js +9 -2
  171. package/lib/commonjs/mol-gl/webgl/vertex-array.js.map +1 -1
  172. package/lib/commonjs/mol-io/reader/_spec/sdf.spec.js +51 -0
  173. package/lib/commonjs/mol-io/reader/_spec/sdf.spec.js.map +1 -1
  174. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +2 -2
  175. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +1 -1
  176. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  177. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +1 -1
  178. package/lib/commonjs/mol-io/reader/cif/schema/cif-core.d.ts +8 -5
  179. package/lib/commonjs/mol-io/reader/cif/schema/cif-core.js +15 -5
  180. package/lib/commonjs/mol-io/reader/cif/schema/cif-core.js.map +1 -1
  181. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +1 -1
  182. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +1 -1
  183. package/lib/commonjs/mol-io/reader/sdf/parser-v3-util.d.ts +9 -0
  184. package/lib/commonjs/mol-io/reader/sdf/parser-v3-util.js +91 -0
  185. package/lib/commonjs/mol-io/reader/sdf/parser-v3-util.js.map +1 -0
  186. package/lib/commonjs/mol-io/reader/sdf/parser.d.ts +1 -1
  187. package/lib/commonjs/mol-io/reader/sdf/parser.js +12 -4
  188. package/lib/commonjs/mol-io/reader/sdf/parser.js.map +1 -1
  189. package/lib/commonjs/mol-math/linear-algebra/3d/vec3.d.ts +6 -0
  190. package/lib/commonjs/mol-math/linear-algebra/3d/vec3.js +9 -0
  191. package/lib/commonjs/mol-math/linear-algebra/3d/vec3.js.map +1 -1
  192. package/lib/commonjs/mol-model/loci.d.ts +18 -18
  193. package/lib/commonjs/mol-model/structure/structure/properties.d.ts +1 -1
  194. package/lib/commonjs/mol-model/structure/structure/properties.js +5 -5
  195. package/lib/commonjs/mol-model/structure/structure/properties.js.map +1 -1
  196. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +8 -0
  197. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.d.ts +1 -1
  198. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js +1 -7
  199. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js.map +1 -1
  200. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +4 -0
  201. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +4 -0
  202. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +12 -0
  203. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +16 -0
  204. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  205. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +5 -0
  206. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +4 -2
  207. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js.map +1 -1
  208. package/lib/commonjs/mol-plugin/commands.d.ts +11 -9
  209. package/lib/commonjs/mol-plugin/spec.js +1 -0
  210. package/lib/commonjs/mol-plugin/spec.js.map +1 -1
  211. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +3 -0
  212. package/lib/commonjs/mol-plugin-state/actions/file.js +4 -2
  213. package/lib/commonjs/mol-plugin-state/actions/file.js.map +1 -1
  214. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +4 -4
  215. package/lib/commonjs/mol-plugin-state/formats/volume.js +1 -0
  216. package/lib/commonjs/mol-plugin-state/formats/volume.js.map +1 -1
  217. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  218. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +14 -3
  219. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js.map +1 -1
  220. package/lib/commonjs/mol-plugin-state/helpers/structure-substance.d.ts +13 -0
  221. package/lib/commonjs/mol-plugin-state/helpers/structure-substance.js +126 -0
  222. package/lib/commonjs/mol-plugin-state/helpers/structure-substance.js.map +1 -0
  223. package/lib/commonjs/mol-plugin-state/manager/snapshots.js +2 -1
  224. package/lib/commonjs/mol-plugin-state/manager/snapshots.js.map +1 -1
  225. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +9 -2
  226. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +44 -22
  227. package/lib/commonjs/mol-plugin-state/manager/structure/component.js.map +1 -1
  228. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +31 -4
  229. package/lib/commonjs/mol-plugin-state/transforms/representation.js +160 -15
  230. package/lib/commonjs/mol-plugin-state/transforms/representation.js.map +1 -1
  231. package/lib/commonjs/mol-plugin-ui/state/common.js +10 -9
  232. package/lib/commonjs/mol-plugin-ui/state/common.js.map +1 -1
  233. package/lib/commonjs/mol-plugin-ui/state/snapshots.js +10 -8
  234. package/lib/commonjs/mol-plugin-ui/state/snapshots.js.map +1 -1
  235. package/lib/commonjs/mol-plugin-ui/structure/selection.js +2 -1
  236. package/lib/commonjs/mol-plugin-ui/structure/selection.js.map +1 -1
  237. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +2 -5
  238. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js.map +1 -1
  239. package/lib/commonjs/mol-repr/representation.d.ts +12 -0
  240. package/lib/commonjs/mol-repr/representation.js +50 -5
  241. package/lib/commonjs/mol-repr/representation.js.map +1 -1
  242. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +5 -1
  243. package/lib/commonjs/mol-repr/shape/loci/common.d.ts +5 -1
  244. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +5 -1
  245. package/lib/commonjs/mol-repr/shape/loci/distance.d.ts +5 -1
  246. package/lib/commonjs/mol-repr/shape/loci/label.d.ts +5 -1
  247. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +4 -0
  248. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +4 -0
  249. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +4 -0
  250. package/lib/commonjs/mol-repr/shape/representation.js +8 -0
  251. package/lib/commonjs/mol-repr/shape/representation.js.map +1 -1
  252. package/lib/commonjs/mol-repr/structure/complex-representation.js +17 -4
  253. package/lib/commonjs/mol-repr/structure/complex-representation.js.map +1 -1
  254. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +25 -1
  255. package/lib/commonjs/mol-repr/structure/complex-visual.js +15 -5
  256. package/lib/commonjs/mol-repr/structure/complex-visual.js.map +1 -1
  257. package/lib/commonjs/mol-repr/structure/params.d.ts +33 -1
  258. package/lib/commonjs/mol-repr/structure/registry.d.ts +61 -5
  259. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +12 -0
  260. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +12 -0
  261. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +12 -0
  262. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +12 -0
  263. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +12 -0
  264. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +18 -6
  265. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +12 -0
  266. package/lib/commonjs/mol-repr/structure/representation/label.d.ts +15 -3
  267. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +12 -0
  268. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +18 -6
  269. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +12 -0
  270. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +12 -0
  271. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +12 -0
  272. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +12 -0
  273. package/lib/commonjs/mol-repr/structure/units-representation.js +23 -17
  274. package/lib/commonjs/mol-repr/structure/units-representation.js.map +1 -1
  275. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +33 -1
  276. package/lib/commonjs/mol-repr/structure/units-visual.js +15 -5
  277. package/lib/commonjs/mol-repr/structure/units-visual.js.map +1 -1
  278. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +8 -0
  279. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +4 -0
  280. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +8 -0
  281. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +4 -0
  282. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +4 -0
  283. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +4 -0
  284. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +4 -0
  285. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +4 -0
  286. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +4 -0
  287. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +8 -0
  288. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +4 -0
  289. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +8 -0
  290. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +24 -8
  291. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +14 -12
  292. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js.map +1 -1
  293. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +4 -0
  294. package/lib/commonjs/mol-repr/structure/visual/label-text.d.ts +5 -1
  295. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +6 -2
  296. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +5 -4
  297. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js.map +1 -1
  298. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +4 -0
  299. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +4 -0
  300. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +4 -0
  301. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +4 -0
  302. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +8 -0
  303. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +8 -0
  304. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +4 -0
  305. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +4 -0
  306. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +4 -0
  307. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +4 -0
  308. package/lib/commonjs/mol-repr/visual.d.ts +24 -13
  309. package/lib/commonjs/mol-repr/visual.js +106 -8
  310. package/lib/commonjs/mol-repr/visual.js.map +1 -1
  311. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +12 -0
  312. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +24 -0
  313. package/lib/commonjs/mol-repr/volume/registry.d.ts +12 -0
  314. package/lib/commonjs/mol-repr/volume/representation.d.ts +5 -1
  315. package/lib/commonjs/mol-repr/volume/representation.js +15 -3
  316. package/lib/commonjs/mol-repr/volume/representation.js.map +1 -1
  317. package/lib/commonjs/mol-repr/volume/slice.d.ts +12 -0
  318. package/lib/commonjs/mol-state/state.js +7 -5
  319. package/lib/commonjs/mol-state/state.js.map +1 -1
  320. package/lib/commonjs/mol-task/execution/observable.js +1 -5
  321. package/lib/commonjs/mol-task/execution/observable.js.map +1 -1
  322. package/lib/commonjs/mol-theme/overpaint.js +1 -1
  323. package/lib/commonjs/mol-theme/overpaint.js.map +1 -1
  324. package/lib/commonjs/mol-theme/substance.d.ts +43 -0
  325. package/lib/commonjs/mol-theme/substance.js +132 -0
  326. package/lib/commonjs/mol-theme/substance.js.map +1 -0
  327. package/lib/commonjs/mol-util/material.d.ts +32 -0
  328. package/lib/commonjs/mol-util/material.js +51 -0
  329. package/lib/commonjs/mol-util/material.js.map +1 -0
  330. package/lib/commonjs/mol-util/number.d.ts +1 -0
  331. package/lib/commonjs/mol-util/number.js +5 -1
  332. package/lib/commonjs/mol-util/number.js.map +1 -1
  333. package/lib/extensions/anvil/behavior.d.ts +3 -2
  334. package/lib/extensions/anvil/representation.d.ts +25 -5
  335. package/lib/extensions/cellpack/representation.d.ts +6 -2
  336. package/lib/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -1
  337. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +15 -3
  338. package/lib/extensions/geo-export/controls.js +16 -18
  339. package/lib/extensions/geo-export/controls.js.map +1 -1
  340. package/lib/extensions/geo-export/glb-exporter.d.ts +5 -3
  341. package/lib/extensions/geo-export/glb-exporter.js +49 -27
  342. package/lib/extensions/geo-export/glb-exporter.js.map +1 -1
  343. package/lib/extensions/geo-export/mesh-exporter.d.ts +31 -2
  344. package/lib/extensions/geo-export/mesh-exporter.js +87 -15
  345. package/lib/extensions/geo-export/mesh-exporter.js.map +1 -1
  346. package/lib/extensions/geo-export/obj-exporter.d.ts +1 -0
  347. package/lib/extensions/geo-export/obj-exporter.js +24 -15
  348. package/lib/extensions/geo-export/obj-exporter.js.map +1 -1
  349. package/lib/extensions/geo-export/ui.js +24 -20
  350. package/lib/extensions/geo-export/ui.js.map +1 -1
  351. package/lib/extensions/geo-export/usdz-exporter.d.ts +3 -5
  352. package/lib/extensions/geo-export/usdz-exporter.js +39 -30
  353. package/lib/extensions/geo-export/usdz-exporter.js.map +1 -1
  354. package/lib/extensions/mp4-export/controls.js +1 -1
  355. package/lib/extensions/mp4-export/controls.js.map +1 -1
  356. package/lib/extensions/mp4-export/ui.js +7 -6
  357. package/lib/extensions/mp4-export/ui.js.map +1 -1
  358. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +6 -5
  359. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +5 -1
  360. package/lib/extensions/rcsb/graphql/types.d.ts +22 -21
  361. package/lib/extensions/rcsb/validation-report/behavior.d.ts +3 -3
  362. package/lib/extensions/rcsb/validation-report/representation.d.ts +25 -5
  363. package/lib/mol-canvas3d/canvas3d.d.ts +18 -14
  364. package/lib/mol-canvas3d/helper/camera-helper.d.ts +4 -3
  365. package/lib/mol-canvas3d/helper/handle-helper.d.ts +2 -1
  366. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  367. package/lib/mol-canvas3d/passes/draw.js +3 -11
  368. package/lib/mol-canvas3d/passes/draw.js.map +1 -1
  369. package/lib/mol-canvas3d/passes/image.d.ts +3 -2
  370. package/lib/mol-data/int/impl/sorted-array.d.ts +1 -1
  371. package/lib/mol-geo/geometry/base.d.ts +27 -6
  372. package/lib/mol-geo/geometry/base.js +48 -5
  373. package/lib/mol-geo/geometry/base.js.map +1 -1
  374. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +5 -1
  375. package/lib/mol-geo/geometry/cylinders/cylinders.js +3 -1
  376. package/lib/mol-geo/geometry/cylinders/cylinders.js.map +1 -1
  377. package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +5 -1
  378. package/lib/mol-geo/geometry/direct-volume/direct-volume.js +4 -3
  379. package/lib/mol-geo/geometry/direct-volume/direct-volume.js.map +1 -1
  380. package/lib/mol-geo/geometry/image/image.d.ts +7 -3
  381. package/lib/mol-geo/geometry/image/image.js +3 -1
  382. package/lib/mol-geo/geometry/image/image.js.map +1 -1
  383. package/lib/mol-geo/geometry/lines/lines.d.ts +5 -1
  384. package/lib/mol-geo/geometry/lines/lines.js +3 -1
  385. package/lib/mol-geo/geometry/lines/lines.js.map +1 -1
  386. package/lib/mol-geo/geometry/mesh/builder/tube.js +19 -9
  387. package/lib/mol-geo/geometry/mesh/builder/tube.js.map +1 -1
  388. package/lib/mol-geo/geometry/mesh/color-smoothing.d.ts +11 -3
  389. package/lib/mol-geo/geometry/mesh/color-smoothing.js +183 -34
  390. package/lib/mol-geo/geometry/mesh/color-smoothing.js.map +1 -1
  391. package/lib/mol-geo/geometry/mesh/mesh.d.ts +5 -1
  392. package/lib/mol-geo/geometry/mesh/mesh.js +3 -1
  393. package/lib/mol-geo/geometry/mesh/mesh.js.map +1 -1
  394. package/lib/mol-geo/geometry/overpaint-data.d.ts +7 -2
  395. package/lib/mol-geo/geometry/overpaint-data.js +11 -2
  396. package/lib/mol-geo/geometry/overpaint-data.js.map +1 -1
  397. package/lib/mol-geo/geometry/points/points.d.ts +7 -3
  398. package/lib/mol-geo/geometry/points/points.js +3 -1
  399. package/lib/mol-geo/geometry/points/points.js.map +1 -1
  400. package/lib/mol-geo/geometry/spheres/spheres.d.ts +5 -2
  401. package/lib/mol-geo/geometry/spheres/spheres.js +3 -1
  402. package/lib/mol-geo/geometry/spheres/spheres.js.map +1 -1
  403. package/lib/mol-geo/geometry/substance-data.d.ts +23 -0
  404. package/lib/mol-geo/geometry/substance-data.js +61 -0
  405. package/lib/mol-geo/geometry/substance-data.js.map +1 -0
  406. package/lib/mol-geo/geometry/text/text.d.ts +5 -1
  407. package/lib/mol-geo/geometry/text/text.js +3 -1
  408. package/lib/mol-geo/geometry/text/text.js.map +1 -1
  409. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +8 -3
  410. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +189 -26
  411. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js.map +1 -1
  412. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +8 -2
  413. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +4 -1
  414. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js.map +1 -1
  415. package/lib/mol-geo/geometry/transparency-data.d.ts +7 -2
  416. package/lib/mol-geo/geometry/transparency-data.js +11 -2
  417. package/lib/mol-geo/geometry/transparency-data.js.map +1 -1
  418. package/lib/mol-gl/_spec/renderer.spec.js +2 -2
  419. package/lib/mol-gl/_spec/renderer.spec.js.map +1 -1
  420. package/lib/mol-gl/compute/marching-cubes/isosurface.js +3 -3
  421. package/lib/mol-gl/compute/marching-cubes/isosurface.js.map +1 -1
  422. package/lib/mol-gl/compute/util.d.ts +25 -6
  423. package/lib/mol-gl/compute/util.js +74 -21
  424. package/lib/mol-gl/compute/util.js.map +1 -1
  425. package/lib/mol-gl/renderable/cylinders.d.ts +18 -0
  426. package/lib/mol-gl/renderable/direct-volume.d.ts +18 -0
  427. package/lib/mol-gl/renderable/image.d.ts +18 -0
  428. package/lib/mol-gl/renderable/lines.d.ts +18 -0
  429. package/lib/mol-gl/renderable/mesh.d.ts +18 -0
  430. package/lib/mol-gl/renderable/points.d.ts +18 -0
  431. package/lib/mol-gl/renderable/points.js +1 -2
  432. package/lib/mol-gl/renderable/points.js.map +1 -1
  433. package/lib/mol-gl/renderable/schema.d.ts +40 -5
  434. package/lib/mol-gl/renderable/schema.js +22 -10
  435. package/lib/mol-gl/renderable/schema.js.map +1 -1
  436. package/lib/mol-gl/renderable/spheres.d.ts +18 -0
  437. package/lib/mol-gl/renderable/text.d.ts +18 -0
  438. package/lib/mol-gl/renderable/texture-mesh.d.ts +32 -13
  439. package/lib/mol-gl/renderable/texture-mesh.js +2 -2
  440. package/lib/mol-gl/renderable/texture-mesh.js.map +1 -1
  441. package/lib/mol-gl/renderer.d.ts +9 -15
  442. package/lib/mol-gl/renderer.js +55 -59
  443. package/lib/mol-gl/renderer.js.map +1 -1
  444. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +3 -3
  445. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +3 -3
  446. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js.map +1 -1
  447. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  448. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  449. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js.map +1 -1
  450. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  451. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  452. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js.map +1 -1
  453. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  454. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  455. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js.map +1 -1
  456. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  457. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  458. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js.map +1 -1
  459. package/lib/mol-gl/shader/chunks/common-clip.glsl.d.ts +1 -1
  460. package/lib/mol-gl/shader/chunks/common-clip.glsl.js +1 -1
  461. package/lib/mol-gl/shader/chunks/common-clip.glsl.js.map +1 -1
  462. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.d.ts +3 -3
  463. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js +3 -3
  464. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js.map +1 -1
  465. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.d.ts +1 -1
  466. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +1 -1
  467. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js.map +1 -1
  468. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.d.ts +1 -1
  469. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +1 -1
  470. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js.map +1 -1
  471. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.d.ts +1 -1
  472. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js +1 -1
  473. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js.map +1 -1
  474. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  475. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  476. package/lib/mol-gl/shader/direct-volume.frag.js.map +1 -1
  477. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  478. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  479. package/lib/mol-gl/shader/mesh.frag.js.map +1 -1
  480. package/lib/mol-gl/shader/mesh.vert.d.ts +1 -1
  481. package/lib/mol-gl/shader/mesh.vert.js +1 -1
  482. package/lib/mol-gl/shader/mesh.vert.js.map +1 -1
  483. package/lib/mol-gl/shader-code.d.ts +0 -1
  484. package/lib/mol-gl/shader-code.js +31 -13
  485. package/lib/mol-gl/shader-code.js.map +1 -1
  486. package/lib/mol-gl/webgl/extensions.js +3 -5
  487. package/lib/mol-gl/webgl/extensions.js.map +1 -1
  488. package/lib/mol-gl/webgl/render-item.d.ts +1 -1
  489. package/lib/mol-gl/webgl/render-item.js +1 -4
  490. package/lib/mol-gl/webgl/render-item.js.map +1 -1
  491. package/lib/mol-gl/webgl/resources.js +1 -1
  492. package/lib/mol-gl/webgl/resources.js.map +1 -1
  493. package/lib/mol-gl/webgl/vertex-array.d.ts +3 -2
  494. package/lib/mol-gl/webgl/vertex-array.js +9 -2
  495. package/lib/mol-gl/webgl/vertex-array.js.map +1 -1
  496. package/lib/mol-io/reader/_spec/sdf.spec.js +51 -0
  497. package/lib/mol-io/reader/_spec/sdf.spec.js.map +1 -1
  498. package/lib/mol-io/reader/cif/schema/bird.d.ts +2 -2
  499. package/lib/mol-io/reader/cif/schema/bird.js +1 -1
  500. package/lib/mol-io/reader/cif/schema/ccd.d.ts +3 -3
  501. package/lib/mol-io/reader/cif/schema/ccd.js +1 -1
  502. package/lib/mol-io/reader/cif/schema/cif-core.d.ts +8 -5
  503. package/lib/mol-io/reader/cif/schema/cif-core.js +15 -5
  504. package/lib/mol-io/reader/cif/schema/cif-core.js.map +1 -1
  505. package/lib/mol-io/reader/cif/schema/density-server.d.ts +3 -3
  506. package/lib/mol-io/reader/cif/schema/mmcif-extras.d.ts +3 -3
  507. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +12 -12
  508. package/lib/mol-io/reader/cif/schema/mmcif.js +1 -1
  509. package/lib/mol-io/reader/ply/schema.d.ts +1 -1
  510. package/lib/mol-io/reader/sdf/parser-v3-util.d.ts +9 -0
  511. package/lib/mol-io/reader/sdf/parser-v3-util.js +84 -0
  512. package/lib/mol-io/reader/sdf/parser-v3-util.js.map +1 -0
  513. package/lib/mol-io/reader/sdf/parser.d.ts +1 -1
  514. package/lib/mol-io/reader/sdf/parser.js +12 -4
  515. package/lib/mol-io/reader/sdf/parser.js.map +1 -1
  516. package/lib/mol-math/linear-algebra/3d/vec3.d.ts +6 -0
  517. package/lib/mol-math/linear-algebra/3d/vec3.js +9 -0
  518. package/lib/mol-math/linear-algebra/3d/vec3.js.map +1 -1
  519. package/lib/mol-model/loci.d.ts +20 -20
  520. package/lib/mol-model/shape/shape.d.ts +1 -1
  521. package/lib/mol-model/structure/structure/properties.d.ts +2 -2
  522. package/lib/mol-model/structure/structure/properties.js +5 -5
  523. package/lib/mol-model/structure/structure/properties.js.map +1 -1
  524. package/lib/mol-model-formats/shape/ply.d.ts +14 -6
  525. package/lib/mol-model-formats/structure/basic/schema.d.ts +6 -6
  526. package/lib/mol-model-formats/structure/common/component.d.ts +8 -8
  527. package/lib/mol-model-props/computed/interactions/hydrogen-bonds.d.ts +1 -1
  528. package/lib/mol-model-props/computed/interactions/hydrogen-bonds.js +1 -7
  529. package/lib/mol-model-props/computed/interactions/hydrogen-bonds.js.map +1 -1
  530. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +5 -1
  531. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +5 -1
  532. package/lib/mol-model-props/computed/representations/interactions.d.ts +15 -3
  533. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +20 -4
  534. package/lib/mol-plugin/behavior/behavior.d.ts +1 -1
  535. package/lib/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  536. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +5 -0
  537. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +4 -2
  538. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js.map +1 -1
  539. package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +8 -8
  540. package/lib/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +4 -4
  541. package/lib/mol-plugin/commands.d.ts +9 -7
  542. package/lib/mol-plugin/spec.js +1 -0
  543. package/lib/mol-plugin/spec.js.map +1 -1
  544. package/lib/mol-plugin/util/viewport-screenshot.d.ts +12 -9
  545. package/lib/mol-plugin/version.js +2 -2
  546. package/lib/mol-plugin-state/actions/file.js +4 -2
  547. package/lib/mol-plugin-state/actions/file.js.map +1 -1
  548. package/lib/mol-plugin-state/actions/structure.d.ts +1 -1
  549. package/lib/mol-plugin-state/animation/helpers.d.ts +5 -5
  550. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +3 -3
  551. package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +3 -3
  552. package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +12 -12
  553. package/lib/mol-plugin-state/builder/structure/representation.d.ts +1 -1
  554. package/lib/mol-plugin-state/formats/volume.d.ts +6 -6
  555. package/lib/mol-plugin-state/formats/volume.js +1 -0
  556. package/lib/mol-plugin-state/formats/volume.js.map +1 -1
  557. package/lib/mol-plugin-state/helpers/root-structure.d.ts +3 -3
  558. package/lib/mol-plugin-state/helpers/structure-component.d.ts +1 -1
  559. package/lib/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  560. package/lib/mol-plugin-state/helpers/structure-selection-query.js +14 -3
  561. package/lib/mol-plugin-state/helpers/structure-selection-query.js.map +1 -1
  562. package/lib/mol-plugin-state/helpers/structure-substance.d.ts +13 -0
  563. package/lib/mol-plugin-state/helpers/structure-substance.js +121 -0
  564. package/lib/mol-plugin-state/helpers/structure-substance.js.map +1 -0
  565. package/lib/mol-plugin-state/manager/interactivity.d.ts +1 -1
  566. package/lib/mol-plugin-state/manager/snapshots.js +2 -1
  567. package/lib/mol-plugin-state/manager/snapshots.js.map +1 -1
  568. package/lib/mol-plugin-state/manager/structure/component.d.ts +10 -3
  569. package/lib/mol-plugin-state/manager/structure/component.js +44 -22
  570. package/lib/mol-plugin-state/manager/structure/component.js.map +1 -1
  571. package/lib/mol-plugin-state/transforms/data.d.ts +1 -1
  572. package/lib/mol-plugin-state/transforms/model.d.ts +5 -5
  573. package/lib/mol-plugin-state/transforms/representation.d.ts +45 -18
  574. package/lib/mol-plugin-state/transforms/representation.js +160 -15
  575. package/lib/mol-plugin-state/transforms/representation.js.map +1 -1
  576. package/lib/mol-plugin-ui/state/common.js +10 -9
  577. package/lib/mol-plugin-ui/state/common.js.map +1 -1
  578. package/lib/mol-plugin-ui/state/snapshots.js +10 -8
  579. package/lib/mol-plugin-ui/state/snapshots.js.map +1 -1
  580. package/lib/mol-plugin-ui/structure/measurements.d.ts +1 -1
  581. package/lib/mol-plugin-ui/structure/selection.js +2 -1
  582. package/lib/mol-plugin-ui/structure/selection.js.map +1 -1
  583. package/lib/mol-plugin-ui/viewport/simple-settings.js +2 -5
  584. package/lib/mol-plugin-ui/viewport/simple-settings.js.map +1 -1
  585. package/lib/mol-repr/representation.d.ts +12 -0
  586. package/lib/mol-repr/representation.js +50 -5
  587. package/lib/mol-repr/representation.js.map +1 -1
  588. package/lib/mol-repr/shape/loci/angle.d.ts +6 -2
  589. package/lib/mol-repr/shape/loci/common.d.ts +6 -2
  590. package/lib/mol-repr/shape/loci/dihedral.d.ts +6 -2
  591. package/lib/mol-repr/shape/loci/distance.d.ts +7 -3
  592. package/lib/mol-repr/shape/loci/label.d.ts +6 -2
  593. package/lib/mol-repr/shape/loci/orientation.d.ts +5 -1
  594. package/lib/mol-repr/shape/loci/plane.d.ts +5 -1
  595. package/lib/mol-repr/shape/model/unitcell.d.ts +5 -1
  596. package/lib/mol-repr/shape/representation.js +8 -0
  597. package/lib/mol-repr/shape/representation.js.map +1 -1
  598. package/lib/mol-repr/structure/complex-representation.js +17 -4
  599. package/lib/mol-repr/structure/complex-representation.js.map +1 -1
  600. package/lib/mol-repr/structure/complex-visual.d.ts +31 -7
  601. package/lib/mol-repr/structure/complex-visual.js +15 -5
  602. package/lib/mol-repr/structure/complex-visual.js.map +1 -1
  603. package/lib/mol-repr/structure/params.d.ts +42 -10
  604. package/lib/mol-repr/structure/registry.d.ts +81 -25
  605. package/lib/mol-repr/structure/representation/backbone.d.ts +15 -3
  606. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +18 -6
  607. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +15 -3
  608. package/lib/mol-repr/structure/representation/cartoon.d.ts +15 -3
  609. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +18 -6
  610. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +21 -9
  611. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +15 -3
  612. package/lib/mol-repr/structure/representation/label.d.ts +21 -9
  613. package/lib/mol-repr/structure/representation/line.d.ts +21 -9
  614. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +21 -9
  615. package/lib/mol-repr/structure/representation/orientation.d.ts +15 -3
  616. package/lib/mol-repr/structure/representation/point.d.ts +18 -6
  617. package/lib/mol-repr/structure/representation/putty.d.ts +15 -3
  618. package/lib/mol-repr/structure/representation/spacefill.d.ts +15 -3
  619. package/lib/mol-repr/structure/units-representation.js +23 -17
  620. package/lib/mol-repr/structure/units-representation.js.map +1 -1
  621. package/lib/mol-repr/structure/units-visual.d.ts +42 -10
  622. package/lib/mol-repr/structure/units-visual.js +15 -5
  623. package/lib/mol-repr/structure/units-visual.js.map +1 -1
  624. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +12 -4
  625. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +6 -2
  626. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +12 -4
  627. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +6 -2
  628. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +5 -1
  629. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +5 -1
  630. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +5 -1
  631. package/lib/mol-repr/structure/visual/element-cross.d.ts +5 -1
  632. package/lib/mol-repr/structure/visual/element-point.d.ts +6 -2
  633. package/lib/mol-repr/structure/visual/element-sphere.d.ts +10 -2
  634. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +5 -1
  635. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +10 -2
  636. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +28 -12
  637. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -7
  638. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js.map +1 -1
  639. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +5 -1
  640. package/lib/mol-repr/structure/visual/label-text.d.ts +7 -3
  641. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +7 -3
  642. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +3 -2
  643. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js.map +1 -1
  644. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +5 -1
  645. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +5 -1
  646. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +5 -1
  647. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +5 -1
  648. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +10 -2
  649. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +10 -2
  650. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +5 -1
  651. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +5 -1
  652. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +5 -1
  653. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +5 -1
  654. package/lib/mol-repr/structure/visual/util/bond.d.ts +6 -6
  655. package/lib/mol-repr/visual.d.ts +24 -13
  656. package/lib/mol-repr/visual.js +106 -8
  657. package/lib/mol-repr/visual.js.map +1 -1
  658. package/lib/mol-repr/volume/direct-volume.d.ts +18 -6
  659. package/lib/mol-repr/volume/isosurface.d.ts +36 -12
  660. package/lib/mol-repr/volume/registry.d.ts +19 -7
  661. package/lib/mol-repr/volume/representation.d.ts +6 -2
  662. package/lib/mol-repr/volume/representation.js +15 -3
  663. package/lib/mol-repr/volume/representation.js.map +1 -1
  664. package/lib/mol-repr/volume/slice.d.ts +21 -9
  665. package/lib/mol-state/state.js +7 -5
  666. package/lib/mol-state/state.js.map +1 -1
  667. package/lib/mol-task/execution/observable.js +1 -5
  668. package/lib/mol-task/execution/observable.js.map +1 -1
  669. package/lib/mol-theme/overpaint.js +1 -1
  670. package/lib/mol-theme/overpaint.js.map +1 -1
  671. package/lib/mol-theme/substance.d.ts +43 -0
  672. package/lib/mol-theme/substance.js +128 -0
  673. package/lib/mol-theme/substance.js.map +1 -0
  674. package/lib/mol-util/color/names.d.ts +1 -1
  675. package/lib/mol-util/material.d.ts +32 -0
  676. package/lib/mol-util/material.js +47 -0
  677. package/lib/mol-util/material.js.map +1 -0
  678. package/lib/mol-util/number.d.ts +1 -0
  679. package/lib/mol-util/number.js +3 -0
  680. package/lib/mol-util/number.js.map +1 -1
  681. package/lib/servers/model/config.d.ts +2 -2
  682. package/lib/tsconfig.commonjs.tsbuildinfo +1 -1
  683. package/package.json +26 -26
  684. package/lib/commonjs/mol-repr/structure/visual/util/color.d.ts +0 -24
  685. package/lib/commonjs/mol-repr/structure/visual/util/color.js +0 -100
  686. package/lib/commonjs/mol-repr/structure/visual/util/color.js.map +0 -1
  687. package/lib/mol-gl/_spec/shader.spec.d.ts +0 -0
  688. package/lib/mol-gl/_spec/shader.spec.js +0 -2
  689. package/lib/mol-gl/_spec/shader.spec.js.map +0 -1
  690. package/lib/mol-repr/structure/visual/orientation-axes-mesh.d.ts +0 -35
  691. package/lib/mol-repr/structure/visual/orientation-axes-mesh.js +0 -43
  692. package/lib/mol-repr/structure/visual/orientation-axes-mesh.js.map +0 -1
  693. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh copy.d.ts +0 -31
  694. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh copy.js +0 -48
  695. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh copy.js.map +0 -1
  696. package/lib/mol-repr/structure/visual/util/color.d.ts +0 -24
  697. package/lib/mol-repr/structure/visual/util/color.js +0 -94
  698. package/lib/mol-repr/structure/visual/util/color.js.map +0 -1
  699. package/lib/mol-repr/structure/visual/util/orientation.d.ts +0 -17
  700. package/lib/mol-repr/structure/visual/util/orientation.js +0 -71
  701. package/lib/mol-repr/structure/visual/util/orientation.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/mol-gl/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/mol-gl/renderer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  *
6
6
  * adapted from three.js (https://github.com/mrdoob/three.js/)
7
- * which under the MIT License, Copyright © 2010-2019 three.js authors
7
+ * which under the MIT License, Copyright © 2010-2021 three.js authors
8
8
  */
9
- export declare const apply_light_color = "\n// inputs\n// - vec4 material\n// - vec3 vViewPosition\n// - vec3 normal\n// - float uMetalness\n// - float uRoughness\n// - float uReflectivity\n// - float uLightIntensity\n// - float uAmbientIntensity\n\n// outputs\n// - sets gl_FragColor\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - uMetalness);\nphysicalMaterial.specularRoughness = clamp(uRoughness, 0.04, 1.0);\nphysicalMaterial.specularColor = mix(vec3(0.16 * pow2(uReflectivity)), color.rgb, uMetalness);\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\ndirectLight.direction = vec3(0.0, 0.0, -1.0);\ndirectLight.color = vec3(uLightIntensity);\n\nRE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n\nvec3 irradiance = vec3(uAmbientIntensity) * PI;\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0, 0, 1))), uXrayEdgeFalloff);\n#endif\n";
9
+ export declare const apply_light_color = "\n// inputs\n// - vec4 material\n// - vec3 vViewPosition\n// - vec3 normal\n// - float uMetalness\n// - float uRoughness\n// - vec3 uLightColor\n// - vec3 uAmbientColor\n\n// outputs\n// - sets gl_FragColor\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\nphysicalMaterial.roughness = max(roughness, 0.0525);\nphysicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\nphysicalMaterial.specularF90 = 1.0;\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\n#pragma unroll_loop_start\nfor (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n}\n#pragma unroll_loop_end\n\nvec3 irradiance = uAmbientColor * PI; // * PI for punctual light\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n// indirect specular only metals\nvec3 radiance = uAmbientColor * metalness;\nvec3 iblIrradiance = uAmbientColor * metalness;\nvec3 clearcoatRadiance = vec3(0.0);\nRE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n";
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  *
7
7
  * adapted from three.js (https://github.com/mrdoob/three.js/)
8
- * which under the MIT License, Copyright © 2010-2019 three.js authors
8
+ * which under the MIT License, Copyright © 2010-2021 three.js authors
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.apply_light_color = void 0;
12
- exports.apply_light_color = "\n// inputs\n// - vec4 material\n// - vec3 vViewPosition\n// - vec3 normal\n// - float uMetalness\n// - float uRoughness\n// - float uReflectivity\n// - float uLightIntensity\n// - float uAmbientIntensity\n\n// outputs\n// - sets gl_FragColor\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - uMetalness);\nphysicalMaterial.specularRoughness = clamp(uRoughness, 0.04, 1.0);\nphysicalMaterial.specularColor = mix(vec3(0.16 * pow2(uReflectivity)), color.rgb, uMetalness);\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\ndirectLight.direction = vec3(0.0, 0.0, -1.0);\ndirectLight.color = vec3(uLightIntensity);\n\nRE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n\nvec3 irradiance = vec3(uAmbientIntensity) * PI;\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0, 0, 1))), uXrayEdgeFalloff);\n#endif\n";
12
+ exports.apply_light_color = "\n// inputs\n// - vec4 material\n// - vec3 vViewPosition\n// - vec3 normal\n// - float uMetalness\n// - float uRoughness\n// - vec3 uLightColor\n// - vec3 uAmbientColor\n\n// outputs\n// - sets gl_FragColor\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\nphysicalMaterial.roughness = max(roughness, 0.0525);\nphysicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\nphysicalMaterial.specularF90 = 1.0;\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\n#pragma unroll_loop_start\nfor (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n}\n#pragma unroll_loop_end\n\nvec3 irradiance = uAmbientColor * PI; // * PI for punctual light\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n// indirect specular only metals\nvec3 radiance = uAmbientColor * metalness;\nvec3 iblIrradiance = uAmbientColor * metalness;\nvec3 clearcoatRadiance = vec3(0.0);\nRE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n";
13
13
  //# sourceMappingURL=apply-light-color.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-light-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/apply-light-color.glsl.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEU,QAAA,iBAAiB,GAAG,u2CA4ChC,CAAC"}
1
+ {"version":3,"file":"apply-light-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/apply-light-color.glsl.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEU,QAAA,iBAAiB,GAAG,oyDAqDhC,CAAC"}
@@ -1 +1 @@
1
- export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 gridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 gridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n#endif\n";
1
+ export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim).rgb;\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rg = mix(vec2(uMetalness, uRoughness), vSubstance.rg, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n\n #if defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_color_varying = void 0;
4
- exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 gridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 gridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n#endif\n";
4
+ exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim).rgb;\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rg = mix(vec2(uMetalness, uRoughness), vSubstance.rg, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n\n #if defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n#endif\n";
5
5
  //# sourceMappingURL=assign-color-varying.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assign-color-varying.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-color-varying.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,kjEA2CnC,CAAC"}
1
+ {"version":3,"file":"assign-color-varying.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-color-varying.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,ytIA+EnC,CAAC"}
@@ -1 +1 @@
1
- export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\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 float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
1
+ export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n\n float metalness = uMetalness;\n float roughness = uRoughness;\n #ifdef dSubstance\n metalness = mix(metalness, vSubstance.r, vSubstance.b);\n roughness = mix(roughness, vSubstance.g, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\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 float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n #if defined(dRenderVariant_colorWboit)\n if (vTransparency < 0.2) ta = 1.0; // hard cutoff looks better with wboit\n #endif\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_material_color = void 0;
4
- exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\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 float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
4
+ exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n\n float metalness = uMetalness;\n float roughness = uRoughness;\n #ifdef dSubstance\n metalness = mix(metalness, vSubstance.r, vSubstance.b);\n roughness = mix(roughness, vSubstance.g, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\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 float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n #if defined(dRenderVariant_colorWboit)\n if (vTransparency < 0.2) ta = 1.0; // hard cutoff looks better with wboit\n #endif\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
5
5
  //# sourceMappingURL=assign-material-color.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assign-material-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-material-color.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,0iHA8FpC,CAAC"}
1
+ {"version":3,"file":"assign-material-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-material-color.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,k6HAwGpC,CAAC"}
@@ -1 +1 @@
1
- export declare const color_frag_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n#endif\n";
1
+ export declare const color_frag_params = "\nuniform float uMetalness;\nuniform float uRoughness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n\n #ifdef dSubstance\n varying vec3 vSubstance;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.color_frag_params = void 0;
4
- exports.color_frag_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n#endif\n";
4
+ exports.color_frag_params = "\nuniform float uMetalness;\nuniform float uRoughness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n\n #ifdef dSubstance\n varying vec3 vSubstance;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n#endif\n";
5
5
  //# sourceMappingURL=color-frag-params.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-frag-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/color-frag-params.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,ulBA4BhC,CAAC"}
1
+ {"version":3,"file":"color-frag-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/color-frag-params.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,stBAmChC,CAAC"}
@@ -1 +1 @@
1
- export declare const color_vert_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
1
+ export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec3 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec3 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.color_vert_params = void 0;
4
- exports.color_vert_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
4
+ exports.color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec3 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec3 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
5
5
  //# sourceMappingURL=color-vert-params.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-vert-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/color-vert-params.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,8lCA0ChC,CAAC"}
1
+ {"version":3,"file":"color-vert-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/color-vert-params.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,q9EA2EhC,CAAC"}
@@ -4,4 +4,4 @@
4
4
  * @author Ludovic Autin <autin@scripps.edu>
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
7
- export declare const common_clip = "\n#if dClipObjectCount != 0\n vec3 quaternionTransform(vec4 q, vec3 v) {\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n }\n\n vec4 computePlane(vec3 normal, vec3 inPoint) {\n return vec4(normalize(normal), -dot(normal, inPoint));\n }\n\n float planeSD(vec4 plane, vec3 center) {\n return -dot(plane.xyz, center - plane.xyz * -plane.w);\n }\n\n float sphereSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n return (\n length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0\n ) * min(min(size.x, size.y), size.z);\n }\n\n float cubeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;\n return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));\n }\n\n float cylinderSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;\n return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n }\n\n float infiniteConeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n float q = length(t.xy);\n return dot(size.xy, vec2(q, t.z));\n }\n\n float getSignedDistance(vec3 center, int type, vec3 position, vec4 rotation, vec3 scale) {\n if (type == 1) {\n vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));\n vec4 plane = computePlane(normal, position);\n return planeSD(plane, center);\n } else if (type == 2) {\n return sphereSD(position, rotation, scale * 0.5, center);\n } else if (type == 3) {\n return cubeSD(position, rotation, scale * 0.5, center);\n } else if (type == 4) {\n return cylinderSD(position, rotation, scale * 0.5, center);\n } else if (type == 5) {\n return infiniteConeSD(position, rotation, scale * 0.5, center);\n } else {\n return 0.1;\n }\n }\n\n #if __VERSION__ == 100\n // 8-bit\n int bitwiseAnd(int a, int b) {\n int d = 128;\n int result = 0;\n for (int i = 0; i < 8; ++i) {\n if (d <= 0) break;\n if (a >= d && b >= d) result += d;\n if (a >= d) a -= d;\n if (b >= d) b -= d;\n d /= 2;\n }\n return result;\n }\n\n bool hasBit(int mask, int bit) {\n return bitwiseAnd(mask, bit) == 0;\n }\n #else\n bool hasBit(int mask, int bit) {\n return (mask & bit) == 0;\n }\n #endif\n\n // flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)\n bool clipTest(vec4 sphere, int flag) {\n for (int i = 0; i < dClipObjectCount; ++i) {\n if (flag == 0 || hasBit(flag, i + 1)) {\n // TODO take sphere radius into account?\n bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;\n if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {\n return true;\n }\n }\n }\n return false;\n }\n#endif\n";
7
+ export declare const common_clip = "\n#if dClipObjectCount != 0\n vec3 quaternionTransform(vec4 q, vec3 v) {\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n }\n\n vec4 computePlane(vec3 normal, vec3 inPoint) {\n return vec4(normalize(normal), -dot(normal, inPoint));\n }\n\n float planeSD(vec4 plane, vec3 center) {\n return -dot(plane.xyz, center - plane.xyz * -plane.w);\n }\n\n float sphereSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n return (\n length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0\n ) * min(min(size.x, size.y), size.z);\n }\n\n float cubeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;\n return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));\n }\n\n float cylinderSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;\n return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n }\n\n float infiniteConeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n float q = length(t.xy);\n return dot(size.xy, vec2(q, t.z));\n }\n\n float getSignedDistance(vec3 center, int type, vec3 position, vec4 rotation, vec3 scale) {\n if (type == 1) {\n vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));\n vec4 plane = computePlane(normal, position);\n return planeSD(plane, center);\n } else if (type == 2) {\n return sphereSD(position, rotation, scale * 0.5, center);\n } else if (type == 3) {\n return cubeSD(position, rotation, scale * 0.5, center);\n } else if (type == 4) {\n return cylinderSD(position, rotation, scale * 0.5, center);\n } else if (type == 5) {\n return infiniteConeSD(position, rotation, scale * 0.5, center);\n } else {\n return 0.1;\n }\n }\n\n #if __VERSION__ == 100\n // 8-bit\n int bitwiseAnd(int a, int b) {\n int d = 128;\n int result = 0;\n for (int i = 0; i < 8; ++i) {\n if (d <= 0) break;\n if (a >= d && b >= d) result += d;\n if (a >= d) a -= d;\n if (b >= d) b -= d;\n d /= 2;\n }\n return result;\n }\n\n bool hasBit(int mask, int bit) {\n return bitwiseAnd(mask, bit) == 0;\n }\n #else\n bool hasBit(int mask, int bit) {\n return (mask & bit) == 0;\n }\n #endif\n\n // flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)\n bool clipTest(vec4 sphere, int flag) {\n #pragma unroll_loop_start\n for (int i = 0; i < dClipObjectCount; ++i) {\n if (flag == 0 || hasBit(flag, UNROLLED_LOOP_INDEX + 1)) {\n // TODO take sphere radius into account?\n bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;\n if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {\n return true;\n }\n }\n }\n #pragma unroll_loop_end\n return false;\n }\n#endif\n";
@@ -7,5 +7,5 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.common_clip = void 0;
10
- exports.common_clip = "\n#if dClipObjectCount != 0\n vec3 quaternionTransform(vec4 q, vec3 v) {\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n }\n\n vec4 computePlane(vec3 normal, vec3 inPoint) {\n return vec4(normalize(normal), -dot(normal, inPoint));\n }\n\n float planeSD(vec4 plane, vec3 center) {\n return -dot(plane.xyz, center - plane.xyz * -plane.w);\n }\n\n float sphereSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n return (\n length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0\n ) * min(min(size.x, size.y), size.z);\n }\n\n float cubeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;\n return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));\n }\n\n float cylinderSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;\n return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n }\n\n float infiniteConeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n float q = length(t.xy);\n return dot(size.xy, vec2(q, t.z));\n }\n\n float getSignedDistance(vec3 center, int type, vec3 position, vec4 rotation, vec3 scale) {\n if (type == 1) {\n vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));\n vec4 plane = computePlane(normal, position);\n return planeSD(plane, center);\n } else if (type == 2) {\n return sphereSD(position, rotation, scale * 0.5, center);\n } else if (type == 3) {\n return cubeSD(position, rotation, scale * 0.5, center);\n } else if (type == 4) {\n return cylinderSD(position, rotation, scale * 0.5, center);\n } else if (type == 5) {\n return infiniteConeSD(position, rotation, scale * 0.5, center);\n } else {\n return 0.1;\n }\n }\n\n #if __VERSION__ == 100\n // 8-bit\n int bitwiseAnd(int a, int b) {\n int d = 128;\n int result = 0;\n for (int i = 0; i < 8; ++i) {\n if (d <= 0) break;\n if (a >= d && b >= d) result += d;\n if (a >= d) a -= d;\n if (b >= d) b -= d;\n d /= 2;\n }\n return result;\n }\n\n bool hasBit(int mask, int bit) {\n return bitwiseAnd(mask, bit) == 0;\n }\n #else\n bool hasBit(int mask, int bit) {\n return (mask & bit) == 0;\n }\n #endif\n\n // flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)\n bool clipTest(vec4 sphere, int flag) {\n for (int i = 0; i < dClipObjectCount; ++i) {\n if (flag == 0 || hasBit(flag, i + 1)) {\n // TODO take sphere radius into account?\n bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;\n if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {\n return true;\n }\n }\n }\n return false;\n }\n#endif\n";
10
+ exports.common_clip = "\n#if dClipObjectCount != 0\n vec3 quaternionTransform(vec4 q, vec3 v) {\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n }\n\n vec4 computePlane(vec3 normal, vec3 inPoint) {\n return vec4(normalize(normal), -dot(normal, inPoint));\n }\n\n float planeSD(vec4 plane, vec3 center) {\n return -dot(plane.xyz, center - plane.xyz * -plane.w);\n }\n\n float sphereSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n return (\n length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0\n ) * min(min(size.x, size.y), size.z);\n }\n\n float cubeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;\n return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));\n }\n\n float cylinderSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;\n return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n }\n\n float infiniteConeSD(vec3 position, vec4 rotation, vec3 size, vec3 center) {\n vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);\n\n float q = length(t.xy);\n return dot(size.xy, vec2(q, t.z));\n }\n\n float getSignedDistance(vec3 center, int type, vec3 position, vec4 rotation, vec3 scale) {\n if (type == 1) {\n vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));\n vec4 plane = computePlane(normal, position);\n return planeSD(plane, center);\n } else if (type == 2) {\n return sphereSD(position, rotation, scale * 0.5, center);\n } else if (type == 3) {\n return cubeSD(position, rotation, scale * 0.5, center);\n } else if (type == 4) {\n return cylinderSD(position, rotation, scale * 0.5, center);\n } else if (type == 5) {\n return infiniteConeSD(position, rotation, scale * 0.5, center);\n } else {\n return 0.1;\n }\n }\n\n #if __VERSION__ == 100\n // 8-bit\n int bitwiseAnd(int a, int b) {\n int d = 128;\n int result = 0;\n for (int i = 0; i < 8; ++i) {\n if (d <= 0) break;\n if (a >= d && b >= d) result += d;\n if (a >= d) a -= d;\n if (b >= d) b -= d;\n d /= 2;\n }\n return result;\n }\n\n bool hasBit(int mask, int bit) {\n return bitwiseAnd(mask, bit) == 0;\n }\n #else\n bool hasBit(int mask, int bit) {\n return (mask & bit) == 0;\n }\n #endif\n\n // flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)\n bool clipTest(vec4 sphere, int flag) {\n #pragma unroll_loop_start\n for (int i = 0; i < dClipObjectCount; ++i) {\n if (flag == 0 || hasBit(flag, UNROLLED_LOOP_INDEX + 1)) {\n // TODO take sphere radius into account?\n bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;\n if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {\n return true;\n }\n }\n }\n #pragma unroll_loop_end\n return false;\n }\n#endif\n";
11
11
  //# sourceMappingURL=common-clip.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common-clip.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/common-clip.glsl.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,WAAW,GAAG,ymHAgG1B,CAAC"}
1
+ {"version":3,"file":"common-clip.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/common-clip.glsl.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,WAAW,GAAG,+rHAkG1B,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  *
6
6
  * adapted from three.js (https://github.com/mrdoob/three.js/)
7
- * which under the MIT License, Copyright © 2010-2019 three.js authors
7
+ * which under the MIT License, Copyright © 2010-2021 three.js authors
8
8
  */
9
- export declare const light_frag_params = "\nuniform float uLightIntensity;\nuniform float uAmbientIntensity;\nuniform float uReflectivity;\nuniform float uMetalness;\nuniform float uRoughness;\n\nstruct PhysicalMaterial {\n vec3 diffuseColor;\n float specularRoughness;\n vec3 specularColor;\n};\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n};\n\nstruct GeometricContext {\n vec3 position;\n vec3 normal;\n vec3 viewDir;\n};\n\nvec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {\n // Original approximation by Christophe Schlick '94\n // float fresnel = pow( 1.0 - dotLH, 5.0 );\n // Optimized variant (presented by Epic at SIGGRAPH '13)\n // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\n float fresnel = exp2((-5.55473 * dotLH - 6.98316) * dotLH);\n return (1.0 - specularColor) * fresnel + specularColor;\n}\n\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\nfloat G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {\n float a2 = pow2(alpha);\n // dotNL and dotNV are explicitly swapped. This is not a mistake.\n float gv = dotNL * sqrt(a2 + (1.0 - a2) * pow2(dotNV));\n float gl = dotNV * sqrt(a2 + (1.0 - a2) * pow2(dotNL));\n return 0.5 / max(gv + gl, EPSILON);\n}\n\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\n// alpha is \"roughness squared\" in Disney\u2019s reparameterization\nfloat D_GGX(const in float alpha, const in float dotNH) {\n float a2 = pow2(alpha);\n float denom = pow2(dotNH) * (a2 - 1.0) + 1.0; // avoid alpha = 0 with dotNH = 1\n return RECIPROCAL_PI * a2 / pow2(denom);\n}\n\nvec3 BRDF_Diffuse_Lambert(const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\n// GGX Distribution, Schlick Fresnel, GGX-Smith Visibility\nvec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness) {\n float alpha = pow2(roughness); // UE4's roughness\n vec3 halfDir = normalize(incidentLight.direction + geometry.viewDir);\n\n float dotNL = saturate(dot(geometry.normal, incidentLight.direction));\n float dotNV = saturate(dot(geometry.normal, geometry.viewDir));\n float dotNH = saturate(dot(geometry.normal, halfDir));\n float dotLH = saturate(dot(incidentLight.direction, halfDir));\n\n vec3 F = F_Schlick(specularColor, dotLH);\n float G = G_GGX_SmithCorrelated(alpha, dotNL, dotNV);\n float D = D_GGX(alpha, dotNH);\n return F * (G * D);\n}\n\n// ref: https://www.unrealengine.com/blog/physically-based-shading-on-mobile - environmentBRDF for GGX on mobile\nvec3 BRDF_Specular_GGX_Environment(const in GeometricContext geometry, const in vec3 specularColor, const in float roughness) {\n float dotNV = saturate(dot(geometry.normal, geometry.viewDir));\n const vec4 c0 = vec4(-1, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n return specularColor * AB.x + AB.y;\n}\n\nvoid RE_Direct_Physical(const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n float dotNL = saturate(dot(geometry.normal, directLight.direction));\n vec3 irradiance = dotNL * directLight.color;\n irradiance *= PI; // punctual light\n\n reflectedLight.directSpecular += irradiance * BRDF_Specular_GGX(directLight, geometry, material.specularColor, material.specularRoughness);\n reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert(material.diffuseColor);\n}\n\nvoid RE_IndirectDiffuse_Physical(const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert(material.diffuseColor);\n}\n";
9
+ export declare const light_frag_params = "\nuniform vec3 uLightDirection[dLightCount];\nuniform vec3 uLightColor[dLightCount];\nuniform vec3 uAmbientColor;\n\nstruct PhysicalMaterial {\n vec3 diffuseColor;\n float roughness;\n vec3 specularColor;\n float specularF90;\n};\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n\nstruct GeometricContext {\n vec3 position;\n vec3 normal;\n vec3 viewDir;\n};\n\nvec3 BRDF_Lambert(const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nvec3 F_Schlick(const in vec3 f0, const in float f90, const in float dotVH) {\n // Original approximation by Christophe Schlick '94\n // float fresnel = pow( 1.0 - dotVH, 5.0 );\n // Optimized variant (presented by Epic at SIGGRAPH '13)\n // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\n float fresnel = exp2((-5.55473 * dotVH - 6.98316) * dotVH);\n return f0 * (1.0 - fresnel) + (f90 * fresnel);\n}\n\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\nfloat V_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {\n float a2 = pow2(alpha);\n float gv = dotNL * sqrt(a2 + (1.0 - a2) * pow2(dotNV));\n float gl = dotNV * sqrt(a2 + (1.0 - a2) * pow2(dotNL));\n return 0.5 / max(gv + gl, EPSILON);\n}\n\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\n// alpha is \"roughness squared\" in Disney\u2019s reparameterization\nfloat D_GGX(const in float alpha, const in float dotNH) {\n float a2 = pow2(alpha);\n float denom = pow2(dotNH) * (a2 - 1.0) + 1.0; // avoid alpha = 0 with dotNH = 1\n return RECIPROCAL_PI * a2 / pow2(denom);\n}\n\n// GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility\nvec3 BRDF_GGX(const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness) {\n float alpha = pow2(roughness); // UE4's roughness\n vec3 halfDir = normalize( lightDir + viewDir);\n float dotNL = saturate(dot(normal, lightDir));\n float dotNV = saturate(dot(normal, viewDir));\n float dotNH = saturate(dot(normal, halfDir));\n float dotVH = saturate(dot(viewDir, halfDir));\n vec3 F = F_Schlick(f0, f90, dotVH);\n float V = V_GGX_SmithCorrelated(alpha, dotNL, dotNV);\n float D = D_GGX(alpha, dotNH);\n return F * (V * D);\n}\n\n// Analytical approximation of the DFG LUT, one half of the\n// split-sum approximation used in indirect specular lighting.\n// via 'environmentBRDF' from \"Physically Based Shading on Mobile\"\n// https://www.unrealengine.com/blog/physically-based-shading-on-mobile\nvec2 DFGApprox(const in vec3 normal, const in vec3 viewDir, const in float roughness) {\n float dotNV = saturate(dot(normal, viewDir));\n const vec4 c0 = vec4(-1, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;\n vec2 fab = vec2(-1.04, 1.04) * a004 + r.zw;\n return fab;\n}\n\n// Fdez-Ag\u00FCera's \"Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting\"\n// Approximates multiscattering in order to preserve energy.\n// http://www.jcgt.org/published/0008/01/03/\nvoid computeMultiscattering(const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter) {\n vec2 fab = DFGApprox(normal, viewDir, roughness);\n vec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\n float Ess = fab.x + fab.y;\n float Ems = 1.0 - Ess;\n vec3 Favg = specularColor + (1.0 - specularColor) * 0.047619; // 1/21\n vec3 Fms = FssEss * Favg / (1.0 - Ems * Favg);\n singleScatter += FssEss;\n multiScatter += Fms * Ems;\n}\n\nvoid RE_Direct_Physical(const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n float dotNL = saturate(dot(geometry.normal, directLight.direction));\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directSpecular += irradiance * BRDF_GGX(directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness);\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert(material.diffuseColor);\n}\n\nvoid RE_IndirectDiffuse_Physical(const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert(material.diffuseColor);\n}\n\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n // Both indirect specular and indirect diffuse light accumulate here\n vec3 singleScattering = vec3(0.0);\n vec3 multiScattering = vec3(0.0);\n vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n computeMultiscattering(geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering);\n vec3 diffuse = material.diffuseColor * (1.0 - ( singleScattering + multiScattering));\n reflectedLight.indirectSpecular += radiance * singleScattering;\n reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n";
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2017-2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2017-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  *
7
7
  * adapted from three.js (https://github.com/mrdoob/three.js/)
8
- * which under the MIT License, Copyright © 2010-2019 three.js authors
8
+ * which under the MIT License, Copyright © 2010-2021 three.js authors
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.light_frag_params = void 0;
12
- exports.light_frag_params = "\nuniform float uLightIntensity;\nuniform float uAmbientIntensity;\nuniform float uReflectivity;\nuniform float uMetalness;\nuniform float uRoughness;\n\nstruct PhysicalMaterial {\n vec3 diffuseColor;\n float specularRoughness;\n vec3 specularColor;\n};\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n};\n\nstruct GeometricContext {\n vec3 position;\n vec3 normal;\n vec3 viewDir;\n};\n\nvec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {\n // Original approximation by Christophe Schlick '94\n // float fresnel = pow( 1.0 - dotLH, 5.0 );\n // Optimized variant (presented by Epic at SIGGRAPH '13)\n // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\n float fresnel = exp2((-5.55473 * dotLH - 6.98316) * dotLH);\n return (1.0 - specularColor) * fresnel + specularColor;\n}\n\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\nfloat G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {\n float a2 = pow2(alpha);\n // dotNL and dotNV are explicitly swapped. This is not a mistake.\n float gv = dotNL * sqrt(a2 + (1.0 - a2) * pow2(dotNV));\n float gl = dotNV * sqrt(a2 + (1.0 - a2) * pow2(dotNL));\n return 0.5 / max(gv + gl, EPSILON);\n}\n\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\n// alpha is \"roughness squared\" in Disney\u2019s reparameterization\nfloat D_GGX(const in float alpha, const in float dotNH) {\n float a2 = pow2(alpha);\n float denom = pow2(dotNH) * (a2 - 1.0) + 1.0; // avoid alpha = 0 with dotNH = 1\n return RECIPROCAL_PI * a2 / pow2(denom);\n}\n\nvec3 BRDF_Diffuse_Lambert(const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\n// GGX Distribution, Schlick Fresnel, GGX-Smith Visibility\nvec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness) {\n float alpha = pow2(roughness); // UE4's roughness\n vec3 halfDir = normalize(incidentLight.direction + geometry.viewDir);\n\n float dotNL = saturate(dot(geometry.normal, incidentLight.direction));\n float dotNV = saturate(dot(geometry.normal, geometry.viewDir));\n float dotNH = saturate(dot(geometry.normal, halfDir));\n float dotLH = saturate(dot(incidentLight.direction, halfDir));\n\n vec3 F = F_Schlick(specularColor, dotLH);\n float G = G_GGX_SmithCorrelated(alpha, dotNL, dotNV);\n float D = D_GGX(alpha, dotNH);\n return F * (G * D);\n}\n\n// ref: https://www.unrealengine.com/blog/physically-based-shading-on-mobile - environmentBRDF for GGX on mobile\nvec3 BRDF_Specular_GGX_Environment(const in GeometricContext geometry, const in vec3 specularColor, const in float roughness) {\n float dotNV = saturate(dot(geometry.normal, geometry.viewDir));\n const vec4 c0 = vec4(-1, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n return specularColor * AB.x + AB.y;\n}\n\nvoid RE_Direct_Physical(const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n float dotNL = saturate(dot(geometry.normal, directLight.direction));\n vec3 irradiance = dotNL * directLight.color;\n irradiance *= PI; // punctual light\n\n reflectedLight.directSpecular += irradiance * BRDF_Specular_GGX(directLight, geometry, material.specularColor, material.specularRoughness);\n reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert(material.diffuseColor);\n}\n\nvoid RE_IndirectDiffuse_Physical(const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert(material.diffuseColor);\n}\n";
12
+ exports.light_frag_params = "\nuniform vec3 uLightDirection[dLightCount];\nuniform vec3 uLightColor[dLightCount];\nuniform vec3 uAmbientColor;\n\nstruct PhysicalMaterial {\n vec3 diffuseColor;\n float roughness;\n vec3 specularColor;\n float specularF90;\n};\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n\nstruct GeometricContext {\n vec3 position;\n vec3 normal;\n vec3 viewDir;\n};\n\nvec3 BRDF_Lambert(const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nvec3 F_Schlick(const in vec3 f0, const in float f90, const in float dotVH) {\n // Original approximation by Christophe Schlick '94\n // float fresnel = pow( 1.0 - dotVH, 5.0 );\n // Optimized variant (presented by Epic at SIGGRAPH '13)\n // https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf\n float fresnel = exp2((-5.55473 * dotVH - 6.98316) * dotVH);\n return f0 * (1.0 - fresnel) + (f90 * fresnel);\n}\n\n// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2\n// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf\nfloat V_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {\n float a2 = pow2(alpha);\n float gv = dotNL * sqrt(a2 + (1.0 - a2) * pow2(dotNV));\n float gl = dotNV * sqrt(a2 + (1.0 - a2) * pow2(dotNL));\n return 0.5 / max(gv + gl, EPSILON);\n}\n\n// Microfacet Models for Refraction through Rough Surfaces - equation (33)\n// http://graphicrants.blogspot.com/2013/08/specular-brdf-reference.html\n// alpha is \"roughness squared\" in Disney\u2019s reparameterization\nfloat D_GGX(const in float alpha, const in float dotNH) {\n float a2 = pow2(alpha);\n float denom = pow2(dotNH) * (a2 - 1.0) + 1.0; // avoid alpha = 0 with dotNH = 1\n return RECIPROCAL_PI * a2 / pow2(denom);\n}\n\n// GGX Distribution, Schlick Fresnel, GGX_SmithCorrelated Visibility\nvec3 BRDF_GGX(const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness) {\n float alpha = pow2(roughness); // UE4's roughness\n vec3 halfDir = normalize( lightDir + viewDir);\n float dotNL = saturate(dot(normal, lightDir));\n float dotNV = saturate(dot(normal, viewDir));\n float dotNH = saturate(dot(normal, halfDir));\n float dotVH = saturate(dot(viewDir, halfDir));\n vec3 F = F_Schlick(f0, f90, dotVH);\n float V = V_GGX_SmithCorrelated(alpha, dotNL, dotNV);\n float D = D_GGX(alpha, dotNH);\n return F * (V * D);\n}\n\n// Analytical approximation of the DFG LUT, one half of the\n// split-sum approximation used in indirect specular lighting.\n// via 'environmentBRDF' from \"Physically Based Shading on Mobile\"\n// https://www.unrealengine.com/blog/physically-based-shading-on-mobile\nvec2 DFGApprox(const in vec3 normal, const in vec3 viewDir, const in float roughness) {\n float dotNV = saturate(dot(normal, viewDir));\n const vec4 c0 = vec4(-1, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;\n vec2 fab = vec2(-1.04, 1.04) * a004 + r.zw;\n return fab;\n}\n\n// Fdez-Ag\u00FCera's \"Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting\"\n// Approximates multiscattering in order to preserve energy.\n// http://www.jcgt.org/published/0008/01/03/\nvoid computeMultiscattering(const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter) {\n vec2 fab = DFGApprox(normal, viewDir, roughness);\n vec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\n float Ess = fab.x + fab.y;\n float Ems = 1.0 - Ess;\n vec3 Favg = specularColor + (1.0 - specularColor) * 0.047619; // 1/21\n vec3 Fms = FssEss * Favg / (1.0 - Ems * Favg);\n singleScatter += FssEss;\n multiScatter += Fms * Ems;\n}\n\nvoid RE_Direct_Physical(const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n float dotNL = saturate(dot(geometry.normal, directLight.direction));\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directSpecular += irradiance * BRDF_GGX(directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness);\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert(material.diffuseColor);\n}\n\nvoid RE_IndirectDiffuse_Physical(const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert(material.diffuseColor);\n}\n\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n // Both indirect specular and indirect diffuse light accumulate here\n vec3 singleScattering = vec3(0.0);\n vec3 multiScattering = vec3(0.0);\n vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n computeMultiscattering(geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering);\n vec3 diffuse = material.diffuseColor * (1.0 - ( singleScattering + multiScattering));\n reflectedLight.indirectSpecular += radiance * singleScattering;\n reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n";
13
13
  //# sourceMappingURL=light-frag-params.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"light-frag-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/light-frag-params.glsl.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEU,QAAA,iBAAiB,GAAG,8vIAqGhC,CAAC"}
1
+ {"version":3,"file":"light-frag-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/light-frag-params.glsl.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEU,QAAA,iBAAiB,GAAG,40LA6HhC,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n gl_FragColor = vec4(vColor, 1.0) * (p - dist);\n}\n";
6
+ export declare const accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n float f = p - dist;\n gl_FragColor = vColor * f;\n gl_FragData[1] = vec4(f);\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.accumulate_frag = void 0;
9
- exports.accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n gl_FragColor = vec4(vColor, 1.0) * (p - dist);\n}\n";
9
+ exports.accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n float f = p - dist;\n gl_FragColor = vColor * f;\n gl_FragData[1] = vec4(f);\n}\n";
10
10
  //# sourceMappingURL=accumulate.frag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,geAqB9B,CAAC"}
1
+ {"version":3,"file":"accumulate.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,ogBAuB9B,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n}\n";
6
+ export declare const accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim);\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim);\n #endif\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.accumulate_vert = void 0;
9
- exports.accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n}\n";
9
+ exports.accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim);\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim);\n #endif\n}\n";
10
10
  //# sourceMappingURL=accumulate.vert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate.vert.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,wpCA4C9B,CAAC"}
1
+ {"version":3,"file":"accumulate.vert.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,gpCA4C9B,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n\n gl_FragColor.rgb = color.rgb / color.a;\n}\n";
6
+ export declare const normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform sampler2D tCount;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n float count = texture2D(tCount, coords).r;\n\n gl_FragColor = color / count;\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.normalize_frag = void 0;
9
- exports.normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n\n gl_FragColor.rgb = color.rgb / color.a;\n}\n";
9
+ exports.normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform sampler2D tCount;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n float count = texture2D(tCount, coords).r;\n\n gl_FragColor = color / count;\n}\n";
10
10
  //# sourceMappingURL=normalize.frag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/normalize.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,cAAc,GAAG,gRAa7B,CAAC"}
1
+ {"version":3,"file":"normalize.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/normalize.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,cAAc,GAAG,iVAe7B,CAAC"}