molstar 3.0.0-dev.3 → 3.0.0-dev.7

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 (552) hide show
  1. package/build/viewer/embedded.html +5 -5
  2. package/build/viewer/index.html +25 -17
  3. package/build/viewer/molstar.css +1 -1
  4. package/build/viewer/molstar.js +1 -1
  5. package/lib/apps/docking-viewer/index.d.ts +2 -1
  6. package/lib/apps/docking-viewer/index.html +8 -8
  7. package/lib/apps/docking-viewer/index.js +87 -74
  8. package/lib/apps/docking-viewer/viewport.js +2 -1
  9. package/lib/apps/viewer/embedded.html +5 -5
  10. package/lib/apps/viewer/index.d.ts +36 -215
  11. package/lib/apps/viewer/index.html +25 -17
  12. package/lib/apps/viewer/index.js +139 -52
  13. package/lib/cli/cifschema/index.d.ts +1 -1
  14. package/lib/cli/cifschema/index.js +15 -35
  15. package/lib/commonjs/apps/docking-viewer/index.d.ts +2 -1
  16. package/lib/commonjs/apps/docking-viewer/index.js +86 -73
  17. package/lib/commonjs/apps/docking-viewer/viewport.js +2 -1
  18. package/lib/commonjs/apps/viewer/index.d.ts +36 -215
  19. package/lib/commonjs/apps/viewer/index.js +139 -52
  20. package/lib/commonjs/cli/cifschema/index.d.ts +1 -1
  21. package/lib/commonjs/cli/cifschema/index.js +15 -35
  22. package/lib/commonjs/examples/alpha-orbitals/index.js +2 -3
  23. package/lib/commonjs/examples/basic-wrapper/index.js +23 -11
  24. package/lib/commonjs/examples/lighting/index.d.ts +1 -1
  25. package/lib/commonjs/examples/lighting/index.js +58 -41
  26. package/lib/commonjs/examples/proteopedia-wrapper/index.js +26 -14
  27. package/lib/commonjs/extensions/alpha-orbitals/transforms.d.ts +0 -1
  28. package/lib/commonjs/extensions/alpha-orbitals/transforms.js +1 -14
  29. package/lib/commonjs/extensions/anvil/behavior.d.ts +7 -0
  30. package/lib/commonjs/extensions/anvil/representation.d.ts +63 -0
  31. package/lib/commonjs/extensions/cellpack/representation.d.ts +13 -0
  32. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +39 -0
  33. package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.d.ts +68 -0
  34. package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.js +236 -0
  35. package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.d.ts +14 -0
  36. package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.js +125 -0
  37. package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.d.ts +12 -0
  38. package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.js +111 -0
  39. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.d.ts +28 -0
  40. package/lib/commonjs/extensions/model-archive/quality-assessment/prop.js +130 -0
  41. package/lib/commonjs/extensions/mp4-export/controls.d.ts +1 -0
  42. package/lib/commonjs/extensions/mp4-export/controls.js +9 -7
  43. package/lib/commonjs/extensions/pdbe/structure-quality-report/prop.js +1 -1
  44. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +7 -0
  45. package/lib/commonjs/extensions/rcsb/assembly-symmetry/prop.js +1 -1
  46. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +13 -0
  47. package/lib/commonjs/extensions/rcsb/validation-report/prop.js +1 -1
  48. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +65 -0
  49. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +8 -8
  50. package/lib/commonjs/mol-canvas3d/canvas3d.js +12 -4
  51. package/lib/commonjs/mol-canvas3d/helper/bounding-sphere-helper.js +3 -2
  52. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +7 -0
  53. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +2 -2
  54. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +7 -0
  55. package/lib/commonjs/mol-canvas3d/helper/handle-helper.js +2 -2
  56. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +6 -0
  57. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +4 -0
  58. package/lib/commonjs/mol-canvas3d/passes/multi-sample.d.ts +2 -1
  59. package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +4 -2
  60. package/lib/commonjs/mol-canvas3d/passes/pick.js +9 -9
  61. package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +1 -0
  62. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +6 -4
  63. package/lib/commonjs/mol-canvas3d/passes/smaa.js +1 -1
  64. package/lib/commonjs/mol-geo/geometry/base.d.ts +20 -0
  65. package/lib/commonjs/mol-geo/geometry/base.js +20 -1
  66. package/lib/commonjs/mol-geo/geometry/clipping-data.d.ts +1 -3
  67. package/lib/commonjs/mol-geo/geometry/clipping-data.js +3 -8
  68. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +14 -1
  69. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +5 -3
  70. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +11 -0
  71. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +2 -2
  72. package/lib/commonjs/mol-geo/geometry/image/image.d.ts +11 -0
  73. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +12 -0
  74. package/lib/commonjs/mol-geo/geometry/lines/lines.js +1 -1
  75. package/lib/commonjs/mol-geo/geometry/marker-data.d.ts +0 -1
  76. package/lib/commonjs/mol-geo/geometry/marker-data.js +0 -4
  77. package/lib/commonjs/mol-geo/geometry/mesh/color-smoothing.js +1 -1
  78. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +13 -0
  79. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +5 -3
  80. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +11 -0
  81. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +13 -0
  82. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +5 -3
  83. package/lib/commonjs/mol-geo/geometry/substance-data.js +3 -3
  84. package/lib/commonjs/mol-geo/geometry/text/text.d.ts +11 -0
  85. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +3 -3
  86. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +13 -0
  87. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +5 -3
  88. package/lib/commonjs/mol-gl/render-object.d.ts +2 -1
  89. package/lib/commonjs/mol-gl/render-object.js +10 -10
  90. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +41 -33
  91. package/lib/commonjs/mol-gl/renderable/cylinders.js +4 -4
  92. package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +11 -5
  93. package/lib/commonjs/mol-gl/renderable/direct-volume.js +3 -3
  94. package/lib/commonjs/mol-gl/renderable/image.d.ts +10 -4
  95. package/lib/commonjs/mol-gl/renderable/image.js +2 -2
  96. package/lib/commonjs/mol-gl/renderable/lines.d.ts +38 -32
  97. package/lib/commonjs/mol-gl/renderable/lines.js +3 -3
  98. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +38 -30
  99. package/lib/commonjs/mol-gl/renderable/mesh.js +4 -4
  100. package/lib/commonjs/mol-gl/renderable/points.d.ts +10 -4
  101. package/lib/commonjs/mol-gl/renderable/points.js +2 -2
  102. package/lib/commonjs/mol-gl/renderable/schema.d.ts +10 -11
  103. package/lib/commonjs/mol-gl/renderable/schema.js +6 -12
  104. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +41 -33
  105. package/lib/commonjs/mol-gl/renderable/spheres.js +4 -4
  106. package/lib/commonjs/mol-gl/renderable/text.d.ts +10 -4
  107. package/lib/commonjs/mol-gl/renderable/text.js +2 -2
  108. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +13 -5
  109. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +3 -3
  110. package/lib/commonjs/mol-gl/renderable.d.ts +0 -1
  111. package/lib/commonjs/mol-gl/renderer.d.ts +12 -12
  112. package/lib/commonjs/mol-gl/renderer.js +12 -74
  113. package/lib/commonjs/mol-gl/scene.d.ts +2 -2
  114. package/lib/commonjs/mol-gl/scene.js +7 -5
  115. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  116. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  117. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  118. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  119. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.d.ts +1 -1
  120. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +1 -1
  121. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  122. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  123. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  124. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  125. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  126. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  127. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  128. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +1 -1
  129. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.d.ts +1 -1
  130. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +1 -1
  131. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
  132. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +1 -1
  133. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.d.ts +1 -1
  134. package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js +1 -1
  135. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  136. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  137. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  138. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  139. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
  140. package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
  141. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  142. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  143. package/lib/commonjs/mol-gl/shader/mesh.vert.d.ts +1 -1
  144. package/lib/commonjs/mol-gl/shader/mesh.vert.js +1 -1
  145. package/lib/commonjs/mol-gl/shader/postprocessing.frag.d.ts +1 -1
  146. package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +1 -1
  147. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  148. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  149. package/lib/commonjs/mol-gl/shader-code.d.ts +3 -1
  150. package/lib/commonjs/mol-gl/shader-code.js +42 -13
  151. package/lib/commonjs/mol-gl/webgl/render-item.d.ts +7 -6
  152. package/lib/commonjs/mol-gl/webgl/render-item.js +10 -8
  153. package/lib/commonjs/mol-gl/webgl/resources.js +8 -1
  154. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +326 -1
  155. package/lib/commonjs/mol-io/reader/cif/schema/mmcif.js +326 -1
  156. package/lib/commonjs/mol-math/geometry/symmetry-operator.js +3 -2
  157. package/lib/commonjs/mol-math/linear-algebra/3d/quat.d.ts +9 -1
  158. package/lib/commonjs/mol-math/linear-algebra/3d/quat.js +20 -1
  159. package/lib/commonjs/mol-model/structure/model/model.d.ts +1 -0
  160. package/lib/commonjs/mol-model/structure/model/model.js +15 -5
  161. package/lib/commonjs/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -1
  162. package/lib/commonjs/mol-model/structure/model/properties/atomic/hierarchy.js +1 -1
  163. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-derived.d.ts +1 -1
  164. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-derived.js +4 -1
  165. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-index.d.ts +1 -1
  166. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-index.js +12 -1
  167. package/lib/commonjs/mol-model/structure/model/types.js +9 -0
  168. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +2 -0
  169. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +26 -0
  170. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +13 -0
  171. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +13 -0
  172. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +39 -0
  173. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +52 -0
  174. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +12 -0
  175. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +3 -1
  176. package/lib/commonjs/mol-plugin/commands.d.ts +4 -4
  177. package/lib/commonjs/mol-plugin/config.d.ts +2 -0
  178. package/lib/commonjs/mol-plugin/config.js +10 -3
  179. package/lib/commonjs/mol-plugin/spec.js +1 -0
  180. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +21 -0
  181. package/lib/commonjs/mol-plugin-state/actions/structure.d.ts +7 -1
  182. package/lib/commonjs/mol-plugin-state/actions/structure.js +150 -72
  183. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +5 -355
  184. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.js +13 -8
  185. package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -71
  186. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.d.ts +1 -1
  187. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.js +1 -1
  188. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +33 -19
  189. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +15 -1
  190. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +13 -8
  191. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +54 -0
  192. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +3 -2
  193. package/lib/commonjs/mol-plugin-ui/controls/parameters.js +11 -6
  194. package/lib/commonjs/mol-plugin-ui/hooks/use-behavior.d.ts +1 -1
  195. package/lib/commonjs/mol-plugin-ui/hooks/use-behavior.js +8 -17
  196. package/lib/commonjs/mol-plugin-ui/index.d.ts +4 -4
  197. package/lib/commonjs/mol-plugin-ui/index.js +13 -16
  198. package/lib/commonjs/mol-plugin-ui/plugin.d.ts +1 -1
  199. package/lib/commonjs/mol-plugin-ui/plugin.js +76 -10
  200. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +2 -6
  201. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +13 -0
  202. package/lib/commonjs/mol-repr/shape/loci/common.d.ts +11 -0
  203. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +13 -0
  204. package/lib/commonjs/mol-repr/shape/loci/distance.d.ts +11 -0
  205. package/lib/commonjs/mol-repr/shape/loci/label.d.ts +11 -0
  206. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +13 -0
  207. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +13 -0
  208. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +13 -0
  209. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +72 -0
  210. package/lib/commonjs/mol-repr/structure/params.d.ts +96 -0
  211. package/lib/commonjs/mol-repr/structure/registry.d.ts +175 -1
  212. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +39 -0
  213. package/lib/commonjs/mol-repr/structure/representation/backbone.js +2 -1
  214. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +39 -0
  215. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.js +2 -1
  216. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +39 -0
  217. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.js +2 -1
  218. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +39 -0
  219. package/lib/commonjs/mol-repr/structure/representation/cartoon.js +2 -1
  220. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +39 -0
  221. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.js +2 -1
  222. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +39 -0
  223. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.js +2 -1
  224. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +33 -0
  225. package/lib/commonjs/mol-repr/structure/representation/label.d.ts +36 -3
  226. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +33 -0
  227. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +39 -0
  228. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.js +2 -1
  229. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +39 -0
  230. package/lib/commonjs/mol-repr/structure/representation/orientation.js +2 -1
  231. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +33 -0
  232. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +39 -0
  233. package/lib/commonjs/mol-repr/structure/representation/putty.js +2 -1
  234. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +39 -0
  235. package/lib/commonjs/mol-repr/structure/representation/spacefill.js +2 -1
  236. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +96 -0
  237. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +26 -0
  238. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +11 -0
  239. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +26 -0
  240. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -2
  241. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +11 -0
  242. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +2 -2
  243. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +13 -0
  244. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +13 -0
  245. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +13 -0
  246. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +11 -0
  247. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +11 -0
  248. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +26 -0
  249. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +13 -0
  250. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +22 -0
  251. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +52 -0
  252. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +11 -0
  253. package/lib/commonjs/mol-repr/structure/visual/label-text.d.ts +13 -2
  254. package/lib/commonjs/mol-repr/structure/visual/label-text.js +2 -2
  255. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +13 -0
  256. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +11 -0
  257. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +13 -0
  258. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +13 -0
  259. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +13 -0
  260. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +26 -0
  261. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +26 -0
  262. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +13 -0
  263. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +13 -0
  264. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +13 -0
  265. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +1 -1
  266. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +13 -0
  267. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +1 -1
  268. package/lib/commonjs/mol-repr/visual.js +11 -7
  269. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +33 -0
  270. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +76 -0
  271. package/lib/commonjs/mol-repr/volume/isosurface.js +2 -1
  272. package/lib/commonjs/mol-repr/volume/registry.d.ts +35 -0
  273. package/lib/commonjs/mol-repr/volume/representation.d.ts +11 -0
  274. package/lib/commonjs/mol-repr/volume/slice.d.ts +33 -0
  275. package/lib/commonjs/mol-theme/clipping.d.ts +7 -15
  276. package/lib/commonjs/mol-theme/clipping.js +5 -12
  277. package/lib/commonjs/mol-theme/color/illustrative.d.ts +2 -0
  278. package/lib/commonjs/mol-theme/color/illustrative.js +2 -2
  279. package/lib/commonjs/mol-theme/color.d.ts +1 -0
  280. package/lib/commonjs/mol-util/clip.d.ts +49 -0
  281. package/lib/commonjs/mol-util/clip.js +97 -0
  282. package/lib/commonjs/mol-util/material.d.ts +5 -1
  283. package/lib/commonjs/mol-util/material.js +9 -7
  284. package/lib/examples/alpha-orbitals/index.html +1 -0
  285. package/lib/examples/alpha-orbitals/index.js +3 -4
  286. package/lib/examples/basic-wrapper/index.html +3 -2
  287. package/lib/examples/basic-wrapper/index.js +24 -12
  288. package/lib/examples/lighting/index.d.ts +1 -1
  289. package/lib/examples/lighting/index.html +4 -2
  290. package/lib/examples/lighting/index.js +59 -42
  291. package/lib/examples/proteopedia-wrapper/index.html +4 -3
  292. package/lib/examples/proteopedia-wrapper/index.js +27 -15
  293. package/lib/extensions/alpha-orbitals/transforms.d.ts +0 -1
  294. package/lib/extensions/alpha-orbitals/transforms.js +1 -14
  295. package/lib/extensions/anvil/behavior.d.ts +7 -0
  296. package/lib/extensions/anvil/representation.d.ts +63 -0
  297. package/lib/extensions/cellpack/representation.d.ts +13 -0
  298. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +39 -0
  299. package/lib/extensions/model-archive/quality-assessment/behavior.d.ts +68 -0
  300. package/lib/extensions/model-archive/quality-assessment/behavior.js +233 -0
  301. package/lib/extensions/model-archive/quality-assessment/color/plddt.d.ts +14 -0
  302. package/lib/extensions/model-archive/quality-assessment/color/plddt.js +120 -0
  303. package/lib/extensions/model-archive/quality-assessment/color/qmean.d.ts +12 -0
  304. package/lib/extensions/model-archive/quality-assessment/color/qmean.js +106 -0
  305. package/lib/extensions/model-archive/quality-assessment/prop.d.ts +28 -0
  306. package/lib/extensions/model-archive/quality-assessment/prop.js +127 -0
  307. package/lib/extensions/mp4-export/controls.d.ts +1 -0
  308. package/lib/extensions/mp4-export/controls.js +9 -7
  309. package/lib/extensions/pdbe/structure-quality-report/prop.js +1 -1
  310. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +7 -0
  311. package/lib/extensions/rcsb/assembly-symmetry/prop.js +1 -1
  312. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +13 -0
  313. package/lib/extensions/rcsb/validation-report/prop.js +1 -1
  314. package/lib/extensions/rcsb/validation-report/representation.d.ts +65 -0
  315. package/lib/mol-canvas3d/canvas3d.d.ts +8 -8
  316. package/lib/mol-canvas3d/canvas3d.js +12 -4
  317. package/lib/mol-canvas3d/helper/bounding-sphere-helper.js +3 -2
  318. package/lib/mol-canvas3d/helper/camera-helper.d.ts +7 -0
  319. package/lib/mol-canvas3d/helper/camera-helper.js +2 -2
  320. package/lib/mol-canvas3d/helper/handle-helper.d.ts +7 -0
  321. package/lib/mol-canvas3d/helper/handle-helper.js +2 -2
  322. package/lib/mol-canvas3d/helper/helper.d.ts +6 -0
  323. package/lib/mol-canvas3d/passes/image.d.ts +4 -0
  324. package/lib/mol-canvas3d/passes/multi-sample.d.ts +2 -1
  325. package/lib/mol-canvas3d/passes/multi-sample.js +4 -2
  326. package/lib/mol-canvas3d/passes/pick.js +9 -9
  327. package/lib/mol-canvas3d/passes/postprocessing.d.ts +1 -0
  328. package/lib/mol-canvas3d/passes/postprocessing.js +6 -4
  329. package/lib/mol-canvas3d/passes/smaa.js +1 -1
  330. package/lib/mol-geo/geometry/base.d.ts +20 -0
  331. package/lib/mol-geo/geometry/base.js +20 -1
  332. package/lib/mol-geo/geometry/clipping-data.d.ts +1 -3
  333. package/lib/mol-geo/geometry/clipping-data.js +3 -8
  334. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +14 -1
  335. package/lib/mol-geo/geometry/cylinders/cylinders.js +5 -3
  336. package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +11 -0
  337. package/lib/mol-geo/geometry/direct-volume/direct-volume.js +2 -2
  338. package/lib/mol-geo/geometry/image/image.d.ts +11 -0
  339. package/lib/mol-geo/geometry/lines/lines.d.ts +12 -0
  340. package/lib/mol-geo/geometry/lines/lines.js +1 -1
  341. package/lib/mol-geo/geometry/marker-data.d.ts +0 -1
  342. package/lib/mol-geo/geometry/marker-data.js +0 -4
  343. package/lib/mol-geo/geometry/mesh/color-smoothing.js +1 -1
  344. package/lib/mol-geo/geometry/mesh/mesh.d.ts +13 -0
  345. package/lib/mol-geo/geometry/mesh/mesh.js +5 -3
  346. package/lib/mol-geo/geometry/points/points.d.ts +11 -0
  347. package/lib/mol-geo/geometry/spheres/spheres.d.ts +13 -0
  348. package/lib/mol-geo/geometry/spheres/spheres.js +5 -3
  349. package/lib/mol-geo/geometry/substance-data.js +3 -3
  350. package/lib/mol-geo/geometry/text/text.d.ts +11 -0
  351. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +3 -3
  352. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +13 -0
  353. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +5 -3
  354. package/lib/mol-gl/render-object.d.ts +2 -1
  355. package/lib/mol-gl/render-object.js +10 -10
  356. package/lib/mol-gl/renderable/cylinders.d.ts +41 -33
  357. package/lib/mol-gl/renderable/cylinders.js +5 -5
  358. package/lib/mol-gl/renderable/direct-volume.d.ts +11 -5
  359. package/lib/mol-gl/renderable/direct-volume.js +3 -3
  360. package/lib/mol-gl/renderable/image.d.ts +10 -4
  361. package/lib/mol-gl/renderable/image.js +2 -2
  362. package/lib/mol-gl/renderable/lines.d.ts +38 -32
  363. package/lib/mol-gl/renderable/lines.js +4 -4
  364. package/lib/mol-gl/renderable/mesh.d.ts +38 -30
  365. package/lib/mol-gl/renderable/mesh.js +5 -5
  366. package/lib/mol-gl/renderable/points.d.ts +10 -4
  367. package/lib/mol-gl/renderable/points.js +2 -2
  368. package/lib/mol-gl/renderable/schema.d.ts +10 -11
  369. package/lib/mol-gl/renderable/schema.js +6 -12
  370. package/lib/mol-gl/renderable/spheres.d.ts +41 -33
  371. package/lib/mol-gl/renderable/spheres.js +5 -5
  372. package/lib/mol-gl/renderable/text.d.ts +10 -4
  373. package/lib/mol-gl/renderable/text.js +2 -2
  374. package/lib/mol-gl/renderable/texture-mesh.d.ts +13 -5
  375. package/lib/mol-gl/renderable/texture-mesh.js +3 -3
  376. package/lib/mol-gl/renderable.d.ts +0 -1
  377. package/lib/mol-gl/renderer.d.ts +12 -12
  378. package/lib/mol-gl/renderer.js +13 -75
  379. package/lib/mol-gl/scene.d.ts +2 -2
  380. package/lib/mol-gl/scene.js +7 -5
  381. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  382. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  383. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  384. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  385. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.d.ts +1 -1
  386. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +1 -1
  387. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  388. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  389. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  390. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  391. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  392. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  393. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  394. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +1 -1
  395. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.d.ts +1 -1
  396. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +1 -1
  397. package/lib/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
  398. package/lib/mol-gl/shader/chunks/common.glsl.js +1 -1
  399. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.d.ts +1 -1
  400. package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js +1 -1
  401. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  402. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  403. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  404. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  405. package/lib/mol-gl/shader/image.frag.d.ts +1 -1
  406. package/lib/mol-gl/shader/image.frag.js +1 -1
  407. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  408. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  409. package/lib/mol-gl/shader/mesh.vert.d.ts +1 -1
  410. package/lib/mol-gl/shader/mesh.vert.js +1 -1
  411. package/lib/mol-gl/shader/postprocessing.frag.d.ts +1 -1
  412. package/lib/mol-gl/shader/postprocessing.frag.js +1 -1
  413. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  414. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  415. package/lib/mol-gl/shader-code.d.ts +3 -1
  416. package/lib/mol-gl/shader-code.js +42 -13
  417. package/lib/mol-gl/webgl/render-item.d.ts +7 -6
  418. package/lib/mol-gl/webgl/render-item.js +8 -6
  419. package/lib/mol-gl/webgl/resources.js +8 -1
  420. package/lib/mol-io/reader/cif/schema/mmcif.d.ts +326 -1
  421. package/lib/mol-io/reader/cif/schema/mmcif.js +326 -1
  422. package/lib/mol-math/geometry/symmetry-operator.js +3 -2
  423. package/lib/mol-math/linear-algebra/3d/quat.d.ts +9 -1
  424. package/lib/mol-math/linear-algebra/3d/quat.js +20 -1
  425. package/lib/mol-model/structure/model/model.d.ts +1 -0
  426. package/lib/mol-model/structure/model/model.js +15 -5
  427. package/lib/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -1
  428. package/lib/mol-model/structure/model/properties/atomic/hierarchy.js +1 -1
  429. package/lib/mol-model/structure/model/properties/utils/atomic-derived.d.ts +1 -1
  430. package/lib/mol-model/structure/model/properties/utils/atomic-derived.js +5 -2
  431. package/lib/mol-model/structure/model/properties/utils/atomic-index.d.ts +1 -1
  432. package/lib/mol-model/structure/model/properties/utils/atomic-index.js +12 -1
  433. package/lib/mol-model/structure/model/types.js +9 -0
  434. package/lib/mol-model/structure/structure/unit/rings.js +2 -0
  435. package/lib/mol-model-formats/shape/ply.d.ts +26 -0
  436. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +13 -0
  437. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +13 -0
  438. package/lib/mol-model-props/computed/representations/interactions.d.ts +39 -0
  439. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +52 -0
  440. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +12 -0
  441. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +3 -1
  442. package/lib/mol-plugin/commands.d.ts +4 -4
  443. package/lib/mol-plugin/config.d.ts +2 -0
  444. package/lib/mol-plugin/config.js +9 -3
  445. package/lib/mol-plugin/spec.js +1 -0
  446. package/lib/mol-plugin/util/viewport-screenshot.d.ts +21 -0
  447. package/lib/mol-plugin/version.js +2 -2
  448. package/lib/mol-plugin-state/actions/structure.d.ts +7 -1
  449. package/lib/mol-plugin-state/actions/structure.js +150 -72
  450. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +5 -355
  451. package/lib/mol-plugin-state/builder/structure/hierarchy-preset.js +14 -9
  452. package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -71
  453. package/lib/mol-plugin-state/helpers/structure-clipping.d.ts +1 -1
  454. package/lib/mol-plugin-state/helpers/structure-clipping.js +1 -1
  455. package/lib/mol-plugin-state/helpers/structure-selection-query.js +34 -20
  456. package/lib/mol-plugin-state/manager/structure/component.d.ts +15 -1
  457. package/lib/mol-plugin-state/manager/structure/component.js +14 -9
  458. package/lib/mol-plugin-state/transforms/representation.d.ts +54 -0
  459. package/lib/mol-plugin-ui/controls/parameters.d.ts +3 -2
  460. package/lib/mol-plugin-ui/controls/parameters.js +12 -7
  461. package/lib/mol-plugin-ui/hooks/use-behavior.d.ts +1 -1
  462. package/lib/mol-plugin-ui/hooks/use-behavior.js +9 -18
  463. package/lib/mol-plugin-ui/index.d.ts +4 -4
  464. package/lib/mol-plugin-ui/index.js +11 -13
  465. package/lib/mol-plugin-ui/plugin.d.ts +1 -1
  466. package/lib/mol-plugin-ui/plugin.js +76 -10
  467. package/lib/mol-plugin-ui/skin/base/components/misc.scss +27 -0
  468. package/lib/mol-plugin-ui/viewport/simple-settings.js +2 -6
  469. package/lib/mol-repr/shape/loci/angle.d.ts +13 -0
  470. package/lib/mol-repr/shape/loci/common.d.ts +11 -0
  471. package/lib/mol-repr/shape/loci/dihedral.d.ts +13 -0
  472. package/lib/mol-repr/shape/loci/distance.d.ts +11 -0
  473. package/lib/mol-repr/shape/loci/label.d.ts +11 -0
  474. package/lib/mol-repr/shape/loci/orientation.d.ts +13 -0
  475. package/lib/mol-repr/shape/loci/plane.d.ts +13 -0
  476. package/lib/mol-repr/shape/model/unitcell.d.ts +13 -0
  477. package/lib/mol-repr/structure/complex-visual.d.ts +72 -0
  478. package/lib/mol-repr/structure/params.d.ts +96 -0
  479. package/lib/mol-repr/structure/registry.d.ts +175 -1
  480. package/lib/mol-repr/structure/representation/backbone.d.ts +39 -0
  481. package/lib/mol-repr/structure/representation/backbone.js +2 -1
  482. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +39 -0
  483. package/lib/mol-repr/structure/representation/ball-and-stick.js +2 -1
  484. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +39 -0
  485. package/lib/mol-repr/structure/representation/carbohydrate.js +2 -1
  486. package/lib/mol-repr/structure/representation/cartoon.d.ts +39 -0
  487. package/lib/mol-repr/structure/representation/cartoon.js +2 -1
  488. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +39 -0
  489. package/lib/mol-repr/structure/representation/ellipsoid.js +2 -1
  490. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +39 -0
  491. package/lib/mol-repr/structure/representation/gaussian-surface.js +2 -1
  492. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +33 -0
  493. package/lib/mol-repr/structure/representation/label.d.ts +36 -3
  494. package/lib/mol-repr/structure/representation/line.d.ts +33 -0
  495. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +39 -0
  496. package/lib/mol-repr/structure/representation/molecular-surface.js +2 -1
  497. package/lib/mol-repr/structure/representation/orientation.d.ts +39 -0
  498. package/lib/mol-repr/structure/representation/orientation.js +2 -1
  499. package/lib/mol-repr/structure/representation/point.d.ts +33 -0
  500. package/lib/mol-repr/structure/representation/putty.d.ts +39 -0
  501. package/lib/mol-repr/structure/representation/putty.js +2 -1
  502. package/lib/mol-repr/structure/representation/spacefill.d.ts +39 -0
  503. package/lib/mol-repr/structure/representation/spacefill.js +2 -1
  504. package/lib/mol-repr/structure/units-visual.d.ts +96 -0
  505. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +26 -0
  506. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +11 -0
  507. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +26 -0
  508. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -2
  509. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +11 -0
  510. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +2 -2
  511. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +13 -0
  512. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +13 -0
  513. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +13 -0
  514. package/lib/mol-repr/structure/visual/element-cross.d.ts +11 -0
  515. package/lib/mol-repr/structure/visual/element-point.d.ts +11 -0
  516. package/lib/mol-repr/structure/visual/element-sphere.d.ts +26 -0
  517. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +13 -0
  518. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +22 -0
  519. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +52 -0
  520. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +11 -0
  521. package/lib/mol-repr/structure/visual/label-text.d.ts +13 -2
  522. package/lib/mol-repr/structure/visual/label-text.js +2 -2
  523. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +13 -0
  524. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +11 -0
  525. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +13 -0
  526. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +13 -0
  527. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +13 -0
  528. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +26 -0
  529. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +26 -0
  530. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +13 -0
  531. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +13 -0
  532. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +13 -0
  533. package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +1 -1
  534. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +13 -0
  535. package/lib/mol-repr/structure/visual/util/bond.js +1 -1
  536. package/lib/mol-repr/visual.js +11 -7
  537. package/lib/mol-repr/volume/direct-volume.d.ts +33 -0
  538. package/lib/mol-repr/volume/isosurface.d.ts +76 -0
  539. package/lib/mol-repr/volume/isosurface.js +2 -1
  540. package/lib/mol-repr/volume/registry.d.ts +35 -0
  541. package/lib/mol-repr/volume/representation.d.ts +11 -0
  542. package/lib/mol-repr/volume/slice.d.ts +33 -0
  543. package/lib/mol-theme/clipping.d.ts +7 -15
  544. package/lib/mol-theme/clipping.js +5 -12
  545. package/lib/mol-theme/color/illustrative.d.ts +2 -0
  546. package/lib/mol-theme/color/illustrative.js +2 -2
  547. package/lib/mol-theme/color.d.ts +1 -0
  548. package/lib/mol-util/clip.d.ts +49 -0
  549. package/lib/mol-util/clip.js +93 -0
  550. package/lib/mol-util/material.d.ts +5 -1
  551. package/lib/mol-util/material.js +9 -7
  552. package/package.json +5 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  */
@@ -12,14 +12,14 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.SpheresSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), dDoubleSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean') });
16
- function SpheresRenderable(ctx, id, values, state, materialId) {
15
+ exports.SpheresSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), elements: (0, schema_1.ElementsSpec)('uint32'), padding: (0, schema_1.ValueSpec)('number'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f') });
16
+ function SpheresRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.SpheresSchema);
18
18
  var internalValues = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.SpheresShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.SpheresRenderable = SpheresRenderable;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Renderable, RenderableState } from '../renderable';
7
7
  import { WebGLContext } from '../webgl/context';
8
+ import { GraphicsRenderVariant } from '../webgl/render-item';
8
9
  import { AttributeSpec, UniformSpec, Values, TextureSpec, ElementsSpec, ValueSpec } from './schema';
9
10
  export declare const TextSchema: {
10
11
  aGroup: AttributeSpec<"float32">;
@@ -28,11 +29,19 @@ export declare const TextSchema: {
28
29
  dSizeType: import("./schema").DefineSpec<"string">;
29
30
  uSizeFactor: UniformSpec<"f">;
30
31
  dLightCount: import("./schema").DefineSpec<"number">;
32
+ dClipObjectCount: import("./schema").DefineSpec<"number">;
33
+ dClipVariant: import("./schema").DefineSpec<"string">;
34
+ uClipObjectType: UniformSpec<"i[]">;
35
+ uClipObjectInvert: UniformSpec<"b[]">;
36
+ uClipObjectPosition: UniformSpec<"v3[]">;
37
+ uClipObjectRotation: UniformSpec<"v4[]">;
38
+ uClipObjectScale: UniformSpec<"v3[]">;
31
39
  aInstance: AttributeSpec<"float32">;
32
40
  aTransform: AttributeSpec<"float32">;
33
41
  uAlpha: UniformSpec<"f">;
34
42
  uMetalness: UniformSpec<"f">;
35
43
  uRoughness: UniformSpec<"f">;
44
+ uBumpiness: UniformSpec<"f">;
36
45
  uVertexCount: UniformSpec<"i">;
37
46
  uInstanceCount: UniformSpec<"i">;
38
47
  uGroupCount: UniformSpec<"i">;
@@ -46,8 +55,6 @@ export declare const TextSchema: {
46
55
  hasReflection: ValueSpec<"boolean">;
47
56
  boundingSphere: ValueSpec<"sphere">;
48
57
  invariantBoundingSphere: ValueSpec<"sphere">;
49
- dClipObjectCount: import("./schema").DefineSpec<"number">;
50
- dClipVariant: import("./schema").DefineSpec<"string">;
51
58
  uClippingTexDim: UniformSpec<"v2">;
52
59
  tClipping: TextureSpec<"image-uint8">;
53
60
  dClipping: import("./schema").DefineSpec<"boolean">;
@@ -76,7 +83,6 @@ export declare const TextSchema: {
76
83
  uMarker: UniformSpec<"f">;
77
84
  uMarkerTexDim: UniformSpec<"v2">;
78
85
  tMarker: TextureSpec<"image-uint8">;
79
- dMarkerType: import("./schema").DefineSpec<"string">;
80
86
  markerAverage: ValueSpec<"number">;
81
87
  markerStatus: ValueSpec<"number">;
82
88
  uColor: UniformSpec<"v3">;
@@ -91,4 +97,4 @@ export declare const TextSchema: {
91
97
  };
92
98
  export declare type TextSchema = typeof TextSchema;
93
99
  export declare type TextValues = Values<TextSchema>;
94
- export declare function TextRenderable(ctx: WebGLContext, id: number, values: TextValues, state: RenderableState, materialId: number): Renderable<TextValues>;
100
+ export declare function TextRenderable(ctx: WebGLContext, id: number, values: TextValues, state: RenderableState, materialId: number, variants: GraphicsRenderVariant[]): Renderable<TextValues>;
@@ -13,13 +13,13 @@ var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
15
  exports.TextSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), schema_1.SizeSchema), { aGroup: (0, schema_1.AttributeSpec)('float32', 1, 0), aPosition: (0, schema_1.AttributeSpec)('float32', 3, 0), aMapping: (0, schema_1.AttributeSpec)('float32', 2, 0), aDepth: (0, schema_1.AttributeSpec)('float32', 1, 0), elements: (0, schema_1.ElementsSpec)('uint32'), aTexCoord: (0, schema_1.AttributeSpec)('float32', 2, 0), tFont: (0, schema_1.TextureSpec)('image-uint8', 'alpha', 'ubyte', 'linear'), padding: (0, schema_1.ValueSpec)('number'), uBorderWidth: (0, schema_1.UniformSpec)('f'), uBorderColor: (0, schema_1.UniformSpec)('v3'), uOffsetX: (0, schema_1.UniformSpec)('f'), uOffsetY: (0, schema_1.UniformSpec)('f'), uOffsetZ: (0, schema_1.UniformSpec)('f'), uBackgroundColor: (0, schema_1.UniformSpec)('v3'), uBackgroundOpacity: (0, schema_1.UniformSpec)('f') });
16
- function TextRenderable(ctx, id, values, state, materialId) {
16
+ function TextRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.TextSchema);
18
18
  var internalValues = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.TextShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.TextRenderable = TextRenderable;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Renderable, RenderableState } from '../renderable';
7
7
  import { WebGLContext } from '../webgl/context';
8
+ import { GraphicsRenderVariant } from '../webgl/render-item';
8
9
  import { DefineSpec, Values, UniformSpec, TextureSpec, ValueSpec } from './schema';
9
10
  export declare const TextureMeshSchema: {
10
11
  uGeoTexDim: UniformSpec<"v2">;
@@ -12,18 +13,28 @@ export declare const TextureMeshSchema: {
12
13
  tGroup: TextureSpec<"texture">;
13
14
  tNormal: TextureSpec<"texture">;
14
15
  dFlatShaded: DefineSpec<"boolean">;
15
- dDoubleSided: DefineSpec<"boolean">;
16
+ uDoubleSided: UniformSpec<"b">;
16
17
  dFlipSided: DefineSpec<"boolean">;
17
18
  dIgnoreLight: DefineSpec<"boolean">;
18
19
  dXrayShaded: DefineSpec<"boolean">;
19
20
  dGeoTexture: DefineSpec<"boolean">;
21
+ uBumpFrequency: UniformSpec<"f">;
22
+ uBumpAmplitude: UniformSpec<"f">;
20
23
  meta: ValueSpec<"unknown">;
21
24
  dLightCount: DefineSpec<"number">;
25
+ dClipObjectCount: DefineSpec<"number">;
26
+ dClipVariant: DefineSpec<"string">;
27
+ uClipObjectType: UniformSpec<"i[]">;
28
+ uClipObjectInvert: UniformSpec<"b[]">;
29
+ uClipObjectPosition: UniformSpec<"v3[]">;
30
+ uClipObjectRotation: UniformSpec<"v4[]">;
31
+ uClipObjectScale: UniformSpec<"v3[]">;
22
32
  aInstance: import("./schema").AttributeSpec<"float32">;
23
33
  aTransform: import("./schema").AttributeSpec<"float32">;
24
34
  uAlpha: UniformSpec<"f">;
25
35
  uMetalness: UniformSpec<"f">;
26
36
  uRoughness: UniformSpec<"f">;
37
+ uBumpiness: UniformSpec<"f">;
27
38
  uVertexCount: UniformSpec<"i">;
28
39
  uInstanceCount: UniformSpec<"i">;
29
40
  uGroupCount: UniformSpec<"i">;
@@ -37,8 +48,6 @@ export declare const TextureMeshSchema: {
37
48
  hasReflection: ValueSpec<"boolean">;
38
49
  boundingSphere: ValueSpec<"sphere">;
39
50
  invariantBoundingSphere: ValueSpec<"sphere">;
40
- dClipObjectCount: DefineSpec<"number">;
41
- dClipVariant: DefineSpec<"string">;
42
51
  uClippingTexDim: UniformSpec<"v2">;
43
52
  tClipping: TextureSpec<"image-uint8">;
44
53
  dClipping: DefineSpec<"boolean">;
@@ -67,7 +76,6 @@ export declare const TextureMeshSchema: {
67
76
  uMarker: UniformSpec<"f">;
68
77
  uMarkerTexDim: UniformSpec<"v2">;
69
78
  tMarker: TextureSpec<"image-uint8">;
70
- dMarkerType: DefineSpec<"string">;
71
79
  markerAverage: ValueSpec<"number">;
72
80
  markerStatus: ValueSpec<"number">;
73
81
  uColor: UniformSpec<"v3">;
@@ -82,4 +90,4 @@ export declare const TextureMeshSchema: {
82
90
  };
83
91
  export declare type TextureMeshSchema = typeof TextureMeshSchema;
84
92
  export declare type TextureMeshValues = Values<TextureMeshSchema>;
85
- export declare function TextureMeshRenderable(ctx: WebGLContext, id: number, values: TextureMeshValues, state: RenderableState, materialId: number): Renderable<TextureMeshValues>;
93
+ export declare function TextureMeshRenderable(ctx: WebGLContext, id: number, values: TextureMeshValues, state: RenderableState, materialId: number, variants: GraphicsRenderVariant[]): Renderable<TextureMeshValues>;
@@ -12,14 +12,14 @@ var render_item_1 = require("../webgl/render-item");
12
12
  var schema_1 = require("./schema");
13
13
  var shader_code_1 = require("../shader-code");
14
14
  var mol_util_1 = require("../../mol-util");
15
- exports.TextureMeshSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), { uGeoTexDim: (0, schema_1.UniformSpec)('v2', 'buffered'), tPosition: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), tGroup: (0, schema_1.TextureSpec)('texture', 'alpha', 'float', 'nearest'), tNormal: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), dFlatShaded: (0, schema_1.DefineSpec)('boolean'), dDoubleSided: (0, schema_1.DefineSpec)('boolean'), dFlipSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), dGeoTexture: (0, schema_1.DefineSpec)('boolean'), meta: (0, schema_1.ValueSpec)('unknown') });
16
- function TextureMeshRenderable(ctx, id, values, state, materialId) {
15
+ exports.TextureMeshSchema = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.BaseSchema), { uGeoTexDim: (0, schema_1.UniformSpec)('v2', 'buffered'), tPosition: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), tGroup: (0, schema_1.TextureSpec)('texture', 'alpha', 'float', 'nearest'), tNormal: (0, schema_1.TextureSpec)('texture', 'rgb', 'float', 'nearest'), dFlatShaded: (0, schema_1.DefineSpec)('boolean'), uDoubleSided: (0, schema_1.UniformSpec)('b'), dFlipSided: (0, schema_1.DefineSpec)('boolean'), dIgnoreLight: (0, schema_1.DefineSpec)('boolean'), dXrayShaded: (0, schema_1.DefineSpec)('boolean'), dGeoTexture: (0, schema_1.DefineSpec)('boolean'), uBumpFrequency: (0, schema_1.UniformSpec)('f'), uBumpAmplitude: (0, schema_1.UniformSpec)('f'), meta: (0, schema_1.ValueSpec)('unknown') });
16
+ function TextureMeshRenderable(ctx, id, values, state, materialId, variants) {
17
17
  var schema = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, schema_1.GlobalUniformSchema), schema_1.GlobalTextureSchema), schema_1.InternalSchema), exports.TextureMeshSchema);
18
18
  var internalValues = {
19
19
  uObjectId: mol_util_1.ValueCell.create(id),
20
20
  };
21
21
  var shaderCode = shader_code_1.MeshShaderCode;
22
- var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId);
22
+ var renderItem = (0, render_item_1.createGraphicsRenderItem)(ctx, 'triangles', shaderCode, schema, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, values), internalValues), materialId, variants);
23
23
  return (0, renderable_1.createRenderable)(renderItem, values, state);
24
24
  }
25
25
  exports.TextureMeshRenderable = TextureMeshRenderable;
@@ -15,7 +15,6 @@ export declare type RenderableState = {
15
15
  colorOnly: boolean;
16
16
  opaque: boolean;
17
17
  writeDepth: boolean;
18
- noClip: boolean;
19
18
  };
20
19
  export interface Renderable<T extends RenderableValues> {
21
20
  readonly id: number;
@@ -9,7 +9,6 @@ import { WebGLContext } from './webgl/context';
9
9
  import { Color } from '../mol-util/color';
10
10
  import { GraphicsRenderVariant } from './webgl/render-item';
11
11
  import { ParamDefinition as PD } from '../mol-util/param-definition';
12
- import { Clipping } from '../mol-theme/clipping';
13
12
  import { Texture } from './webgl/texture';
14
13
  export interface RendererStats {
15
14
  programCount: number;
@@ -24,13 +23,24 @@ export interface RendererStats {
24
23
  instanceCount: number;
25
24
  instancedDrawCount: number;
26
25
  }
26
+ export declare const enum PickType {
27
+ None = 0,
28
+ Object = 1,
29
+ Instance = 2,
30
+ Group = 3
31
+ }
32
+ export declare const enum MarkingType {
33
+ None = 0,
34
+ Depth = 1,
35
+ Mask = 2
36
+ }
27
37
  interface Renderer {
28
38
  readonly stats: RendererStats;
29
39
  readonly props: Readonly<RendererProps>;
30
40
  clear: (toBackgroundColor: boolean) => void;
31
41
  clearDepth: () => void;
32
42
  update: (camera: ICamera) => void;
33
- renderPick: (group: Scene.Group, camera: ICamera, variant: GraphicsRenderVariant, depthTexture: Texture | null) => void;
43
+ renderPick: (group: Scene.Group, camera: ICamera, variant: GraphicsRenderVariant, depthTexture: Texture | null, pickType: PickType) => void;
34
44
  renderDepth: (group: Scene.Group, camera: ICamera, depthTexture: Texture | null) => void;
35
45
  renderMarkingDepth: (group: Scene.Group, camera: ICamera, depthTexture: Texture | null) => void;
36
46
  renderMarkingMask: (group: Scene.Group, camera: ICamera, depthTexture: Texture | null) => void;
@@ -68,16 +78,6 @@ export declare const RendererParams: {
68
78
  }>>;
69
79
  ambientColor: PD.Color;
70
80
  ambientIntensity: PD.Numeric;
71
- clip: PD.Group<PD.Normalize<{
72
- variant: Clipping.Variant;
73
- objects: PD.Normalize<{
74
- type: any;
75
- invert: any;
76
- position: any;
77
- rotation: any;
78
- scale: any;
79
- }>[];
80
- }>>;
81
81
  };
82
82
  export declare type RendererProps = PD.Values<typeof RendererParams>;
83
83
  declare namespace Renderer {
@@ -11,8 +11,6 @@ var linear_algebra_1 = require("../mol-math/linear-algebra");
11
11
  var color_1 = require("../mol-util/color");
12
12
  var mol_util_1 = require("../mol-util");
13
13
  var param_definition_1 = require("../mol-util/param-definition");
14
- var clipping_1 = require("../mol-theme/clipping");
15
- var string_1 = require("../mol-util/string");
16
14
  var misc_1 = require("../mol-math/misc");
17
15
  var texture_1 = require("./webgl/texture");
18
16
  var array_1 = require("../mol-util/array");
@@ -42,19 +40,6 @@ exports.RendererParams = {
42
40
  }] }),
43
41
  ambientColor: param_definition_1.ParamDefinition.Color(color_1.Color.fromNormalizedRgb(1.0, 1.0, 1.0)),
44
42
  ambientIntensity: param_definition_1.ParamDefinition.Numeric(0.4, { min: 0.0, max: 1.0, step: 0.01 }),
45
- clip: param_definition_1.ParamDefinition.Group({
46
- variant: param_definition_1.ParamDefinition.Select('instance', param_definition_1.ParamDefinition.arrayToOptions(['instance', 'pixel'])),
47
- objects: param_definition_1.ParamDefinition.ObjectList({
48
- type: param_definition_1.ParamDefinition.Select('plane', param_definition_1.ParamDefinition.objectToOptions(clipping_1.Clipping.Type, function (t) { return (0, string_1.stringToWords)(t); })),
49
- invert: param_definition_1.ParamDefinition.Boolean(false),
50
- position: param_definition_1.ParamDefinition.Vec3((0, linear_algebra_1.Vec3)()),
51
- rotation: param_definition_1.ParamDefinition.Group({
52
- axis: param_definition_1.ParamDefinition.Vec3(linear_algebra_1.Vec3.create(1, 0, 0)),
53
- angle: param_definition_1.ParamDefinition.Numeric(0, { min: -180, max: 180, step: 1 }, { description: 'Angle in Degrees' }),
54
- }, { isExpanded: true }),
55
- scale: param_definition_1.ParamDefinition.Vec3(linear_algebra_1.Vec3.create(1, 1, 1)),
56
- }, function (o) { return (0, string_1.stringToWords)(o.type); })
57
- })
58
43
  };
59
44
  var tmpDir = (0, linear_algebra_1.Vec3)();
60
45
  var tmpColor = (0, linear_algebra_1.Vec3)();
@@ -72,28 +57,6 @@ function getLight(props, light) {
72
57
  }
73
58
  return { count: props.length, direction: direction, color: color };
74
59
  }
75
- var tmpQuat = (0, linear_algebra_1.Quat)();
76
- function getClip(props, clip) {
77
- var _a = (clip === null || clip === void 0 ? void 0 : clip.objects) || {
78
- type: (new Array(5)).fill(1),
79
- invert: (new Array(5)).fill(false),
80
- position: (new Array(5 * 3)).fill(0),
81
- rotation: (new Array(5 * 4)).fill(0),
82
- scale: (new Array(5 * 3)).fill(1),
83
- }, type = _a.type, invert = _a.invert, position = _a.position, rotation = _a.rotation, scale = _a.scale;
84
- for (var i = 0, il = props.objects.length; i < il; ++i) {
85
- var p = props.objects[i];
86
- type[i] = clipping_1.Clipping.Type[p.type];
87
- invert[i] = p.invert;
88
- linear_algebra_1.Vec3.toArray(p.position, position, i * 3);
89
- linear_algebra_1.Quat.toArray(linear_algebra_1.Quat.setAxisAngle(tmpQuat, p.rotation.axis, (0, misc_1.degToRad)(p.rotation.angle)), rotation, i * 4);
90
- linear_algebra_1.Vec3.toArray(p.scale, scale, i * 3);
91
- }
92
- return {
93
- variant: props.variant,
94
- objects: { count: props.objects.length, type: type, invert: invert, position: position, rotation: rotation, scale: scale }
95
- };
96
- }
97
60
  var Renderer;
98
61
  (function (Renderer) {
99
62
  function create(ctx, props) {
@@ -101,7 +64,6 @@ var Renderer;
101
64
  var gl = ctx.gl, state = ctx.state, stats = ctx.stats, fragDepth = ctx.extensions.fragDepth;
102
65
  var p = param_definition_1.ParamDefinition.merge(exports.RendererParams, param_definition_1.ParamDefinition.getDefaultValues(exports.RendererParams), props);
103
66
  var light = getLight(p.light);
104
- var clip = getClip(p.clip);
105
67
  var viewport = (0, util_1.Viewport)();
106
68
  var drawingBufferSize = linear_algebra_1.Vec2.create(gl.drawingBufferWidth, gl.drawingBufferHeight);
107
69
  var bgColor = color_1.Color.toVec3Normalized((0, linear_algebra_1.Vec3)(), p.backgroundColor);
@@ -145,12 +107,9 @@ var Renderer;
145
107
  uFogColor: mol_util_1.ValueCell.create(bgColor),
146
108
  uRenderWboit: mol_util_1.ValueCell.create(false),
147
109
  uMarkingDepthTest: mol_util_1.ValueCell.create(false),
110
+ uPickType: mol_util_1.ValueCell.create(0 /* None */),
111
+ uMarkingType: mol_util_1.ValueCell.create(0 /* None */),
148
112
  uTransparentBackground: mol_util_1.ValueCell.create(false),
149
- uClipObjectType: mol_util_1.ValueCell.create(clip.objects.type),
150
- uClipObjectInvert: mol_util_1.ValueCell.create(clip.objects.invert),
151
- uClipObjectPosition: mol_util_1.ValueCell.create(clip.objects.position),
152
- uClipObjectRotation: mol_util_1.ValueCell.create(clip.objects.rotation),
153
- uClipObjectScale: mol_util_1.ValueCell.create(clip.objects.scale),
154
113
  uLightDirection: mol_util_1.ValueCell.create(light.direction),
155
114
  uLightColor: mol_util_1.ValueCell.create(light.color),
156
115
  uAmbientColor: mol_util_1.ValueCell.create(ambientColor),
@@ -168,26 +127,10 @@ var Renderer;
168
127
  var globalUniformList = Object.entries(globalUniforms);
169
128
  var globalUniformsNeedUpdate = true;
170
129
  var renderObject = function (r, variant) {
171
- if (r.state.disposed || !r.state.visible || (!r.state.pickable && variant[0] === 'p')) {
130
+ if (r.state.disposed || !r.state.visible || (!r.state.pickable && variant === 'pick')) {
172
131
  return;
173
132
  }
174
133
  var definesNeedUpdate = false;
175
- if (r.state.noClip) {
176
- if (r.values.dClipObjectCount.ref.value !== 0) {
177
- mol_util_1.ValueCell.update(r.values.dClipObjectCount, 0);
178
- definesNeedUpdate = true;
179
- }
180
- }
181
- else {
182
- if (r.values.dClipObjectCount.ref.value !== clip.objects.count) {
183
- mol_util_1.ValueCell.update(r.values.dClipObjectCount, clip.objects.count);
184
- definesNeedUpdate = true;
185
- }
186
- if (r.values.dClipVariant.ref.value !== clip.variant) {
187
- mol_util_1.ValueCell.update(r.values.dClipVariant, clip.variant);
188
- definesNeedUpdate = true;
189
- }
190
- }
191
134
  if (r.values.dLightCount.ref.value !== light.count) {
192
135
  mol_util_1.ValueCell.update(r.values.dLightCount, light.count);
193
136
  definesNeedUpdate = true;
@@ -206,7 +149,7 @@ var Renderer;
206
149
  globalUniformsNeedUpdate = false;
207
150
  }
208
151
  if (r.values.dRenderMode) { // indicates direct-volume
209
- if ((variant[0] === 'p' || variant === 'depth') && r.values.dRenderMode.ref.value === 'volume') {
152
+ if ((variant === 'pick' || variant === 'depth') && r.values.dRenderMode.ref.value === 'volume') {
210
153
  return; // no picking/depth in volume mode
211
154
  }
212
155
  // culling done in fragment shader
@@ -226,8 +169,8 @@ var Renderer;
226
169
  }
227
170
  }
228
171
  else {
229
- if (r.values.dDoubleSided) {
230
- if (r.values.dDoubleSided.ref.value || r.values.hasReflection.ref.value) {
172
+ if (r.values.uDoubleSided) {
173
+ if (r.values.uDoubleSided.ref.value || r.values.hasReflection.ref.value) {
231
174
  state.disable(gl.CULL_FACE);
232
175
  }
233
176
  else {
@@ -288,11 +231,12 @@ var Renderer;
288
231
  globalUniformsNeedUpdate = true;
289
232
  state.currentRenderItemId = -1;
290
233
  };
291
- var renderPick = function (group, camera, variant, depthTexture) {
234
+ var renderPick = function (group, camera, variant, depthTexture, pickType) {
292
235
  state.disable(gl.BLEND);
293
236
  state.enable(gl.DEPTH_TEST);
294
237
  state.depthMask(true);
295
238
  updateInternal(group, camera, depthTexture, false, false);
239
+ mol_util_1.ValueCell.updateIfChanged(globalUniforms.uPickType, pickType);
296
240
  var renderables = group.renderables;
297
241
  for (var i = 0, il = renderables.length; i < il; ++i) {
298
242
  if (!renderables[i].state.colorOnly) {
@@ -315,11 +259,12 @@ var Renderer;
315
259
  state.enable(gl.DEPTH_TEST);
316
260
  state.depthMask(true);
317
261
  updateInternal(group, camera, depthTexture, false, false);
262
+ mol_util_1.ValueCell.updateIfChanged(globalUniforms.uMarkingType, 1 /* Depth */);
318
263
  var renderables = group.renderables;
319
264
  for (var i = 0, il = renderables.length; i < il; ++i) {
320
265
  var r = renderables[i];
321
266
  if (r.values.markerAverage.ref.value !== 1) {
322
- renderObject(renderables[i], 'markingDepth');
267
+ renderObject(renderables[i], 'marking');
323
268
  }
324
269
  }
325
270
  };
@@ -328,11 +273,12 @@ var Renderer;
328
273
  state.enable(gl.DEPTH_TEST);
329
274
  state.depthMask(true);
330
275
  updateInternal(group, camera, depthTexture, false, !!depthTexture);
276
+ mol_util_1.ValueCell.updateIfChanged(globalUniforms.uMarkingType, 2 /* Mask */);
331
277
  var renderables = group.renderables;
332
278
  for (var i = 0, il = renderables.length; i < il; ++i) {
333
279
  var r = renderables[i];
334
280
  if (r.values.markerAverage.ref.value > 0) {
335
- renderObject(renderables[i], 'markingMask');
281
+ renderObject(renderables[i], 'marking');
336
282
  }
337
283
  }
338
284
  };
@@ -539,14 +485,6 @@ var Renderer;
539
485
  linear_algebra_1.Vec3.scale(ambientColor, color_1.Color.toArrayNormalized(p.ambientColor, ambientColor, 0), p.ambientIntensity);
540
486
  mol_util_1.ValueCell.update(globalUniforms.uAmbientColor, ambientColor);
541
487
  }
542
- if (props.clip !== undefined && !(0, mol_util_1.deepEqual)(props.clip, p.clip)) {
543
- p.clip = props.clip;
544
- Object.assign(clip, getClip(props.clip, clip));
545
- mol_util_1.ValueCell.update(globalUniforms.uClipObjectPosition, clip.objects.position);
546
- mol_util_1.ValueCell.update(globalUniforms.uClipObjectRotation, clip.objects.rotation);
547
- mol_util_1.ValueCell.update(globalUniforms.uClipObjectScale, clip.objects.scale);
548
- mol_util_1.ValueCell.update(globalUniforms.uClipObjectType, clip.objects.type);
549
- }
550
488
  },
551
489
  setViewport: function (x, y, width, height) {
552
490
  gl.viewport(x, y, width, height);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
2
+ * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
3
  *
4
4
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
5
5
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -31,6 +31,6 @@ declare namespace Scene {
31
31
  interface Group extends Object3D {
32
32
  readonly renderables: ReadonlyArray<GraphicsRenderable>;
33
33
  }
34
- function create(ctx: WebGLContext): Scene;
34
+ function create(ctx: WebGLContext, variants?: ("depth" | "colorBlended" | "colorWboit" | "pick" | "marking")[]): Scene;
35
35
  }
36
36
  export { Scene };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
3
+ * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
4
4
  *
5
5
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
6
6
  * @author David Sehnal <david.sehnal@gmail.com>
@@ -15,6 +15,7 @@ var now_1 = require("../mol-util/now");
15
15
  var array_1 = require("../mol-util/array");
16
16
  var boundary_helper_1 = require("../mol-math/geometry/boundary-helper");
17
17
  var util_1 = require("../mol-data/util");
18
+ var render_item_1 = require("./webgl/render-item");
18
19
  var boundaryHelper = new boundary_helper_1.BoundaryHelper('98');
19
20
  function calculateBoundingSphere(renderables, boundingSphere, onlyVisible) {
20
21
  boundaryHelper.reset();
@@ -38,8 +39,8 @@ function calculateBoundingSphere(renderables, boundingSphere, onlyVisible) {
38
39
  return boundaryHelper.getSphere(boundingSphere);
39
40
  }
40
41
  function renderableSort(a, b) {
41
- var drawProgramIdA = a.getProgram('colorBlended').id;
42
- var drawProgramIdB = b.getProgram('colorBlended').id;
42
+ var drawProgramIdA = (a.getProgram('colorBlended') || a.getProgram('colorWboit')).id;
43
+ var drawProgramIdB = (b.getProgram('colorBlended') || a.getProgram('colorWboit')).id;
43
44
  var materialIdA = a.materialId;
44
45
  var materialIdB = b.materialId;
45
46
  if (drawProgramIdA !== drawProgramIdB) {
@@ -56,7 +57,8 @@ function renderableSort(a, b) {
56
57
  }
57
58
  var Scene;
58
59
  (function (Scene) {
59
- function create(ctx) {
60
+ function create(ctx, variants) {
61
+ if (variants === void 0) { variants = render_item_1.GraphicsRenderVariants; }
60
62
  var renderableMap = new Map();
61
63
  var renderables = [];
62
64
  var boundingSphere = (0, geometry_1.Sphere3D)();
@@ -69,7 +71,7 @@ var Scene;
69
71
  var view = object3d.view, position = object3d.position, direction = object3d.direction, up = object3d.up;
70
72
  function add(o) {
71
73
  if (!renderableMap.has(o)) {
72
- var renderable = (0, render_object_1.createRenderable)(ctx, o);
74
+ var renderable = (0, render_object_1.createRenderable)(ctx, o, variants);
73
75
  renderables.push(renderable);
74
76
  if (o.type === 'direct-volume') {
75
77
  volumes.push(renderable);
@@ -6,4 +6,4 @@
6
6
  * adapted from three.js (https://github.com/mrdoob/three.js/)
7
7
  * which under the MIT License, Copyright © 2010-2021 three.js authors
8
8
  */
9
- export declare const apply_light_color = "\n// inputs\n// - vec4 material\n// - vec3 vViewPosition\n// - vec3 normal\n// - float uMetalness\n// - float uRoughness\n// - vec3 uLightColor\n// - vec3 uAmbientColor\n\n// outputs\n// - sets gl_FragColor\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\nphysicalMaterial.roughness = max(roughness, 0.0525);\nphysicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\nphysicalMaterial.specularF90 = 1.0;\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\n#pragma unroll_loop_start\nfor (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n}\n#pragma unroll_loop_end\n\nvec3 irradiance = uAmbientColor * PI; // * PI for punctual light\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n// indirect specular only metals\nvec3 radiance = uAmbientColor * metalness;\nvec3 iblIrradiance = uAmbientColor * metalness;\nvec3 clearcoatRadiance = vec3(0.0);\nRE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n";
9
+ export declare const apply_light_color = "\n#ifdef bumpEnabled\n if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0) {\n vec3 bumpNormal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);\n #ifdef enabledFragDepth\n if (!isNaN(bumpNormal.x) && !isNaN(bumpNormal.y) && !isNaN(bumpNormal.z)) {\n normal = bumpNormal;\n }\n #else\n normal = bumpNormal;\n #endif\n }\n#endif\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\n#ifdef enabledFragDepth\n physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);\n#else\n vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));\n float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);\n physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);\n#endif\nphysicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\nphysicalMaterial.specularF90 = 1.0;\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\n#pragma unroll_loop_start\nfor (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n}\n#pragma unroll_loop_end\n\nvec3 irradiance = uAmbientColor * PI; // * PI for punctual light\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n// indirect specular only metals\nvec3 radiance = uAmbientColor * metalness;\nvec3 iblIrradiance = uAmbientColor * metalness;\nvec3 clearcoatRadiance = vec3(0.0);\nRE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n";
@@ -9,5 +9,5 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.apply_light_color = void 0;
12
- exports.apply_light_color = "\n// inputs\n// - vec4 material\n// - vec3 vViewPosition\n// - vec3 normal\n// - float uMetalness\n// - float uRoughness\n// - vec3 uLightColor\n// - vec3 uAmbientColor\n\n// outputs\n// - sets gl_FragColor\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\nphysicalMaterial.roughness = max(roughness, 0.0525);\nphysicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\nphysicalMaterial.specularF90 = 1.0;\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\n#pragma unroll_loop_start\nfor (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n}\n#pragma unroll_loop_end\n\nvec3 irradiance = uAmbientColor * PI; // * PI for punctual light\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n// indirect specular only metals\nvec3 radiance = uAmbientColor * metalness;\nvec3 iblIrradiance = uAmbientColor * metalness;\nvec3 clearcoatRadiance = vec3(0.0);\nRE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n";
12
+ exports.apply_light_color = "\n#ifdef bumpEnabled\n if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0) {\n vec3 bumpNormal = perturbNormal(-vViewPosition, normal, fbm(vModelPosition * uBumpFrequency), (uBumpAmplitude * bumpiness) / uBumpFrequency);\n #ifdef enabledFragDepth\n if (!isNaN(bumpNormal.x) && !isNaN(bumpNormal.y) && !isNaN(bumpNormal.z)) {\n normal = bumpNormal;\n }\n #else\n normal = bumpNormal;\n #endif\n }\n#endif\n\nvec4 color = material;\n\nReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n\nPhysicalMaterial physicalMaterial;\nphysicalMaterial.diffuseColor = color.rgb * (1.0 - metalness);\n#ifdef enabledFragDepth\n physicalMaterial.roughness = min(max(roughness, 0.0525), 1.0);\n#else\n vec3 dxy = max(abs(dFdx(normal)), abs(dFdy(normal)));\n float geometryRoughness = max(max(dxy.x, dxy.y), dxy.z);\n physicalMaterial.roughness = min(max(roughness, 0.0525) + geometryRoughness, 1.0);\n#endif\nphysicalMaterial.specularColor = mix(vec3(0.04), color.rgb, metalness);\nphysicalMaterial.specularF90 = 1.0;\n\nGeometricContext geometry;\ngeometry.position = -vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize(vViewPosition);\n\nIncidentLight directLight;\n#pragma unroll_loop_start\nfor (int i = 0; i < dLightCount; ++i) {\n directLight.direction = uLightDirection[i];\n directLight.color = uLightColor[i] * PI; // * PI for punctual light\n RE_Direct_Physical(directLight, geometry, physicalMaterial, reflectedLight);\n}\n#pragma unroll_loop_end\n\nvec3 irradiance = uAmbientColor * PI; // * PI for punctual light\nRE_IndirectDiffuse_Physical(irradiance, geometry, physicalMaterial, reflectedLight);\n\n// indirect specular only metals\nvec3 radiance = uAmbientColor * metalness;\nvec3 iblIrradiance = uAmbientColor * metalness;\nvec3 clearcoatRadiance = vec3(0.0);\nRE_IndirectSpecular_Physical(radiance, iblIrradiance, clearcoatRadiance, geometry, physicalMaterial, reflectedLight);\n\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\ngl_FragColor = vec4(outgoingLight, color.a);\n\n#ifdef dXrayShaded\n gl_FragColor.a *= 1.0 - pow(abs(dot(normal, vec3(0.0, 0.0, 1.0))), uXrayEdgeFalloff);\n#endif\n";
13
13
  //# sourceMappingURL=apply-light-color.glsl.js.map
@@ -1 +1 @@
1
- export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim).rgb;\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rg = mix(vec2(uMetalness, uRoughness), vSubstance.rg, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n\n #if defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n#endif\n";
1
+ export declare const assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n #endif\n#elif defined(dRenderVariant_pick)\n if (uPickType == 1) {\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n } else {\n vColor = vec4(encodeFloatRGB(group), 1.0);\n }\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 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim).rgb;\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim).rgb;\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rg = mix(vec2(uMetalness, uRoughness), vSubstance.rg, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n #if defined(dRenderVariant_pickObject)\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n vColor = vec4(encodeFloatRGB(group), 1.0);\n #endif\n#endif\n\n#ifdef dTransparency\n vGroup = group;\n\n #if defined(dTransparencyType_groupInstance)\n vTransparency = readFromTexture(tTransparency, aInstance * float(uGroupCount) + group, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_vertexInstance)\n vTransparency = readFromTexture(tTransparency, int(aInstance) * uVertexCount + VertexID, uTransparencyTexDim).a;\n #elif defined(dTransparencyType_volumeInstance)\n vec3 tgridPos = (uTransparencyGridTransform.w * (vModelPosition - uTransparencyGridTransform.xyz)) / uTransparencyGridDim;\n vTransparency = texture3dFrom2dLinear(tTransparencyGrid, tgridPos, uTransparencyGridDim, uTransparencyTexDim).a;\n #endif\n#endif\n";
4
+ exports.assign_color_varying = "\n#if defined(dRenderVariant_color)\n #if defined(dColorType_attribute)\n vColor.rgb = aColor;\n #elif defined(dColorType_instance)\n vColor.rgb = readFromTexture(tColor, aInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n vColor.rgb = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n vColor.rgb = readFromTexture(tColor, aInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n vColor.rgb = readFromTexture(tColor, VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_vertexInstance)\n vColor.rgb = readFromTexture(tColor, int(aInstance) * uVertexCount + VertexID, uColorTexDim).rgb;\n #elif defined(dColorType_volume)\n vec3 cgridPos = (uColorGridTransform.w * (position - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #elif defined(dColorType_volumeInstance)\n vec3 cgridPos = (uColorGridTransform.w * (vModelPosition - uColorGridTransform.xyz)) / uColorGridDim;\n vColor.rgb = texture3dFrom2dLinear(tColorGrid, cgridPos, uColorGridDim, uColorTexDim).rgb;\n #endif\n\n #ifdef dUsePalette\n vPaletteV = ((vColor.r * 256.0 * 256.0 * 255.0 + vColor.g * 256.0 * 255.0 + vColor.b * 255.0) - 1.0) / 16777215.0;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance)\n vOverpaint = readFromTexture(tOverpaint, aInstance * float(uGroupCount) + group, uOverpaintTexDim);\n #elif defined(dOverpaintType_vertexInstance)\n vOverpaint = readFromTexture(tOverpaint, int(aInstance) * uVertexCount + VertexID, uOverpaintTexDim);\n #elif defined(dOverpaintType_volumeInstance)\n vec3 ogridPos = (uOverpaintGridTransform.w * (vModelPosition - uOverpaintGridTransform.xyz)) / uOverpaintGridDim;\n vOverpaint = texture3dFrom2dLinear(tOverpaintGrid, ogridPos, uOverpaintGridDim, uOverpaintTexDim);\n #endif\n\n // pre-mix to avoid darkening due to empty overpaint\n #ifdef dColorType_uniform\n vOverpaint.rgb = mix(uColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #else\n vOverpaint.rgb = mix(vColor.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance)\n vSubstance = readFromTexture(tSubstance, aInstance * float(uGroupCount) + group, uSubstanceTexDim);\n #elif defined(dSubstanceType_vertexInstance)\n vSubstance = readFromTexture(tSubstance, int(aInstance) * uVertexCount + VertexID, uSubstanceTexDim);\n #elif defined(dSubstanceType_volumeInstance)\n vec3 sgridPos = (uSubstanceGridTransform.w * (vModelPosition - uSubstanceGridTransform.xyz)) / uSubstanceGridDim;\n vSubstance = texture3dFrom2dLinear(tSubstanceGrid, sgridPos, uSubstanceGridDim, uSubstanceTexDim);\n #endif\n\n // pre-mix to avoid artifacts due to empty substance\n vSubstance.rgb = mix(vec3(uMetalness, uRoughness, uBumpiness), vSubstance.rgb, vSubstance.a);\n #endif\n#elif defined(dRenderVariant_pick)\n if (uPickType == 1) {\n vColor = vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n } else if (uPickType == 2) {\n vColor = vec4(encodeFloatRGB(aInstance), 1.0);\n } else {\n vColor = vec4(encodeFloatRGB(group), 1.0);\n }\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
- export declare const assign_marker_varying = "\n#if defined(dMarkerType_groupInstance)\n vMarker = readFromTexture(tMarker, aInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n#endif\n";
1
+ export declare const assign_marker_varying = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n vMarker = readFromTexture(tMarker, aInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_marker_varying = void 0;
4
- exports.assign_marker_varying = "\n#if defined(dMarkerType_groupInstance)\n vMarker = readFromTexture(tMarker, aInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n#endif\n";
4
+ exports.assign_marker_varying = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n vMarker = readFromTexture(tMarker, aInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n#endif\n";
5
5
  //# sourceMappingURL=assign-marker-varying.glsl.js.map
@@ -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\n float metalness = uMetalness;\n float roughness = uRoughness;\n #ifdef dSubstance\n metalness = mix(metalness, vSubstance.r, vSubstance.b);\n roughness = mix(roughness, vSubstance.g, vSubstance.b);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n #if defined(dRenderVariant_colorWboit)\n if (vTransparency < 0.2) ta = 1.0; // hard cutoff looks better with wboit\n #endif\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
1
+ export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n float marker = uMarker;\n if (uMarker == -1.0) {\n marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n }\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n\n float metalness = uMetalness;\n float roughness = uRoughness;\n float bumpiness = uBumpiness;\n #ifdef dSubstance\n metalness = mix(metalness, vSubstance.r, vSubstance.a);\n roughness = mix(roughness, vSubstance.g, vSubstance.a);\n bumpiness = mix(bumpiness, vSubstance.b, vSubstance.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_marking)\n vec4 material;\n if(uMarkingType == 1) {\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n } else {\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 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n }\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";