molstar 3.0.0-dev.6 → 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 (367) hide show
  1. package/build/viewer/molstar.js +1 -1
  2. package/lib/commonjs/extensions/anvil/behavior.d.ts +4 -0
  3. package/lib/commonjs/extensions/anvil/representation.d.ts +50 -0
  4. package/lib/commonjs/extensions/cellpack/representation.d.ts +10 -0
  5. package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +30 -0
  6. package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -0
  7. package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +10 -0
  8. package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +50 -0
  9. package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -8
  10. package/lib/commonjs/mol-canvas3d/canvas3d.js +2 -1
  11. package/lib/commonjs/mol-canvas3d/helper/bounding-sphere-helper.js +3 -2
  12. package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +4 -0
  13. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +2 -2
  14. package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +4 -0
  15. package/lib/commonjs/mol-canvas3d/helper/handle-helper.js +2 -2
  16. package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -0
  17. package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
  18. package/lib/commonjs/mol-canvas3d/passes/pick.js +9 -9
  19. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +3 -3
  20. package/lib/commonjs/mol-canvas3d/passes/smaa.js +1 -1
  21. package/lib/commonjs/mol-geo/geometry/base.d.ts +18 -0
  22. package/lib/commonjs/mol-geo/geometry/base.js +18 -1
  23. package/lib/commonjs/mol-geo/geometry/clipping-data.d.ts +1 -3
  24. package/lib/commonjs/mol-geo/geometry/clipping-data.js +3 -8
  25. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +10 -0
  26. package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +2 -2
  27. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +10 -0
  28. package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +2 -2
  29. package/lib/commonjs/mol-geo/geometry/image/image.d.ts +10 -0
  30. package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +10 -0
  31. package/lib/commonjs/mol-geo/geometry/lines/lines.js +1 -1
  32. package/lib/commonjs/mol-geo/geometry/marker-data.d.ts +0 -1
  33. package/lib/commonjs/mol-geo/geometry/marker-data.js +0 -4
  34. package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +10 -0
  35. package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +2 -2
  36. package/lib/commonjs/mol-geo/geometry/points/points.d.ts +10 -0
  37. package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +10 -0
  38. package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +2 -2
  39. package/lib/commonjs/mol-geo/geometry/text/text.d.ts +10 -0
  40. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +10 -0
  41. package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  42. package/lib/commonjs/mol-gl/render-object.d.ts +2 -1
  43. package/lib/commonjs/mol-gl/render-object.js +10 -10
  44. package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +10 -5
  45. package/lib/commonjs/mol-gl/renderable/cylinders.js +3 -3
  46. package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +10 -5
  47. package/lib/commonjs/mol-gl/renderable/direct-volume.js +3 -3
  48. package/lib/commonjs/mol-gl/renderable/image.d.ts +9 -4
  49. package/lib/commonjs/mol-gl/renderable/image.js +2 -2
  50. package/lib/commonjs/mol-gl/renderable/lines.d.ts +38 -33
  51. package/lib/commonjs/mol-gl/renderable/lines.js +3 -3
  52. package/lib/commonjs/mol-gl/renderable/mesh.d.ts +10 -5
  53. package/lib/commonjs/mol-gl/renderable/mesh.js +3 -3
  54. package/lib/commonjs/mol-gl/renderable/points.d.ts +9 -4
  55. package/lib/commonjs/mol-gl/renderable/points.js +2 -2
  56. package/lib/commonjs/mol-gl/renderable/schema.d.ts +9 -11
  57. package/lib/commonjs/mol-gl/renderable/schema.js +3 -9
  58. package/lib/commonjs/mol-gl/renderable/spheres.d.ts +10 -5
  59. package/lib/commonjs/mol-gl/renderable/spheres.js +3 -3
  60. package/lib/commonjs/mol-gl/renderable/text.d.ts +9 -4
  61. package/lib/commonjs/mol-gl/renderable/text.js +2 -2
  62. package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +10 -5
  63. package/lib/commonjs/mol-gl/renderable/texture-mesh.js +3 -3
  64. package/lib/commonjs/mol-gl/renderable.d.ts +0 -1
  65. package/lib/commonjs/mol-gl/renderer.d.ts +12 -12
  66. package/lib/commonjs/mol-gl/renderer.js +12 -74
  67. package/lib/commonjs/mol-gl/scene.d.ts +2 -2
  68. package/lib/commonjs/mol-gl/scene.js +7 -5
  69. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  70. package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  71. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  72. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  73. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.d.ts +1 -1
  74. package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +1 -1
  75. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  76. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  77. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  78. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  79. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  80. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  81. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  82. package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +1 -1
  83. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.d.ts +1 -1
  84. package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +1 -1
  85. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
  86. package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +1 -1
  87. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  88. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  89. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  90. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  91. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
  92. package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
  93. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  94. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  95. package/lib/commonjs/mol-gl/shader/mesh.vert.d.ts +1 -1
  96. package/lib/commonjs/mol-gl/shader/mesh.vert.js +1 -1
  97. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  98. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  99. package/lib/commonjs/mol-gl/shader-code.d.ts +3 -1
  100. package/lib/commonjs/mol-gl/shader-code.js +42 -13
  101. package/lib/commonjs/mol-gl/webgl/render-item.d.ts +7 -6
  102. package/lib/commonjs/mol-gl/webgl/render-item.js +10 -8
  103. package/lib/commonjs/mol-gl/webgl/resources.js +8 -1
  104. package/lib/commonjs/mol-math/linear-algebra/3d/quat.d.ts +9 -1
  105. package/lib/commonjs/mol-math/linear-algebra/3d/quat.js +20 -1
  106. package/lib/commonjs/mol-model-formats/shape/ply.d.ts +20 -0
  107. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +10 -0
  108. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +10 -0
  109. package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +30 -0
  110. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +40 -0
  111. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +11 -0
  112. package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +3 -1
  113. package/lib/commonjs/mol-plugin/commands.d.ts +1 -4
  114. package/lib/commonjs/mol-plugin/spec.js +1 -0
  115. package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +12 -0
  116. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.d.ts +1 -1
  117. package/lib/commonjs/mol-plugin-state/helpers/structure-clipping.js +1 -1
  118. package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +13 -1
  119. package/lib/commonjs/mol-plugin-state/manager/structure/component.js +13 -8
  120. package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +32 -0
  121. package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +2 -6
  122. package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +10 -0
  123. package/lib/commonjs/mol-repr/shape/loci/common.d.ts +10 -0
  124. package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +10 -0
  125. package/lib/commonjs/mol-repr/shape/loci/distance.d.ts +10 -0
  126. package/lib/commonjs/mol-repr/shape/loci/label.d.ts +10 -0
  127. package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +10 -0
  128. package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +10 -0
  129. package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +10 -0
  130. package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +60 -0
  131. package/lib/commonjs/mol-repr/structure/params.d.ts +80 -0
  132. package/lib/commonjs/mol-repr/structure/registry.d.ts +140 -0
  133. package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +30 -0
  134. package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +30 -0
  135. package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +30 -0
  136. package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +30 -0
  137. package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +30 -0
  138. package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +30 -0
  139. package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +30 -0
  140. package/lib/commonjs/mol-repr/structure/representation/label.d.ts +30 -0
  141. package/lib/commonjs/mol-repr/structure/representation/line.d.ts +30 -0
  142. package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +30 -0
  143. package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +30 -0
  144. package/lib/commonjs/mol-repr/structure/representation/point.d.ts +30 -0
  145. package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +30 -0
  146. package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +30 -0
  147. package/lib/commonjs/mol-repr/structure/units-visual.d.ts +80 -0
  148. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +20 -0
  149. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +10 -0
  150. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +20 -0
  151. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +10 -0
  152. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +10 -0
  153. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +10 -0
  154. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +10 -0
  155. package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +10 -0
  156. package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +10 -0
  157. package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +20 -0
  158. package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +10 -0
  159. package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +20 -0
  160. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +40 -0
  161. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +10 -0
  162. package/lib/commonjs/mol-repr/structure/visual/label-text.d.ts +10 -0
  163. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +10 -0
  164. package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +10 -0
  165. package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +10 -0
  166. package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +10 -0
  167. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +10 -0
  168. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +20 -0
  169. package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +20 -0
  170. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +10 -0
  171. package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +10 -0
  172. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +10 -0
  173. package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +10 -0
  174. package/lib/commonjs/mol-repr/visual.js +11 -7
  175. package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +30 -0
  176. package/lib/commonjs/mol-repr/volume/isosurface.d.ts +60 -0
  177. package/lib/commonjs/mol-repr/volume/registry.d.ts +30 -0
  178. package/lib/commonjs/mol-repr/volume/representation.d.ts +10 -0
  179. package/lib/commonjs/mol-repr/volume/slice.d.ts +30 -0
  180. package/lib/commonjs/mol-theme/clipping.d.ts +7 -15
  181. package/lib/commonjs/mol-theme/clipping.js +5 -12
  182. package/lib/commonjs/mol-util/clip.d.ts +49 -0
  183. package/lib/commonjs/mol-util/clip.js +97 -0
  184. package/lib/extensions/anvil/behavior.d.ts +4 -0
  185. package/lib/extensions/anvil/representation.d.ts +50 -0
  186. package/lib/extensions/cellpack/representation.d.ts +10 -0
  187. package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +30 -0
  188. package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -0
  189. package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +10 -0
  190. package/lib/extensions/rcsb/validation-report/representation.d.ts +50 -0
  191. package/lib/mol-canvas3d/canvas3d.d.ts +2 -8
  192. package/lib/mol-canvas3d/canvas3d.js +2 -1
  193. package/lib/mol-canvas3d/helper/bounding-sphere-helper.js +3 -2
  194. package/lib/mol-canvas3d/helper/camera-helper.d.ts +4 -0
  195. package/lib/mol-canvas3d/helper/camera-helper.js +2 -2
  196. package/lib/mol-canvas3d/helper/handle-helper.d.ts +4 -0
  197. package/lib/mol-canvas3d/helper/handle-helper.js +2 -2
  198. package/lib/mol-canvas3d/helper/helper.d.ts +2 -0
  199. package/lib/mol-canvas3d/passes/image.d.ts +1 -0
  200. package/lib/mol-canvas3d/passes/pick.js +9 -9
  201. package/lib/mol-canvas3d/passes/postprocessing.js +3 -3
  202. package/lib/mol-canvas3d/passes/smaa.js +1 -1
  203. package/lib/mol-geo/geometry/base.d.ts +18 -0
  204. package/lib/mol-geo/geometry/base.js +18 -1
  205. package/lib/mol-geo/geometry/clipping-data.d.ts +1 -3
  206. package/lib/mol-geo/geometry/clipping-data.js +3 -8
  207. package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +10 -0
  208. package/lib/mol-geo/geometry/cylinders/cylinders.js +2 -2
  209. package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +10 -0
  210. package/lib/mol-geo/geometry/direct-volume/direct-volume.js +2 -2
  211. package/lib/mol-geo/geometry/image/image.d.ts +10 -0
  212. package/lib/mol-geo/geometry/lines/lines.d.ts +10 -0
  213. package/lib/mol-geo/geometry/lines/lines.js +1 -1
  214. package/lib/mol-geo/geometry/marker-data.d.ts +0 -1
  215. package/lib/mol-geo/geometry/marker-data.js +0 -4
  216. package/lib/mol-geo/geometry/mesh/mesh.d.ts +10 -0
  217. package/lib/mol-geo/geometry/mesh/mesh.js +2 -2
  218. package/lib/mol-geo/geometry/points/points.d.ts +10 -0
  219. package/lib/mol-geo/geometry/spheres/spheres.d.ts +10 -0
  220. package/lib/mol-geo/geometry/spheres/spheres.js +2 -2
  221. package/lib/mol-geo/geometry/text/text.d.ts +10 -0
  222. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +10 -0
  223. package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +2 -2
  224. package/lib/mol-gl/render-object.d.ts +2 -1
  225. package/lib/mol-gl/render-object.js +10 -10
  226. package/lib/mol-gl/renderable/cylinders.d.ts +10 -5
  227. package/lib/mol-gl/renderable/cylinders.js +3 -3
  228. package/lib/mol-gl/renderable/direct-volume.d.ts +10 -5
  229. package/lib/mol-gl/renderable/direct-volume.js +3 -3
  230. package/lib/mol-gl/renderable/image.d.ts +9 -4
  231. package/lib/mol-gl/renderable/image.js +2 -2
  232. package/lib/mol-gl/renderable/lines.d.ts +38 -33
  233. package/lib/mol-gl/renderable/lines.js +4 -4
  234. package/lib/mol-gl/renderable/mesh.d.ts +10 -5
  235. package/lib/mol-gl/renderable/mesh.js +3 -3
  236. package/lib/mol-gl/renderable/points.d.ts +9 -4
  237. package/lib/mol-gl/renderable/points.js +2 -2
  238. package/lib/mol-gl/renderable/schema.d.ts +9 -11
  239. package/lib/mol-gl/renderable/schema.js +3 -9
  240. package/lib/mol-gl/renderable/spheres.d.ts +10 -5
  241. package/lib/mol-gl/renderable/spheres.js +3 -3
  242. package/lib/mol-gl/renderable/text.d.ts +9 -4
  243. package/lib/mol-gl/renderable/text.js +2 -2
  244. package/lib/mol-gl/renderable/texture-mesh.d.ts +10 -5
  245. package/lib/mol-gl/renderable/texture-mesh.js +3 -3
  246. package/lib/mol-gl/renderable.d.ts +0 -1
  247. package/lib/mol-gl/renderer.d.ts +12 -12
  248. package/lib/mol-gl/renderer.js +13 -75
  249. package/lib/mol-gl/scene.d.ts +2 -2
  250. package/lib/mol-gl/scene.js +7 -5
  251. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
  252. package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
  253. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  254. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  255. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.d.ts +1 -1
  256. package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +1 -1
  257. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  258. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  259. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  260. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  261. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  262. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  263. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.d.ts +1 -1
  264. package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +1 -1
  265. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.d.ts +1 -1
  266. package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +1 -1
  267. package/lib/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
  268. package/lib/mol-gl/shader/chunks/common.glsl.js +1 -1
  269. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  270. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  271. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  272. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  273. package/lib/mol-gl/shader/image.frag.d.ts +1 -1
  274. package/lib/mol-gl/shader/image.frag.js +1 -1
  275. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  276. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  277. package/lib/mol-gl/shader/mesh.vert.d.ts +1 -1
  278. package/lib/mol-gl/shader/mesh.vert.js +1 -1
  279. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  280. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  281. package/lib/mol-gl/shader-code.d.ts +3 -1
  282. package/lib/mol-gl/shader-code.js +42 -13
  283. package/lib/mol-gl/webgl/render-item.d.ts +7 -6
  284. package/lib/mol-gl/webgl/render-item.js +8 -6
  285. package/lib/mol-gl/webgl/resources.js +8 -1
  286. package/lib/mol-math/linear-algebra/3d/quat.d.ts +9 -1
  287. package/lib/mol-math/linear-algebra/3d/quat.js +20 -1
  288. package/lib/mol-model-formats/shape/ply.d.ts +20 -0
  289. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +10 -0
  290. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +10 -0
  291. package/lib/mol-model-props/computed/representations/interactions.d.ts +30 -0
  292. package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +40 -0
  293. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +11 -0
  294. package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +3 -1
  295. package/lib/mol-plugin/commands.d.ts +1 -4
  296. package/lib/mol-plugin/spec.js +1 -0
  297. package/lib/mol-plugin/util/viewport-screenshot.d.ts +12 -0
  298. package/lib/mol-plugin/version.js +2 -2
  299. package/lib/mol-plugin-state/helpers/structure-clipping.d.ts +1 -1
  300. package/lib/mol-plugin-state/helpers/structure-clipping.js +1 -1
  301. package/lib/mol-plugin-state/manager/structure/component.d.ts +13 -1
  302. package/lib/mol-plugin-state/manager/structure/component.js +13 -8
  303. package/lib/mol-plugin-state/transforms/representation.d.ts +32 -0
  304. package/lib/mol-plugin-ui/viewport/simple-settings.js +2 -6
  305. package/lib/mol-repr/shape/loci/angle.d.ts +10 -0
  306. package/lib/mol-repr/shape/loci/common.d.ts +10 -0
  307. package/lib/mol-repr/shape/loci/dihedral.d.ts +10 -0
  308. package/lib/mol-repr/shape/loci/distance.d.ts +10 -0
  309. package/lib/mol-repr/shape/loci/label.d.ts +10 -0
  310. package/lib/mol-repr/shape/loci/orientation.d.ts +10 -0
  311. package/lib/mol-repr/shape/loci/plane.d.ts +10 -0
  312. package/lib/mol-repr/shape/model/unitcell.d.ts +10 -0
  313. package/lib/mol-repr/structure/complex-visual.d.ts +60 -0
  314. package/lib/mol-repr/structure/params.d.ts +80 -0
  315. package/lib/mol-repr/structure/registry.d.ts +140 -0
  316. package/lib/mol-repr/structure/representation/backbone.d.ts +30 -0
  317. package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +30 -0
  318. package/lib/mol-repr/structure/representation/carbohydrate.d.ts +30 -0
  319. package/lib/mol-repr/structure/representation/cartoon.d.ts +30 -0
  320. package/lib/mol-repr/structure/representation/ellipsoid.d.ts +30 -0
  321. package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +30 -0
  322. package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +30 -0
  323. package/lib/mol-repr/structure/representation/label.d.ts +30 -0
  324. package/lib/mol-repr/structure/representation/line.d.ts +30 -0
  325. package/lib/mol-repr/structure/representation/molecular-surface.d.ts +30 -0
  326. package/lib/mol-repr/structure/representation/orientation.d.ts +30 -0
  327. package/lib/mol-repr/structure/representation/point.d.ts +30 -0
  328. package/lib/mol-repr/structure/representation/putty.d.ts +30 -0
  329. package/lib/mol-repr/structure/representation/spacefill.d.ts +30 -0
  330. package/lib/mol-repr/structure/units-visual.d.ts +80 -0
  331. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +20 -0
  332. package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +10 -0
  333. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +20 -0
  334. package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +10 -0
  335. package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +10 -0
  336. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +10 -0
  337. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +10 -0
  338. package/lib/mol-repr/structure/visual/element-cross.d.ts +10 -0
  339. package/lib/mol-repr/structure/visual/element-point.d.ts +10 -0
  340. package/lib/mol-repr/structure/visual/element-sphere.d.ts +20 -0
  341. package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +10 -0
  342. package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +20 -0
  343. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +40 -0
  344. package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +10 -0
  345. package/lib/mol-repr/structure/visual/label-text.d.ts +10 -0
  346. package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +10 -0
  347. package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +10 -0
  348. package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +10 -0
  349. package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +10 -0
  350. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +10 -0
  351. package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +20 -0
  352. package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +20 -0
  353. package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +10 -0
  354. package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +10 -0
  355. package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +10 -0
  356. package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +10 -0
  357. package/lib/mol-repr/visual.js +11 -7
  358. package/lib/mol-repr/volume/direct-volume.d.ts +30 -0
  359. package/lib/mol-repr/volume/isosurface.d.ts +60 -0
  360. package/lib/mol-repr/volume/registry.d.ts +30 -0
  361. package/lib/mol-repr/volume/representation.d.ts +10 -0
  362. package/lib/mol-repr/volume/slice.d.ts +30 -0
  363. package/lib/mol-theme/clipping.d.ts +7 -15
  364. package/lib/mol-theme/clipping.js +5 -12
  365. package/lib/mol-util/clip.d.ts +49 -0
  366. package/lib/mol-util/clip.js +93 -0
  367. package/package.json +1 -1
@@ -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,7 +13,7 @@ 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">;
@@ -21,6 +22,13 @@ export declare const TextureMeshSchema: {
21
22
  uBumpAmplitude: UniformSpec<"f">;
22
23
  meta: ValueSpec<"unknown">;
23
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[]">;
24
32
  aInstance: import("./schema").AttributeSpec<"float32">;
25
33
  aTransform: import("./schema").AttributeSpec<"float32">;
26
34
  uAlpha: UniformSpec<"f">;
@@ -40,8 +48,6 @@ export declare const TextureMeshSchema: {
40
48
  hasReflection: ValueSpec<"boolean">;
41
49
  boundingSphere: ValueSpec<"sphere">;
42
50
  invariantBoundingSphere: ValueSpec<"sphere">;
43
- dClipObjectCount: DefineSpec<"number">;
44
- dClipVariant: DefineSpec<"string">;
45
51
  uClippingTexDim: UniformSpec<"v2">;
46
52
  tClipping: TextureSpec<"image-uint8">;
47
53
  dClipping: DefineSpec<"boolean">;
@@ -70,7 +76,6 @@ export declare const TextureMeshSchema: {
70
76
  uMarker: UniformSpec<"f">;
71
77
  uMarkerTexDim: UniformSpec<"v2">;
72
78
  tMarker: TextureSpec<"image-uint8">;
73
- dMarkerType: DefineSpec<"string">;
74
79
  markerAverage: ValueSpec<"number">;
75
80
  markerStatus: ValueSpec<"number">;
76
81
  uColor: UniformSpec<"v3">;
@@ -85,4 +90,4 @@ export declare const TextureMeshSchema: {
85
90
  };
86
91
  export declare type TextureMeshSchema = typeof TextureMeshSchema;
87
92
  export declare type TextureMeshValues = Values<TextureMeshSchema>;
88
- 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'), 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) {
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#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 (!any(isNaN(bumpNormal))) normal = bumpNormal;\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
+ 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#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 (!any(isNaN(bumpNormal))) normal = bumpNormal;\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";
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);\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 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);\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 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 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_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";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assign_material_color = void 0;
4
- exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n\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_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";
4
+ exports.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";
5
5
  //# sourceMappingURL=assign-material-color.glsl.js.map
@@ -1 +1 @@
1
- export declare const color_frag_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n#ifdef bumpEnabled\n uniform float uBumpFrequency;\n uniform float uBumpAmplitude;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n\n #ifdef dSubstance\n varying vec4 vSubstance;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n#endif\n";
1
+ export declare const color_frag_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n#ifdef bumpEnabled\n uniform float uBumpFrequency;\n uniform float uBumpAmplitude;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n\n #ifdef dSubstance\n varying vec4 vSubstance;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.color_frag_params = void 0;
4
- exports.color_frag_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n#ifdef bumpEnabled\n uniform float uBumpFrequency;\n uniform float uBumpAmplitude;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n\n #ifdef dSubstance\n varying vec4 vSubstance;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n\n#ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n#endif\n";
4
+ exports.color_frag_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n#ifdef bumpEnabled\n uniform float uBumpFrequency;\n uniform float uBumpAmplitude;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_varying)\n varying vec4 vColor;\n #endif\n\n #ifdef dUsePalette\n uniform sampler2D tPalette;\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n #endif\n\n #ifdef dSubstance\n varying vec4 vSubstance;\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat in vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n varying float vTransparency;\n#endif\n";
5
5
  //# sourceMappingURL=color-frag-params.glsl.js.map
@@ -1 +1 @@
1
- export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
1
+ export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.color_vert_params = void 0;
4
- exports.color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n\n#ifdef dUsePalette\n varying float vPaletteV;\n#endif\n";
4
+ exports.color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
5
5
  //# sourceMappingURL=color-vert-params.glsl.js.map
@@ -1 +1 @@
1
- export declare const common_frag_params = "\nuniform int uObjectId;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n\n #if defined(dClipping)\n #if __VERSION__ == 100\n varying float vClipping;\n #else\n flat in float vClipping;\n #endif\n #endif\n#endif\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n #if __VERSION__ == 100\n varying float vMarker;\n #else\n flat in float vMarker;\n #endif\n#endif\n\nvarying vec3 vModelPosition;\nvarying vec3 vViewPosition;\n\nuniform vec2 uViewOffset;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform float uXrayEdgeFalloff;\n\nuniform mat4 uProjection;\n\nuniform bool uRenderWboit;\nuniform bool uMarkingDepthTest;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nfloat getDepth(const in vec2 coords) {\n // always packed due to merged depth from primitives and volumes\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n}\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\n// \"Bump Mapping Unparametrized Surfaces on the GPU\" Morten S. Mikkelsen\n// https://mmikk.github.io/papers3d/mm_sfgrad_bump.pdf\nvec3 perturbNormal(in vec3 position, in vec3 normal, in float height, in float scale) {\n vec3 sigmaS = dFdx(position);\n vec3 sigmaT = dFdy(position);\n\n vec3 r1 = cross(sigmaT, normal);\n vec3 r2 = cross(normal, sigmaS);\n float det = dot(sigmaS, r1);\n\n float bs = dFdx(height);\n float bt = dFdy(height);\n\n vec3 surfGrad = sign(det) * (bs * r1 + bt * r2);\n return normalize(abs(det) * normal - scale * surfGrad);\n}\n\nfloat hash(in float h) {\n return fract(sin(h) * 43758.5453123);\n}\n\nfloat noise(in vec3 x) {\n vec3 p = floor(x);\n vec3 f = fract(x);\n f = f * f * (3.0 - 2.0 * f);\n\n float n = p.x + p.y * 157.0 + 113.0 * p.z;\n return mix(\n mix(mix(hash(n + 0.0), hash(n + 1.0), f.x),\n mix(hash(n + 157.0), hash(n + 158.0), f.x), f.y),\n mix(mix(hash(n + 113.0), hash(n + 114.0), f.x),\n mix(hash(n + 270.0), hash(n + 271.0), f.x), f.y), f.z);\n}\n\nfloat fbm(in vec3 p) {\n float f = 0.0;\n f += 0.5 * noise(p);\n p *= 2.01;\n f += 0.25 * noise(p);\n p *= 2.02;\n f += 0.125 * noise(p);\n\n return f;\n}\n";
1
+ export declare const common_frag_params = "\nuniform int uObjectId;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform int uPickType;\nuniform int uMarkingType;\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n\n #if defined(dClipping)\n #if __VERSION__ == 100\n varying float vClipping;\n #else\n flat in float vClipping;\n #endif\n #endif\n#endif\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n uniform float uMarker;\n #if __VERSION__ == 100\n varying float vMarker;\n #else\n flat in float vMarker;\n #endif\n#endif\n\nvarying vec3 vModelPosition;\nvarying vec3 vViewPosition;\n\nuniform vec2 uViewOffset;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform bool uDoubleSided;\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform float uXrayEdgeFalloff;\n\nuniform mat4 uProjection;\n\nuniform bool uRenderWboit;\nuniform bool uMarkingDepthTest;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nfloat getDepth(const in vec2 coords) {\n // always packed due to merged depth from primitives and volumes\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n}\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\n// \"Bump Mapping Unparametrized Surfaces on the GPU\" Morten S. Mikkelsen\n// https://mmikk.github.io/papers3d/mm_sfgrad_bump.pdf\nvec3 perturbNormal(in vec3 position, in vec3 normal, in float height, in float scale) {\n vec3 sigmaS = dFdx(position);\n vec3 sigmaT = dFdy(position);\n\n vec3 r1 = cross(sigmaT, normal);\n vec3 r2 = cross(normal, sigmaS);\n float det = dot(sigmaS, r1);\n\n float bs = dFdx(height);\n float bt = dFdy(height);\n\n vec3 surfGrad = sign(det) * (bs * r1 + bt * r2);\n return normalize(abs(det) * normal - scale * surfGrad);\n}\n\nfloat hash(in float h) {\n return fract(sin(h) * 43758.5453123);\n}\n\nfloat noise(in vec3 x) {\n vec3 p = floor(x);\n vec3 f = fract(x);\n f = f * f * (3.0 - 2.0 * f);\n\n float n = p.x + p.y * 157.0 + 113.0 * p.z;\n return mix(\n mix(mix(hash(n + 0.0), hash(n + 1.0), f.x),\n mix(hash(n + 157.0), hash(n + 158.0), f.x), f.y),\n mix(mix(hash(n + 113.0), hash(n + 114.0), f.x),\n mix(hash(n + 270.0), hash(n + 271.0), f.x), f.y), f.z);\n}\n\nfloat fbm(in vec3 p) {\n float f = 0.0;\n f += 0.5 * noise(p);\n p *= 2.01;\n f += 0.25 * noise(p);\n p *= 2.02;\n f += 0.125 * noise(p);\n\n return f;\n}\n";