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
@@ -4,4 +4,4 @@
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author Michael Krone <michael.krone@uni-tuebingen.de>
6
6
  */
7
- export declare const directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
7
+ export declare const directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uMetalness;\nuniform float uRoughness;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #endif\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec4 overpaint = vec4(0.0);\n vec3 substance = vec3(0.0);\n float metalness = uMetalness;\n float roughness = uRoughness;\n\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n overpaint = readFromTexture(tOverpaint, vInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n overpaint = texture3dFrom1dTrilinear(tOverpaint, isoPos, uGridDim, uOverpaintTexDim, vInstance * float(uVertexCount));\n #endif\n\n color = mix(color, overpaint.rgb, overpaint.a);\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n substance = readFromTexture(tSubstance, vInstance * float(uGroupCount) + group, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_vertexInstance)\n substance = texture3dFrom1dTrilinear(tSubstance, isoPos, uGridDim, uSubstanceTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n metalness = mix(metalness, substance.r, substance.b);\n roughness = mix(roughness, substance.g, substance.b);\n #endif\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
@@ -7,5 +7,5 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.directVolume_frag = void 0;
10
- exports.directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
10
+ exports.directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uMetalness;\nuniform float uRoughness;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #endif\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec4 overpaint = vec4(0.0);\n vec3 substance = vec3(0.0);\n float metalness = uMetalness;\n float roughness = uRoughness;\n\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n overpaint = readFromTexture(tOverpaint, vInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n overpaint = texture3dFrom1dTrilinear(tOverpaint, isoPos, uGridDim, uOverpaintTexDim, vInstance * float(uVertexCount));\n #endif\n\n color = mix(color, overpaint.rgb, overpaint.a);\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n substance = readFromTexture(tSubstance, vInstance * float(uGroupCount) + group, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_vertexInstance)\n substance = texture3dFrom1dTrilinear(tSubstance, isoPos, uGridDim, uSubstanceTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n metalness = mix(metalness, substance.r, substance.b);\n roughness = mix(roughness, substance.g, substance.b);\n #endif\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
11
11
  //# sourceMappingURL=direct-volume.frag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"direct-volume.frag.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/direct-volume.frag.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,iBAAiB,GAAG,s5jBAyehC,CAAC"}
1
+ {"version":3,"file":"direct-volume.frag.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/direct-volume.frag.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,iBAAiB,GAAG,2qnBA4gBhC,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const mesh_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include common_frag_params\n#include color_frag_params\n#include light_frag_params\n#include normal_frag_params\n#include common_clip\n\nvoid main() {\n #include clip_pixel\n\n // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)\n #if defined(enabledStandardDerivatives)\n vec3 fdx = dFdx(vViewPosition);\n vec3 fdy = dFdy(vViewPosition);\n vec3 faceNormal = normalize(cross(fdx,fdy));\n bool frontFacing = dot(vNormal, faceNormal) > 0.0;\n #else\n bool frontFacing = dot(vNormal, vViewPosition) < 0.0;\n #endif\n\n #if defined(dFlipSided)\n interior = frontFacing;\n #else\n interior = !frontFacing;\n #endif\n\n float fragmentDepth = gl_FragCoord.z;\n #include assign_material_color\n\n #if defined(dRenderVariant_pick)\n #include check_picking_alpha\n gl_FragColor = material;\n #elif defined(dRenderVariant_depth)\n gl_FragColor = material;\n #elif defined(dRenderVariant_marking)\n gl_FragColor = material;\n #elif defined(dRenderVariant_color)\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded) && defined(enabledStandardDerivatives)\n vec3 normal = -faceNormal;\n #else\n vec3 normal = -normalize(vNormal);\n #ifdef dDoubleSided\n normal = normal * (float(frontFacing) * 2.0 - 1.0);\n #endif\n #endif\n #include apply_light_color\n #endif\n\n #include apply_interior_color\n #include apply_marker_color\n #include apply_fog\n #include wboit_write\n #endif\n}\n";
6
+ export declare const mesh_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include common_frag_params\n#include color_frag_params\n#include light_frag_params\n#include normal_frag_params\n#include common_clip\n\nvoid main() {\n #include clip_pixel\n\n // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)\n vec3 fdx = dFdx(vViewPosition);\n vec3 fdy = dFdy(vViewPosition);\n vec3 faceNormal = normalize(cross(fdx,fdy));\n bool frontFacing = dot(vNormal, faceNormal) > 0.0;\n\n #if defined(dFlipSided)\n interior = frontFacing;\n #else\n interior = !frontFacing;\n #endif\n\n float fragmentDepth = gl_FragCoord.z;\n #include assign_material_color\n\n #if defined(dRenderVariant_pick)\n #include check_picking_alpha\n gl_FragColor = material;\n #elif defined(dRenderVariant_depth)\n gl_FragColor = material;\n #elif defined(dRenderVariant_marking)\n gl_FragColor = material;\n #elif defined(dRenderVariant_color)\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n vec3 normal = -faceNormal;\n #else\n vec3 normal = -normalize(vNormal);\n #ifdef dDoubleSided\n normal = normal * (float(frontFacing) * 2.0 - 1.0);\n #endif\n #endif\n #include apply_light_color\n #endif\n\n #include apply_interior_color\n #include apply_marker_color\n #include apply_fog\n #include wboit_write\n #endif\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.mesh_frag = void 0;
9
- exports.mesh_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include common_frag_params\n#include color_frag_params\n#include light_frag_params\n#include normal_frag_params\n#include common_clip\n\nvoid main() {\n #include clip_pixel\n\n // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)\n #if defined(enabledStandardDerivatives)\n vec3 fdx = dFdx(vViewPosition);\n vec3 fdy = dFdy(vViewPosition);\n vec3 faceNormal = normalize(cross(fdx,fdy));\n bool frontFacing = dot(vNormal, faceNormal) > 0.0;\n #else\n bool frontFacing = dot(vNormal, vViewPosition) < 0.0;\n #endif\n\n #if defined(dFlipSided)\n interior = frontFacing;\n #else\n interior = !frontFacing;\n #endif\n\n float fragmentDepth = gl_FragCoord.z;\n #include assign_material_color\n\n #if defined(dRenderVariant_pick)\n #include check_picking_alpha\n gl_FragColor = material;\n #elif defined(dRenderVariant_depth)\n gl_FragColor = material;\n #elif defined(dRenderVariant_marking)\n gl_FragColor = material;\n #elif defined(dRenderVariant_color)\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded) && defined(enabledStandardDerivatives)\n vec3 normal = -faceNormal;\n #else\n vec3 normal = -normalize(vNormal);\n #ifdef dDoubleSided\n normal = normal * (float(frontFacing) * 2.0 - 1.0);\n #endif\n #endif\n #include apply_light_color\n #endif\n\n #include apply_interior_color\n #include apply_marker_color\n #include apply_fog\n #include wboit_write\n #endif\n}\n";
9
+ exports.mesh_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include common_frag_params\n#include color_frag_params\n#include light_frag_params\n#include normal_frag_params\n#include common_clip\n\nvoid main() {\n #include clip_pixel\n\n // Workaround for buggy gl_FrontFacing (e.g. on some integrated Intel GPUs)\n vec3 fdx = dFdx(vViewPosition);\n vec3 fdy = dFdy(vViewPosition);\n vec3 faceNormal = normalize(cross(fdx,fdy));\n bool frontFacing = dot(vNormal, faceNormal) > 0.0;\n\n #if defined(dFlipSided)\n interior = frontFacing;\n #else\n interior = !frontFacing;\n #endif\n\n float fragmentDepth = gl_FragCoord.z;\n #include assign_material_color\n\n #if defined(dRenderVariant_pick)\n #include check_picking_alpha\n gl_FragColor = material;\n #elif defined(dRenderVariant_depth)\n gl_FragColor = material;\n #elif defined(dRenderVariant_marking)\n gl_FragColor = material;\n #elif defined(dRenderVariant_color)\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n vec3 normal = -faceNormal;\n #else\n vec3 normal = -normalize(vNormal);\n #ifdef dDoubleSided\n normal = normal * (float(frontFacing) * 2.0 - 1.0);\n #endif\n #endif\n #include apply_light_color\n #endif\n\n #include apply_interior_color\n #include apply_marker_color\n #include apply_fog\n #include wboit_write\n #endif\n}\n";
10
10
  //# sourceMappingURL=mesh.frag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.frag.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/mesh.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,SAAS,GAAG,uwDA6DxB,CAAC"}
1
+ {"version":3,"file":"mesh.frag.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/mesh.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,SAAS,GAAG,6kDAyDxB,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const mesh_vert = "\nprecision highp float;\nprecision highp int;\nprecision highp sampler2D;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include common_clip\n\n#if defined(dColorType_grid)\n #include texture3d_from_2d_linear\n#endif\n\n#ifdef dGeoTexture\n uniform vec2 uGeoTexDim;\n uniform sampler2D tPosition;\n uniform sampler2D tGroup;\n uniform sampler2D tNormal;\n#else\n attribute vec3 aPosition;\n attribute float aGroup;\n attribute vec3 aNormal;\n#endif\nattribute mat4 aTransform;\nattribute float aInstance;\n\nvarying vec3 vNormal;\n\nvoid main(){\n #include assign_group\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_color_varying\n #include clip_instance\n\n #ifdef dGeoTexture\n vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;\n #else\n vec3 normal = aNormal;\n #endif\n mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));\n vec3 transformedNormal = normalize(normalMatrix * normalize(normal));\n #if defined(dFlipSided) && !defined(dDoubleSided) // TODO checking dDoubleSided should not be required, ASR\n transformedNormal = -transformedNormal;\n #endif\n vNormal = transformedNormal;\n}\n";
6
+ export declare const mesh_vert = "\nprecision highp float;\nprecision highp int;\nprecision highp sampler2D;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include common_clip\n#include texture3d_from_2d_linear\n\n#ifdef dGeoTexture\n uniform vec2 uGeoTexDim;\n uniform sampler2D tPosition;\n uniform sampler2D tGroup;\n uniform sampler2D tNormal;\n#else\n attribute vec3 aPosition;\n attribute float aGroup;\n attribute vec3 aNormal;\n#endif\nattribute mat4 aTransform;\nattribute float aInstance;\n\nvarying vec3 vNormal;\n\nvoid main(){\n #include assign_group\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_color_varying\n #include clip_instance\n\n #ifdef dGeoTexture\n vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;\n #else\n vec3 normal = aNormal;\n #endif\n mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));\n vec3 transformedNormal = normalize(normalMatrix * normalize(normal));\n #if defined(dFlipSided) && !defined(dDoubleSided) // TODO checking dDoubleSided should not be required, ASR\n transformedNormal = -transformedNormal;\n #endif\n vNormal = transformedNormal;\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.mesh_vert = void 0;
9
- exports.mesh_vert = "\nprecision highp float;\nprecision highp int;\nprecision highp sampler2D;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include common_clip\n\n#if defined(dColorType_grid)\n #include texture3d_from_2d_linear\n#endif\n\n#ifdef dGeoTexture\n uniform vec2 uGeoTexDim;\n uniform sampler2D tPosition;\n uniform sampler2D tGroup;\n uniform sampler2D tNormal;\n#else\n attribute vec3 aPosition;\n attribute float aGroup;\n attribute vec3 aNormal;\n#endif\nattribute mat4 aTransform;\nattribute float aInstance;\n\nvarying vec3 vNormal;\n\nvoid main(){\n #include assign_group\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_color_varying\n #include clip_instance\n\n #ifdef dGeoTexture\n vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;\n #else\n vec3 normal = aNormal;\n #endif\n mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));\n vec3 transformedNormal = normalize(normalMatrix * normalize(normal));\n #if defined(dFlipSided) && !defined(dDoubleSided) // TODO checking dDoubleSided should not be required, ASR\n transformedNormal = -transformedNormal;\n #endif\n vNormal = transformedNormal;\n}\n";
9
+ exports.mesh_vert = "\nprecision highp float;\nprecision highp int;\nprecision highp sampler2D;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include common_clip\n#include texture3d_from_2d_linear\n\n#ifdef dGeoTexture\n uniform vec2 uGeoTexDim;\n uniform sampler2D tPosition;\n uniform sampler2D tGroup;\n uniform sampler2D tNormal;\n#else\n attribute vec3 aPosition;\n attribute float aGroup;\n attribute vec3 aNormal;\n#endif\nattribute mat4 aTransform;\nattribute float aInstance;\n\nvarying vec3 vNormal;\n\nvoid main(){\n #include assign_group\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_color_varying\n #include clip_instance\n\n #ifdef dGeoTexture\n vec3 normal = readFromTexture(tNormal, VertexID, uGeoTexDim).xyz;\n #else\n vec3 normal = aNormal;\n #endif\n mat3 normalMatrix = transpose3(inverse3(mat3(modelView)));\n vec3 transformedNormal = normalize(normalMatrix * normalize(normal));\n #if defined(dFlipSided) && !defined(dDoubleSided) // TODO checking dDoubleSided should not be required, ASR\n transformedNormal = -transformedNormal;\n #endif\n vNormal = transformedNormal;\n}\n";
10
10
  //# sourceMappingURL=mesh.vert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.vert.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/mesh.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,SAAS,GAAG,qzCAkDxB,CAAC"}
1
+ {"version":3,"file":"mesh.vert.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/mesh.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,SAAS,GAAG,ywCA+CxB,CAAC"}
@@ -13,7 +13,6 @@ export declare type DefineValues = {
13
13
  };
14
14
  declare type ShaderExtensionsValue = 'required' | 'optional';
15
15
  export interface ShaderExtensions {
16
- readonly standardDerivatives?: ShaderExtensionsValue;
17
16
  readonly fragDepth?: ShaderExtensionsValue;
18
17
  readonly drawBuffers?: ShaderExtensionsValue;
19
18
  readonly shaderTextureLod?: ShaderExtensionsValue;
@@ -73,7 +73,8 @@ var ShaderChunks = {
73
73
  texture3d_from_2d_nearest: texture3d_from_2d_nearest_glsl_1.texture3d_from_2d_nearest,
74
74
  wboit_write: wboit_write_glsl_1.wboit_write
75
75
  };
76
- var reInclude = /^(?!\/\/)\s*#include\s+(\S+)/gmi;
76
+ var reInclude = /^(?!\/\/)\s*#include\s+(\S+)/gm;
77
+ var reUnrollLoop = /#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*\+\+i\s*\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;
77
78
  var reSingleLineComment = /[ \t]*\/\/.*\n/g;
78
79
  var reMultiLineComment = /[ \t]*\/\*[\s\S]*?\*\//g;
79
80
  var reMultipleLinebreaks = /\n{2,}/g;
@@ -90,6 +91,28 @@ function addIncludes(text) {
90
91
  .replace(reMultiLineComment, '\n')
91
92
  .replace(reMultipleLinebreaks, '\n');
92
93
  }
94
+ function unrollLoops(str) {
95
+ return str.replace(reUnrollLoop, loopReplacer);
96
+ }
97
+ function loopReplacer(match, start, end, snippet) {
98
+ var out = '';
99
+ for (var i = parseInt(start); i < parseInt(end); ++i) {
100
+ out += snippet
101
+ .replace(/\[\s*i\s*\]/g, "[".concat(i, "]"))
102
+ .replace(/UNROLLED_LOOP_INDEX/g, "".concat(i));
103
+ }
104
+ return out;
105
+ }
106
+ function replaceCounts(str, defines) {
107
+ if (defines.dLightCount)
108
+ str = str.replace(/dLightCount/g, "".concat(defines.dLightCount.ref.value));
109
+ if (defines.dClipObjectCount)
110
+ str = str.replace(/dClipObjectCount/g, "".concat(defines.dClipObjectCount.ref.value));
111
+ return str;
112
+ }
113
+ function preprocess(str, defines) {
114
+ return unrollLoops(replaceCounts(str, defines));
115
+ }
93
116
  function ShaderCode(name, vert, frag, extensions, outTypes) {
94
117
  if (extensions === void 0) { extensions = {}; }
95
118
  if (outTypes === void 0) { outTypes = {}; }
@@ -108,13 +131,13 @@ var cylinders_frag_1 = require("./shader/cylinders.frag");
108
131
  exports.CylindersShaderCode = ShaderCode('cylinders', cylinders_vert_1.cylinders_vert, cylinders_frag_1.cylinders_frag, { fragDepth: 'required', drawBuffers: 'optional' });
109
132
  var text_vert_1 = require("./shader/text.vert");
110
133
  var text_frag_1 = require("./shader/text.frag");
111
- exports.TextShaderCode = ShaderCode('text', text_vert_1.text_vert, text_frag_1.text_frag, { standardDerivatives: 'required', drawBuffers: 'optional' });
134
+ exports.TextShaderCode = ShaderCode('text', text_vert_1.text_vert, text_frag_1.text_frag, { drawBuffers: 'optional' });
112
135
  var lines_vert_1 = require("./shader/lines.vert");
113
136
  var lines_frag_1 = require("./shader/lines.frag");
114
137
  exports.LinesShaderCode = ShaderCode('lines', lines_vert_1.lines_vert, lines_frag_1.lines_frag, { drawBuffers: 'optional' });
115
138
  var mesh_vert_1 = require("./shader/mesh.vert");
116
139
  var mesh_frag_1 = require("./shader/mesh.frag");
117
- exports.MeshShaderCode = ShaderCode('mesh', mesh_vert_1.mesh_vert, mesh_frag_1.mesh_frag, { standardDerivatives: 'optional', drawBuffers: 'optional' });
140
+ exports.MeshShaderCode = ShaderCode('mesh', mesh_vert_1.mesh_vert, mesh_frag_1.mesh_frag, { drawBuffers: 'optional' });
118
141
  var direct_volume_vert_1 = require("./shader/direct-volume.vert");
119
142
  var direct_volume_frag_1 = require("./shader/direct-volume.frag");
120
143
  exports.DirectVolumeShaderCode = ShaderCode('direct-volume', direct_volume_vert_1.directVolume_vert, direct_volume_frag_1.directVolume_frag, { fragDepth: 'optional', drawBuffers: 'optional' });
@@ -147,11 +170,9 @@ function getDefinesCode(defines) {
147
170
  return lines.join('\n') + '\n';
148
171
  }
149
172
  function getGlsl100FragPrefix(extensions, shaderExtensions) {
150
- var prefix = [];
151
- if (shaderExtensions.standardDerivatives) {
152
- prefix.push('#extension GL_OES_standard_derivatives : enable');
153
- prefix.push('#define enabledStandardDerivatives');
154
- }
173
+ var prefix = [
174
+ '#extension GL_OES_standard_derivatives : enable'
175
+ ];
155
176
  if (shaderExtensions.fragDepth) {
156
177
  if (extensions.fragDepth) {
157
178
  prefix.push('#extension GL_EXT_frag_depth : enable');
@@ -192,9 +213,6 @@ function getGlsl300FragPrefix(gl, extensions, shaderExtensions, outTypes) {
192
213
  '#version 300 es',
193
214
  "layout(location = 0) out highp ".concat(outTypes[0] || 'vec4', " out_FragData0;")
194
215
  ];
195
- if (shaderExtensions.standardDerivatives) {
196
- prefix.push('#define enabledStandardDerivatives');
197
- }
198
216
  if (shaderExtensions.fragDepth) {
199
217
  prefix.push('#define enabledFragDepth');
200
218
  }
@@ -224,8 +242,8 @@ function addShaderDefines(gl, extensions, defines, shaders) {
224
242
  return {
225
243
  id: shaderCodeId(),
226
244
  name: shaders.name,
227
- vert: "".concat(vertPrefix).concat(header).concat(shaders.vert),
228
- frag: "".concat(fragPrefix).concat(header).concat(frag),
245
+ vert: "".concat(vertPrefix).concat(header).concat(preprocess(shaders.vert, defines)),
246
+ frag: "".concat(fragPrefix).concat(header).concat(preprocess(frag, defines)),
229
247
  extensions: shaders.extensions,
230
248
  outTypes: shaders.outTypes
231
249
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shader-code.js","sourceRoot":"","sources":["../../../src/mol-gl/shader-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader-code.js","sourceRoot":"","sources":["../../../src/mol-gl/shader-code.ts"],"names":[],"mappings":"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"}
@@ -18,10 +18,8 @@ function createExtensions(gl) {
18
18
  throw new Error('Could not find support for "element_index_uint"');
19
19
  }
20
20
  var standardDerivatives = (0, compat_1.getStandardDerivatives)(gl);
21
- if (debug_1.isDebugMode && standardDerivatives === null) {
22
- // - non-support handled downstream (flat shading option is ignored)
23
- // - can't be a required extension because it is not supported by `headless-gl`
24
- console.log('Could not find support for "standard_derivatives"');
21
+ if (standardDerivatives === null) {
22
+ throw new Error('Could not find support for "standard_derivatives"');
25
23
  }
26
24
  var textureFloat = (0, compat_1.getTextureFloat)(gl);
27
25
  if (debug_1.isDebugMode && textureFloat === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/extensions.ts"],"names":[],"mappings":"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"}
@@ -251,10 +251,7 @@ function createRenderItem(ctx, drawMode, shaderCode, schema, values, materialId,
251
251
  }
252
252
  }
253
253
  if (elementsBuffer && values.elements.ref.version !== versions.elements) {
254
- if (elementsBuffer.length >= values.elements.ref.value.length &&
255
- // whenever a VAO update will be triggered, also recreate elements
256
- // workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=1272238
257
- !(valueChanges.attributes || valueChanges.defines)) {
254
+ if (elementsBuffer.length >= values.elements.ref.value.length) {
258
255
  // console.log('elements array large enough to update', values.elements.ref.id, values.elements.ref.version);
259
256
  elementsBuffer.updateSubData(values.elements.ref.value, 0, elementsBuffer.length);
260
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-item.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/render-item.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,mCAAiF;AACjF,qCAA8D;AAC9D,qCAAqD;AAGrD,+CAAoI;AACpI,wDAAsD;AACtD,2CAA2C;AAE3C,6CAAuD;AACvD,8CAAmD;AAEnD,8CAAkD;AAClD,gDAAkD;AAClD,qCAA+C;AAE/C,IAAM,mBAAmB,GAAG,IAAA,sBAAS,GAAE,CAAC;AAIxC,SAAgB,WAAW,CAAC,GAAiB,EAAE,QAAkB;IACrD,IAAA,EAAE,GAAK,GAAG,GAAR,CAAS;IACnB,QAAQ,QAAQ,EAAE;QACd,KAAK,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QAChC,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QAC9B,KAAK,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;QACxC,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QACtC,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QACtC,KAAK,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC;QAChD,KAAK,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;KAC/C;AACL,CAAC;AAXD,kCAWC;AAYD,EAAE;AAEF,IAAM,qBAAqB,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAElL,IAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAA4B,CAAC;AAE7F,IAAM,oBAAoB,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAE/C,IAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAA2B,CAAC;AAE1F,SAAS,oBAAoB,CAAC,GAAiB,EAAE,OAAe,EAAE,YAA0B,EAAE,UAAsB,EAAE,MAAwB;IAC1I,YAAY,mDAAQ,YAAY,KAAE,cAAc,EAAE,oBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAE,CAAC;IAC9E,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;QACrC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAA,mBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACpF;IACD,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAOD,SAAS,kBAAkB;IACvB,OAAO;QACH,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAClB,CAAC;AACN,CAAC;AAGD,SAAS,iBAAiB,CAAC,YAA0B;IACjD,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;IAChC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AAClC,CAAC;AAKD,SAAgB,wBAAwB,CAAC,GAAiB,EAAE,QAAkB,EAAE,UAAsB,EAAE,MAAwB,EAAE,MAAwB,EAAE,UAAkB;IAC1K,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;AAC3G,CAAC;AAFD,4DAEC;AAGD,SAAgB,uBAAuB,CAAC,GAAiB,EAAE,QAAkB,EAAE,UAAsB,EAAE,MAAwB,EAAE,MAAwB,EAAE,UAAe;IAAf,2BAAA,EAAA,cAAc,CAAC;IACtK,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;AAC1G,CAAC;AAFD,0DAEC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAmB,GAAiB,EAAE,QAAkB,EAAE,UAAsB,EAAE,MAAwB,EAAE,MAAwB,EAAE,UAAkB,EAAE,cAAmB;IACzM,IAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACzB,IAAA,KAAK,GAAuB,GAAG,MAA1B,EAAE,KAAK,GAAgB,GAAG,MAAnB,EAAE,SAAS,GAAK,GAAG,UAAR,CAAS;IAClC,IAAA,KAAyC,GAAG,CAAC,UAAU,EAArD,eAAe,qBAAA,EAAE,iBAAiB,uBAAmB,CAAC;IAE9D,kCAAkC;IAClC,8CAA8C;IAC9C,oGAAoG;IACpG,sFAAsF;IACtF,uDAAuD;IACvD,uEAAuE;IACvE,IAAI,MAAM,CAAC,YAAY,EAAE;QACrB,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD,MAAc,CAAC,OAAO,GAAG,oBAAS,CAAC,MAAM,CAAC,IAAA,kBAAU,EAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrF,MAAc,CAAC,OAAO,GAAG,IAAA,sBAAa,EAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC5D;IAEK,IAAA,KAAgH,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,EAAzI,eAAe,qBAAA,EAAE,YAAY,kBAAA,EAAE,aAAa,mBAAA,EAAE,aAAa,mBAAA,EAAE,qBAAqB,2BAAA,EAAE,qBAAqB,2BAAgC,CAAC;IAElJ,IAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1E,IAAM,6BAA6B,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5E,IAAM,8BAA8B,GAAG,MAAM,CAAC,OAAO,CAAC,IAAA,4BAAkB,EAAC,qBAAqB,CAAC,CAAC,CAAC;IACjG,IAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAExD,IAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE9C,IAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;QAA3B,IAAM,CAAC,uBAAA;QACR,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KAChF;IAED,IAAM,QAAQ,GAAG,IAAA,wBAAc,EAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAM,gBAAgB,GAAG,IAAA,+BAAsB,EAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9E,IAAI,cAA0C,CAAC;IAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE;QAChC,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC3D;IAED,IAAM,YAAY,GAAwB,EAAE,CAAC;IAC7C,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;QAA3B,IAAM,CAAC,uBAAA;QACR,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACrH;IAED,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3C,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;IAEnD,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;IAC7B,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC;IACrC,KAAK,CAAC,kBAAkB,IAAI,aAAa,GAAG,SAAS,CAAC;IAEtD,IAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAE1B,OAAO;QACH,EAAE,IAAA;QACF,UAAU,YAAA;QACV,UAAU,EAAE,UAAC,OAAU,IAAK,OAAA,QAAQ,CAAC,OAAO,CAAC,EAAjB,CAAiB;QAE7C,MAAM,EAAE,UAAC,OAAU,EAAE,kBAA6B;YAC9C,IAAI,SAAS,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,GAAG,CAAC,aAAa;gBAAE,OAAO;YACxE,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,EAAE,KAAK,gBAAgB,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,EAAE;gBACrE,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACzC,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrD,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBAC5C,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBAC7D;qBAAM;oBACH,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACrC;aACJ;iBAAM;gBACH,IAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,gBAAgB,IAAI,OAAO,CAAC,EAAE,KAAK,gBAAgB;oBACxE,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,KAAK,KAAK,CAAC,iBAAiB,EAC7D;oBACE,yEAAyE;oBACzE,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,gBAAgB;wBAAE,OAAO,CAAC,GAAG,EAAE,CAAC;oBACzD,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;oBACjD,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC;oBACrC,gBAAgB,GAAG,OAAO,CAAC,EAAE,CAAC;iBACjC;gBACD,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACzC,OAAO,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;gBACpD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrD,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBAC5C,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBAC7D;qBAAM;oBACH,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACrC;gBACD,IAAI,WAAW,EAAE;oBACb,WAAW,CAAC,IAAI,EAAE,CAAC;oBACnB,qFAAqF;oBACrF,IAAI,cAAc;wBAAE,cAAc,CAAC,IAAI,EAAE,CAAC;iBAC7C;qBAAM;oBACH,IAAI,cAAc;wBAAE,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC1C,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;iBAC5C;gBACD,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;aAClC;YACD,IAAI,mBAAW,EAAE;gBACb,IAAI;oBACA,IAAA,oCAAsB,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAClC;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,KAAK,CAAC,8CAAuC,EAAE,gBAAM,CAAC,MAAG,CAAC,CAAC;iBACxE;aACJ;YACD,IAAI,cAAc,EAAE;gBAChB,eAAe,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;aAC5G;iBAAM;gBACH,eAAe,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;aAChF;YACD,IAAI,mBAAW,EAAE;gBACb,IAAI;oBACA,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtB;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,KAAK,CAAC,uCAAgC,EAAE,gBAAM,CAAC,MAAG,CAAC,CAAC;iBACjE;aACJ;QACL,CAAC;QACD,MAAM,EAAE;YACJ,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEhC,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;gBAClD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE;oBAC/C,oBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAA,kBAAU,EAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC/E;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBACnD,IAAA,KAAa,kBAAkB,CAAC,CAAC,CAAC,EAAjC,CAAC,QAAA,EAAE,KAAK,QAAyB,CAAC;gBACzC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACnC,4CAA4C;oBAC5C,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC5B,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;iBACnC;aACJ;YAED,IAAI,YAAY,CAAC,OAAO,EAAE;gBACtB,iEAAiE;gBACjE,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA3B,IAAM,CAAC,uBAAA;oBACR,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;iBAChF;aACJ;YAED,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE;gBACrD,4CAA4C;gBAC5C,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC1D,KAAK,CAAC,kBAAkB,IAAI,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;gBACnG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;gBACvC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;aACrD;YACD,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,aAAa,EAAE;gBAC7D,gDAAgD;gBAChD,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC;gBACtE,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;gBACnG,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC/C,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;aAC7D;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBACjD,IAAA,KAAc,gBAAgB,CAAC,CAAC,CAAC,EAAhC,CAAC,QAAA,EAAE,MAAM,QAAuB,CAAC;gBACxC,IAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;wBACzC,wGAAwG;wBACxG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;qBAC3D;yBAAM;wBACH,yHAAyH;wBACzH,MAAM,CAAC,OAAO,EAAE,CAAC;wBACX,IAAA,KAAwB,MAAM,CAAC,CAAC,CAAiC,EAA/D,QAAQ,cAAA,EAAE,OAAO,aAA8C,CAAC;wBACxE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACjF,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;qBAClC;oBACD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;iBACnC;aACJ;YAED,IAAI,cAAc,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,QAAQ,EAAE;gBACrE,IAAI,cAAc,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;oBACzD,kEAAkE;oBAClE,+EAA+E;oBAC/E,CAAC,CAAC,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,OAAO,CAAC,EACpD;oBACE,6GAA6G;oBAC7G,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;iBACrF;qBAAM;oBACH,4HAA4H;oBAC5H,cAAc,CAAC,OAAO,EAAE,CAAC;oBACzB,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/D,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;iBAChC;gBACD,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;aACnD;YAED,IAAI,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE;gBAC1E,kEAAkE;gBAClE,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA3B,IAAM,CAAC,uBAAA;oBACR,IAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,WAAW;wBAAE,WAAW,CAAC,OAAO,EAAE,CAAC;oBACvC,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBACrH;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBACzC,IAAA,KAAe,QAAQ,CAAC,CAAC,CAAC,EAAzB,CAAC,QAAA,EAAE,OAAO,QAAe,CAAC;gBACjC,IAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACnC,4DAA4D;oBAC5D,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;wBAC9B,8DAA8D;wBAC9D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAA+C,CAAC,CAAC;wBACxE,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;qBAChC;yBAAM;wBACH,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAgB,CAAC;qBAC/C;oBACD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;iBACnC;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,6BAA6B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAC9D,IAAA,KAAe,6BAA6B,CAAC,CAAC,CAAC,EAA9C,CAAC,QAAA,EAAE,OAAO,QAAoC,CAAC;gBACtD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACrC,gFAAgF;oBAChF,oBAAS,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAA,kBAAS,EAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrF,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;iBACrC;aACJ;YAED,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,OAAO,EAAE;YACL,IAAI,CAAC,SAAS,EAAE;gBACZ,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA3B,IAAM,CAAC,uBAAA;oBACR,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,WAAW;wBAAE,WAAW,CAAC,OAAO,EAAE,CAAC;iBAC1C;gBACD,QAAQ,CAAC,OAAO,CAAC,UAAC,EAAY;wBAAX,CAAC,QAAA,EAAE,OAAO,QAAA;oBACzB,iEAAiE;oBACjE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;wBAC9B,OAAO,CAAC,OAAO,EAAE,CAAC;qBACrB;gBACL,CAAC,CAAC,CAAC;gBACH,gBAAgB,CAAC,OAAO,CAAC,UAAC,EAAW;wBAAV,CAAC,QAAA,EAAE,MAAM,QAAA;oBAAM,OAAA,MAAM,CAAC,OAAO,EAAE;gBAAhB,CAAgB,CAAC,CAAC;gBAC5D,IAAI,cAAc;oBAAE,cAAc,CAAC,OAAO,EAAE,CAAC;gBAE7C,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;gBAC7B,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC;gBACrC,KAAK,CAAC,kBAAkB,IAAI,aAAa,GAAG,SAAS,CAAC;gBAEtD,SAAS,GAAG,IAAI,CAAC;aACpB;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAtQD,4CAsQC"}
1
+ {"version":3,"file":"render-item.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/render-item.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,mCAAiF;AACjF,qCAA8D;AAC9D,qCAAqD;AAGrD,+CAAoI;AACpI,wDAAsD;AACtD,2CAA2C;AAE3C,6CAAuD;AACvD,8CAAmD;AAEnD,8CAAkD;AAClD,gDAAkD;AAClD,qCAA+C;AAE/C,IAAM,mBAAmB,GAAG,IAAA,sBAAS,GAAE,CAAC;AAIxC,SAAgB,WAAW,CAAC,GAAiB,EAAE,QAAkB;IACrD,IAAA,EAAE,GAAK,GAAG,GAAR,CAAS;IACnB,QAAQ,QAAQ,EAAE;QACd,KAAK,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QAChC,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QAC9B,KAAK,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;QACxC,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QACtC,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QACtC,KAAK,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC;QAChD,KAAK,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;KAC/C;AACL,CAAC;AAXD,kCAWC;AAYD,EAAE;AAEF,IAAM,qBAAqB,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAElL,IAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAA4B,CAAC;AAE7F,IAAM,oBAAoB,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAE/C,IAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAA2B,CAAC;AAE1F,SAAS,oBAAoB,CAAC,GAAiB,EAAE,OAAe,EAAE,YAA0B,EAAE,UAAsB,EAAE,MAAwB;IAC1I,YAAY,mDAAQ,YAAY,KAAE,cAAc,EAAE,oBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAE,CAAC;IAC9E,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;QACrC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAA,mBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACpF;IACD,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAOD,SAAS,kBAAkB;IACvB,OAAO;QACH,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAClB,CAAC;AACN,CAAC;AAGD,SAAS,iBAAiB,CAAC,YAA0B;IACjD,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;IAChC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;AAClC,CAAC;AAKD,SAAgB,wBAAwB,CAAC,GAAiB,EAAE,QAAkB,EAAE,UAAsB,EAAE,MAAwB,EAAE,MAAwB,EAAE,UAAkB;IAC1K,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;AAC3G,CAAC;AAFD,4DAEC;AAGD,SAAgB,uBAAuB,CAAC,GAAiB,EAAE,QAAkB,EAAE,UAAsB,EAAE,MAAwB,EAAE,MAAwB,EAAE,UAAe;IAAf,2BAAA,EAAA,cAAc,CAAC;IACtK,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;AAC1G,CAAC;AAFD,0DAEC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAmB,GAAiB,EAAE,QAAkB,EAAE,UAAsB,EAAE,MAAwB,EAAE,MAAwB,EAAE,UAAkB,EAAE,cAAmB;IACzM,IAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACzB,IAAA,KAAK,GAAuB,GAAG,MAA1B,EAAE,KAAK,GAAgB,GAAG,MAAnB,EAAE,SAAS,GAAK,GAAG,UAAR,CAAS;IAClC,IAAA,KAAyC,GAAG,CAAC,UAAU,EAArD,eAAe,qBAAA,EAAE,iBAAiB,uBAAmB,CAAC;IAE9D,kCAAkC;IAClC,8CAA8C;IAC9C,oGAAoG;IACpG,sFAAsF;IACtF,uDAAuD;IACvD,uEAAuE;IACvE,IAAI,MAAM,CAAC,YAAY,EAAE;QACrB,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD,MAAc,CAAC,OAAO,GAAG,oBAAS,CAAC,MAAM,CAAC,IAAA,kBAAU,EAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrF,MAAc,CAAC,OAAO,GAAG,IAAA,sBAAa,EAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC5D;IAEK,IAAA,KAAgH,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,EAAzI,eAAe,qBAAA,EAAE,YAAY,kBAAA,EAAE,aAAa,mBAAA,EAAE,aAAa,mBAAA,EAAE,qBAAqB,2BAAA,EAAE,qBAAqB,2BAAgC,CAAC;IAElJ,IAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1E,IAAM,6BAA6B,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5E,IAAM,8BAA8B,GAAG,MAAM,CAAC,OAAO,CAAC,IAAA,4BAAkB,EAAC,qBAAqB,CAAC,CAAC,CAAC;IACjG,IAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAExD,IAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE9C,IAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;QAA3B,IAAM,CAAC,uBAAA;QACR,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KAChF;IAED,IAAM,QAAQ,GAAG,IAAA,wBAAc,EAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAM,gBAAgB,GAAG,IAAA,+BAAsB,EAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9E,IAAI,cAA0C,CAAC;IAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE;QAChC,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC3D;IAED,IAAM,YAAY,GAAwB,EAAE,CAAC;IAC7C,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;QAA3B,IAAM,CAAC,uBAAA;QACR,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACrH;IAED,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3C,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;IAEnD,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;IAC7B,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC;IACrC,KAAK,CAAC,kBAAkB,IAAI,aAAa,GAAG,SAAS,CAAC;IAEtD,IAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAE1B,OAAO;QACH,EAAE,IAAA;QACF,UAAU,YAAA;QACV,UAAU,EAAE,UAAC,OAAU,IAAK,OAAA,QAAQ,CAAC,OAAO,CAAC,EAAjB,CAAiB;QAE7C,MAAM,EAAE,UAAC,OAAU,EAAE,kBAA6B;YAC9C,IAAI,SAAS,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,GAAG,CAAC,aAAa;gBAAE,OAAO;YACxE,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,EAAE,KAAK,gBAAgB,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,EAAE;gBACrE,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACzC,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrD,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBAC5C,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBAC7D;qBAAM;oBACH,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACrC;aACJ;iBAAM;gBACH,IAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,gBAAgB,IAAI,OAAO,CAAC,EAAE,KAAK,gBAAgB;oBACxE,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,KAAK,KAAK,CAAC,iBAAiB,EAC7D;oBACE,yEAAyE;oBACzE,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,gBAAgB;wBAAE,OAAO,CAAC,GAAG,EAAE,CAAC;oBACzD,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;oBACjD,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC;oBACrC,gBAAgB,GAAG,OAAO,CAAC,EAAE,CAAC;iBACjC;gBACD,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACzC,OAAO,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;gBACpD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrD,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBAC5C,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBAC7D;qBAAM;oBACH,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACrC;gBACD,IAAI,WAAW,EAAE;oBACb,WAAW,CAAC,IAAI,EAAE,CAAC;oBACnB,qFAAqF;oBACrF,IAAI,cAAc;wBAAE,cAAc,CAAC,IAAI,EAAE,CAAC;iBAC7C;qBAAM;oBACH,IAAI,cAAc;wBAAE,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC1C,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;iBAC5C;gBACD,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;aAClC;YACD,IAAI,mBAAW,EAAE;gBACb,IAAI;oBACA,IAAA,oCAAsB,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAClC;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,KAAK,CAAC,8CAAuC,EAAE,gBAAM,CAAC,MAAG,CAAC,CAAC;iBACxE;aACJ;YACD,IAAI,cAAc,EAAE;gBAChB,eAAe,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;aAC5G;iBAAM;gBACH,eAAe,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;aAChF;YACD,IAAI,mBAAW,EAAE;gBACb,IAAI;oBACA,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACtB;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,KAAK,CAAC,uCAAgC,EAAE,gBAAM,CAAC,MAAG,CAAC,CAAC;iBACjE;aACJ;QACL,CAAC;QACD,MAAM,EAAE;YACJ,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEhC,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,IAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;gBAClD,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE;oBAC/C,oBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAA,kBAAU,EAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC/E;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBACnD,IAAA,KAAa,kBAAkB,CAAC,CAAC,CAAC,EAAjC,CAAC,QAAA,EAAE,KAAK,QAAyB,CAAC;gBACzC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACnC,4CAA4C;oBAC5C,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC5B,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;iBACnC;aACJ;YAED,IAAI,YAAY,CAAC,OAAO,EAAE;gBACtB,iEAAiE;gBACjE,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA3B,IAAM,CAAC,uBAAA;oBACR,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;iBAChF;aACJ;YAED,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE;gBACrD,4CAA4C;gBAC5C,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC1D,KAAK,CAAC,kBAAkB,IAAI,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;gBACnG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;gBACvC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;aACrD;YACD,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,aAAa,EAAE;gBAC7D,gDAAgD;gBAChD,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC;gBACtE,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;gBACnG,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC/C,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;aAC7D;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBACjD,IAAA,KAAc,gBAAgB,CAAC,CAAC,CAAC,EAAhC,CAAC,QAAA,EAAE,MAAM,QAAuB,CAAC;gBACxC,IAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;wBACzC,wGAAwG;wBACxG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;qBAC3D;yBAAM;wBACH,yHAAyH;wBACzH,MAAM,CAAC,OAAO,EAAE,CAAC;wBACX,IAAA,KAAwB,MAAM,CAAC,CAAC,CAAiC,EAA/D,QAAQ,cAAA,EAAE,OAAO,aAA8C,CAAC;wBACxE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACjF,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;qBAClC;oBACD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;iBACnC;aACJ;YAED,IAAI,cAAc,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,QAAQ,EAAE;gBACrE,IAAI,cAAc,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC3D,6GAA6G;oBAC7G,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;iBACrF;qBAAM;oBACH,4HAA4H;oBAC5H,cAAc,CAAC,OAAO,EAAE,CAAC;oBACzB,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/D,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;iBAChC;gBACD,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;aACnD;YAED,IAAI,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE;gBAC1E,kEAAkE;gBAClE,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA3B,IAAM,CAAC,uBAAA;oBACR,IAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,WAAW;wBAAE,WAAW,CAAC,OAAO,EAAE,CAAC;oBACvC,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBACrH;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBACzC,IAAA,KAAe,QAAQ,CAAC,CAAC,CAAC,EAAzB,CAAC,QAAA,EAAE,OAAO,QAAe,CAAC;gBACjC,IAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACnC,4DAA4D;oBAC5D,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;wBAC9B,8DAA8D;wBAC9D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAA+C,CAAC,CAAC;wBACxE,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;qBAChC;yBAAM;wBACH,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAgB,CAAC;qBAC/C;oBACD,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;iBACnC;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,6BAA6B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAC9D,IAAA,KAAe,6BAA6B,CAAC,CAAC,CAAC,EAA9C,CAAC,QAAA,EAAE,OAAO,QAAoC,CAAC;gBACtD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACrC,gFAAgF;oBAChF,oBAAS,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAA,kBAAS,EAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrF,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;iBACrC;aACJ;YAED,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,OAAO,EAAE;YACL,IAAI,CAAC,SAAS,EAAE;gBACZ,KAAgB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA3B,IAAM,CAAC,uBAAA;oBACR,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,WAAW;wBAAE,WAAW,CAAC,OAAO,EAAE,CAAC;iBAC1C;gBACD,QAAQ,CAAC,OAAO,CAAC,UAAC,EAAY;wBAAX,CAAC,QAAA,EAAE,OAAO,QAAA;oBACzB,iEAAiE;oBACjE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;wBAC9B,OAAO,CAAC,OAAO,EAAE,CAAC;qBACrB;gBACL,CAAC,CAAC,CAAC;gBACH,gBAAgB,CAAC,OAAO,CAAC,UAAC,EAAW;wBAAV,CAAC,QAAA,EAAE,MAAM,QAAA;oBAAM,OAAA,MAAM,CAAC,OAAO,EAAE;gBAAhB,CAAgB,CAAC,CAAC;gBAC5D,IAAI,cAAc;oBAAE,cAAc,CAAC,OAAO,EAAE,CAAC;gBAE7C,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;gBAC7B,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC;gBACrC,KAAK,CAAC,kBAAkB,IAAI,aAAa,GAAG,SAAS,CAAC;gBAEtD,SAAS,GAAG,IAAI,CAAC;aACpB;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAlQD,4CAkQC"}
@@ -76,7 +76,7 @@ function createResources(gl, state, stats, extensions) {
76
76
  return wrap('texture', (0, texture_1.createTexture)(gl, extensions, kind, format, type, filter));
77
77
  },
78
78
  vertexArray: function (program, attributeBuffers, elementsBuffer) {
79
- return wrap('vertexArray', (0, vertex_array_1.createVertexArray)(extensions, program, attributeBuffers, elementsBuffer));
79
+ return wrap('vertexArray', (0, vertex_array_1.createVertexArray)(gl, extensions, program, attributeBuffers, elementsBuffer));
80
80
  },
81
81
  getByteCounts: function () {
82
82
  var texture = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/resources.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-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
  import { Program } from './program';
7
7
  import { ElementsBuffer, AttributeBuffers } from './buffer';
8
8
  import { WebGLExtensions } from './extensions';
9
+ import { GLRenderingContext } from './compat';
9
10
  export interface VertexArray {
10
11
  readonly id: number;
11
12
  bind: () => void;
@@ -13,4 +14,4 @@ export interface VertexArray {
13
14
  reset: () => void;
14
15
  destroy: () => void;
15
16
  }
16
- export declare function createVertexArray(extensions: WebGLExtensions, program: Program, attributeBuffers: AttributeBuffers, elementsBuffer?: ElementsBuffer): VertexArray;
17
+ export declare function createVertexArray(gl: GLRenderingContext, extensions: WebGLExtensions, program: Program, attributeBuffers: AttributeBuffers, elementsBuffer?: ElementsBuffer): VertexArray;