angular-three-soba 2.0.0-beta.26 → 2.0.0-beta.261

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 (397) hide show
  1. package/README.md +62 -4
  2. package/abstractions/README.md +278 -2
  3. package/abstractions/index.d.ts +11 -6
  4. package/abstractions/lib/catmull-rom-line.d.ts +648 -0
  5. package/abstractions/lib/cubic-bezier-line.d.ts +19 -0
  6. package/abstractions/lib/edges.d.ts +850 -0
  7. package/abstractions/lib/gradient-texture.d.ts +24 -0
  8. package/abstractions/lib/grid.d.ts +339 -0
  9. package/abstractions/lib/helper.d.ts +25 -0
  10. package/abstractions/lib/line.d.ts +41 -0
  11. package/abstractions/lib/prism-geometry.d.ts +30 -0
  12. package/abstractions/lib/quadratic-bezier-line.d.ts +21 -0
  13. package/abstractions/lib/text-3d.d.ts +338 -0
  14. package/abstractions/lib/text.d.ts +55 -0
  15. package/cameras/README.md +91 -2
  16. package/cameras/index.d.ts +4 -4
  17. package/cameras/lib/camera-content.d.ts +10 -0
  18. package/cameras/lib/cube-camera.d.ts +38 -0
  19. package/cameras/lib/orthographic-camera.d.ts +40 -0
  20. package/cameras/lib/perspective-camera.d.ts +36 -0
  21. package/controls/README.md +95 -2
  22. package/controls/index.d.ts +2 -1
  23. package/controls/lib/camera-controls.d.ts +31 -0
  24. package/controls/lib/orbit-controls.d.ts +38 -0
  25. package/esm2022/abstractions/index.mjs +12 -7
  26. package/esm2022/abstractions/lib/catmull-rom-line.mjs +76 -0
  27. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +51 -0
  28. package/esm2022/abstractions/lib/edges.mjs +70 -0
  29. package/esm2022/abstractions/lib/gradient-texture.mjs +91 -0
  30. package/esm2022/abstractions/lib/grid.mjs +103 -0
  31. package/esm2022/abstractions/lib/helper.mjs +80 -0
  32. package/esm2022/abstractions/lib/line.mjs +123 -0
  33. package/esm2022/abstractions/lib/prism-geometry.mjs +55 -0
  34. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +73 -0
  35. package/esm2022/abstractions/lib/text-3d.mjs +98 -0
  36. package/esm2022/abstractions/lib/text.mjs +92 -0
  37. package/esm2022/cameras/index.mjs +5 -5
  38. package/esm2022/cameras/lib/camera-content.mjs +14 -0
  39. package/esm2022/cameras/lib/cube-camera.mjs +111 -0
  40. package/esm2022/cameras/lib/orthographic-camera.mjs +131 -0
  41. package/esm2022/cameras/lib/perspective-camera.mjs +104 -0
  42. package/esm2022/controls/index.mjs +3 -2
  43. package/esm2022/controls/lib/camera-controls.mjs +127 -0
  44. package/esm2022/controls/lib/orbit-controls.mjs +126 -0
  45. package/esm2022/loaders/index.mjs +6 -5
  46. package/esm2022/loaders/lib/font-loader.mjs +49 -0
  47. package/esm2022/loaders/lib/gltf-loader.mjs +33 -0
  48. package/esm2022/loaders/lib/loader.mjs +109 -0
  49. package/esm2022/loaders/lib/progress.mjs +51 -0
  50. package/esm2022/loaders/lib/texture-loader.mjs +32 -0
  51. package/esm2022/materials/index.mjs +7 -7
  52. package/esm2022/materials/lib/custom-shader-material.mjs +71 -0
  53. package/esm2022/materials/lib/mesh-distort-material.mjs +42 -0
  54. package/esm2022/materials/lib/mesh-reflector-material.mjs +278 -0
  55. package/esm2022/materials/lib/mesh-refraction-material.mjs +144 -0
  56. package/esm2022/materials/lib/mesh-transmission-material.mjs +188 -0
  57. package/esm2022/materials/lib/mesh-wobble-material.mjs +42 -0
  58. package/esm2022/misc/index.mjs +10 -14
  59. package/esm2022/misc/lib/animations.mjs +74 -0
  60. package/esm2022/misc/lib/bake-shadows.mjs +26 -0
  61. package/esm2022/misc/lib/computed-attribute.mjs +56 -0
  62. package/esm2022/misc/lib/constants.mjs +5 -0
  63. package/esm2022/misc/lib/decal.mjs +135 -0
  64. package/esm2022/misc/lib/deprecated.mjs +15 -0
  65. package/esm2022/misc/lib/depth-buffer.mjs +39 -0
  66. package/esm2022/misc/lib/fbo.mjs +89 -0
  67. package/esm2022/misc/lib/sampler.mjs +121 -0
  68. package/esm2022/shaders/index.mjs +3 -18
  69. package/esm2022/shaders/lib/grid-material.mjs +81 -0
  70. package/esm2022/shaders/lib/mesh-refraction-material.mjs +163 -0
  71. package/esm2022/staging/index.mjs +19 -22
  72. package/esm2022/staging/lib/accumulative-shadows.mjs +182 -0
  73. package/esm2022/staging/lib/backdrop.mjs +73 -0
  74. package/esm2022/staging/lib/bb-anchor.mjs +58 -0
  75. package/esm2022/staging/lib/bounds.mjs +286 -0
  76. package/esm2022/staging/lib/camera-shake.mjs +69 -0
  77. package/esm2022/staging/lib/caustics.mjs +188 -0
  78. package/esm2022/staging/lib/center.mjs +113 -0
  79. package/esm2022/staging/lib/contact-shadows.mjs +201 -0
  80. package/esm2022/staging/lib/environment.mjs +465 -0
  81. package/esm2022/staging/lib/float.mjs +60 -0
  82. package/esm2022/staging/lib/lightformer.mjs +107 -0
  83. package/esm2022/staging/lib/matcap-texture.mjs +81 -0
  84. package/esm2022/staging/lib/normal-texture.mjs +85 -0
  85. package/esm2022/staging/lib/randomized-lights.mjs +104 -0
  86. package/esm2022/staging/lib/render-texture.mjs +213 -0
  87. package/esm2022/staging/lib/sky.mjs +86 -0
  88. package/esm2022/staging/lib/spot-light.mjs +450 -0
  89. package/esm2022/staging/lib/stage.mjs +236 -0
  90. package/esm2022/vanilla-exports/angular-three-soba-vanilla-exports.mjs +5 -0
  91. package/esm2022/vanilla-exports/index.mjs +3 -0
  92. package/fesm2022/angular-three-soba-abstractions.mjs +739 -718
  93. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  94. package/fesm2022/angular-three-soba-cameras.mjs +260 -307
  95. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  96. package/fesm2022/angular-three-soba-controls.mjs +174 -110
  97. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  98. package/fesm2022/angular-three-soba-loaders.mjs +151 -129
  99. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  100. package/fesm2022/angular-three-soba-materials.mjs +511 -764
  101. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  102. package/fesm2022/angular-three-soba-misc.mjs +405 -2149
  103. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  104. package/fesm2022/angular-three-soba-shaders.mjs +33 -1373
  105. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  106. package/fesm2022/angular-three-soba-staging.mjs +2329 -3538
  107. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  108. package/fesm2022/angular-three-soba-vanilla-exports.mjs +6 -0
  109. package/fesm2022/angular-three-soba-vanilla-exports.mjs.map +1 -0
  110. package/loaders/README.md +130 -2
  111. package/loaders/index.d.ts +5 -4
  112. package/loaders/lib/font-loader.d.ts +27 -0
  113. package/loaders/lib/gltf-loader.d.ts +21 -0
  114. package/loaders/lib/loader.d.ts +29 -0
  115. package/loaders/lib/progress.d.ts +9 -0
  116. package/loaders/lib/texture-loader.d.ts +13 -0
  117. package/materials/README.md +160 -2
  118. package/materials/index.d.ts +6 -6
  119. package/materials/lib/custom-shader-material.d.ts +19 -0
  120. package/materials/lib/mesh-distort-material.d.ts +18 -0
  121. package/materials/lib/mesh-reflector-material.d.ts +50 -0
  122. package/materials/lib/mesh-refraction-material.d.ts +42 -0
  123. package/materials/lib/mesh-transmission-material.d.ts +77 -0
  124. package/materials/lib/mesh-wobble-material.d.ts +15 -0
  125. package/metadata.json +1 -1
  126. package/misc/README.md +217 -2
  127. package/misc/index.d.ts +9 -13
  128. package/misc/lib/animations.d.ts +14 -0
  129. package/misc/lib/computed-attribute.d.ts +69 -0
  130. package/misc/lib/constants.d.ts +1 -0
  131. package/misc/lib/decal.d.ts +27 -0
  132. package/misc/lib/deprecated.d.ts +14 -0
  133. package/misc/lib/depth-buffer.d.ts +8 -0
  134. package/misc/lib/fbo.d.ts +47 -0
  135. package/misc/lib/sampler.d.ts +73 -0
  136. package/package.json +60 -38
  137. package/shaders/index.d.ts +2 -17
  138. package/shaders/lib/grid-material.d.ts +69 -0
  139. package/shaders/lib/mesh-refraction-material.d.ts +11 -0
  140. package/staging/README.md +472 -2
  141. package/staging/index.d.ts +18 -21
  142. package/staging/lib/accumulative-shadows.d.ts +75 -0
  143. package/staging/lib/backdrop.d.ts +22 -0
  144. package/staging/lib/bb-anchor.d.ts +17 -0
  145. package/staging/lib/bounds.d.ts +47 -0
  146. package/staging/lib/camera-shake.d.ts +29 -0
  147. package/staging/lib/caustics.d.ts +53 -0
  148. package/staging/lib/center.d.ts +422 -0
  149. package/staging/lib/contact-shadows.d.ts +45 -0
  150. package/staging/lib/environment.d.ts +159 -0
  151. package/staging/lib/float.d.ts +19 -0
  152. package/staging/lib/lightformer.d.ts +334 -0
  153. package/staging/lib/matcap-texture.d.ts +32 -0
  154. package/staging/lib/normal-texture.d.ts +37 -0
  155. package/staging/lib/randomized-lights.d.ts +54 -0
  156. package/staging/lib/render-texture.d.ts +64 -0
  157. package/staging/lib/sky.d.ts +32 -0
  158. package/staging/lib/spot-light.d.ts +120 -0
  159. package/staging/lib/stage.d.ts +376 -0
  160. package/vanilla-exports/README.md +3 -0
  161. package/vanilla-exports/index.d.ts +27 -0
  162. package/web-types.json +1 -1
  163. package/abstractions/billboard/billboard.d.ts +0 -28
  164. package/abstractions/detailed/detailed.d.ts +0 -26
  165. package/abstractions/edges/edges.d.ts +0 -34
  166. package/abstractions/grid/grid.d.ts +0 -50
  167. package/abstractions/text/text.d.ts +0 -82
  168. package/abstractions/text-3d/text-3d.d.ts +0 -84
  169. package/assets/distort.vert.glsl +0 -1
  170. package/cameras/camera/camera-content.d.ts +0 -13
  171. package/cameras/camera/camera.d.ts +0 -26
  172. package/cameras/cube-camera/cube-camera.d.ts +0 -69
  173. package/cameras/orthographic-camera/orthographic-camera.d.ts +0 -37
  174. package/cameras/perspective-camera/perspective-camera.d.ts +0 -18
  175. package/controls/orbit-controls/orbit-controls.d.ts +0 -54
  176. package/esm2022/abstractions/billboard/billboard.mjs +0 -74
  177. package/esm2022/abstractions/detailed/detailed.mjs +0 -64
  178. package/esm2022/abstractions/edges/edges.mjs +0 -88
  179. package/esm2022/abstractions/grid/grid.mjs +0 -180
  180. package/esm2022/abstractions/text/text.mjs +0 -274
  181. package/esm2022/abstractions/text-3d/text-3d.mjs +0 -172
  182. package/esm2022/cameras/camera/camera-content.mjs +0 -21
  183. package/esm2022/cameras/camera/camera.mjs +0 -77
  184. package/esm2022/cameras/cube-camera/cube-camera.mjs +0 -161
  185. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +0 -102
  186. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +0 -46
  187. package/esm2022/controls/orbit-controls/orbit-controls.mjs +0 -185
  188. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +0 -5
  189. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +0 -197
  190. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  191. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -93
  192. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -150
  193. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +0 -66
  194. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -71
  195. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -195
  196. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -272
  197. package/esm2022/gizmos/index.mjs +0 -4
  198. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +0 -30
  199. package/esm2022/loaders/loader/loader.mjs +0 -138
  200. package/esm2022/loaders/progress/progress.mjs +0 -52
  201. package/esm2022/loaders/texture-loader/texture-loader.mjs +0 -28
  202. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +0 -82
  203. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +0 -367
  204. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +0 -171
  205. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +0 -278
  206. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +0 -68
  207. package/esm2022/materials/point-material/point-material.mjs +0 -50
  208. package/esm2022/misc/animations/animations.mjs +0 -59
  209. package/esm2022/misc/bake-shadows/bake-shadows.mjs +0 -24
  210. package/esm2022/misc/caustics/caustics.mjs +0 -387
  211. package/esm2022/misc/decal/decal.mjs +0 -187
  212. package/esm2022/misc/depth-buffer/depth-buffer.mjs +0 -44
  213. package/esm2022/misc/example/example.mjs +0 -160
  214. package/esm2022/misc/fbo/fbo.mjs +0 -47
  215. package/esm2022/misc/html/html-wrapper.mjs +0 -478
  216. package/esm2022/misc/html/html.mjs +0 -304
  217. package/esm2022/misc/sampler/sampler.mjs +0 -142
  218. package/esm2022/misc/shadow/shadow.mjs +0 -111
  219. package/esm2022/misc/stats-gl/stats-gl.mjs +0 -61
  220. package/esm2022/misc/trail/trail.mjs +0 -209
  221. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +0 -17
  222. package/esm2022/misc/trail-texture/trail-texture.mjs +0 -106
  223. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +0 -5
  224. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +0 -64
  225. package/esm2022/modifiers/index.mjs +0 -2
  226. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +0 -44
  227. package/esm2022/performances/adaptive-events/adaptive-events.mjs +0 -27
  228. package/esm2022/performances/angular-three-soba-performances.mjs +0 -5
  229. package/esm2022/performances/index.mjs +0 -8
  230. package/esm2022/performances/instances/instances.mjs +0 -220
  231. package/esm2022/performances/instances/position-mesh.mjs +0 -52
  232. package/esm2022/performances/points/points-input.mjs +0 -64
  233. package/esm2022/performances/points/points.mjs +0 -326
  234. package/esm2022/performances/points/position-point.mjs +0 -54
  235. package/esm2022/performances/segments/segment-object.mjs +0 -9
  236. package/esm2022/performances/segments/segments.mjs +0 -182
  237. package/esm2022/shaders/blur-pass/blur-pass.mjs +0 -61
  238. package/esm2022/shaders/caustics/caustics-material.mjs +0 -130
  239. package/esm2022/shaders/caustics/caustics-projection-material.mjs +0 -31
  240. package/esm2022/shaders/convolution-material/convolution-material.mjs +0 -94
  241. package/esm2022/shaders/discard-material/discard-material.mjs +0 -3
  242. package/esm2022/shaders/grid-material/grid-material.mjs +0 -77
  243. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +0 -56
  244. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +0 -223
  245. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +0 -170
  246. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +0 -268
  247. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +0 -37
  248. package/esm2022/shaders/shader-material/shader-material.mjs +0 -34
  249. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +0 -25
  250. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +0 -33
  251. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +0 -86
  252. package/esm2022/shaders/star-field-material/star-field-material.mjs +0 -33
  253. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +0 -247
  254. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +0 -267
  255. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +0 -108
  256. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +0 -206
  257. package/esm2022/staging/backdrop/backdrop.mjs +0 -77
  258. package/esm2022/staging/bb-anchor/bb-anchor.mjs +0 -69
  259. package/esm2022/staging/bounds/bounds.mjs +0 -308
  260. package/esm2022/staging/camera-shake/camera-shake.mjs +0 -123
  261. package/esm2022/staging/center/center.mjs +0 -165
  262. package/esm2022/staging/cloud/cloud.mjs +0 -158
  263. package/esm2022/staging/contact-shadows/contact-shadows.mjs +0 -246
  264. package/esm2022/staging/environment/assets.mjs +0 -13
  265. package/esm2022/staging/environment/environment-cube.mjs +0 -47
  266. package/esm2022/staging/environment/environment-ground.mjs +0 -41
  267. package/esm2022/staging/environment/environment-input.mjs +0 -119
  268. package/esm2022/staging/environment/environment-map.mjs +0 -53
  269. package/esm2022/staging/environment/environment-portal.mjs +0 -113
  270. package/esm2022/staging/environment/environment.mjs +0 -61
  271. package/esm2022/staging/environment/utils.mjs +0 -106
  272. package/esm2022/staging/float/float.mjs +0 -94
  273. package/esm2022/staging/matcap-texture/matcap-texture.mjs +0 -64
  274. package/esm2022/staging/normal-texture/normal-texture.mjs +0 -53
  275. package/esm2022/staging/sky/sky.mjs +0 -119
  276. package/esm2022/staging/sparkles/sparkles.mjs +0 -164
  277. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +0 -63
  278. package/esm2022/staging/spot-light/shadow-mesh.mjs +0 -266
  279. package/esm2022/staging/spot-light/spot-light-input.mjs +0 -84
  280. package/esm2022/staging/spot-light/spot-light.mjs +0 -81
  281. package/esm2022/staging/spot-light/volumetric-mesh.mjs +0 -98
  282. package/esm2022/staging/stage/stage.mjs +0 -389
  283. package/esm2022/staging/stars/stars.mjs +0 -147
  284. package/esm2022/staging/wireframe/wireframe-input.mjs +0 -191
  285. package/esm2022/staging/wireframe/wireframe.mjs +0 -228
  286. package/esm2022/utils/angular-three-soba-utils.mjs +0 -5
  287. package/esm2022/utils/content/content.mjs +0 -15
  288. package/esm2022/utils/index.mjs +0 -2
  289. package/fesm2022/angular-three-soba-gizmos.mjs +0 -1043
  290. package/fesm2022/angular-three-soba-gizmos.mjs.map +0 -1
  291. package/fesm2022/angular-three-soba-modifiers.mjs +0 -71
  292. package/fesm2022/angular-three-soba-modifiers.mjs.map +0 -1
  293. package/fesm2022/angular-three-soba-performances.mjs +0 -956
  294. package/fesm2022/angular-three-soba-performances.mjs.map +0 -1
  295. package/fesm2022/angular-three-soba-utils.mjs +0 -22
  296. package/fesm2022/angular-three-soba-utils.mjs.map +0 -1
  297. package/gizmos/README.md +0 -3
  298. package/gizmos/gizmo-helper/gizmo-helper.d.ts +0 -69
  299. package/gizmos/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  300. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  301. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -29
  302. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +0 -33
  303. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -10
  304. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -40
  305. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -30
  306. package/gizmos/index.d.ts +0 -3
  307. package/loaders/gltf-loader/gltf-loader.d.ts +0 -10
  308. package/loaders/loader/loader.d.ts +0 -33
  309. package/loaders/progress/progress.d.ts +0 -9
  310. package/loaders/texture-loader/texture-loader.d.ts +0 -7
  311. package/materials/mesh-distort-material/mesh-distort-material.d.ts +0 -40
  312. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +0 -99
  313. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +0 -62
  314. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +0 -107
  315. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +0 -29
  316. package/materials/point-material/point-material.d.ts +0 -24
  317. package/misc/animations/animations.d.ts +0 -15
  318. package/misc/caustics/caustics.d.ts +0 -87
  319. package/misc/decal/decal.d.ts +0 -49
  320. package/misc/depth-buffer/depth-buffer.d.ts +0 -9
  321. package/misc/example/example.d.ts +0 -81
  322. package/misc/fbo/fbo.d.ts +0 -17
  323. package/misc/html/html-wrapper.d.ts +0 -559
  324. package/misc/html/html.d.ts +0 -214
  325. package/misc/sampler/sampler.d.ts +0 -67
  326. package/misc/shadow/shadow.d.ts +0 -37
  327. package/misc/stats-gl/stats-gl.d.ts +0 -24
  328. package/misc/trail/trail.d.ts +0 -57
  329. package/misc/trail-texture/inject-trail-texture.d.ts +0 -9
  330. package/misc/trail-texture/trail-texture.d.ts +0 -50
  331. package/modifiers/README.md +0 -3
  332. package/modifiers/curve-modifier/curve-modifier.d.ts +0 -23
  333. package/modifiers/index.d.ts +0 -1
  334. package/performances/README.md +0 -3
  335. package/performances/adaptive-dpr/adaptive-dpr.d.ts +0 -14
  336. package/performances/adaptive-events/adaptive-events.d.ts +0 -9
  337. package/performances/index.d.ts +0 -7
  338. package/performances/instances/instances.d.ts +0 -79
  339. package/performances/instances/position-mesh.d.ts +0 -10
  340. package/performances/points/points-input.d.ts +0 -32
  341. package/performances/points/points.d.ts +0 -92
  342. package/performances/points/position-point.d.ts +0 -11
  343. package/performances/segments/segment-object.d.ts +0 -7
  344. package/performances/segments/segments.d.ts +0 -124
  345. package/shaders/blur-pass/blur-pass.d.ts +0 -23
  346. package/shaders/caustics/caustics-material.d.ts +0 -4
  347. package/shaders/caustics/caustics-projection-material.d.ts +0 -4
  348. package/shaders/convolution-material/convolution-material.d.ts +0 -7
  349. package/shaders/discard-material/discard-material.d.ts +0 -3
  350. package/shaders/grid-material/grid-material.d.ts +0 -37
  351. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +0 -295
  352. package/shaders/mesh-reflector-material/mesh-reflector-material.d.ts +0 -50
  353. package/shaders/mesh-refraction-material/mesh-refraction-material.d.ts +0 -4
  354. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +0 -25
  355. package/shaders/mesh-wobble-material/mesh-wobble-material.d.ts +0 -16
  356. package/shaders/shader-material/shader-material.d.ts +0 -6
  357. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +0 -19
  358. package/shaders/sparkles-material/sparkles-material.d.ts +0 -17
  359. package/shaders/spot-light-material/spot-light-material.d.ts +0 -13
  360. package/shaders/star-field-material/star-field-material.d.ts +0 -13
  361. package/shaders/wireframe-material/wireframe-material.d.ts +0 -58
  362. package/staging/accumulative-shadows/accumulative-shadows.d.ts +0 -146
  363. package/staging/accumulative-shadows/progressive-light-map.d.ts +0 -34
  364. package/staging/accumulative-shadows/randomized-lights.d.ts +0 -90
  365. package/staging/backdrop/backdrop.d.ts +0 -30
  366. package/staging/bb-anchor/bb-anchor.d.ts +0 -27
  367. package/staging/bounds/bounds.d.ts +0 -134
  368. package/staging/camera-shake/camera-shake.d.ts +0 -43
  369. package/staging/center/center.d.ts +0 -70
  370. package/staging/cloud/cloud.d.ts +0 -51
  371. package/staging/contact-shadows/contact-shadows.d.ts +0 -70
  372. package/staging/environment/assets.d.ts +0 -13
  373. package/staging/environment/environment-cube.d.ts +0 -15
  374. package/staging/environment/environment-ground.d.ts +0 -13
  375. package/staging/environment/environment-input.d.ts +0 -68
  376. package/staging/environment/environment-map.d.ts +0 -16
  377. package/staging/environment/environment-portal.d.ts +0 -18
  378. package/staging/environment/environment.d.ts +0 -8
  379. package/staging/environment/utils.d.ts +0 -7
  380. package/staging/float/float.d.ts +0 -31
  381. package/staging/matcap-texture/matcap-texture.d.ts +0 -13
  382. package/staging/normal-texture/normal-texture.d.ts +0 -16
  383. package/staging/sky/sky.d.ts +0 -48
  384. package/staging/sparkles/sparkles.d.ts +0 -63
  385. package/staging/spot-light/shadow-mesh-input.d.ts +0 -29
  386. package/staging/spot-light/shadow-mesh.d.ts +0 -37
  387. package/staging/spot-light/spot-light-input.d.ts +0 -38
  388. package/staging/spot-light/spot-light.d.ts +0 -39
  389. package/staging/spot-light/volumetric-mesh.d.ts +0 -24
  390. package/staging/stage/stage.d.ts +0 -130
  391. package/staging/stars/stars.d.ts +0 -45
  392. package/staging/wireframe/wireframe-input.d.ts +0 -65
  393. package/staging/wireframe/wireframe.d.ts +0 -28
  394. package/utils/README.md +0 -3
  395. package/utils/content/content.d.ts +0 -8
  396. package/utils/index.d.ts +0 -1
  397. /package/misc/{bake-shadows → lib}/bake-shadows.d.ts +0 -0
@@ -0,0 +1,56 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, input, viewChild, } from '@angular/core';
2
+ import { NgtArgs, getLocalState } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { BufferAttribute } from 'three';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Used exclusively as a child of a BufferGeometry.
8
+ * Computes the BufferAttribute by calling the `compute` function
9
+ * and attaches the attribute to the geometry.
10
+ */
11
+ export class NgtsComputedAttribute {
12
+ constructor() {
13
+ this.compute = input.required();
14
+ this.name = input.required();
15
+ this.options = input({});
16
+ this.bufferAttribute = new BufferAttribute(new Float32Array(0), 1);
17
+ this.primitive = viewChild('primitive');
18
+ const autoEffect = injectAutoEffect();
19
+ afterNextRender(() => {
20
+ autoEffect(() => {
21
+ const primitive = this.primitive()?.nativeElement;
22
+ if (!primitive)
23
+ return;
24
+ const localState = getLocalState(primitive);
25
+ if (!localState)
26
+ return;
27
+ const geometry = primitive.parent ?? localState.parent();
28
+ console.log(geometry);
29
+ const attribute = this.compute()(geometry);
30
+ primitive.copy(attribute);
31
+ });
32
+ });
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsComputedAttribute, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.1.0", type: NgtsComputedAttribute, isStandalone: true, selector: "ngts-computed-attribute", inputs: { compute: { classPropertyName: "compute", publicName: "compute", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "primitive", first: true, predicate: ["primitive"], descendants: true, isSignal: true }], ngImport: i0, template: `
36
+ <ngt-primitive #primitive *args="[bufferAttribute]" [attach]="['attributes', name()]" [parameters]="options()">
37
+ <ng-content />
38
+ </ngt-primitive>
39
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsComputedAttribute, decorators: [{
42
+ type: Component,
43
+ args: [{
44
+ selector: 'ngts-computed-attribute',
45
+ standalone: true,
46
+ template: `
47
+ <ngt-primitive #primitive *args="[bufferAttribute]" [attach]="['attributes', name()]" [parameters]="options()">
48
+ <ng-content />
49
+ </ngt-primitive>
50
+ `,
51
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
52
+ changeDetection: ChangeDetectionStrategy.OnPush,
53
+ imports: [NgtArgs],
54
+ }]
55
+ }], ctorParameters: () => [] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZWQtYXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9jb21wdXRlZC1hdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQXNCLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLE9BQU8sQ0FBQzs7QUFjeEQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFRakM7UUFQQSxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBaUQsQ0FBQztRQUMxRSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2hDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBaUMsQ0FBQyxDQUFDO1FBRW5ELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsY0FBUyxHQUFHLFNBQVMsQ0FBOEIsV0FBVyxDQUFDLENBQUM7UUFHL0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0QyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLGFBQWEsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLFNBQVM7b0JBQUUsT0FBTztnQkFFdkIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsVUFBVTtvQkFBRSxPQUFPO2dCQUV4QixNQUFNLFFBQVEsR0FBSyxTQUFpQixDQUFDLE1BQXlCLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0RixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUV0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzNDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBMUJXLHFCQUFxQjtrR0FBckIscUJBQXFCLHNrQkFkdkI7Ozs7RUFJVCw0REFHUyxPQUFPOzsyRkFPTCxxQkFBcUI7a0JBakJqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0QnVmZmVyQXR0cmlidXRlLCBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWNvbXB1dGVkLWF0dHJpYnV0ZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgI3ByaW1pdGl2ZSAqYXJncz1cIltidWZmZXJBdHRyaWJ1dGVdXCIgW2F0dGFjaF09XCJbJ2F0dHJpYnV0ZXMnLCBuYW1lKCldXCIgW3BhcmFtZXRlcnNdPVwib3B0aW9ucygpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbi8qKlxuICogVXNlZCBleGNsdXNpdmVseSBhcyBhIGNoaWxkIG9mIGEgQnVmZmVyR2VvbWV0cnkuXG4gKiBDb21wdXRlcyB0aGUgQnVmZmVyQXR0cmlidXRlIGJ5IGNhbGxpbmcgdGhlIGBjb21wdXRlYCBmdW5jdGlvblxuICogYW5kIGF0dGFjaGVzIHRoZSBhdHRyaWJ1dGUgdG8gdGhlIGdlb21ldHJ5LlxuICovXG5leHBvcnQgY2xhc3MgTmd0c0NvbXB1dGVkQXR0cmlidXRlIHtcblx0Y29tcHV0ZSA9IGlucHV0LnJlcXVpcmVkPChnZW9tZXRyeTogQnVmZmVyR2VvbWV0cnkpID0+IEJ1ZmZlckF0dHJpYnV0ZT4oKTtcblx0bmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIFBhcnRpYWw8Tmd0QnVmZmVyQXR0cmlidXRlPik7XG5cblx0YnVmZmVyQXR0cmlidXRlID0gbmV3IEJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KDApLCAxKTtcblx0cHJpbWl0aXZlID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8QnVmZmVyQXR0cmlidXRlPj4oJ3ByaW1pdGl2ZScpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHByaW1pdGl2ZSA9IHRoaXMucHJpbWl0aXZlKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmICghcHJpbWl0aXZlKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUocHJpbWl0aXZlKTtcblx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgZ2VvbWV0cnkgPSAoKHByaW1pdGl2ZSBhcyBhbnkpLnBhcmVudCBhcyBCdWZmZXJHZW9tZXRyeSkgPz8gbG9jYWxTdGF0ZS5wYXJlbnQoKTtcblx0XHRcdFx0Y29uc29sZS5sb2coZ2VvbWV0cnkpO1xuXG5cdFx0XHRcdGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuY29tcHV0ZSgpKGdlb21ldHJ5KTtcblx0XHRcdFx0cHJpbWl0aXZlLmNvcHkoYXR0cmlidXRlKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { REVISION } from 'three';
2
+ export function getVersion() {
3
+ return parseInt(REVISION.replace(/\D+/g, ''));
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqQyxNQUFNLFVBQVUsVUFBVTtJQUN6QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSRVZJU0lPTiB9IGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb24oKSB7XG5cdHJldHVybiBwYXJzZUludChSRVZJU0lPTi5yZXBsYWNlKC9cXEQrL2csICcnKSk7XG59XG4iXX0=
@@ -0,0 +1,135 @@
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, viewChild, } from '@angular/core';
2
+ import { applyProps, extend, getLocalState, omit, pick, resolveRef } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { mergeInputs } from 'ngxtension/inject-inputs';
5
+ import { AxesHelper, BoxGeometry, Euler, Mesh, MeshNormalMaterial, Object3D, Vector3 } from 'three';
6
+ import { DecalGeometry } from 'three-stdlib';
7
+ import * as i0 from "@angular/core";
8
+ const defaultOptions = {
9
+ polygonOffsetFactor: -10,
10
+ debug: false,
11
+ depthTest: false,
12
+ };
13
+ export class NgtsDecal {
14
+ constructor() {
15
+ this.mesh = input();
16
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
17
+ this.parameters = omit(this.options, [
18
+ 'debug',
19
+ 'map',
20
+ 'depthTest',
21
+ 'polygonOffsetFactor',
22
+ 'position',
23
+ 'scale',
24
+ 'rotation',
25
+ ]);
26
+ this.meshRef = viewChild.required('mesh');
27
+ this.helperRef = viewChild('helper');
28
+ this.map = pick(this.options, 'map');
29
+ this.depthTest = pick(this.options, 'depthTest');
30
+ this.polygonOffsetFactor = pick(this.options, 'polygonOffsetFactor');
31
+ this.debug = pick(this.options, 'debug');
32
+ this.position = pick(this.options, 'position');
33
+ this.rotation = pick(this.options, 'rotation');
34
+ this.scale = pick(this.options, 'scale');
35
+ extend({ Mesh, BoxGeometry, MeshNormalMaterial, AxesHelper });
36
+ const autoEffect = injectAutoEffect();
37
+ afterNextRender(() => {
38
+ autoEffect(() => {
39
+ const thisMesh = this.meshRef().nativeElement;
40
+ const localState = getLocalState(thisMesh);
41
+ if (!localState)
42
+ return;
43
+ const mesh = resolveRef(this.mesh());
44
+ const parent = mesh || localState.parent();
45
+ if (parent && !parent.isMesh) {
46
+ throw new Error('<ngts-decal> must have a Mesh as parent or specify its "mesh" input');
47
+ }
48
+ if (!parent)
49
+ return;
50
+ const [position, rotation, scale] = [this.position(), this.rotation(), this.scale()];
51
+ const state = {
52
+ position: new Vector3(),
53
+ rotation: new Euler(),
54
+ scale: new Vector3(1, 1, 1),
55
+ };
56
+ applyProps(state, { position, scale });
57
+ // zero out the parents matrix world for this operation
58
+ const matrixWorld = parent.matrixWorld.clone();
59
+ parent.matrixWorld.identity();
60
+ if (!rotation || typeof rotation === 'number') {
61
+ const o = new Object3D();
62
+ o.position.copy(state.position);
63
+ o.lookAt(parent.position);
64
+ if (typeof rotation === 'number')
65
+ o.rotateZ(rotation);
66
+ applyProps(state, { rotation: o.rotation });
67
+ }
68
+ else {
69
+ applyProps(state, { rotation });
70
+ }
71
+ thisMesh.geometry = new DecalGeometry(parent, state.position, state.rotation, state.scale);
72
+ const helper = this.helperRef()?.nativeElement;
73
+ if (helper) {
74
+ applyProps(helper, state);
75
+ // Prevent the helpers from blocking rays
76
+ helper.traverse((child) => (child.raycast = () => null));
77
+ }
78
+ // Reset parents matrix-world
79
+ parent.matrixWorld = matrixWorld;
80
+ return () => {
81
+ thisMesh.geometry.dispose();
82
+ };
83
+ });
84
+ });
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsDecal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NgtsDecal, isStandalone: true, selector: "ngts-decal", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "helperRef", first: true, predicate: ["helper"], descendants: true, isSignal: true }], ngImport: i0, template: `
88
+ <ngt-mesh #mesh [parameters]="parameters()">
89
+ <ng-content />
90
+
91
+ @if (debug()) {
92
+ <ngt-mesh #helper>
93
+ <ngt-box-geometry />
94
+ <ngt-mesh-normal-material [wireframe]="true" />
95
+ <ngt-axes-helper />
96
+ </ngt-mesh>
97
+ }
98
+
99
+ <ngt-value [rawValue]="true" attach="material.transparent" />
100
+ <ngt-value [rawValue]="true" attach="material.polygonOffset" />
101
+ <ngt-value [rawValue]="polygonOffsetFactor()" attach="material.polygonOffsetFactor" />
102
+ <ngt-value [rawValue]="depthTest()" attach="material.depthTest" />
103
+ <ngt-value [rawValue]="map()" attach="material.map" />
104
+ </ngt-mesh>
105
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsDecal, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'ngts-decal',
111
+ standalone: true,
112
+ template: `
113
+ <ngt-mesh #mesh [parameters]="parameters()">
114
+ <ng-content />
115
+
116
+ @if (debug()) {
117
+ <ngt-mesh #helper>
118
+ <ngt-box-geometry />
119
+ <ngt-mesh-normal-material [wireframe]="true" />
120
+ <ngt-axes-helper />
121
+ </ngt-mesh>
122
+ }
123
+
124
+ <ngt-value [rawValue]="true" attach="material.transparent" />
125
+ <ngt-value [rawValue]="true" attach="material.polygonOffset" />
126
+ <ngt-value [rawValue]="polygonOffsetFactor()" attach="material.polygonOffsetFactor" />
127
+ <ngt-value [rawValue]="depthTest()" attach="material.depthTest" />
128
+ <ngt-value [rawValue]="map()" attach="material.map" />
129
+ </ngt-mesh>
130
+ `,
131
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
132
+ changeDetection: ChangeDetectionStrategy.OnPush,
133
+ }]
134
+ }], ctorParameters: () => [] });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWlzYy9zcmMvbGliL2RlY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFFdEIsS0FBSyxFQUNMLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQVcsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFXLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQVM3QyxNQUFNLGNBQWMsR0FBcUI7SUFDeEMsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFO0lBQ3hCLEtBQUssRUFBRSxLQUFLO0lBQ1osU0FBUyxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQTJCRixNQUFNLE9BQU8sU0FBUztJQXdCckI7UUF2QkEsU0FBSSxHQUFHLEtBQUssRUFBa0MsQ0FBQztRQUMvQyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMvQixPQUFPO1lBQ1AsS0FBSztZQUNMLFdBQVc7WUFDWCxxQkFBcUI7WUFDckIsVUFB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QUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhcHBseVByb3BzLCBleHRlbmQsIGdldExvY2FsU3RhdGUsIE5ndE1lc2gsIG9taXQsIHBpY2ssIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEF4ZXNIZWxwZXIsIEJveEdlb21ldHJ5LCBFdWxlciwgTWVzaCwgTWVzaE5vcm1hbE1hdGVyaWFsLCBPYmplY3QzRCwgVGV4dHVyZSwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IERlY2FsR2VvbWV0cnkgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNEZWNhbE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndE1lc2g+IHtcblx0cG9seWdvbk9mZnNldEZhY3RvcjogbnVtYmVyO1xuXHRkZXB0aFRlc3Q6IGJvb2xlYW47XG5cdGRlYnVnOiBib29sZWFuO1xuXHRtYXA/OiBUZXh0dXJlO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c0RlY2FsT3B0aW9ucyA9IHtcblx0cG9seWdvbk9mZnNldEZhY3RvcjogLTEwLFxuXHRkZWJ1ZzogZmFsc2UsXG5cdGRlcHRoVGVzdDogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWRlY2FsJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggI21lc2ggW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXG5cdFx0XHRAaWYgKGRlYnVnKCkpIHtcblx0XHRcdFx0PG5ndC1tZXNoICNoZWxwZXI+XG5cdFx0XHRcdFx0PG5ndC1ib3gtZ2VvbWV0cnkgLz5cblx0XHRcdFx0XHQ8bmd0LW1lc2gtbm9ybWFsLW1hdGVyaWFsIFt3aXJlZnJhbWVdPVwidHJ1ZVwiIC8+XG5cdFx0XHRcdFx0PG5ndC1heGVzLWhlbHBlciAvPlxuXHRcdFx0XHQ8L25ndC1tZXNoPlxuXHRcdFx0fVxuXG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJ0cnVlXCIgYXR0YWNoPVwibWF0ZXJpYWwudHJhbnNwYXJlbnRcIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwidHJ1ZVwiIGF0dGFjaD1cIm1hdGVyaWFsLnBvbHlnb25PZmZzZXRcIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwicG9seWdvbk9mZnNldEZhY3RvcigpXCIgYXR0YWNoPVwibWF0ZXJpYWwucG9seWdvbk9mZnNldEZhY3RvclwiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJkZXB0aFRlc3QoKVwiIGF0dGFjaD1cIm1hdGVyaWFsLmRlcHRoVGVzdFwiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJtYXAoKVwiIGF0dGFjaD1cIm1hdGVyaWFsLm1hcFwiIC8+XG5cdFx0PC9uZ3QtbWVzaD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0RlY2FsIHtcblx0bWVzaCA9IGlucHV0PEVsZW1lbnRSZWY8TWVzaD4gfCBNZXNoIHwgbnVsbD4oKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnZGVidWcnLFxuXHRcdCdtYXAnLFxuXHRcdCdkZXB0aFRlc3QnLFxuXHRcdCdwb2x5Z29uT2Zmc2V0RmFjdG9yJyxcblx0XHQncG9zaXRpb24nLFxuXHRcdCdzY2FsZScsXG5cdFx0J3JvdGF0aW9uJyxcblx0XSk7XG5cblx0bWVzaFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE1lc2g+PignbWVzaCcpO1xuXHRoZWxwZXJSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxNZXNoPj4oJ2hlbHBlcicpO1xuXG5cdG1hcCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFwJyk7XG5cdGRlcHRoVGVzdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVwdGhUZXN0Jyk7XG5cdHBvbHlnb25PZmZzZXRGYWN0b3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BvbHlnb25PZmZzZXRGYWN0b3InKTtcblx0ZGVidWcgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlYnVnJyk7XG5cdHByaXZhdGUgcG9zaXRpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Bvc2l0aW9uJyk7XG5cdHByaXZhdGUgcm90YXRpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ3JvdGF0aW9uJyk7XG5cdHByaXZhdGUgc2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NjYWxlJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgTWVzaCwgQm94R2VvbWV0cnksIE1lc2hOb3JtYWxNYXRlcmlhbCwgQXhlc0hlbHBlciB9KTtcblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0aGlzTWVzaCA9IHRoaXMubWVzaFJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKHRoaXNNZXNoKTtcblx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgbWVzaCA9IHJlc29sdmVSZWYodGhpcy5tZXNoKCkpO1xuXHRcdFx0XHRjb25zdCBwYXJlbnQgPSBtZXNoIHx8IGxvY2FsU3RhdGUucGFyZW50KCk7XG5cblx0XHRcdFx0aWYgKHBhcmVudCAmJiAhKHBhcmVudCBhcyBNZXNoKS5pc01lc2gpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJzxuZ3RzLWRlY2FsPiBtdXN0IGhhdmUgYSBNZXNoIGFzIHBhcmVudCBvciBzcGVjaWZ5IGl0cyBcIm1lc2hcIiBpbnB1dCcpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCFwYXJlbnQpIHJldHVybjtcblxuXHRcdFx0XHRjb25zdCBbcG9zaXRpb24sIHJvdGF0aW9uLCBzY2FsZV0gPSBbdGhpcy5wb3NpdGlvbigpLCB0aGlzLnJvdGF0aW9uKCksIHRoaXMuc2NhbGUoKV07XG5cdFx0XHRcdGNvbnN0IHN0YXRlID0ge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBuZXcgVmVjdG9yMygpLFxuXHRcdFx0XHRcdHJvdGF0aW9uOiBuZXcgRXVsZXIoKSxcblx0XHRcdFx0XHRzY2FsZTogbmV3IFZlY3RvcjMoMSwgMSwgMSksXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0YXBwbHlQcm9wcyhzdGF0ZSwgeyBwb3NpdGlvbiwgc2NhbGUgfSk7XG5cblx0XHRcdFx0Ly8gemVybyBvdXQgdGhlIHBhcmVudHMgbWF0cml4IHdvcmxkIGZvciB0aGlzIG9wZXJhdGlvblxuXHRcdFx0XHRjb25zdCBtYXRyaXhXb3JsZCA9IHBhcmVudC5tYXRyaXhXb3JsZC5jbG9uZSgpO1xuXHRcdFx0XHRwYXJlbnQubWF0cml4V29ybGQuaWRlbnRpdHkoKTtcblxuXHRcdFx0XHRpZiAoIXJvdGF0aW9uIHx8IHR5cGVvZiByb3RhdGlvbiA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0XHRjb25zdCBvID0gbmV3IE9iamVjdDNEKCk7XG5cdFx0XHRcdFx0by5wb3NpdGlvbi5jb3B5KHN0YXRlLnBvc2l0aW9uKTtcblx0XHRcdFx0XHRvLmxvb2tBdChwYXJlbnQucG9zaXRpb24pO1xuXHRcdFx0XHRcdGlmICh0eXBlb2Ygcm90YXRpb24gPT09ICdudW1iZXInKSBvLnJvdGF0ZVoocm90YXRpb24pO1xuXHRcdFx0XHRcdGFwcGx5UHJvcHMoc3RhdGUsIHsgcm90YXRpb246IG8ucm90YXRpb24gfSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YXBwbHlQcm9wcyhzdGF0ZSwgeyByb3RhdGlvbiB9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXNNZXNoLmdlb21ldHJ5ID0gbmV3IERlY2FsR2VvbWV0cnkocGFyZW50LCBzdGF0ZS5wb3NpdGlvbiwgc3RhdGUucm90YXRpb24sIHN0YXRlLnNjYWxlKTtcblx0XHRcdFx0Y29uc3QgaGVscGVyID0gdGhpcy5oZWxwZXJSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0aWYgKGhlbHBlcikge1xuXHRcdFx0XHRcdGFwcGx5UHJvcHMoaGVscGVyLCBzdGF0ZSk7XG5cdFx0XHRcdFx0Ly8gUHJldmVudCB0aGUgaGVscGVycyBmcm9tIGJsb2NraW5nIHJheXNcblx0XHRcdFx0XHRoZWxwZXIudHJhdmVyc2UoKGNoaWxkKSA9PiAoY2hpbGQucmF5Y2FzdCA9ICgpID0+IG51bGwpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlc2V0IHBhcmVudHMgbWF0cml4LXdvcmxkXG5cdFx0XHRcdHBhcmVudC5tYXRyaXhXb3JsZCA9IG1hdHJpeFdvcmxkO1xuXG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0dGhpc01lc2guZ2VvbWV0cnkuZGlzcG9zZSgpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * NOTE: Sets `BufferAttribute.updateRange` since r159.
3
+ */
4
+ export const setUpdateRange = (attribute, updateRange) => {
5
+ if ('updateRanges' in attribute) {
6
+ // @ts-expect-error - r159
7
+ attribute.updateRanges[0] = updateRange;
8
+ }
9
+ else {
10
+ Object.assign(attribute, { updateRange });
11
+ }
12
+ };
13
+ export const LinearEncoding = 3000;
14
+ export const sRGBEncoding = 3001;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9taXNjL3NyYy9saWIvZGVwcmVjYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFNBQTBCLEVBQUUsV0FBOEMsRUFBUSxFQUFFO0lBQ2xILElBQUksY0FBYyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLDBCQUEwQjtRQUMxQixTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUN6QyxDQUFDO1NBQU0sQ0FBQztRQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVmZmVyQXR0cmlidXRlIH0gZnJvbSAndGhyZWUnO1xuXG4vKipcbiAqIE5PVEU6IFNldHMgYEJ1ZmZlckF0dHJpYnV0ZS51cGRhdGVSYW5nZWAgc2luY2UgcjE1OS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldFVwZGF0ZVJhbmdlID0gKGF0dHJpYnV0ZTogQnVmZmVyQXR0cmlidXRlLCB1cGRhdGVSYW5nZTogeyBvZmZzZXQ6IG51bWJlcjsgY291bnQ6IG51bWJlciB9KTogdm9pZCA9PiB7XG5cdGlmICgndXBkYXRlUmFuZ2VzJyBpbiBhdHRyaWJ1dGUpIHtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gcjE1OVxuXHRcdGF0dHJpYnV0ZS51cGRhdGVSYW5nZXNbMF0gPSB1cGRhdGVSYW5nZTtcblx0fSBlbHNlIHtcblx0XHRPYmplY3QuYXNzaWduKGF0dHJpYnV0ZSwgeyB1cGRhdGVSYW5nZSB9KTtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IExpbmVhckVuY29kaW5nID0gMzAwMDtcbmV4cG9ydCBjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXG4vKipcbiAqIE5PVEU6IFRleHR1cmVFbmNvZGluZyB3YXMgZGVwcmVjYXRlZCBpbiByMTUyLCBhbmQgcmVtb3ZlZCBpbiByMTYyLlxuICovXG5leHBvcnQgdHlwZSBUZXh0dXJlRW5jb2RpbmcgPSB0eXBlb2YgTGluZWFyRW5jb2RpbmcgfCB0eXBlb2Ygc1JHQkVuY29kaW5nO1xuIl19
@@ -0,0 +1,39 @@
1
+ import { computed } from '@angular/core';
2
+ import { injectBeforeRender, injectStore, pick } from 'angular-three';
3
+ import { assertInjector } from 'ngxtension/assert-injector';
4
+ import { DepthFormat, DepthTexture, UnsignedShortType } from 'three';
5
+ import { injectFBO } from './fbo';
6
+ export function injectDepthBuffer(params = () => ({}), { injector } = {}) {
7
+ return assertInjector(injectDepthBuffer, injector, () => {
8
+ const size = computed(() => params().size || 256);
9
+ const frames = computed(() => params().frames || Infinity);
10
+ const store = injectStore();
11
+ const width = store.select('size', 'width');
12
+ const height = store.select('size', 'height');
13
+ const dpr = store.select('viewport', 'dpr');
14
+ const w = computed(() => size() || width() * dpr());
15
+ const h = computed(() => size() || height() * dpr());
16
+ const depthConfig = computed(() => {
17
+ const depthTexture = new DepthTexture(w(), h());
18
+ depthTexture.format = DepthFormat;
19
+ depthTexture.type = UnsignedShortType;
20
+ return { depthTexture };
21
+ });
22
+ const depthFBO = injectFBO(() => ({
23
+ width: w(),
24
+ height: h(),
25
+ settings: depthConfig(),
26
+ }));
27
+ let count = 0;
28
+ injectBeforeRender(({ gl, scene, camera }) => {
29
+ if (frames() === Infinity || count < frames()) {
30
+ gl.setRenderTarget(depthFBO());
31
+ gl.render(scene, camera);
32
+ gl.setRenderTarget(null);
33
+ count++;
34
+ }
35
+ });
36
+ return pick(depthFBO, 'depthTexture');
37
+ });
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtYnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9kZXB0aC1idWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxNQUFNLFVBQVUsaUJBQWlCLENBQ2hDLFNBQW1ELEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzdELEVBQUUsUUFBUSxLQUE4QixFQUFFO0lBRTFDLE9BQU8sY0FBYyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDdkQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNsRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBRTNELE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRCxZQUFZLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztZQUNsQyxZQUFZLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDVixNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQ1gsUUFBUSxFQUFFLFdBQVcsRUFBRTtTQUN2QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLGtCQUFrQixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxNQUFNLEVBQUUsS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQy9DLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDL0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3pCLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxDQUFDO1lBQ1QsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBEZXB0aEZvcm1hdCwgRGVwdGhUZXh0dXJlLCBVbnNpZ25lZFNob3J0VHlwZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdEZCTyB9IGZyb20gJy4vZmJvJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlcHRoQnVmZmVyKFxuXHRwYXJhbXM6ICgpID0+IHsgc2l6ZT86IG51bWJlcjsgZnJhbWVzPzogbnVtYmVyIH0gPSAoKSA9PiAoe30pLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdERlcHRoQnVmZmVyLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHNpemUgPSBjb21wdXRlZCgoKSA9PiBwYXJhbXMoKS5zaXplIHx8IDI1Nik7XG5cdFx0Y29uc3QgZnJhbWVzID0gY29tcHV0ZWQoKCkgPT4gcGFyYW1zKCkuZnJhbWVzIHx8IEluZmluaXR5KTtcblxuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCB3aWR0aCA9IHN0b3JlLnNlbGVjdCgnc2l6ZScsICd3aWR0aCcpO1xuXHRcdGNvbnN0IGhlaWdodCA9IHN0b3JlLnNlbGVjdCgnc2l6ZScsICdoZWlnaHQnKTtcblx0XHRjb25zdCBkcHIgPSBzdG9yZS5zZWxlY3QoJ3ZpZXdwb3J0JywgJ2RwcicpO1xuXG5cdFx0Y29uc3QgdyA9IGNvbXB1dGVkKCgpID0+IHNpemUoKSB8fCB3aWR0aCgpICogZHByKCkpO1xuXHRcdGNvbnN0IGggPSBjb21wdXRlZCgoKSA9PiBzaXplKCkgfHwgaGVpZ2h0KCkgKiBkcHIoKSk7XG5cblx0XHRjb25zdCBkZXB0aENvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IGRlcHRoVGV4dHVyZSA9IG5ldyBEZXB0aFRleHR1cmUodygpLCBoKCkpO1xuXHRcdFx0ZGVwdGhUZXh0dXJlLmZvcm1hdCA9IERlcHRoRm9ybWF0O1xuXHRcdFx0ZGVwdGhUZXh0dXJlLnR5cGUgPSBVbnNpZ25lZFNob3J0VHlwZTtcblx0XHRcdHJldHVybiB7IGRlcHRoVGV4dHVyZSB9O1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgZGVwdGhGQk8gPSBpbmplY3RGQk8oKCkgPT4gKHtcblx0XHRcdHdpZHRoOiB3KCksXG5cdFx0XHRoZWlnaHQ6IGgoKSxcblx0XHRcdHNldHRpbmdzOiBkZXB0aENvbmZpZygpLFxuXHRcdH0pKTtcblxuXHRcdGxldCBjb3VudCA9IDA7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGdsLCBzY2VuZSwgY2FtZXJhIH0pID0+IHtcblx0XHRcdGlmIChmcmFtZXMoKSA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMoKSkge1xuXHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQoZGVwdGhGQk8oKSk7XG5cdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHBpY2soZGVwdGhGQk8sICdkZXB0aFRleHR1cmUnKTtcblx0fSk7XG59XG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { DestroyRef, Directive, TemplateRef, ViewContainerRef, afterNextRender, computed, inject, input, untracked, } from '@angular/core';
2
+ import { injectStore } from 'angular-three';
3
+ import { assertInjector } from 'ngxtension/assert-injector';
4
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
5
+ import { DepthTexture, FloatType, HalfFloatType, LinearFilter, WebGLRenderTarget, } from 'three';
6
+ import * as i0 from "@angular/core";
7
+ export function injectFBO(params, { injector } = {}) {
8
+ return assertInjector(injectFBO, injector, () => {
9
+ const autoEffect = injectAutoEffect();
10
+ const store = injectStore();
11
+ const size = store.select('size');
12
+ const viewport = store.select('viewport');
13
+ const width = computed(() => {
14
+ const { width } = params();
15
+ return typeof width === 'number' ? width : size().width * viewport().dpr;
16
+ });
17
+ const height = computed(() => {
18
+ const { height } = params();
19
+ return typeof height === 'number' ? height : size().height * viewport().dpr;
20
+ });
21
+ const settings = computed(() => {
22
+ const { width, settings } = params();
23
+ const _settings = (typeof width === 'number' ? settings : width) || {};
24
+ if (_settings.samples === undefined) {
25
+ _settings.samples = 0;
26
+ }
27
+ return _settings;
28
+ });
29
+ const target = computed(() => {
30
+ const [{ samples = 0, depth, ...targetSettings }, _width, _height] = [
31
+ untracked(settings),
32
+ untracked(width),
33
+ untracked(height),
34
+ ];
35
+ const target = new WebGLRenderTarget(_width, _height, {
36
+ minFilter: LinearFilter,
37
+ magFilter: LinearFilter,
38
+ type: HalfFloatType,
39
+ ...targetSettings,
40
+ });
41
+ if (depth) {
42
+ target.depthTexture = new DepthTexture(_width, _height, FloatType);
43
+ }
44
+ target.samples = samples;
45
+ return target;
46
+ });
47
+ afterNextRender(() => {
48
+ autoEffect(() => {
49
+ const [{ samples = 0 }, _width, _height, _target] = [settings(), width(), height(), target()];
50
+ _target.setSize(_width, _height);
51
+ if (samples)
52
+ _target.samples = samples;
53
+ });
54
+ });
55
+ inject(DestroyRef).onDestroy(() => target().dispose());
56
+ return target;
57
+ });
58
+ }
59
+ export class NgtsFBO {
60
+ constructor() {
61
+ this.fbo = input({});
62
+ this.template = inject(TemplateRef);
63
+ this.viewContainerRef = inject(ViewContainerRef);
64
+ this.fboTarget = injectFBO(() => {
65
+ const { width, height, ...settings } = this.fbo();
66
+ return { width, height, settings };
67
+ });
68
+ let ref;
69
+ afterNextRender(() => {
70
+ untracked(() => {
71
+ ref = this.viewContainerRef.createEmbeddedView(this.template, { $implicit: this.fboTarget });
72
+ ref.detectChanges();
73
+ });
74
+ });
75
+ inject(DestroyRef).onDestroy(() => {
76
+ ref?.destroy();
77
+ });
78
+ }
79
+ static ngTemplateContextGuard(_, ctx) {
80
+ return true;
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsFBO, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.0", type: NgtsFBO, isStandalone: true, selector: "ng-template[fbo]", inputs: { fbo: { classPropertyName: "fbo", publicName: "fbo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsFBO, decorators: [{
86
+ type: Directive,
87
+ args: [{ selector: 'ng-template[fbo]', standalone: true }]
88
+ }], ctorParameters: () => [] });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9mYm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBR1QsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFFTixZQUFZLEVBQ1osU0FBUyxFQUNULGFBQWEsRUFDYixZQUFZLEVBSVosaUJBQWlCLEdBRWpCLE1BQU0sT0FBTyxDQUFDOztBQStCZixNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQTJCLEVBQUUsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFDaEcsT0FBTyxjQUFjLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDL0MsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFMUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDM0IsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUss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LFdBQVcsQ0FBQyxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLGNBQVMsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBR0YsSUFBSSxHQUFpRSxDQUFDO1FBQ3RFLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQzdGLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFVLEVBQUUsR0FBWTtRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7OEdBM0JXLE9BQU87a0dBQVAsT0FBTzs7MkZBQVAsT0FBTztrQkFEbkIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdEluamVjdG9yLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7XG5cdENvbG9yU3BhY2UsXG5cdERlcHRoVGV4dHVyZSxcblx0RmxvYXRUeXBlLFxuXHRIYWxmRmxvYXRUeXBlLFxuXHRMaW5lYXJGaWx0ZXIsXG5cdE1hZ25pZmljYXRpb25UZXh0dXJlRmlsdGVyLFxuXHRNaW5pZmljYXRpb25UZXh0dXJlRmlsdGVyLFxuXHRUZXh0dXJlRGF0YVR5cGUsXG5cdFdlYkdMUmVuZGVyVGFyZ2V0LFxuXHRXcmFwcGluZyxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgVGV4dHVyZUVuY29kaW5nIH0gZnJvbSAnLi9kZXByZWNhdGVkJztcblxuaW50ZXJmYWNlIEZCT1NldHRpbmdzIHtcblx0LyoqIERlZmluZXMgdGhlIGNvdW50IG9mIE1TQUEgc2FtcGxlcy4gQ2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMIDIuIERlZmF1bHQ6IDAgKi9cblx0c2FtcGxlcz86IG51bWJlcjtcblx0LyoqIElmIHNldCwgdGhlIHNjZW5lIGRlcHRoIHdpbGwgYmUgcmVuZGVyZWQgaW50byBidWZmZXIuZGVwdGhUZXh0dXJlLiBEZWZhdWx0OiBmYWxzZSAqL1xuXHRkZXB0aD86IGJvb2xlYW47XG5cblx0Ly8gV2ViR0xSZW5kZXJUYXJnZXRPcHRpb25zID0+IFJlbmRlclRhcmdldE9wdGlvbnNcblx0d3JhcFM/OiBXcmFwcGluZyB8IHVuZGVmaW5lZDtcblx0d3JhcFQ/OiBXcmFwcGluZyB8IHVuZGVmaW5lZDtcblx0bWFnRmlsdGVyPzogTWFnbmlmaWNhdGlvblRleHR1cmVGaWx0ZXIgfCB1bmRlZmluZWQ7XG5cdG1pbkZpbHRlcj86IE1pbmlmaWNhdGlvblRleHR1cmVGaWx0ZXIgfCB1bmRlZmluZWQ7XG5cdGZvcm1hdD86IG51bWJlciB8IHVuZGVmaW5lZDsgLy8gUkdCQUZvcm1hdDtcblx0dHlwZT86IFRleHR1cmVEYXRhVHlwZSB8IHVuZGVmaW5lZDsgLy8gVW5zaWduZWRCeXRlVHlwZTtcblx0YW5pc290cm9weT86IG51bWJlciB8IHVuZGVmaW5lZDsgLy8gMTtcblx0ZGVwdGhCdWZmZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyB0cnVlO1xuXHRzdGVuY2lsQnVmZmVyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gZmFsc2U7XG5cdGdlbmVyYXRlTWlwbWFwcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIHRydWU7XG5cdGRlcHRoVGV4dHVyZT86IERlcHRoVGV4dHVyZSB8IHVuZGVmaW5lZDtcblx0ZW5jb2Rpbmc/OiBUZXh0dXJlRW5jb2RpbmcgfCB1bmRlZmluZWQ7XG5cdGNvbG9yU3BhY2U/OiBDb2xvclNwYWNlIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNGQk9QYXJhbXMge1xuXHR3aWR0aD86IG51bWJlciB8IEZCT1NldHRpbmdzO1xuXHRoZWlnaHQ/OiBudW1iZXI7XG5cdHNldHRpbmdzPzogRkJPU2V0dGluZ3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RGQk8ocGFyYW1zOiAoKSA9PiBOZ3RzRkJPUGFyYW1zLCB7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEZCTywgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBzaXplID0gc3RvcmUuc2VsZWN0KCdzaXplJyk7XG5cdFx0Y29uc3Qgdmlld3BvcnQgPSBzdG9yZS5zZWxlY3QoJ3ZpZXdwb3J0Jyk7XG5cblx0XHRjb25zdCB3aWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgd2lkdGggfSA9IHBhcmFtcygpO1xuXHRcdFx0cmV0dXJuIHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicgPyB3aWR0aCA6IHNpemUoKS53aWR0aCAqIHZpZXdwb3J0KCkuZHByO1xuXHRcdH0pO1xuXHRcdGNvbnN0IGhlaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgaGVpZ2h0IH0gPSBwYXJhbXMoKTtcblx0XHRcdHJldHVybiB0eXBlb2YgaGVpZ2h0ID09PSAnbnVtYmVyJyA/IGhlaWdodCA6IHNpemUoKS5oZWlnaHQgKiB2aWV3cG9ydCgpLmRwcjtcblx0XHR9KTtcblx0XHRjb25zdCBzZXR0aW5ncyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgd2lkdGgsIHNldHRpbmdzIH0gPSBwYXJhbXMoKTtcblx0XHRcdGNvbnN0IF9zZXR0aW5ncyA9ICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInID8gc2V0dGluZ3MgOiAod2lkdGggYXMgRkJPU2V0dGluZ3MpKSB8fCB7fTtcblx0XHRcdGlmIChfc2V0dGluZ3Muc2FtcGxlcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdF9zZXR0aW5ncy5zYW1wbGVzID0gMDtcblx0XHRcdH1cblx0XHRcdHJldHVybiBfc2V0dGluZ3M7XG5cdFx0fSk7XG5cblx0XHRjb25zdCB0YXJnZXQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbeyBzYW1wbGVzID0gMCwgZGVwdGgsIC4uLnRhcmdldFNldHRpbmdzIH0sIF93aWR0aCwgX2hlaWdodF0gPSBbXG5cdFx0XHRcdHVudHJhY2tlZChzZXR0aW5ncyksXG5cdFx0XHRcdHVudHJhY2tlZCh3aWR0aCksXG5cdFx0XHRcdHVudHJhY2tlZChoZWlnaHQpLFxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IHRhcmdldCA9IG5ldyBXZWJHTFJlbmRlclRhcmdldChfd2lkdGgsIF9oZWlnaHQsIHtcblx0XHRcdFx0bWluRmlsdGVyOiBMaW5lYXJGaWx0ZXIsXG5cdFx0XHRcdG1hZ0ZpbHRlcjogTGluZWFyRmlsdGVyLFxuXHRcdFx0XHR0eXBlOiBIYWxmRmxvYXRUeXBlLFxuXHRcdFx0XHQuLi50YXJnZXRTZXR0aW5ncyxcblx0XHRcdH0pO1xuXG5cdFx0XHRpZiAoZGVwdGgpIHtcblx0XHRcdFx0dGFyZ2V0LmRlcHRoVGV4dHVyZSA9IG5ldyBEZXB0aFRleHR1cmUoX3dpZHRoLCBfaGVpZ2h0LCBGbG9hdFR5cGUpO1xuXHRcdFx0fVxuXG5cdFx0XHR0YXJnZXQuc2FtcGxlcyA9IHNhbXBsZXM7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbeyBzYW1wbGVzID0gMCB9LCBfd2lkdGgsIF9oZWlnaHQsIF90YXJnZXRdID0gW3NldHRpbmdzKCksIHdpZHRoKCksIGhlaWdodCgpLCB0YXJnZXQoKV07XG5cdFx0XHRcdF90YXJnZXQuc2V0U2l6ZShfd2lkdGgsIF9oZWlnaHQpO1xuXHRcdFx0XHRpZiAoc2FtcGxlcykgX3RhcmdldC5zYW1wbGVzID0gc2FtcGxlcztcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB0YXJnZXQoKS5kaXNwb3NlKCkpO1xuXG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSk7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2Zib10nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c0ZCTyB7XG5cdGZibyA9IGlucHV0KHt9IGFzIHsgd2lkdGg6IE5ndHNGQk9QYXJhbXNbJ3dpZHRoJ107IGhlaWdodDogTmd0c0ZCT1BhcmFtc1snaGVpZ2h0J10gfSAmIEZCT1NldHRpbmdzKTtcblxuXHR0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG5cdHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cblx0ZmJvVGFyZ2V0ID0gaW5qZWN0RkJPKCgpID0+IHtcblx0XHRjb25zdCB7IHdpZHRoLCBoZWlnaHQsIC4uLnNldHRpbmdzIH0gPSB0aGlzLmZibygpO1xuXHRcdHJldHVybiB7IHdpZHRoLCBoZWlnaHQsIHNldHRpbmdzIH07XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGxldCByZWY6IEVtYmVkZGVkVmlld1JlZjx7ICRpbXBsaWNpdDogUmV0dXJuVHlwZTx0eXBlb2YgaW5qZWN0RkJPPiB9Pjtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0cmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlLCB7ICRpbXBsaWNpdDogdGhpcy5mYm9UYXJnZXQgfSk7XG5cdFx0XHRcdHJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0cmVmPy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfOiBOZ3RzRkJPLCBjdHg6IHVua25vd24pOiBjdHggaXMgeyAkaW1wbGljaXQ6IFJldHVyblR5cGU8dHlwZW9mIGluamVjdEZCTz4gfSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,121 @@
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, signal, untracked, viewChild, } from '@angular/core';
2
+ import { checkUpdate, extend, getLocalState, omit, resolveRef } from 'angular-three';
3
+ import { assertInjector } from 'ngxtension/assert-injector';
4
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
5
+ import { mergeInputs } from 'ngxtension/inject-inputs';
6
+ import { Color, Group, InstancedBufferAttribute, Object3D, Vector3 } from 'three';
7
+ import { MeshSurfaceSampler } from 'three-stdlib';
8
+ import * as i0 from "@angular/core";
9
+ export function injectSurfaceSampler(mesh, options = () => ({}), { injector } = {}) {
10
+ return assertInjector(injectSurfaceSampler, injector, () => {
11
+ const buffer = signal((() => {
12
+ const arr = Array.from({ length: options().count ?? 16 }, () => [
13
+ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
14
+ ]).flat();
15
+ return new InstancedBufferAttribute(Float32Array.from(arr), 16);
16
+ })());
17
+ const autoEffect = injectAutoEffect();
18
+ afterNextRender(() => {
19
+ autoEffect(() => {
20
+ const currentMesh = resolveRef(mesh());
21
+ if (!currentMesh)
22
+ return;
23
+ const localState = getLocalState(currentMesh);
24
+ if (!localState)
25
+ return;
26
+ const nonObjects = localState.nonObjects();
27
+ if (!nonObjects ||
28
+ !nonObjects.length ||
29
+ nonObjects.every((nonObject) => !nonObject.isBufferGeometry)) {
30
+ return;
31
+ }
32
+ const sampler = new MeshSurfaceSampler(currentMesh);
33
+ const { weight, count = 16, transform, instanceMesh } = options();
34
+ if (weight) {
35
+ sampler.setWeightAttribute(weight);
36
+ }
37
+ sampler.build();
38
+ const position = new Vector3();
39
+ const normal = new Vector3();
40
+ const color = new Color();
41
+ const dummy = new Object3D();
42
+ const instance = resolveRef(instanceMesh);
43
+ currentMesh.updateMatrixWorld(true);
44
+ for (let i = 0; i < count; i++) {
45
+ sampler.sample(position, normal, color);
46
+ if (typeof transform === 'function') {
47
+ transform({ dummy, sampledMesh: currentMesh, position, normal, color }, i);
48
+ }
49
+ else {
50
+ dummy.position.copy(position);
51
+ }
52
+ dummy.updateMatrix();
53
+ if (instance) {
54
+ instance.setMatrixAt(i, dummy.matrix);
55
+ }
56
+ dummy.matrix.toArray(untracked(buffer).array, i * 16);
57
+ }
58
+ if (instance) {
59
+ checkUpdate(instance.instanceMatrix);
60
+ }
61
+ checkUpdate(buffer);
62
+ buffer.set(new InstancedBufferAttribute(untracked(buffer).array, untracked(buffer).itemSize).copy(untracked(buffer)));
63
+ }, { allowSignalWrites: true });
64
+ });
65
+ return buffer.asReadonly();
66
+ });
67
+ }
68
+ const defaultOptions = {
69
+ count: 16,
70
+ };
71
+ export class NgtsSampler {
72
+ constructor() {
73
+ this.mesh = input(null);
74
+ this.instances = input(null);
75
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
76
+ this.parameters = omit(this.options, ['weight', 'transform', 'count']);
77
+ this.group = viewChild.required('group');
78
+ this.meshToSample = signal(null);
79
+ this.instancedToSample = signal(null);
80
+ extend({ Group });
81
+ const autoEffect = injectAutoEffect();
82
+ afterNextRender(() => {
83
+ autoEffect(() => {
84
+ const group = this.group().nativeElement;
85
+ const localState = getLocalState(group);
86
+ if (!localState)
87
+ return;
88
+ const [mesh, instances] = [resolveRef(this.mesh()), resolveRef(this.instances())];
89
+ this.meshToSample.set(mesh ?? localState.objects().find((c) => c.type === 'Mesh'));
90
+ this.instancedToSample.set(instances ?? localState.objects().find((c) => c.hasOwnProperty('instanceMatrix')));
91
+ }, { allowSignalWrites: true });
92
+ });
93
+ injectSurfaceSampler(this.meshToSample, () => ({
94
+ count: this.options().count,
95
+ transform: this.options().transform,
96
+ weight: this.options().weight,
97
+ instanceMesh: this.instancedToSample(),
98
+ }));
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsSampler, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.1.0", type: NgtsSampler, isStandalone: true, selector: "ngts-sampler", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "instances", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "group", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
102
+ <ngt-group #group [parameters]="parameters()">
103
+ <ng-content />
104
+ </ngt-group>
105
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtsSampler, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'ngts-sampler',
111
+ standalone: true,
112
+ template: `
113
+ <ngt-group #group [parameters]="parameters()">
114
+ <ng-content />
115
+ </ngt-group>
116
+ `,
117
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
118
+ changeDetection: ChangeDetectionStrategy.OnPush,
119
+ }]
120
+ }], ctorParameters: () => [] });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9taXNjL3NyYy9saWIvc2FtcGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1Qsc0JBQXNCLEVBR3RCLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQVksSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBdUIsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBa0NsRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLElBQXNELEVBQ3RELFVBS0ksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDZCxFQUFFLFFBQVEsS0FBOEIsRUFBRTtJQUUxQyxPQUFPLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQzFELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FDcEIsQ0FBQyxHQUFHLEVBQUU7WUFDTCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVB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LEVBQUUsQ0FBQyxDQUFDO1lBQzlDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSztZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVM7WUFDbkMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNO1lBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7U0FDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXZDVyxXQUFXO2tHQUFYLFdBQVcsMmpCQVJiOzs7O0VBSVQ7OzJGQUlXLFdBQVc7a0JBWHZCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2hlY2tVcGRhdGUsIGV4dGVuZCwgZ2V0TG9jYWxTdGF0ZSwgTmd0R3JvdXAsIG9taXQsIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQnVmZmVyR2VvbWV0cnksIENvbG9yLCBHcm91cCwgSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlLCBJbnN0YW5jZWRNZXNoLCBNZXNoLCBPYmplY3QzRCwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2hTdXJmYWNlU2FtcGxlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmludGVyZmFjZSBTYW1wbGVQYXlsb2FkIHtcblx0LyoqXG5cdCAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgc2FtcGxlLlxuXHQgKi9cblx0cG9zaXRpb246IFZlY3RvcjM7XG5cdC8qKlxuXHQgKiBUaGUgbm9ybWFsIG9mIHRoZSBtZXNoIGF0IHRoZSBzYW1wbGVkIHBvc2l0aW9uLlxuXHQgKi9cblx0bm9ybWFsOiBWZWN0b3IzO1xuXHQvKipcblx0ICogVGhlIHZlcnRleCBjb2xvciBvZiB0aGUgbWVzaCBhdCB0aGUgc2FtcGxlZCBwb3NpdGlvbi5cblx0ICovXG5cdGNvbG9yOiBDb2xvcjtcbn1cblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtRm4gPSAocGF5bG9hZDogVHJhbnNmb3JtUGF5bG9hZCwgaTogbnVtYmVyKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgVHJhbnNmb3JtUGF5bG9hZCBleHRlbmRzIFNhbXBsZVBheWxvYWQge1xuXHQvKipcblx0ICogVGhlIGR1bW15IG9iamVjdCB1c2VkIHRvIHRyYW5zZm9ybSBlYWNoIGluc3RhbmNlLlxuXHQgKiBUaGlzIG9iamVjdCdzIG1hdHJpeCB3aWxsIGJlIHVwZGF0ZWQgYWZ0ZXIgdHJhbnNmb3JtaW5nICYgaXQgd2lsbCBiZSB1c2VkXG5cdCAqIHRvIHNldCB0aGUgaW5zdGFuY2UncyBtYXRyaXguXG5cdCAqL1xuXHRkdW1teTogT2JqZWN0M0Q7XG5cdC8qKlxuXHQgKiBUaGUgbWVzaCB0aGF0J3MgaW5pdGlhbGx5IHBhc3NlZCB0byB0aGUgc2FtcGxlci5cblx0ICogVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gYXBwbHkgdHJhbnNmb3JtcyBmcm9tIHlvdXIgbWVzaCB0byB5b3VyIGluc3RhbmNlc1xuXHQgKiBvciBpZiB5b3UgbmVlZCB0byBncmFiIGF0dHJpYnV0ZXMgZnJvbSB0aGUgZ2VvbWV0cnkuXG5cdCAqL1xuXHRzYW1wbGVkTWVzaDogTWVzaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN1cmZhY2VTYW1wbGVyKFxuXHRtZXNoOiAoKSA9PiBFbGVtZW50UmVmPE1lc2g+IHwgTWVzaCB8IG51bGwgfCB1bmRlZmluZWQsXG5cdG9wdGlvbnM6ICgpID0+IHtcblx0XHRjb3VudD86IG51bWJlcjtcblx0XHR0cmFuc2Zvcm0/OiBUcmFuc2Zvcm1Gbjtcblx0XHR3ZWlnaHQ/OiBzdHJpbmc7XG5cdFx0aW5zdGFuY2VNZXNoPzogRWxlbWVudFJlZjxJbnN0YW5jZWRNZXNoPiB8IEluc3RhbmNlZE1lc2ggfCBudWxsO1xuXHR9ID0gKCkgPT4gKHt9KSxcblx0eyBpbmplY3RvciB9OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RTdXJmYWNlU2FtcGxlciwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBidWZmZXIgPSBzaWduYWwoXG5cdFx0XHQoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBhcnIgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBvcHRpb25zKCkuY291bnQgPz8gMTYgfSwgKCkgPT4gW1xuXHRcdFx0XHRcdDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsXG5cdFx0XHRcdF0pLmZsYXQoKTtcblx0XHRcdFx0cmV0dXJuIG5ldyBJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUoRmxvYXQzMkFycmF5LmZyb20oYXJyKSwgMTYpO1xuXHRcdFx0fSkoKSxcblx0XHQpO1xuXG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRhdXRvRWZmZWN0KFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudE1lc2ggPSByZXNvbHZlUmVmKG1lc2goKSk7XG5cdFx0XHRcdFx0aWYgKCFjdXJyZW50TWVzaCkgcmV0dXJuO1xuXG5cdFx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoY3VycmVudE1lc2gpO1xuXHRcdFx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRcdFx0Y29uc3Qgbm9uT2JqZWN0cyA9IGxvY2FsU3RhdGUubm9uT2JqZWN0cygpO1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdCFub25PYmplY3RzIHx8XG5cdFx0XHRcdFx0XHQhbm9uT2JqZWN0cy5sZW5ndGggfHxcblx0XHRcdFx0XHRcdG5vbk9iamVjdHMuZXZlcnkoKG5vbk9iamVjdCkgPT4gIShub25PYmplY3QgYXMgQnVmZmVyR2VvbWV0cnkpLmlzQnVmZmVyR2VvbWV0cnkpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3Qgc2FtcGxlciA9IG5ldyBNZXNoU3VyZmFjZVNhbXBsZXIoY3VycmVudE1lc2gpO1xuXG5cdFx0XHRcdFx0Y29uc3QgeyB3ZWlnaHQsIGNvdW50ID0gMTYsIHRyYW5zZm9ybSwgaW5zdGFuY2VNZXNoIH0gPSBvcHRpb25zKCk7XG5cblx0XHRcdFx0XHRpZiAod2VpZ2h0KSB7XG5cdFx0XHRcdFx0XHRzYW1wbGVyLnNldFdlaWdodEF0dHJpYnV0ZSh3ZWlnaHQpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHNhbXBsZXIuYnVpbGQoKTtcblxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblx0XHRcdFx0XHRjb25zdCBub3JtYWwgPSBuZXcgVmVjdG9yMygpO1xuXHRcdFx0XHRcdGNvbnN0IGNvbG9yID0gbmV3IENvbG9yKCk7XG5cdFx0XHRcdFx0Y29uc3QgZHVtbXkgPSBuZXcgT2JqZWN0M0QoKTtcblx0XHRcdFx0XHRjb25zdCBpbnN0YW5jZSA9IHJlc29sdmVSZWYoaW5zdGFuY2VNZXNoKTtcblxuXHRcdFx0XHRcdGN1cnJlbnRNZXNoLnVwZGF0ZU1hdHJpeFdvcmxkKHRydWUpO1xuXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRzYW1wbGVyLnNhbXBsZShwb3NpdGlvbiwgbm9ybWFsLCBjb2xvcik7XG5cblx0XHRcdFx0XHRcdGlmICh0eXBlb2YgdHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0XHRcdHRyYW5zZm9ybSh7IGR1bW15LCBzYW1wbGVkTWVzaDogY3VycmVudE1lc2gsIHBvc2l0aW9uLCBub3JtYWwsIGNvbG9yIH0sIGkpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0ZHVtbXkucG9zaXRpb24uY29weShwb3NpdGlvbik7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGR1bW15LnVwZGF0ZU1hdHJpeCgpO1xuXG5cdFx0XHRcdFx0XHRpZiAoaW5zdGFuY2UpIHtcblx0XHRcdFx0XHRcdFx0aW5zdGFuY2Uuc2V0TWF0cml4QXQoaSwgZHVtbXkubWF0cml4KTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0ZHVtbXkubWF0cml4LnRvQXJyYXkodW50cmFja2VkKGJ1ZmZlcikuYXJyYXksIGkgKiAxNik7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGluc3RhbmNlKSB7XG5cdFx0XHRcdFx0XHRjaGVja1VwZGF0ZShpbnN0YW5jZS5pbnN0YW5jZU1hdHJpeCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y2hlY2tVcGRhdGUoYnVmZmVyKTtcblxuXHRcdFx0XHRcdGJ1ZmZlci5zZXQoXG5cdFx0XHRcdFx0XHRuZXcgSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlKHVudHJhY2tlZChidWZmZXIpLmFycmF5LCB1bnRyYWNrZWQoYnVmZmVyKS5pdGVtU2l6ZSkuY29weSh1bnRyYWNrZWQoYnVmZmVyKSksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSxcblx0XHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdHJldHVybiBidWZmZXIuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzU2FtcGxlck9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndEdyb3VwPiB7XG5cdC8qKlxuXHQgKiBUaGUgTkFNRSBvZiB0aGUgd2VpZ2h0IGF0dHJpYnV0ZSB0byB1c2Ugd2hlbiBzYW1wbGluZy5cblx0ICpcblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL2VuL21hdGgvTWVzaFN1cmZhY2VTYW1wbGVyLnNldFdlaWdodEF0dHJpYnV0ZVxuXHQgKi9cblx0d2VpZ2h0Pzogc3RyaW5nO1xuXHQvKipcblx0ICogVHJhbnNmb3JtYXRpb24gdG8gYmUgYXBwbGllZCB0byBlYWNoIGluc3RhbmNlLlxuXHQgKiBSZWNlaXZlcyBhIGR1bW15IG9iamVjdDNEIHdpdGggYWxsIHRoZSBzYW1wbGVkIGRhdGEgKCBAc2VlIFRyYW5zZm9ybVBheWxvYWQgKS5cblx0ICogSXQgc2hvdWxkIG11dGF0ZSBgdHJhbnNmb3JtUGF5bG9hZC5kdW1teWAuXG5cdCAqXG5cdCAqIEBzZWUgKCBAdG9kbyBhZGQgbGluayB0byBleGFtcGxlIClcblx0ICpcblx0ICogVGhlcmUgaXMgbm8gbmVlZCB0byB1cGRhdGUgdGhlIGR1bW15J3MgbWF0cml4XG5cdCAqL1xuXHR0cmFuc2Zvcm0/OiBUcmFuc2Zvcm1Gbjtcblx0Y291bnQ6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNTYW1wbGVyT3B0aW9ucyA9IHtcblx0Y291bnQ6IDE2LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zYW1wbGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTYW1wbGVyIHtcblx0bWVzaCA9IGlucHV0PEVsZW1lbnRSZWY8TWVzaD4gfCBNZXNoIHwgbnVsbD4obnVsbCk7XG5cdGluc3RhbmNlcyA9IGlucHV0PEVsZW1lbnRSZWY8SW5zdGFuY2VkTWVzaD4gfCBJbnN0YW5jZWRNZXNoIHwgbnVsbD4obnVsbCk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3dlaWdodCcsICd0cmFuc2Zvcm0nLCAnY291bnQnXSk7XG5cblx0Z3JvdXAgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxHcm91cD4+KCdncm91cCcpO1xuXG5cdHByaXZhdGUgbWVzaFRvU2FtcGxlID0gc2lnbmFsPE1lc2ggfCBudWxsPihudWxsKTtcblx0cHJpdmF0ZSBpbnN0YW5jZWRUb1NhbXBsZSA9IHNpZ25hbDxJbnN0YW5jZWRNZXNoIHwgbnVsbD4obnVsbCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAgfSk7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRhdXRvRWZmZWN0KFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZ3JvdXAgPSB0aGlzLmdyb3VwKCkubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShncm91cCk7XG5cdFx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0XHRjb25zdCBbbWVzaCwgaW5zdGFuY2VzXSA9IFtyZXNvbHZlUmVmKHRoaXMubWVzaCgpKSwgcmVzb2x2ZVJlZih0aGlzLmluc3RhbmNlcygpKV07XG5cblx0XHRcdFx0XHR0aGlzLm1lc2hUb1NhbXBsZS5zZXQobWVzaCA/PyAobG9jYWxTdGF0ZS5vYmplY3RzKCkuZmluZCgoYykgPT4gYy50eXBlID09PSAnTWVzaCcpIGFzIE1lc2gpKTtcblx0XHRcdFx0XHR0aGlzLmluc3RhbmNlZFRvU2FtcGxlLnNldChcblx0XHRcdFx0XHRcdGluc3RhbmNlcyA/PyAobG9jYWxTdGF0ZS5vYmplY3RzKCkuZmluZCgoYykgPT4gYy5oYXNPd25Qcm9wZXJ0eSgnaW5zdGFuY2VNYXRyaXgnKSkgYXMgSW5zdGFuY2VkTWVzaCksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSxcblx0XHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdGluamVjdFN1cmZhY2VTYW1wbGVyKHRoaXMubWVzaFRvU2FtcGxlLCAoKSA9PiAoe1xuXHRcdFx0Y291bnQ6IHRoaXMub3B0aW9ucygpLmNvdW50LFxuXHRcdFx0dHJhbnNmb3JtOiB0aGlzLm9wdGlvbnMoKS50cmFuc2Zvcm0sXG5cdFx0XHR3ZWlnaHQ6IHRoaXMub3B0aW9ucygpLndlaWdodCxcblx0XHRcdGluc3RhbmNlTWVzaDogdGhpcy5pbnN0YW5jZWRUb1NhbXBsZSgpLFxuXHRcdH0pKTtcblx0fVxufVxuIl19
@@ -1,18 +1,3 @@
1
- export * from './blur-pass/blur-pass';
2
- export * from './caustics/caustics-material';
3
- export * from './caustics/caustics-projection-material';
4
- export * from './convolution-material/convolution-material';
5
- export * from './discard-material/discard-material';
6
- export * from './grid-material/grid-material';
7
- export * from './mesh-distort-material/mesh-distort-material';
8
- export * from './mesh-reflector-material/mesh-reflector-material';
9
- export * from './mesh-refraction-material/mesh-refraction-material';
10
- export * from './mesh-transmission-material/mesh-transmission-material';
11
- export * from './mesh-wobble-material/mesh-wobble-material';
12
- export * from './shader-material/shader-material';
13
- export * from './soft-shadow-material/soft-shadow-material';
14
- export * from './sparkles-material/sparkles-material';
15
- export * from './spot-light-material/spot-light-material';
16
- export * from './star-field-material/star-field-material';
17
- export * from './wireframe-material/wireframe-material';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ibHVyLXBhc3MvYmx1ci1wYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2F1c3RpY3MvY2F1c3RpY3MtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXVzdGljcy9jYXVzdGljcy1wcm9qZWN0aW9uLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vY29udm9sdXRpb24tbWF0ZXJpYWwvY29udm9sdXRpb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXNjYXJkLW1hdGVyaWFsL2Rpc2NhcmQtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLW1hdGVyaWFsL2dyaWQtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNoLWRpc3RvcnQtbWF0ZXJpYWwvbWVzaC1kaXN0b3J0LW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwvbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNoLXdvYmJsZS1tYXRlcmlhbC9tZXNoLXdvYmJsZS1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYWRlci1tYXRlcmlhbC9zaGFkZXItbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zb2Z0LXNoYWRvdy1tYXRlcmlhbC9zb2Z0LXNoYWRvdy1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NwYXJrbGVzLW1hdGVyaWFsL3NwYXJrbGVzLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdC1saWdodC1tYXRlcmlhbC9zcG90LWxpZ2h0LW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3Rhci1maWVsZC1tYXRlcmlhbC9zdGFyLWZpZWxkLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vd2lyZWZyYW1lLW1hdGVyaWFsL3dpcmVmcmFtZS1tYXRlcmlhbCc7XG4iXX0=
1
+ export * from './lib/grid-material';
2
+ export * from './lib/mesh-refraction-material';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JpZC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwnO1xuIl19