molstar 2.3.9 → 2.4.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 (550) hide show
  1. package/build/viewer/molstar.js +1 -1
  2. package/lib/cli/cifschema/util/cif-dic.js +1 -0
  3. package/lib/cli/cifschema/util/cif-dic.js.map +1 -1
  4. package/lib/commonjs/apps/viewer/index.d.ts +2 -2
  5. package/lib/commonjs/cli/cifschema/util/cif-dic.js +1 -0
  6. package/lib/commonjs/cli/cifschema/util/cif-dic.js.map +1 -1
  7. package/lib/commonjs/extensions/alpha-orbitals/transforms.d.ts +1 -1
  8. package/lib/commonjs/extensions/cellpack/model.d.ts +1 -1
  9. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -3
  10. package/lib/commonjs/extensions/geo-export/controls.js +1 -1
  11. package/lib/commonjs/extensions/geo-export/controls.js.map +1 -1
  12. package/lib/commonjs/extensions/geo-export/glb-exporter.d.ts +1 -0
  13. package/lib/commonjs/extensions/geo-export/glb-exporter.js +27 -17
  14. package/lib/commonjs/extensions/geo-export/glb-exporter.js.map +1 -1
  15. package/lib/commonjs/extensions/geo-export/mesh-exporter.d.ts +31 -2
  16. package/lib/commonjs/extensions/geo-export/mesh-exporter.js +87 -15
  17. package/lib/commonjs/extensions/geo-export/mesh-exporter.js.map +1 -1
  18. package/lib/commonjs/extensions/geo-export/obj-exporter.d.ts +1 -0
  19. package/lib/commonjs/extensions/geo-export/obj-exporter.js +24 -15
  20. package/lib/commonjs/extensions/geo-export/obj-exporter.js.map +1 -1
  21. package/lib/commonjs/extensions/geo-export/ui.js +24 -20
  22. package/lib/commonjs/extensions/geo-export/ui.js.map +1 -1
  23. package/lib/commonjs/extensions/geo-export/usdz-exporter.d.ts +1 -0
  24. package/lib/commonjs/extensions/geo-export/usdz-exporter.js +26 -16
  25. package/lib/commonjs/extensions/geo-export/usdz-exporter.js.map +1 -1
  26. package/lib/commonjs/extensions/mp4-export/controls.js +1 -1
  27. package/lib/commonjs/extensions/mp4-export/controls.js.map +1 -1
  28. package/lib/commonjs/extensions/mp4-export/ui.js +7 -6
  29. package/lib/commonjs/extensions/mp4-export/ui.js.map +1 -1
  30. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +2 -2
  31. package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.d.ts +12 -12
  32. package/lib/commonjs/extensions/rcsb/graphql/types.d.ts +22 -21
  33. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +5 -5
  34. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +4 -4
  35. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +2 -2
  36. package/lib/commonjs/mol-canvas3d/passes/draw.js +3 -11
  37. package/lib/commonjs/mol-canvas3d/passes/draw.js.map +1 -1
  38. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +2 -2
  39. package/lib/commonjs/mol-data/int/impl/sorted-array.d.ts +1 -1
  40. package/lib/commonjs/mol-geo/geometry/base.d.ts +13 -1
  41. package/lib/commonjs/mol-geo/geometry/base.js +37 -2
  42. package/lib/commonjs/mol-geo/geometry/base.js.map +1 -1
  43. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +2 -2
  44. package/lib/commonjs/mol-geo/geometry/image/image.d.ts +2 -2
  45. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.d.ts +9 -2
  46. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js +154 -35
  47. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js.map +1 -1
  48. package/lib/commonjs/mol-geo/geometry/overpaint-data.d.ts +7 -2
  49. package/lib/commonjs/mol-geo/geometry/overpaint-data.js +10 -1
  50. package/lib/commonjs/mol-geo/geometry/overpaint-data.js.map +1 -1
  51. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +0 -1
  52. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +7 -3
  53. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +162 -27
  54. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js.map +1 -1
  55. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +3 -1
  56. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -1
  57. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js.map +1 -1
  58. package/lib/commonjs/mol-geo/geometry/transparency-data.d.ts +7 -2
  59. package/lib/commonjs/mol-geo/geometry/transparency-data.js +10 -1
  60. package/lib/commonjs/mol-geo/geometry/transparency-data.js.map +1 -1
  61. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +3 -3
  62. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js.map +1 -1
  63. package/lib/commonjs/mol-gl/compute/util.d.ts +25 -6
  64. package/lib/commonjs/mol-gl/compute/util.js +76 -21
  65. package/lib/commonjs/mol-gl/compute/util.js.map +1 -1
  66. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +8 -0
  67. package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +8 -0
  68. package/lib/commonjs/mol-gl/renderable/image.d.ts +8 -0
  69. package/lib/commonjs/mol-gl/renderable/lines.d.ts +8 -0
  70. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +8 -0
  71. package/lib/commonjs/mol-gl/renderable/points.d.ts +8 -0
  72. package/lib/commonjs/mol-gl/renderable/schema.d.ts +16 -0
  73. package/lib/commonjs/mol-gl/renderable/schema.js +8 -0
  74. package/lib/commonjs/mol-gl/renderable/schema.js.map +1 -1
  75. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +8 -0
  76. package/lib/commonjs/mol-gl/renderable/text.d.ts +8 -0
  77. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +22 -13
  78. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +1 -1
  79. package/lib/commonjs/mol-gl/renderable/texture-mesh.js.map +1 -1
  80. package/lib/commonjs/mol-gl/renderer.d.ts +2 -2
  81. package/lib/commonjs/mol-gl/renderer.js +3 -0
  82. package/lib/commonjs/mol-gl/renderer.js.map +1 -1
  83. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  84. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  85. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js.map +1 -1
  86. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  87. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  88. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js.map +1 -1
  89. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  90. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  91. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js.map +1 -1
  92. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.d.ts +1 -1
  93. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +1 -1
  94. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js.map +1 -1
  95. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.d.ts +1 -1
  96. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +1 -1
  97. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js.map +1 -1
  98. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.d.ts +1 -1
  99. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js +1 -1
  100. package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js.map +1 -1
  101. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  102. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  103. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js.map +1 -1
  104. package/lib/commonjs/mol-gl/shader/mesh.vert.d.ts +1 -1
  105. package/lib/commonjs/mol-gl/shader/mesh.vert.js +1 -1
  106. package/lib/commonjs/mol-gl/shader/mesh.vert.js.map +1 -1
  107. package/lib/commonjs/mol-gl/webgl/extensions.js +1 -5
  108. package/lib/commonjs/mol-gl/webgl/extensions.js.map +1 -1
  109. package/lib/commonjs/mol-gl/webgl/resources.js +1 -1
  110. package/lib/commonjs/mol-gl/webgl/resources.js.map +1 -1
  111. package/lib/commonjs/mol-gl/webgl/vertex-array.d.ts +3 -2
  112. package/lib/commonjs/mol-gl/webgl/vertex-array.js +9 -2
  113. package/lib/commonjs/mol-gl/webgl/vertex-array.js.map +1 -1
  114. package/lib/commonjs/mol-io/common/typed-array.d.ts +1 -1
  115. package/lib/commonjs/mol-io/reader/_spec/sdf.spec.js +51 -0
  116. package/lib/commonjs/mol-io/reader/_spec/sdf.spec.js.map +1 -1
  117. package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +2 -2
  118. package/lib/commonjs/mol-io/reader/cif/schema/bird.js +1 -1
  119. package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  120. package/lib/commonjs/mol-io/reader/cif/schema/ccd.js +1 -1
  121. package/lib/commonjs/mol-io/reader/cif/schema/cif-core.d.ts +8 -5
  122. package/lib/commonjs/mol-io/reader/cif/schema/cif-core.js +15 -5
  123. package/lib/commonjs/mol-io/reader/cif/schema/cif-core.js.map +1 -1
  124. package/lib/commonjs/mol-io/reader/cif/schema/density-server.d.ts +2 -2
  125. package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.d.ts +1 -1
  126. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +14 -14
  127. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +1 -1
  128. package/lib/commonjs/mol-io/reader/ply/schema.d.ts +1 -1
  129. package/lib/commonjs/mol-io/reader/sdf/parser-v3-util.d.ts +9 -0
  130. package/lib/commonjs/mol-io/reader/sdf/parser-v3-util.js +91 -0
  131. package/lib/commonjs/mol-io/reader/sdf/parser-v3-util.js.map +1 -0
  132. package/lib/commonjs/mol-io/reader/sdf/parser.d.ts +1 -1
  133. package/lib/commonjs/mol-io/reader/sdf/parser.js +12 -4
  134. package/lib/commonjs/mol-io/reader/sdf/parser.js.map +1 -1
  135. package/lib/commonjs/mol-model/loci.d.ts +30 -30
  136. package/lib/commonjs/mol-model/shape/shape.d.ts +1 -1
  137. package/lib/commonjs/mol-model/structure/structure/properties.d.ts +2 -2
  138. package/lib/commonjs/mol-model/structure/structure/properties.js +5 -5
  139. package/lib/commonjs/mol-model/structure/structure/properties.js.map +1 -1
  140. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +8 -8
  141. package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +5 -5
  142. package/lib/commonjs/mol-model-formats/structure/common/component.d.ts +5 -5
  143. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -1
  144. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -1
  145. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +3 -3
  146. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -4
  147. package/lib/commonjs/mol-model-props/sequence/themes/best-database-mapping.d.ts +12 -12
  148. package/lib/commonjs/mol-plugin/behavior/behavior.d.ts +1 -1
  149. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  150. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +4 -4
  151. package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +4 -4
  152. package/lib/commonjs/mol-plugin/commands.d.ts +2 -2
  153. package/lib/commonjs/mol-plugin/config.d.ts +1 -1
  154. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +6 -6
  155. package/lib/commonjs/mol-plugin-state/actions/file.js +4 -2
  156. package/lib/commonjs/mol-plugin-state/actions/file.js.map +1 -1
  157. package/lib/commonjs/mol-plugin-state/actions/structure.d.ts +1 -1
  158. package/lib/commonjs/mol-plugin-state/animation/built-in/model-index.d.ts +3 -3
  159. package/lib/commonjs/mol-plugin-state/animation/helpers.d.ts +5 -5
  160. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +4 -4
  161. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +4 -4
  162. package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +10 -10
  163. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +8 -8
  164. package/lib/commonjs/mol-plugin-state/formats/volume.js +1 -0
  165. package/lib/commonjs/mol-plugin-state/formats/volume.js.map +1 -1
  166. package/lib/commonjs/mol-plugin-state/helpers/root-structure.d.ts +4 -4
  167. package/lib/commonjs/mol-plugin-state/helpers/structure-component.d.ts +2 -2
  168. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  169. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +14 -3
  170. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js.map +1 -1
  171. package/lib/commonjs/mol-plugin-state/manager/interactivity.d.ts +1 -1
  172. package/lib/commonjs/mol-plugin-state/manager/snapshots.js +2 -1
  173. package/lib/commonjs/mol-plugin-state/manager/snapshots.js.map +1 -1
  174. package/lib/commonjs/mol-plugin-state/manager/structure/selection.d.ts +2 -2
  175. package/lib/commonjs/mol-plugin-state/transforms/data.d.ts +1 -1
  176. package/lib/commonjs/mol-plugin-state/transforms/model.d.ts +6 -6
  177. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +8 -8
  178. package/lib/commonjs/mol-plugin-state/transforms/representation.js +40 -14
  179. package/lib/commonjs/mol-plugin-state/transforms/representation.js.map +1 -1
  180. package/lib/commonjs/mol-plugin-ui/sequence/polymer.d.ts +1 -1
  181. package/lib/commonjs/mol-plugin-ui/state/common.js +10 -9
  182. package/lib/commonjs/mol-plugin-ui/state/common.js.map +1 -1
  183. package/lib/commonjs/mol-plugin-ui/state/snapshots.js +10 -8
  184. package/lib/commonjs/mol-plugin-ui/state/snapshots.js.map +1 -1
  185. package/lib/commonjs/mol-plugin-ui/structure/selection.js +2 -1
  186. package/lib/commonjs/mol-plugin-ui/structure/selection.js.map +1 -1
  187. package/lib/commonjs/mol-repr/representation.d.ts +9 -0
  188. package/lib/commonjs/mol-repr/representation.js +43 -4
  189. package/lib/commonjs/mol-repr/representation.js.map +1 -1
  190. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -1
  191. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +2 -2
  192. package/lib/commonjs/mol-repr/shape/representation.js +5 -0
  193. package/lib/commonjs/mol-repr/shape/representation.js.map +1 -1
  194. package/lib/commonjs/mol-repr/structure/complex-representation.js +11 -4
  195. package/lib/commonjs/mol-repr/structure/complex-representation.js.map +1 -1
  196. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +7 -7
  197. package/lib/commonjs/mol-repr/structure/complex-visual.js +11 -5
  198. package/lib/commonjs/mol-repr/structure/complex-visual.js.map +1 -1
  199. package/lib/commonjs/mol-repr/structure/params.d.ts +3 -3
  200. package/lib/commonjs/mol-repr/structure/registry.d.ts +26 -26
  201. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -3
  202. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +9 -9
  203. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +3 -3
  204. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +6 -6
  205. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +9 -9
  206. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +9 -9
  207. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +6 -6
  208. package/lib/commonjs/mol-repr/structure/representation/label.d.ts +3 -3
  209. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +9 -9
  210. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +9 -9
  211. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -3
  212. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +3 -3
  213. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -3
  214. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -3
  215. package/lib/commonjs/mol-repr/structure/units-representation.js +15 -15
  216. package/lib/commonjs/mol-repr/structure/units-representation.js.map +1 -1
  217. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +9 -9
  218. package/lib/commonjs/mol-repr/structure/units-visual.js +11 -5
  219. package/lib/commonjs/mol-repr/structure/units-visual.js.map +1 -1
  220. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +6 -6
  221. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +3 -3
  222. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +6 -6
  223. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +3 -3
  224. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -1
  225. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -1
  226. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -1
  227. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +1 -1
  228. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +1 -1
  229. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +2 -2
  230. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -1
  231. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +4 -4
  232. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +12 -12
  233. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +14 -12
  234. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js.map +1 -1
  235. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -1
  236. package/lib/commonjs/mol-repr/structure/visual/label-text.d.ts +1 -1
  237. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +3 -3
  238. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +5 -4
  239. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js.map +1 -1
  240. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -1
  241. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -1
  242. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -1
  243. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -1
  244. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -2
  245. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -2
  246. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -1
  247. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -1
  248. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +4 -4
  249. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -1
  250. package/lib/commonjs/mol-repr/structure/visual/util/bond.d.ts +16 -16
  251. package/lib/commonjs/mol-repr/structure/visual/util/common.d.ts +1 -1
  252. package/lib/commonjs/mol-repr/structure/visual/util/element.d.ts +4 -4
  253. package/lib/commonjs/mol-repr/structure/visual/util/polymer.d.ts +2 -2
  254. package/lib/commonjs/mol-repr/visual.d.ts +21 -13
  255. package/lib/commonjs/mol-repr/visual.js +53 -6
  256. package/lib/commonjs/mol-repr/visual.js.map +1 -1
  257. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +5 -5
  258. package/lib/commonjs/mol-repr/volume/registry.d.ts +3 -3
  259. package/lib/commonjs/mol-repr/volume/representation.d.ts +1 -1
  260. package/lib/commonjs/mol-repr/volume/representation.js +12 -3
  261. package/lib/commonjs/mol-repr/volume/representation.js.map +1 -1
  262. package/lib/commonjs/mol-repr/volume/slice.d.ts +6 -6
  263. package/lib/commonjs/mol-state/state.js +7 -5
  264. package/lib/commonjs/mol-state/state.js.map +1 -1
  265. package/lib/commonjs/mol-task/execution/observable.js +1 -5
  266. package/lib/commonjs/mol-task/execution/observable.js.map +1 -1
  267. package/lib/commonjs/mol-theme/color/atom-id.d.ts +12 -12
  268. package/lib/commonjs/mol-theme/color/chain-id.d.ts +12 -12
  269. package/lib/commonjs/mol-theme/color/element-index.d.ts +12 -12
  270. package/lib/commonjs/mol-theme/color/element-symbol.d.ts +12 -12
  271. package/lib/commonjs/mol-theme/color/entity-id.d.ts +12 -12
  272. package/lib/commonjs/mol-theme/color/entity-source.d.ts +12 -12
  273. package/lib/commonjs/mol-theme/color/illustrative.d.ts +12 -12
  274. package/lib/commonjs/mol-theme/color/model-index.d.ts +12 -12
  275. package/lib/commonjs/mol-theme/color/operator-hkl.d.ts +12 -12
  276. package/lib/commonjs/mol-theme/color/operator-name.d.ts +12 -12
  277. package/lib/commonjs/mol-theme/color/polymer-id.d.ts +12 -12
  278. package/lib/commonjs/mol-theme/color/polymer-index.d.ts +12 -12
  279. package/lib/commonjs/mol-theme/color/unit-index.d.ts +12 -12
  280. package/lib/commonjs/mol-theme/color.d.ts +78 -78
  281. package/lib/commonjs/mol-util/color/lists.d.ts +3 -3
  282. package/lib/commonjs/mol-util/color/palette.d.ts +13 -13
  283. package/lib/commonjs/mol-util/color/scale.d.ts +1 -1
  284. package/lib/commonjs/servers/model/config.d.ts +2 -2
  285. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -3
  286. package/lib/extensions/geo-export/controls.js +1 -1
  287. package/lib/extensions/geo-export/controls.js.map +1 -1
  288. package/lib/extensions/geo-export/glb-exporter.d.ts +1 -0
  289. package/lib/extensions/geo-export/glb-exporter.js +27 -17
  290. package/lib/extensions/geo-export/glb-exporter.js.map +1 -1
  291. package/lib/extensions/geo-export/mesh-exporter.d.ts +31 -2
  292. package/lib/extensions/geo-export/mesh-exporter.js +87 -15
  293. package/lib/extensions/geo-export/mesh-exporter.js.map +1 -1
  294. package/lib/extensions/geo-export/obj-exporter.d.ts +1 -0
  295. package/lib/extensions/geo-export/obj-exporter.js +24 -15
  296. package/lib/extensions/geo-export/obj-exporter.js.map +1 -1
  297. package/lib/extensions/geo-export/ui.js +24 -20
  298. package/lib/extensions/geo-export/ui.js.map +1 -1
  299. package/lib/extensions/geo-export/usdz-exporter.d.ts +1 -0
  300. package/lib/extensions/geo-export/usdz-exporter.js +26 -16
  301. package/lib/extensions/geo-export/usdz-exporter.js.map +1 -1
  302. package/lib/extensions/mp4-export/controls.js +1 -1
  303. package/lib/extensions/mp4-export/controls.js.map +1 -1
  304. package/lib/extensions/mp4-export/ui.js +7 -6
  305. package/lib/extensions/mp4-export/ui.js.map +1 -1
  306. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +3 -3
  307. package/lib/extensions/rcsb/graphql/types.d.ts +22 -21
  308. package/lib/extensions/rcsb/validation-report/representation.d.ts +5 -5
  309. package/lib/mol-canvas3d/canvas3d.d.ts +4 -4
  310. package/lib/mol-canvas3d/helper/camera-helper.d.ts +2 -2
  311. package/lib/mol-canvas3d/passes/draw.js +3 -11
  312. package/lib/mol-canvas3d/passes/draw.js.map +1 -1
  313. package/lib/mol-canvas3d/passes/image.d.ts +2 -2
  314. package/lib/mol-data/int/impl/ordered-set.d.ts +3 -3
  315. package/lib/mol-data/int/impl/sorted-array.d.ts +1 -1
  316. package/lib/mol-geo/geometry/base.d.ts +13 -1
  317. package/lib/mol-geo/geometry/base.js +34 -1
  318. package/lib/mol-geo/geometry/base.js.map +1 -1
  319. package/lib/mol-geo/geometry/image/image.d.ts +2 -2
  320. package/lib/mol-geo/geometry/mesh/color-smoothing.d.ts +10 -3
  321. package/lib/mol-geo/geometry/mesh/color-smoothing.js +150 -34
  322. package/lib/mol-geo/geometry/mesh/color-smoothing.js.map +1 -1
  323. package/lib/mol-geo/geometry/overpaint-data.d.ts +7 -2
  324. package/lib/mol-geo/geometry/overpaint-data.js +11 -2
  325. package/lib/mol-geo/geometry/overpaint-data.js.map +1 -1
  326. package/lib/mol-geo/geometry/points/points.d.ts +2 -2
  327. package/lib/mol-geo/geometry/spheres/spheres.d.ts +0 -1
  328. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.d.ts +7 -3
  329. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +158 -26
  330. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js.map +1 -1
  331. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +3 -1
  332. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -1
  333. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js.map +1 -1
  334. package/lib/mol-geo/geometry/transparency-data.d.ts +7 -2
  335. package/lib/mol-geo/geometry/transparency-data.js +11 -2
  336. package/lib/mol-geo/geometry/transparency-data.js.map +1 -1
  337. package/lib/mol-gl/compute/copy.d.ts +20 -0
  338. package/lib/mol-gl/compute/copy.js +24 -0
  339. package/lib/mol-gl/compute/copy.js.map +1 -0
  340. package/lib/mol-gl/compute/marching-cubes/isosurface.js +3 -3
  341. package/lib/mol-gl/compute/marching-cubes/isosurface.js.map +1 -1
  342. package/lib/mol-gl/compute/util.d.ts +25 -6
  343. package/lib/mol-gl/compute/util.js +74 -21
  344. package/lib/mol-gl/compute/util.js.map +1 -1
  345. package/lib/mol-gl/renderable/cylinders.d.ts +8 -0
  346. package/lib/mol-gl/renderable/direct-volume.d.ts +8 -0
  347. package/lib/mol-gl/renderable/image.d.ts +8 -0
  348. package/lib/mol-gl/renderable/lines.d.ts +8 -0
  349. package/lib/mol-gl/renderable/mesh.d.ts +8 -0
  350. package/lib/mol-gl/renderable/points.d.ts +8 -0
  351. package/lib/mol-gl/renderable/schema.d.ts +16 -0
  352. package/lib/mol-gl/renderable/schema.js +8 -0
  353. package/lib/mol-gl/renderable/schema.js.map +1 -1
  354. package/lib/mol-gl/renderable/spheres.d.ts +8 -0
  355. package/lib/mol-gl/renderable/text.d.ts +8 -0
  356. package/lib/mol-gl/renderable/texture-mesh.d.ts +22 -13
  357. package/lib/mol-gl/renderable/texture-mesh.js +2 -2
  358. package/lib/mol-gl/renderable/texture-mesh.js.map +1 -1
  359. package/lib/mol-gl/renderer.d.ts +2 -2
  360. package/lib/mol-gl/renderer.js +3 -0
  361. package/lib/mol-gl/renderer.js.map +1 -1
  362. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  363. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  364. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js.map +1 -1
  365. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  366. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  367. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js.map +1 -1
  368. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  369. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  370. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js.map +1 -1
  371. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.d.ts +1 -1
  372. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +1 -1
  373. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js.map +1 -1
  374. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.d.ts +1 -1
  375. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +1 -1
  376. package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js.map +1 -1
  377. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.d.ts +1 -1
  378. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js +1 -1
  379. package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js.map +1 -1
  380. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  381. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  382. package/lib/mol-gl/shader/direct-volume.frag.js.map +1 -1
  383. package/lib/mol-gl/shader/mesh.vert.d.ts +1 -1
  384. package/lib/mol-gl/shader/mesh.vert.js +1 -1
  385. package/lib/mol-gl/shader/mesh.vert.js.map +1 -1
  386. package/lib/mol-gl/webgl/extensions.js +2 -6
  387. package/lib/mol-gl/webgl/extensions.js.map +1 -1
  388. package/lib/mol-gl/webgl/render-item.d.ts +1 -1
  389. package/lib/mol-gl/webgl/resources.js +1 -1
  390. package/lib/mol-gl/webgl/resources.js.map +1 -1
  391. package/lib/mol-gl/webgl/vertex-array.d.ts +3 -2
  392. package/lib/mol-gl/webgl/vertex-array.js +9 -2
  393. package/lib/mol-gl/webgl/vertex-array.js.map +1 -1
  394. package/lib/mol-io/common/typed-array.d.ts +1 -1
  395. package/lib/mol-io/reader/_spec/sdf.spec.js +51 -0
  396. package/lib/mol-io/reader/_spec/sdf.spec.js.map +1 -1
  397. package/lib/mol-io/reader/cif/schema/bird.d.ts +2 -2
  398. package/lib/mol-io/reader/cif/schema/bird.js +1 -1
  399. package/lib/mol-io/reader/cif/schema/ccd.d.ts +1 -1
  400. package/lib/mol-io/reader/cif/schema/ccd.js +1 -1
  401. package/lib/mol-io/reader/cif/schema/cif-core.d.ts +8 -5
  402. package/lib/mol-io/reader/cif/schema/cif-core.js +15 -5
  403. package/lib/mol-io/reader/cif/schema/cif-core.js.map +1 -1
  404. package/lib/mol-io/reader/cif/schema/mmcif-extras.d.ts +1 -1
  405. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +13 -13
  406. package/lib/mol-io/reader/cif/schema/mmcif.js +1 -1
  407. package/lib/mol-io/reader/ply/schema.d.ts +1 -1
  408. package/lib/mol-io/reader/sdf/parser-v3-util.d.ts +9 -0
  409. package/lib/mol-io/reader/sdf/parser-v3-util.js +84 -0
  410. package/lib/mol-io/reader/sdf/parser-v3-util.js.map +1 -0
  411. package/lib/mol-io/reader/sdf/parser.d.ts +1 -1
  412. package/lib/mol-io/reader/sdf/parser.js +12 -4
  413. package/lib/mol-io/reader/sdf/parser.js.map +1 -1
  414. package/lib/mol-model/loci.d.ts +20 -20
  415. package/lib/mol-model/shape/shape.d.ts +1 -1
  416. package/lib/mol-model/structure/structure/properties.d.ts +2 -2
  417. package/lib/mol-model/structure/structure/properties.js +5 -5
  418. package/lib/mol-model/structure/structure/properties.js.map +1 -1
  419. package/lib/mol-model/structure/structure/unit.d.ts +2 -2
  420. package/lib/mol-model-formats/shape/ply.d.ts +8 -8
  421. package/lib/mol-model-formats/structure/basic/schema.d.ts +5 -5
  422. package/lib/mol-model-formats/structure/common/component.d.ts +5 -5
  423. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -1
  424. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -1
  425. package/lib/mol-model-props/computed/representations/interactions.d.ts +3 -3
  426. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -4
  427. package/lib/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
  428. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -1
  429. package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +10 -10
  430. package/lib/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +5 -5
  431. package/lib/mol-plugin/commands.d.ts +2 -2
  432. package/lib/mol-plugin/layout.d.ts +4 -4
  433. package/lib/mol-plugin/util/viewport-screenshot.d.ts +6 -6
  434. package/lib/mol-plugin/version.js +2 -2
  435. package/lib/mol-plugin-state/actions/file.js +4 -2
  436. package/lib/mol-plugin-state/actions/file.js.map +1 -1
  437. package/lib/mol-plugin-state/animation/built-in/model-index.d.ts +3 -3
  438. package/lib/mol-plugin-state/animation/helpers.d.ts +5 -5
  439. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -2
  440. package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +2 -2
  441. package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +7 -7
  442. package/lib/mol-plugin-state/formats/volume.d.ts +4 -4
  443. package/lib/mol-plugin-state/formats/volume.js +1 -0
  444. package/lib/mol-plugin-state/formats/volume.js.map +1 -1
  445. package/lib/mol-plugin-state/helpers/root-structure.d.ts +2 -2
  446. package/lib/mol-plugin-state/helpers/structure-component.d.ts +1 -1
  447. package/lib/mol-plugin-state/helpers/structure-selection-query.d.ts +1 -1
  448. package/lib/mol-plugin-state/helpers/structure-selection-query.js +14 -3
  449. package/lib/mol-plugin-state/helpers/structure-selection-query.js.map +1 -1
  450. package/lib/mol-plugin-state/manager/interactivity.d.ts +1 -1
  451. package/lib/mol-plugin-state/manager/snapshots.js +2 -1
  452. package/lib/mol-plugin-state/manager/snapshots.js.map +1 -1
  453. package/lib/mol-plugin-state/manager/structure/component.d.ts +2 -2
  454. package/lib/mol-plugin-state/transforms/data.d.ts +1 -1
  455. package/lib/mol-plugin-state/transforms/model.d.ts +4 -4
  456. package/lib/mol-plugin-state/transforms/representation.d.ts +8 -8
  457. package/lib/mol-plugin-state/transforms/representation.js +41 -15
  458. package/lib/mol-plugin-state/transforms/representation.js.map +1 -1
  459. package/lib/mol-plugin-ui/state/common.js +10 -9
  460. package/lib/mol-plugin-ui/state/common.js.map +1 -1
  461. package/lib/mol-plugin-ui/state/snapshots.js +10 -8
  462. package/lib/mol-plugin-ui/state/snapshots.js.map +1 -1
  463. package/lib/mol-plugin-ui/structure/selection.d.ts +1 -1
  464. package/lib/mol-plugin-ui/structure/selection.js +2 -1
  465. package/lib/mol-plugin-ui/structure/selection.js.map +1 -1
  466. package/lib/mol-repr/representation.d.ts +9 -0
  467. package/lib/mol-repr/representation.js +43 -4
  468. package/lib/mol-repr/representation.js.map +1 -1
  469. package/lib/mol-repr/shape/loci/distance.d.ts +1 -1
  470. package/lib/mol-repr/shape/loci/orientation.d.ts +1 -1
  471. package/lib/mol-repr/shape/model/unitcell.d.ts +1 -1
  472. package/lib/mol-repr/shape/representation.js +5 -0
  473. package/lib/mol-repr/shape/representation.js.map +1 -1
  474. package/lib/mol-repr/structure/complex-representation.js +11 -4
  475. package/lib/mol-repr/structure/complex-representation.js.map +1 -1
  476. package/lib/mol-repr/structure/complex-visual.d.ts +6 -6
  477. package/lib/mol-repr/structure/complex-visual.js +11 -5
  478. package/lib/mol-repr/structure/complex-visual.js.map +1 -1
  479. package/lib/mol-repr/structure/params.d.ts +3 -3
  480. package/lib/mol-repr/structure/registry.d.ts +31 -31
  481. package/lib/mol-repr/structure/representation/backbone.d.ts +3 -3
  482. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +12 -12
  483. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +3 -3
  484. package/lib/mol-repr/structure/representation/cartoon.d.ts +6 -6
  485. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +12 -12
  486. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +9 -9
  487. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +3 -3
  488. package/lib/mol-repr/structure/representation/label.d.ts +6 -6
  489. package/lib/mol-repr/structure/representation/line.d.ts +15 -15
  490. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +9 -9
  491. package/lib/mol-repr/structure/representation/orientation.d.ts +3 -3
  492. package/lib/mol-repr/structure/representation/point.d.ts +6 -6
  493. package/lib/mol-repr/structure/representation/putty.d.ts +3 -3
  494. package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -3
  495. package/lib/mol-repr/structure/units-representation.js +15 -15
  496. package/lib/mol-repr/structure/units-representation.js.map +1 -1
  497. package/lib/mol-repr/structure/units-visual.d.ts +9 -9
  498. package/lib/mol-repr/structure/units-visual.js +11 -5
  499. package/lib/mol-repr/structure/units-visual.js.map +1 -1
  500. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +8 -8
  501. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +4 -4
  502. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +8 -8
  503. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +4 -4
  504. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -1
  505. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -1
  506. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -1
  507. package/lib/mol-repr/structure/visual/element-cross.d.ts +1 -1
  508. package/lib/mol-repr/structure/visual/element-point.d.ts +2 -2
  509. package/lib/mol-repr/structure/visual/element-sphere.d.ts +2 -2
  510. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -1
  511. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -2
  512. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +12 -12
  513. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -7
  514. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js.map +1 -1
  515. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -1
  516. package/lib/mol-repr/structure/visual/label-text.d.ts +2 -2
  517. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +3 -3
  518. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +3 -2
  519. package/lib/mol-repr/structure/visual/molecular-surface-mesh.js.map +1 -1
  520. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -1
  521. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -1
  522. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -1
  523. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -1
  524. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -2
  525. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -2
  526. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -1
  527. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -1
  528. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +4 -4
  529. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -1
  530. package/lib/mol-repr/structure/visual/util/bond.d.ts +18 -18
  531. package/lib/mol-repr/structure/visual/util/common.d.ts +2 -2
  532. package/lib/mol-repr/visual.d.ts +21 -13
  533. package/lib/mol-repr/visual.js +53 -6
  534. package/lib/mol-repr/visual.js.map +1 -1
  535. package/lib/mol-repr/volume/direct-volume.d.ts +2 -2
  536. package/lib/mol-repr/volume/registry.d.ts +2 -2
  537. package/lib/mol-repr/volume/representation.d.ts +1 -1
  538. package/lib/mol-repr/volume/representation.js +12 -3
  539. package/lib/mol-repr/volume/representation.js.map +1 -1
  540. package/lib/mol-repr/volume/slice.d.ts +6 -6
  541. package/lib/mol-state/state.js +7 -5
  542. package/lib/mol-state/state.js.map +1 -1
  543. package/lib/mol-task/execution/observable.js +1 -5
  544. package/lib/mol-task/execution/observable.js.map +1 -1
  545. package/lib/mol-theme/color/element-symbol.d.ts +4 -4
  546. package/lib/mol-theme/color.d.ts +2 -2
  547. package/lib/mol-util/color/palette.d.ts +1 -1
  548. package/lib/mol-util/color/scale.d.ts +1 -1
  549. package/lib/tsconfig.commonjs.tsbuildinfo +1 -1
  550. package/package.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/mol-gl/renderer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,oDAAuD;AAIvD,6DAA0E;AAE1E,2CAA0C;AAC1C,wCAAmD;AAGnD,iEAAqE;AACrE,kDAAiD;AACjD,6CAAmD;AACnD,yCAA4C;AAC5C,2CAAuE;AACvE,2CAAmD;AACnD,uDAAgD;AA+CnC,QAAA,cAAc,GAAG;IAC1B,eAAe,EAAE,kCAAE,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IAEhG,kDAAkD;IAClD,qBAAqB,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,gEAAgE,EAAE,CAAC;IAE7J,iBAAiB,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtE,iBAAiB,EAAE,kCAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IACpE,aAAa,EAAE,kCAAE,CAAC,KAAK,CAAC,aAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE/D,cAAc,EAAE,kCAAE,CAAC,KAAK,CAAC,aAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,WAAW,EAAE,kCAAE,CAAC,KAAK,CAAC,aAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7D,iBAAiB,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACrE,cAAc,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAClE,cAAc,EAAE,kCAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/D,eAAe,EAAE,kCAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAEjE,KAAK,EAAE,kCAAE,CAAC,YAAY,CAAC,OAAO,EAAE;QAC5B,MAAM,EAAE,kCAAE,CAAC,KAAK,CAAC;YACb,cAAc,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnE,gBAAgB,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACrE,SAAS,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC9D,SAAS,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC9D,YAAY,EAAE,kCAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACxB,IAAI,EAAE,kCAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,KAAK,EAAE,kCAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,EAAE,kCAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,QAAQ,EAAE,kCAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,kCAAE,CAAC,KAAK,CAAC,EAAE,CAAC;KACxB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;IAEzF,IAAI,EAAE,kCAAE,CAAC,KAAK,CAAC;QACX,OAAO,EAAE,kCAAE,CAAC,MAAM,CAAC,UAAU,EAAE,kCAAE,CAAC,cAAc,CAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,OAAO,EAAE,kCAAE,CAAC,UAAU,CAAC;YACnB,IAAI,EAAE,kCAAE,CAAC,MAAM,CAAC,OAAO,EAAE,kCAAE,CAAC,eAAe,CAAC,mBAAQ,CAAC,IAAI,EAAE,UAAA,CAAC,IAAI,OAAA,IAAA,sBAAa,EAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAC;YAClF,MAAM,EAAE,kCAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YACzB,QAAQ,EAAE,kCAAE,CAAC,IAAI,CAAC,IAAA,qBAAI,GAAE,CAAC;YACzB,QAAQ,EAAE,kCAAE,CAAC,KAAK,CAAC;gBACf,IAAI,EAAE,kCAAE,CAAC,IAAI,CAAC,qBAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,KAAK,EAAE,kCAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;aAC9F,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YACxB,KAAK,EAAE,kCAAE,CAAC,IAAI,CAAC,qBAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC,EAAE,UAAA,CAAC,IAAI,OAAA,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC;KACjC,CAAC;CACL,CAAC;AAWF,SAAgB,QAAQ,CAAC,KAA6B;IAClD,QAAQ,KAAK,CAAC,IAAI,EAAE;QAChB,KAAK,QAAQ;YACT,OAAO,KAAK,CAAC,MAAe,CAAC;QACjC,KAAK,MAAM;YACP,OAAO;gBACH,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;gBACtC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;aAClD,CAAC;QACN,KAAK,OAAO;YACR,OAAO;gBACH,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG;gBAC1C,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;aAChD,CAAC;QACN,KAAK,QAAQ;YACT,OAAO;gBACH,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG;gBAC1C,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;aAClD,CAAC;QACN,KAAK,UAAU;YACX,OAAO;gBACH,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG;gBAC1C,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;aACpD,CAAC;QACN,KAAK,SAAS;YACV,OAAO;gBACH,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG;gBAC1C,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG;aAClD,CAAC;KACT;AACL,CAAC;AA9BD,4BA8BC;AAcD,IAAM,OAAO,GAAG,IAAA,qBAAI,GAAE,CAAC;AACvB,SAAS,OAAO,CAAC,KAA4B,EAAE,IAAW;IAChD,IAAA,KAA8C,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI;QACjE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,QAAQ,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,QAAQ,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACpC,EANO,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAM9C,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;QACpD,IAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,qBAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,qBAAI,CAAC,OAAO,CAAC,qBAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAA,eAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvG,qBAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACvC;IACD,OAAO;QACH,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE;KACpF,CAAC;AACN,CAAC;AAED,IAAU,QAAQ,CAyiBjB;AAziBD,WAAU,QAAQ;IACd,SAAgB,MAAM,CAAC,GAAiB,EAAE,KAAkC;QAAlC,sBAAA,EAAA,UAAkC;QAChE,IAAA,EAAE,GAA8C,GAAG,GAAjD,EAAE,KAAK,GAAuC,GAAG,MAA1C,EAAE,KAAK,GAAgC,GAAG,MAAnC,EAAgB,SAAS,GAAO,GAAG,qBAAV,CAAW;QAC5D,IAAM,CAAC,GAAG,kCAAE,CAAC,KAAK,CAAC,sBAAc,EAAE,kCAAE,CAAC,gBAAgB,CAAC,sBAAc,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChC,IAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAM,QAAQ,GAAG,IAAA,eAAQ,GAAE,CAAC;QAC5B,IAAM,iBAAiB,GAAG,qBAAI,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACrF,IAAM,OAAO,GAAG,aAAK,CAAC,gBAAgB,CAAC,IAAA,qBAAI,GAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;QAElE,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAElC,IAAM,gBAAgB,GAAG,IAAA,2BAAiB,EAAC,EAAE,CAAC,CAAC;QAC/C,IAAM,kBAAkB,GAAa;YACjC,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAC/B,CAAC;QAEF,IAAM,IAAI,GAAG,IAAA,qBAAI,GAAE,CAAC;QACpB,IAAM,OAAO,GAAG,IAAA,qBAAI,GAAE,CAAC;QACvB,IAAM,SAAS,GAAG,IAAA,qBAAI,GAAE,CAAC;QACzB,IAAM,YAAY,GAAG,IAAA,qBAAI,GAAE,CAAC;QAC5B,IAAM,aAAa,GAAG,IAAA,qBAAI,GAAE,CAAC;QAC7B,IAAM,mBAAmB,GAAG,IAAA,qBAAI,GAAE,CAAC;QACnC,IAAM,sBAAsB,GAAG,IAAA,qBAAI,GAAE,CAAC;QAEtC,IAAM,SAAS,GAAG,IAAA,qBAAI,GAAE,CAAC;QACzB,IAAM,UAAU,GAAG,IAAA,qBAAI,GAAE,CAAC;QAE1B,IAAM,cAAc,GAAwB;YACxC,MAAM,EAAE,oBAAS,CAAC,MAAM,CAAC,qBAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,KAAK,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,oBAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,UAAU,EAAE,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC;YACvC,aAAa,EAAE,oBAAS,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7C,cAAc,EAAE,oBAAS,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,WAAW,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAA,qBAAI,GAAE,CAAC;YACrC,oBAAoB,EAAE,oBAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC3D,uBAAuB,EAAE,oBAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC;YAEjE,QAAQ,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7B,WAAW,EAAE,oBAAS,CAAC,MAAM,CAAC,UAAU,CAAC;YAEzC,WAAW,EAAE,oBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7C,SAAS,EAAE,oBAAS,CAAC,MAAM,CAAC,eAAQ,CAAC,MAAM,CAAC,IAAA,qBAAI,GAAE,EAAE,QAAQ,CAAC,CAAC;YAC9D,kBAAkB,EAAE,oBAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAEvD,eAAe,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAA,qBAAI,GAAE,CAAC;YACzC,UAAU,EAAE,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC;YACvC,KAAK,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7B,QAAQ,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7B,OAAO,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,SAAS,EAAE,oBAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAEpC,YAAY,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YACrC,iBAAiB,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAE1C,sBAAsB,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/C,eAAe,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACpD,iBAAiB,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACxD,mBAAmB,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5D,mBAAmB,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5D,gBAAgB,EAAE,oBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAEtD,gDAAgD;YAChD,eAAe,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;YACvD,iBAAiB,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAE3D,UAAU,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7C,UAAU,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7C,aAAa,EAAE,oBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAEnD,sBAAsB,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAEjE,kBAAkB,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACzD,kBAAkB,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACzD,cAAc,EAAE,oBAAS,CAAC,MAAM,CAAC,aAAK,CAAC,gBAAgB,CAAC,IAAA,qBAAI,GAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YAEjF,eAAe,EAAE,oBAAS,CAAC,MAAM,CAAC,aAAK,CAAC,gBAAgB,CAAC,IAAA,qBAAI,GAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;YACnF,YAAY,EAAE,oBAAS,CAAC,MAAM,CAAC,aAAK,CAAC,gBAAgB,CAAC,IAAA,qBAAI,GAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;YAC7E,kBAAkB,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACzD,eAAe,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;YACnD,eAAe,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;YAEnD,gBAAgB,EAAE,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;SACxD,CAAC;QACF,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEzD,IAAI,wBAAwB,GAAG,IAAI,CAAC;QAEpC,IAAM,YAAY,GAAG,UAAC,CAAqB,EAAE,OAA8B;YACvE,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;gBACnF,OAAO;aACV;YAED,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE;oBAC3C,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;oBAC/C,iBAAiB,GAAG,IAAI,CAAC;iBAC5B;aACJ;iBAAM;gBACH,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC5D,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChE,iBAAiB,GAAG,IAAI,CAAC;iBAC5B;gBACD,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;oBAClD,oBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtD,iBAAiB,GAAG,IAAI,CAAC;iBAC5B;aACJ;YACD,IAAI,iBAAiB;gBAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YAElC,IAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE,EAAE;gBACvC,6BAA6B;gBAC7B,wBAAwB,GAAG,IAAI,CAAC;gBAChC,OAAO,CAAC,GAAG,EAAE,CAAC;aACjB;YAED,IAAI,wBAAwB,EAAE;gBAC1B,0CAA0C;gBAC1C,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBACvC,wBAAwB,GAAG,KAAK,CAAC;aACpC;YAED,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,0BAA0B;gBAClD,kCAAkC;gBAClC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5B,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAExB,IAAI,OAAO,KAAK,cAAc,EAAE;oBAC5B,4DAA4D;oBAC5D,iEAAiE;oBACjE,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,EAAE;wBAC3D,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;wBAC7B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;qBAC1B;yBAAM;wBACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;wBAC5B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;qBACtD;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE;oBACvB,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;wBACrE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;qBAC/B;yBAAM;wBACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;qBAC9B;iBACJ;qBAAM;oBACH,gBAAgB;oBAChB,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;oBACrB,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;wBAC/B,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBACvB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;qBAC5B;yBAAM;wBACH,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;wBACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;qBAC3B;iBACJ;qBAAM;oBACH,gBAAgB;oBAChB,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxB,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;iBAC3B;aACJ;YAED,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAM,MAAM,GAAG,UAAC,MAAe;YAC3B,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7E,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAChE,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,qBAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAE/F,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjG,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5L,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxE,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAI,CAAC,SAAS,CAAC,SAAS,EAAE,qBAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAExI,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3D,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7D,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACjE,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACnE,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;QAC5F,CAAC,CAAC;QAEF,IAAM,cAAc,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B,EAAE,WAAoB,EAAE,gBAAyB;YACtI,IAAA,sBAAc,EAAC,kBAAkB,EAAE,QAAQ,EAAE,YAAY,IAAI,gBAAgB,CAAC,CAAC;YAE/E,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1F,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,qBAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;YACrF,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,qBAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACnH,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,qBAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,CAAC;YAEnH,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACpE,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;YAE9E,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YAC9B,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAEhC,IAAA,CAAC,GAAuB,QAAQ,EAA/B,EAAE,CAAC,GAAoB,QAAQ,EAA5B,EAAE,KAAK,GAAa,QAAQ,MAArB,EAAE,MAAM,GAAK,QAAQ,OAAb,CAAc;YACzC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACjC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAEhC,wBAAwB,GAAG,IAAI,CAAC;YAChC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,IAAM,UAAU,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,OAA8B,EAAE,YAA4B;YACjH,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;oBACjC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;iBACzC;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,WAAW,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;YAClF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;aACzC;QACL,CAAC,CAAC;QAEF,IAAM,kBAAkB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;YACzF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEzB,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE;oBACxC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;iBAChD;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,iBAAiB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;YACxF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEzB,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE;oBACtC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;iBAC/C;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,aAAa,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;YACpF,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,IAAM,mBAAmB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;YAC1F,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;oBAChB,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;iBACnC;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,wBAAwB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;YAC/F,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAE5B,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAE9B,IAAI,qBAAqB,EAAE;gBACvB,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;aACnD;iBAAM;gBACH,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;aACjG;YACD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEvB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;oBACvC,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;iBACnC;aACJ;YAED,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;oBACxC,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;iBACnC;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,yBAAyB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;;YAChG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAChD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEvB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEzB,gDAAgD;gBAChD,gEAAgE;gBAChE,IAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1E,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,CAAA,EAAE;oBACjG,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;iBACnC;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,8BAA8B,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;;YACrG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAChD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEvB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEzB,gDAAgD;gBAChD,gEAAgE;gBAChE,IAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1E,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAI,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,CAAA,EAAE;oBAC5F,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;iBACnC;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,iBAAiB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;;YACxF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAElD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEzB,gDAAgD;gBAChD,gEAAgE;gBAChE,IAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1E,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAA,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,MAAK,QAAQ,IAAI,CAAA,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,MAAK,OAAO,IAAI,CAAC,CAAA,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,CAAA,EAAE;oBAChM,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;iBACjC;aACJ;QACL,CAAC,CAAC;QAEF,IAAM,sBAAsB,GAAG,UAAC,KAAkB,EAAE,MAAe,EAAE,YAA4B;;YAC7F,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAEjD,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;gBAClD,IAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEzB,gDAAgD;gBAChD,gEAAgE;gBAChE,IAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1E,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAA,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,MAAK,QAAQ,IAAI,CAAA,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,MAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,KAAI,MAAA,CAAC,CAAC,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,CAAA,EAAE;oBAC1N,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;iBACjC;aACJ;QACL,CAAC,CAAC;QAEF,OAAO;YACH,KAAK,EAAE,UAAC,iBAA0B;gBAC9B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC9B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAEtB,IAAI,qBAAqB,EAAE;oBACvB,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAChC;qBAAM,IAAI,iBAAiB,EAAE;oBAC1B,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC3D;qBAAM;oBACH,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAChC;gBACD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;YACxD,CAAC;YACD,UAAU,EAAE;gBACR,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC9B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,QAAA;YAEN,UAAU,YAAA;YACV,WAAW,aAAA;YACX,kBAAkB,oBAAA;YAClB,iBAAiB,mBAAA;YACjB,aAAa,eAAA;YACb,mBAAmB,qBAAA;YACnB,wBAAwB,0BAAA;YACxB,yBAAyB,2BAAA;YACzB,8BAA8B,gCAAA;YAC9B,iBAAiB,mBAAA;YACjB,sBAAsB,wBAAA;YAEtB,QAAQ,EAAE,UAAC,KAA6B;gBACpC,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,EAAE;oBACpF,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;oBAC1C,aAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;oBACnD,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,qBAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;iBACtG;gBAED,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,CAAC,qBAAqB,EAAE;oBACtG,CAAC,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;oBACtD,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC;iBACpF;gBAED,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,iBAAiB,EAAE;oBAC1F,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;oBAC9C,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;iBAC5E;gBACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,iBAAiB,EAAE;oBAC1F,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;oBAC9C,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;iBAC5E;gBACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,EAAE;oBAC9E,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;oBACtC,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,aAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;iBACrI;gBAED,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc,EAAE;oBACjF,CAAC,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;oBACxC,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,aAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;iBACxI;gBACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE;oBACxE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;oBAClC,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,aAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC/H;gBACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,iBAAiB,EAAE;oBAC1F,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;oBAC9C,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;iBAC5E;gBACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc,EAAE;oBACjF,CAAC,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;oBACxC,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;iBACtE;gBACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc,EAAE;oBACjF,CAAC,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;oBACxC,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;iBACtE;gBAED,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,EAAE;oBACpF,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;oBAC1C,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;iBACxE;gBAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;oBAC3B,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5C,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;oBAChF,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBACpF,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBACtE,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBACtE,oBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;iBAC/E;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAA,oBAAS,EAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC5D,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC/C,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5E,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5E,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtE,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACvE;YACL,CAAC;YACD,WAAW,EAAE,UAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;gBAC7D,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACjC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;oBAChG,eAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC5C,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,qBAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;iBACjH;YACL,CAAC;YACD,wBAAwB,EAAE,UAAC,KAAc;gBACrC,qBAAqB,GAAG,KAAK,CAAC;YAClC,CAAC;YACD,oBAAoB,EAAE,UAAC,KAAa,EAAE,MAAc;gBAChD,IAAI,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAAE;oBACnE,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,qBAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;iBACnG;YACL,CAAC;YACD,aAAa,EAAE,UAAC,KAAa;gBACzB,oBAAS,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YAED,KAAK,EAAE,CAAC;YACR,IAAI,KAAK;gBACL,OAAO;oBACH,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO;oBAC9C,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM;oBAE5C,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS;oBAClD,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ;oBAChD,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW;oBACtD,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY;oBACxD,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO;oBAC9C,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW;oBAEtD,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;iBAC/C,CAAC;YACN,CAAC;YACD,OAAO,EAAE;gBACL,OAAO;YACX,CAAC;SACJ,CAAC;IACN,CAAC;IAviBe,eAAM,SAuiBrB,CAAA;AACL,CAAC,EAziBS,QAAQ,KAAR,QAAQ,QAyiBjB;AAEQ,4BAAQ"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/mol-gl/renderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 gridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 gridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n#endif\n";
1
+ export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n\n #if defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_color_varying = void 0;
4
- exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 gridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 gridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, gridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n#endif\n";
4
+ exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n\n #if defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n#endif\n";
5
5
  //# sourceMappingURL=assign-color-varying.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assign-color-varying.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-color-varying.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,kjEA2CnC,CAAC"}
1
+ {"version":3,"file":"assign-color-varying.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-color-varying.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,64GAiEnC,CAAC"}
@@ -1 +1 @@
1
- export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
1
+ export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n #if defined(dRenderVariant_colorWboit)\n if (vTransparency < 0.2) ta = 1.0; // hard cutoff looks better with wboit\n #endif\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_material_color = void 0;
4
- exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
4
+ exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n #if defined(dRenderVariant_colorWboit)\n if (vTransparency < 0.2) ta = 1.0; // hard cutoff looks better with wboit\n #endif\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
5
5
  //# sourceMappingURL=assign-material-color.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assign-material-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-material-color.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,0iHA8FpC,CAAC"}
1
+ {"version":3,"file":"assign-material-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-material-color.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,qrHAiGpC,CAAC"}
@@ -1 +1 @@
1
- export declare const color_vert_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
1
+ export declare const color_vert_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.color_vert_params = void 0;
4
- exports.color_vert_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
4
+ exports.color_vert_params = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
5
5
  //# sourceMappingURL=color-vert-params.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-vert-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/color-vert-params.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,8lCA0ChC,CAAC"}
1
+ {"version":3,"file":"color-vert-params.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/color-vert-params.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,u3DA0DhC,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n gl_FragColor = vec4(vColor, 1.0) * (p - dist);\n}\n";
6
+ export declare const accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n float f = p - dist;\n gl_FragColor = vColor * f;\n gl_FragData[1] = vec4(f);\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.accumulate_frag = void 0;
9
- exports.accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n gl_FragColor = vec4(vColor, 1.0) * (p - dist);\n}\n";
9
+ exports.accumulate_frag = "\nprecision highp float;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform float uCurrentSlice;\nuniform float uCurrentX;\nuniform float uCurrentY;\nuniform float uResolution;\n\nconst float p = 2.0;\n\nvoid main() {\n vec2 v = gl_FragCoord.xy - vec2(uCurrentX, uCurrentY) - 0.5;\n vec3 fragPos = vec3(v.x, v.y, uCurrentSlice);\n float dist = distance(fragPos, vPosition);\n if (dist > p) discard;\n\n float f = p - dist;\n gl_FragColor = vColor * f;\n gl_FragData[1] = vec4(f);\n}\n";
10
10
  //# sourceMappingURL=accumulate.frag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,geAqB9B,CAAC"}
1
+ {"version":3,"file":"accumulate.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,ogBAuB9B,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n}\n";
6
+ export declare const accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim);\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim);\n #endif\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.accumulate_vert = void 0;
9
- exports.accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec3 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #endif\n}\n";
9
+ exports.accumulate_vert = "\nprecision highp float;\n\n#include common\n#include read_from_texture\n\nuniform int uTotalCount;\nuniform int uGroupCount;\n\nattribute float aSample;\n#define SampleID int(aSample)\n\nattribute mat4 aTransform;\nattribute float aInstance;\n\nuniform vec2 uGeoTexDim;\nuniform sampler2D tPosition;\nuniform sampler2D tGroup;\n\nuniform vec2 uColorTexDim;\nuniform sampler2D tColor;\n\nvarying vec3 vPosition;\nvarying vec4 vColor;\n\nuniform vec3 uBboxSize;\nuniform vec3 uBboxMin;\nuniform float uResolution;\n\nvoid main() {\n vec3 position = readFromTexture(tPosition, SampleID, uGeoTexDim).xyz;\n float group = decodeFloatRGB(readFromTexture(tGroup, SampleID, uGeoTexDim).rgb);\n\n position = (aTransform * vec4(position, 1.0)).xyz;\n gl_PointSize = 7.0;\n vPosition = (position - uBboxMin) / uResolution;\n gl_Position = vec4(((position - uBboxMin) / uBboxSize) * 2.0 - 1.0, 1.0);\n\n #if defined(dColorType_group)\n vColor = readFromTexture(tColor, group, uColorTexDim);\n #elif defined(dColorType_groupInstance)\n vColor = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim);\n #endif\n}\n";
10
10
  //# sourceMappingURL=accumulate.vert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accumulate.vert.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,wpCA4C9B,CAAC"}
1
+ {"version":3,"file":"accumulate.vert.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/accumulate.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,eAAe,GAAG,gpCA4C9B,CAAC"}
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  */
6
- export declare const normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n\n gl_FragColor.rgb = color.rgb / color.a;\n}\n";
6
+ export declare const normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform sampler2D tCount;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n float count = texture2D(tCount, coords).r;\n\n gl_FragColor = color / count;\n}\n";
@@ -6,5 +6,5 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.normalize_frag = void 0;
9
- exports.normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n\n gl_FragColor.rgb = color.rgb / color.a;\n}\n";
9
+ exports.normalize_frag = "\nprecision highp float;\nprecision highp sampler2D;\n\nuniform sampler2D tColor;\nuniform sampler2D tCount;\nuniform vec2 uTexSize;\n\nvoid main(void) {\n vec2 coords = gl_FragCoord.xy / uTexSize;\n vec4 color = texture2D(tColor, coords);\n float count = texture2D(tCount, coords).r;\n\n gl_FragColor = color / count;\n}\n";
10
10
  //# sourceMappingURL=normalize.frag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/normalize.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,cAAc,GAAG,gRAa7B,CAAC"}
1
+ {"version":3,"file":"normalize.frag.js","sourceRoot":"","sources":["../../../../../../src/mol-gl/shader/compute/color-smoothing/normalize.frag.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,cAAc,GAAG,iVAe7B,CAAC"}
@@ -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 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#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\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)).rgb;\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 #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 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#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\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)).rgb;\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 #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,6llBAsfhC,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"}
@@ -53,11 +53,7 @@ function createExtensions(gl) {
53
53
  // - can't be a required extension because it is not supported by `headless-gl`
54
54
  console.log('Could not find support for "blend_minmax"');
55
55
  }
56
- // TODO: revisit
57
- // switch off VAO support for now
58
- // - https://bugs.chromium.org/p/angleproject/issues/detail?id=6599
59
- // - https://bugs.chromium.org/p/chromium/issues/detail?id=1272238
60
- var vertexArrayObject = null; // getVertexArrayObject(gl);
56
+ var vertexArrayObject = (0, compat_1.getVertexArrayObject)(gl);
61
57
  if (debug_1.isDebugMode && vertexArrayObject === null) {
62
58
  console.log('Could not find support for "vertex_array_object"');
63
59
  }