angular-three-soba 2.0.0-beta.4 → 2.0.0-beta.40

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 (323) hide show
  1. package/abstractions/billboard/billboard.d.ts +12 -8
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +24 -12
  4. package/abstractions/grid/grid.d.ts +42 -51
  5. package/abstractions/index.d.ts +1 -7
  6. package/abstractions/text/text.d.ts +10 -4
  7. package/abstractions/text-3d/text-3d.d.ts +51 -41
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +49 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +34 -15
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +140 -110
  19. package/esm2022/abstractions/index.mjs +2 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -122
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
  22. package/esm2022/cameras/camera/camera-content.mjs +6 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +120 -100
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +109 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +198 -0
  31. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  32. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
  33. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +151 -0
  34. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
  35. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
  36. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  37. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
  38. package/esm2022/gizmos/index.mjs +4 -0
  39. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +14 -9
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +31 -30
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +20 -15
  43. package/esm2022/materials/index.mjs +2 -1
  44. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  45. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  46. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +164 -144
  48. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  49. package/esm2022/materials/point-material/point-material.mjs +50 -0
  50. package/esm2022/misc/animations/animations.mjs +28 -23
  51. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  52. package/esm2022/misc/caustics/caustics.mjs +387 -0
  53. package/esm2022/misc/decal/decal.mjs +187 -0
  54. package/esm2022/misc/depth-buffer/depth-buffer.mjs +41 -37
  55. package/esm2022/misc/example/example.mjs +161 -0
  56. package/esm2022/misc/fbo/fbo.mjs +42 -36
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +305 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +132 -0
  61. package/esm2022/misc/shadow/shadow.mjs +111 -0
  62. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  63. package/esm2022/misc/trail/trail.mjs +204 -0
  64. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  65. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  66. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  67. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  68. package/esm2022/modifiers/index.mjs +2 -0
  69. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  70. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  71. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  72. package/esm2022/performances/index.mjs +8 -0
  73. package/esm2022/performances/instances/instances.mjs +221 -0
  74. package/esm2022/performances/instances/position-mesh.mjs +52 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +327 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +183 -0
  80. package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
  81. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  82. package/esm2022/shaders/caustics/caustics-projection-material.mjs +32 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +3 -2
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +30 -14
  86. package/esm2022/shaders/index.mjs +5 -3
  87. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  88. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
  89. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +3 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +7 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +3 -5
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +18 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +8 -7
  96. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  97. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  98. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +161 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +8 -8
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +129 -129
  101. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  102. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  103. package/esm2022/staging/bounds/bounds.mjs +145 -143
  104. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  105. package/esm2022/staging/center/center.mjs +129 -112
  106. package/esm2022/staging/cloud/cloud.mjs +118 -124
  107. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -136
  108. package/esm2022/staging/environment/assets.mjs +12 -12
  109. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  110. package/esm2022/staging/environment/environment-ground.mjs +17 -19
  111. package/esm2022/staging/environment/environment-input.mjs +98 -85
  112. package/esm2022/staging/environment/environment-map.mjs +33 -33
  113. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  114. package/esm2022/staging/environment/environment.mjs +34 -51
  115. package/esm2022/staging/environment/utils.mjs +40 -17
  116. package/esm2022/staging/float/float.mjs +70 -58
  117. package/esm2022/staging/index.mjs +7 -3
  118. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  119. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  120. package/esm2022/staging/sky/sky.mjs +85 -80
  121. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  122. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  123. package/esm2022/staging/spot-light/shadow-mesh.mjs +267 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -63
  126. package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
  127. package/esm2022/staging/stage/stage.mjs +305 -290
  128. package/esm2022/staging/stars/stars.mjs +101 -102
  129. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  130. package/esm2022/staging/wireframe/wireframe.mjs +228 -0
  131. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  132. package/esm2022/utils/constants.mjs +3 -0
  133. package/esm2022/utils/content/content.mjs +15 -0
  134. package/esm2022/utils/index.mjs +3 -0
  135. package/fesm2022/angular-three-soba-abstractions.mjs +504 -2079
  136. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  137. package/fesm2022/angular-three-soba-cameras.mjs +293 -260
  138. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  139. package/fesm2022/angular-three-soba-controls.mjs +108 -83
  140. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  141. package/fesm2022/angular-three-soba-gizmos.mjs +1045 -0
  142. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  143. package/fesm2022/angular-three-soba-loaders.mjs +148 -132
  144. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  145. package/fesm2022/angular-three-soba-materials.mjs +656 -588
  146. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  147. package/fesm2022/angular-three-soba-misc.mjs +2202 -99
  148. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  149. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  150. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  151. package/fesm2022/angular-three-soba-performances.mjs +957 -0
  152. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  153. package/fesm2022/angular-three-soba-shaders.mjs +508 -269
  154. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  155. package/fesm2022/angular-three-soba-staging.mjs +2910 -2573
  156. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  157. package/fesm2022/angular-three-soba-utils.mjs +25 -0
  158. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  159. package/gizmos/README.md +3 -0
  160. package/gizmos/gizmo-helper/gizmo-helper.d.ts +73 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  164. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  166. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  167. package/gizmos/index.d.ts +3 -0
  168. package/loaders/gltf-loader/gltf-loader.d.ts +15 -4
  169. package/loaders/loader/loader.d.ts +19 -17
  170. package/loaders/progress/progress.d.ts +1 -1
  171. package/loaders/texture-loader/texture-loader.d.ts +8 -3
  172. package/materials/index.d.ts +1 -0
  173. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  174. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  175. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  176. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  177. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  178. package/materials/point-material/point-material.d.ts +24 -0
  179. package/metadata.json +1 -0
  180. package/misc/animations/animations.d.ts +6 -4
  181. package/misc/caustics/caustics.d.ts +87 -0
  182. package/misc/decal/decal.d.ts +49 -0
  183. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  184. package/misc/example/example.d.ts +85 -0
  185. package/misc/fbo/fbo.d.ts +2 -2
  186. package/misc/html/html-wrapper.d.ts +559 -0
  187. package/misc/html/html.d.ts +218 -0
  188. package/misc/index.d.ts +9 -0
  189. package/misc/sampler/sampler.d.ts +67 -0
  190. package/misc/shadow/shadow.d.ts +37 -0
  191. package/misc/stats-gl/stats-gl.d.ts +24 -0
  192. package/misc/trail/trail.d.ts +57 -0
  193. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  194. package/misc/trail-texture/trail-texture.d.ts +50 -0
  195. package/modifiers/README.md +3 -0
  196. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  197. package/modifiers/index.d.ts +1 -0
  198. package/package.json +36 -18
  199. package/performances/README.md +3 -0
  200. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  201. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  202. package/performances/index.d.ts +7 -0
  203. package/performances/instances/instances.d.ts +83 -0
  204. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  205. package/performances/points/points-input.d.ts +32 -0
  206. package/performances/points/points.d.ts +96 -0
  207. package/performances/points/position-point.d.ts +11 -0
  208. package/performances/segments/segment-object.d.ts +7 -0
  209. package/performances/segments/segments.d.ts +128 -0
  210. package/shaders/grid-material/grid-material.d.ts +33 -0
  211. package/shaders/index.d.ts +4 -2
  212. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +173 -6
  213. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  214. package/shaders/shader-material/shader-material.d.ts +2 -2
  215. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  216. package/shaders/sparkles-material/sparkles-material.d.ts +13 -0
  217. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  218. package/shaders/star-field-material/star-field-material.d.ts +9 -0
  219. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  220. package/staging/accumulative-shadows/accumulative-shadows.d.ts +93 -39
  221. package/staging/accumulative-shadows/randomized-lights.d.ts +41 -28
  222. package/staging/backdrop/backdrop.d.ts +30 -0
  223. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  224. package/staging/bounds/bounds.d.ts +105 -25
  225. package/staging/camera-shake/camera-shake.d.ts +30 -19
  226. package/staging/center/center.d.ts +43 -35
  227. package/staging/cloud/cloud.d.ts +27 -24
  228. package/staging/contact-shadows/contact-shadows.d.ts +43 -30
  229. package/staging/environment/assets.d.ts +9 -9
  230. package/staging/environment/environment-cube.d.ts +9 -5
  231. package/staging/environment/environment-ground.d.ts +7 -7
  232. package/staging/environment/environment-input.d.ts +38 -38
  233. package/staging/environment/environment-map.d.ts +10 -5
  234. package/staging/environment/environment-portal.d.ts +10 -5
  235. package/staging/environment/environment.d.ts +0 -4
  236. package/staging/environment/utils.d.ts +2 -2
  237. package/staging/float/float.d.ts +15 -11
  238. package/staging/index.d.ts +6 -2
  239. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  240. package/staging/normal-texture/normal-texture.d.ts +16 -0
  241. package/staging/sky/sky.d.ts +28 -21
  242. package/staging/sparkles/sparkles.d.ts +36 -22
  243. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  244. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  245. package/staging/spot-light/spot-light-input.d.ts +25 -25
  246. package/staging/spot-light/spot-light.d.ts +35 -15
  247. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  248. package/staging/stage/stage.d.ts +89 -65
  249. package/staging/stars/stars.d.ts +28 -17
  250. package/staging/wireframe/wireframe-input.d.ts +65 -0
  251. package/staging/wireframe/wireframe.d.ts +28 -0
  252. package/utils/README.md +3 -0
  253. package/utils/constants.d.ts +1 -0
  254. package/utils/content/content.d.ts +8 -0
  255. package/utils/index.d.ts +2 -0
  256. package/web-types.json +1 -0
  257. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  258. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  259. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  262. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  263. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  264. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  265. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  266. package/abstractions/line/line-input.d.ts +0 -42
  267. package/abstractions/line/line.d.ts +0 -35
  268. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  269. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  270. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  271. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  277. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  278. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  279. package/esm2022/abstractions/line/line-input.mjs +0 -113
  280. package/esm2022/abstractions/line/line.mjs +0 -165
  281. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  282. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  283. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  284. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  285. package/esm2022/performance/detailed/detailed.mjs +0 -61
  286. package/esm2022/performance/index.mjs +0 -7
  287. package/esm2022/performance/instances/instance.mjs +0 -48
  288. package/esm2022/performance/instances/instances.mjs +0 -189
  289. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  290. package/esm2022/performance/stats/stats.mjs +0 -79
  291. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  292. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  293. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  294. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  295. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  296. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  297. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  298. package/performance/README.md +0 -3
  299. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  300. package/performance/detailed/detailed.d.ts +0 -20
  301. package/performance/index.d.ts +0 -6
  302. package/performance/instances/instance.d.ts +0 -9
  303. package/performance/instances/instances.d.ts +0 -35
  304. package/performance/stats/stats.d.ts +0 -18
  305. package/plugin/generators.json +0 -19
  306. package/plugin/libs/plugin/README.md +0 -11
  307. package/plugin/package.json +0 -9
  308. package/plugin/src/generators/init/compat.d.ts +0 -2
  309. package/plugin/src/generators/init/compat.js +0 -6
  310. package/plugin/src/generators/init/compat.js.map +0 -1
  311. package/plugin/src/generators/init/init.d.ts +0 -7
  312. package/plugin/src/generators/init/init.js +0 -28
  313. package/plugin/src/generators/init/init.js.map +0 -1
  314. package/plugin/src/generators/init/schema.json +0 -6
  315. package/plugin/src/index.d.ts +0 -1
  316. package/plugin/src/index.js +0 -6
  317. package/plugin/src/index.js.map +0 -1
  318. package/staging/caustics/caustisc.d.ts +0 -70
  319. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  320. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  321. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  322. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  323. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -0,0 +1,957 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, effect, untracked, Directive, Input, ElementRef, forwardRef, inject, NgZone, Injector, Component, CUSTOM_ELEMENTS_SCHEMA, computed, TemplateRef, ContentChild } from '@angular/core';
3
+ import { injectNgtStore, extend, injectNgtRef, signalStore, checkUpdate, injectBeforeRender, is, NgtArgs } from 'angular-three';
4
+ import { NgTemplateOutlet, NgIf } from '@angular/common';
5
+ import { NgtsSobaContent } from 'angular-three-soba/utils';
6
+ import { createInjectionToken } from 'ngxtension/create-injection-token';
7
+ import * as THREE from 'three';
8
+ import { InstancedMesh, InstancedBufferAttribute, Points, BufferGeometry, BufferAttribute } from 'three';
9
+ import { Line2, LineMaterial, LineSegmentsGeometry } from 'three-stdlib';
10
+
11
+ class NgtsAdaptiveDpr {
12
+ set _pixelated(pixelated) {
13
+ this.pixelated.set(pixelated);
14
+ }
15
+ constructor() {
16
+ this.pixelated = signal(false);
17
+ this.store = injectNgtStore();
18
+ this.current = this.store.select('performance', 'current');
19
+ this.active = this.store.get('internal', 'active');
20
+ this.setDpr = this.store.get('setDpr');
21
+ this.initialDpr = this.store.get('viewport', 'initialDpr');
22
+ this.domElement = this.store.get('gl', 'domElement');
23
+ effect((onCleanup) => {
24
+ onCleanup(() => {
25
+ if (this.active) {
26
+ this.setDpr(this.initialDpr);
27
+ }
28
+ if (this.pixelated() && this.domElement) {
29
+ this.domElement.style.imageRendering = 'auto';
30
+ }
31
+ });
32
+ });
33
+ effect(() => {
34
+ const current = this.current();
35
+ this.setDpr(current * this.initialDpr);
36
+ if (untracked(this.pixelated) && this.domElement) {
37
+ this.domElement.style.imageRendering = current === 1 ? 'auto' : 'pixelated';
38
+ }
39
+ });
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { _pixelated: ["pixelated", "_pixelated"] }, ngImport: i0 }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
45
+ type: Directive,
46
+ args: [{ selector: 'ngts-adaptive-dpr', standalone: true }]
47
+ }], ctorParameters: function () { return []; }, propDecorators: { _pixelated: [{
48
+ type: Input,
49
+ args: [{ alias: 'pixelated' }]
50
+ }] } });
51
+
52
+ class NgtsAdaptiveEvents {
53
+ constructor() {
54
+ this.store = injectNgtStore();
55
+ this.setEvents = this.store.get('setEvents');
56
+ this.current = this.store.select('performance', 'current');
57
+ effect((onCleanup) => {
58
+ const enabled = this.store.get('events', 'enabled');
59
+ onCleanup(() => {
60
+ this.setEvents({ enabled });
61
+ });
62
+ });
63
+ effect(() => {
64
+ const current = this.current();
65
+ this.setEvents({ enabled: current === 1 });
66
+ });
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
69
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
72
+ type: Directive,
73
+ args: [{ selector: 'ngts-adaptive-events', standalone: true }]
74
+ }], ctorParameters: function () { return []; } });
75
+
76
+ const _instanceLocalMatrix = /*@__PURE__*/ new THREE.Matrix4();
77
+ const _instanceWorldMatrix = /*@__PURE__*/ new THREE.Matrix4();
78
+ const _instanceIntersects = [];
79
+ const _mesh = /*@__PURE__*/ new THREE.Mesh();
80
+ class PositionMesh extends THREE.Group {
81
+ constructor() {
82
+ super();
83
+ this.color = new THREE.Color('white');
84
+ this.instance = new ElementRef(undefined);
85
+ this.instanceKey = new ElementRef(undefined);
86
+ }
87
+ // This will allow the virtual instance have bounds
88
+ get geometry() {
89
+ return this.instance.nativeElement?.geometry;
90
+ }
91
+ // And this will allow the virtual instance to receive events
92
+ raycast(raycaster, intersects) {
93
+ const parent = this.instance.nativeElement;
94
+ if (!parent)
95
+ return;
96
+ if (!parent.geometry || !parent.material)
97
+ return;
98
+ _mesh.geometry = parent.geometry;
99
+ const matrixWorld = parent.matrixWorld;
100
+ const instanceId = parent.userData['instances'].indexOf(this.instanceKey);
101
+ // If the instance wasn't found or exceeds the parents draw range, bail out
102
+ if (instanceId === -1 || instanceId > parent.count)
103
+ return;
104
+ // calculate the world matrix for each instance
105
+ parent.getMatrixAt(instanceId, _instanceLocalMatrix);
106
+ _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);
107
+ // the mesh represents this single instance
108
+ _mesh.matrixWorld = _instanceWorldMatrix;
109
+ // raycast side according to instance material
110
+ if (parent.material instanceof THREE.Material)
111
+ _mesh.material.side = parent.material.side;
112
+ else
113
+ _mesh.material.side = parent.material[0].side;
114
+ _mesh.raycast(raycaster, _instanceIntersects);
115
+ // process the result of raycast
116
+ for (let i = 0, l = _instanceIntersects.length; i < l; i++) {
117
+ const intersect = _instanceIntersects[i];
118
+ intersect.instanceId = instanceId;
119
+ intersect.object = this;
120
+ intersects.push(intersect);
121
+ }
122
+ _instanceIntersects.length = 0;
123
+ }
124
+ }
125
+
126
+ extend({ PositionMesh, InstancedMesh, InstancedBufferAttribute });
127
+ const parentMatrix = /*@__PURE__*/ new THREE.Matrix4();
128
+ const instanceMatrix = /*@__PURE__*/ new THREE.Matrix4();
129
+ const tempMatrix = /*@__PURE__*/ new THREE.Matrix4();
130
+ const translation = /*@__PURE__*/ new THREE.Vector3();
131
+ const rotation = /*@__PURE__*/ new THREE.Quaternion();
132
+ const scale = /*@__PURE__*/ new THREE.Vector3();
133
+ const [injectNgtsInstancesApi, provideNgtsInstancesApi] = createInjectionToken((instances) => instances.api, { isRoot: false, deps: [forwardRef(() => NgtsInstances)] });
134
+ class NgtsInstance {
135
+ constructor() {
136
+ this.instanceRef = injectNgtRef();
137
+ this.zone = inject(NgZone);
138
+ this.injector = inject(Injector);
139
+ this.instancesApi = injectNgtsInstancesApi();
140
+ }
141
+ ngOnInit() {
142
+ effect((onCleanup) => {
143
+ const cleanup = this.zone.runOutsideAngular(() => this.instancesApi.subscribe(this.instanceRef));
144
+ onCleanup(cleanup);
145
+ }, { injector: this.injector });
146
+ }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsInstance, isStandalone: true, selector: "ngts-instance", inputs: { instanceRef: "instanceRef" }, ngImport: i0, template: `
149
+ <ngt-position-mesh
150
+ [ref]="instanceRef"
151
+ [instance]="instancesApi.getParent()"
152
+ [instanceKey]="instanceRef"
153
+ ngtCompound
154
+ >
155
+ <ng-content />
156
+ </ngt-position-mesh>
157
+ `, isInline: true }); }
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsInstance, decorators: [{
160
+ type: Component,
161
+ args: [{
162
+ selector: 'ngts-instance',
163
+ standalone: true,
164
+ template: `
165
+ <ngt-position-mesh
166
+ [ref]="instanceRef"
167
+ [instance]="instancesApi.getParent()"
168
+ [instanceKey]="instanceRef"
169
+ ngtCompound
170
+ >
171
+ <ng-content />
172
+ </ngt-position-mesh>
173
+ `,
174
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
175
+ }]
176
+ }], propDecorators: { instanceRef: [{
177
+ type: Input
178
+ }] } });
179
+ class NgtsInstances {
180
+ set _range(range) {
181
+ this.inputs.set({ range });
182
+ }
183
+ set _limit(limit) {
184
+ this.inputs.set({ limit });
185
+ }
186
+ set _frames(frames) {
187
+ this.inputs.set({ frames });
188
+ }
189
+ constructor() {
190
+ this.DynamicDrawUsage = THREE.DynamicDrawUsage;
191
+ this.nullRaycast = () => null;
192
+ this.inputs = signalStore({ limit: 1000, frames: Infinity });
193
+ this.instancesRef = injectNgtRef();
194
+ this.limit = this.inputs.select('limit');
195
+ this.positionMeshes = signal([]);
196
+ this.meshes = this.positionMeshes.asReadonly();
197
+ this.buffers = computed(() => {
198
+ const limit = this.limit();
199
+ const matrices = new Float32Array(limit * 16);
200
+ for (let i = 0; i < limit; i++) {
201
+ tempMatrix.identity().toArray(matrices, i * 16);
202
+ }
203
+ const colors = new Float32Array([...Array.from({ length: limit * 3 }, () => 1)]);
204
+ return { matrices, colors };
205
+ });
206
+ this.api = {
207
+ getParent: () => this.instancesRef,
208
+ subscribe: (meshRef) => {
209
+ untracked(() => {
210
+ this.positionMeshes.update((s) => [...s, meshRef]);
211
+ });
212
+ return () => {
213
+ untracked(() => {
214
+ this.positionMeshes.update((s) => s.filter((positionMesh) => positionMesh !== meshRef));
215
+ });
216
+ };
217
+ },
218
+ };
219
+ this.checkUpdate();
220
+ this.beforeRender();
221
+ }
222
+ checkUpdate() {
223
+ effect(() => {
224
+ const instancedMesh = this.instancesRef.nativeElement;
225
+ if (!instancedMesh)
226
+ return;
227
+ // NOTE: not sure why matrices ends up a different instance than array
228
+ // we reassign it here
229
+ instancedMesh.instanceMatrix.array = untracked(this.buffers).matrices;
230
+ checkUpdate(instancedMesh.instanceMatrix);
231
+ });
232
+ }
233
+ beforeRender() {
234
+ let count = 0;
235
+ let updateRange = 0;
236
+ injectBeforeRender(() => {
237
+ const [{ frames, limit, range }, instancedMesh, instances, { matrices, colors }] = [
238
+ this.inputs.get(),
239
+ this.instancesRef.nativeElement,
240
+ this.meshes(),
241
+ this.buffers(),
242
+ ];
243
+ if ((frames === Infinity || count < frames) && instancedMesh) {
244
+ instancedMesh.updateMatrix();
245
+ instancedMesh.updateMatrixWorld();
246
+ parentMatrix.copy(instancedMesh.matrixWorld).invert();
247
+ updateRange = Math.min(limit, range !== undefined ? range : limit, instances.length);
248
+ instancedMesh.count = updateRange;
249
+ instancedMesh.instanceMatrix.updateRange.count = updateRange * 16;
250
+ if (instancedMesh.instanceColor) {
251
+ instancedMesh.instanceColor.updateRange.count = updateRange * 3;
252
+ }
253
+ for (let i = 0; i < instances.length; i++) {
254
+ const instanceRef = instances[i];
255
+ const instance = is.ref(instanceRef) ? instanceRef.nativeElement : instanceRef;
256
+ // Multiply the inverse of the InstancedMesh world matrix or else
257
+ // Instances will be double-transformed if <Instances> isn't at identity
258
+ instance.matrixWorld.decompose(translation, rotation, scale);
259
+ instanceMatrix.compose(translation, rotation, scale).premultiply(parentMatrix);
260
+ instanceMatrix.toArray(matrices, i * 16);
261
+ checkUpdate(instancedMesh.instanceMatrix);
262
+ instance.color.toArray(colors, i * 3);
263
+ checkUpdate(instancedMesh.instanceColor);
264
+ }
265
+ count++;
266
+ }
267
+ });
268
+ }
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
270
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsInstances, isStandalone: true, selector: "ngts-instances", inputs: { instancesRef: "instancesRef", _range: ["range", "_range"], _limit: ["limit", "_limit"], _frames: ["frames", "_frames"] }, providers: [provideNgtsInstancesApi()], queries: [{ propertyName: "content", first: true, predicate: NgtsSobaContent, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `
271
+ <ngt-instanced-mesh
272
+ [userData]="{ instances: meshes() }"
273
+ [ref]="instancesRef"
274
+ [matrixAutoUpdate]="false"
275
+ [raycast]="nullRaycast"
276
+ ngtCompound
277
+ >
278
+ <ngt-instanced-buffer-attribute
279
+ *args="[buffers().matrices, 16]"
280
+ attach="instanceMatrix"
281
+ [usage]="DynamicDrawUsage"
282
+ />
283
+ <ngt-instanced-buffer-attribute
284
+ *args="[buffers().colors, 3]"
285
+ attach="instanceColor"
286
+ [usage]="DynamicDrawUsage"
287
+ />
288
+ <ng-container *ngTemplateOutlet="content" />
289
+ </ngt-instanced-mesh>
290
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
291
+ }
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsInstances, decorators: [{
293
+ type: Component,
294
+ args: [{
295
+ selector: 'ngts-instances',
296
+ standalone: true,
297
+ template: `
298
+ <ngt-instanced-mesh
299
+ [userData]="{ instances: meshes() }"
300
+ [ref]="instancesRef"
301
+ [matrixAutoUpdate]="false"
302
+ [raycast]="nullRaycast"
303
+ ngtCompound
304
+ >
305
+ <ngt-instanced-buffer-attribute
306
+ *args="[buffers().matrices, 16]"
307
+ attach="instanceMatrix"
308
+ [usage]="DynamicDrawUsage"
309
+ />
310
+ <ngt-instanced-buffer-attribute
311
+ *args="[buffers().colors, 3]"
312
+ attach="instanceColor"
313
+ [usage]="DynamicDrawUsage"
314
+ />
315
+ <ng-container *ngTemplateOutlet="content" />
316
+ </ngt-instanced-mesh>
317
+ `,
318
+ imports: [NgtArgs, NgTemplateOutlet],
319
+ providers: [provideNgtsInstancesApi()],
320
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
321
+ }]
322
+ }], ctorParameters: function () { return []; }, propDecorators: { instancesRef: [{
323
+ type: Input
324
+ }], _range: [{
325
+ type: Input,
326
+ args: [{ alias: 'range' }]
327
+ }], _limit: [{
328
+ type: Input,
329
+ args: [{ alias: 'limit' }]
330
+ }], _frames: [{
331
+ type: Input,
332
+ args: [{ alias: 'frames' }]
333
+ }], content: [{
334
+ type: ContentChild,
335
+ args: [NgtsSobaContent, { static: true, read: TemplateRef }]
336
+ }] } });
337
+
338
+ class NgtsPointsInput {
339
+ constructor() {
340
+ this.inputs = signalStore({
341
+ stride: 3,
342
+ limit: 1000,
343
+ });
344
+ this.pointsRef = injectNgtRef();
345
+ this.limit = this.inputs.select('limit');
346
+ this.range = this.inputs.select('range');
347
+ this.positions = this.inputs.select('positions');
348
+ this.colors = this.inputs.select('colors');
349
+ this.colorsLength = computed(() => this.colors()?.length || 0);
350
+ this.sizes = this.inputs.select('sizes');
351
+ this.sizesLength = computed(() => this.sizes()?.length || 0);
352
+ this.stride = this.inputs.select('stride');
353
+ }
354
+ set _range(range) {
355
+ this.inputs.set({ range });
356
+ }
357
+ set _limit(limit) {
358
+ this.inputs.set({ limit });
359
+ }
360
+ set _positions(positions) {
361
+ this.inputs.set({ positions });
362
+ }
363
+ set _colors(colors) {
364
+ this.inputs.set({ colors });
365
+ }
366
+ set _sizes(sizes) {
367
+ this.inputs.set({ sizes });
368
+ }
369
+ set _stride(stride) {
370
+ this.inputs.set({ stride });
371
+ }
372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPointsInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
373
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtsPointsInput, inputs: { pointsRef: "pointsRef", _range: ["range", "_range"], _limit: ["limit", "_limit"], _positions: ["positions", "_positions"], _colors: ["colors", "_colors"], _sizes: ["sizes", "_sizes"], _stride: ["stride", "_stride"] }, ngImport: i0 }); }
374
+ }
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPointsInput, decorators: [{
376
+ type: Directive
377
+ }], propDecorators: { pointsRef: [{
378
+ type: Input
379
+ }], _range: [{
380
+ type: Input,
381
+ args: [{ alias: 'range' }]
382
+ }], _limit: [{
383
+ type: Input,
384
+ args: [{ alias: 'limit' }]
385
+ }], _positions: [{
386
+ type: Input,
387
+ args: [{ alias: 'positions' }]
388
+ }], _colors: [{
389
+ type: Input,
390
+ args: [{ alias: 'colors' }]
391
+ }], _sizes: [{
392
+ type: Input,
393
+ args: [{ alias: 'sizes' }]
394
+ }], _stride: [{
395
+ type: Input,
396
+ args: [{ alias: 'stride' }]
397
+ }] } });
398
+
399
+ const _inverseMatrix = /*@__PURE__*/ new THREE.Matrix4();
400
+ const _ray = /*@__PURE__*/ new THREE.Ray();
401
+ const _sphere = /*@__PURE__*/ new THREE.Sphere();
402
+ const _position = /*@__PURE__*/ new THREE.Vector3();
403
+ class PositionPoint extends THREE.Group {
404
+ constructor() {
405
+ super();
406
+ this.size = 0;
407
+ this.color = new THREE.Color('white');
408
+ this.instance = new ElementRef(undefined);
409
+ this.instanceKey = new ElementRef(undefined);
410
+ }
411
+ // This will allow the virtual instance have bounds
412
+ get geometry() {
413
+ return this.instance.nativeElement?.geometry;
414
+ }
415
+ raycast(raycaster, intersects) {
416
+ const parent = this.instance.nativeElement;
417
+ if (!parent || !parent.geometry)
418
+ return;
419
+ const instanceId = parent.userData['instances'].indexOf(this.instanceKey);
420
+ // If the instance wasn't found or exceeds the parents draw range, bail out
421
+ if (instanceId === -1 || instanceId > parent.geometry.drawRange.count)
422
+ return;
423
+ const threshold = raycaster.params.Points?.threshold ?? 1;
424
+ _sphere.set(this.getWorldPosition(_position), threshold);
425
+ if (raycaster.ray.intersectsSphere(_sphere) === false)
426
+ return;
427
+ _inverseMatrix.copy(parent.matrixWorld).invert();
428
+ _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);
429
+ const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);
430
+ const localThresholdSq = localThreshold * localThreshold;
431
+ const rayPointDistanceSq = _ray.distanceSqToPoint(this.position);
432
+ if (rayPointDistanceSq < localThresholdSq) {
433
+ const intersectPoint = new THREE.Vector3();
434
+ _ray.closestPointToPoint(this.position, intersectPoint);
435
+ intersectPoint.applyMatrix4(this.matrixWorld);
436
+ const distance = raycaster.ray.origin.distanceTo(intersectPoint);
437
+ if (distance < raycaster.near || distance > raycaster.far)
438
+ return;
439
+ intersects.push({
440
+ distance: distance,
441
+ distanceToRay: Math.sqrt(rayPointDistanceSq),
442
+ point: intersectPoint,
443
+ index: instanceId,
444
+ face: null,
445
+ object: this,
446
+ });
447
+ }
448
+ }
449
+ }
450
+
451
+ extend({ Points, BufferGeometry, BufferAttribute, PositionPoint });
452
+ const [injectNgtsPointsInstanceApi, provideNgtsPointsInstancesApi] = createInjectionToken(function pointsInstancesApi(instances) {
453
+ return instances.api;
454
+ }, { isRoot: false, deps: [forwardRef(() => NgtsPointsInstances)] });
455
+ class NgtsPointsInstances {
456
+ constructor() {
457
+ this.nullRaycast = () => null;
458
+ this.DynamicDrawUsage = THREE.DynamicDrawUsage;
459
+ this.pointsInput = inject(NgtsPointsInput);
460
+ this.positionPoints = signal([]);
461
+ this.parentMatrix = new THREE.Matrix4();
462
+ this.position = new THREE.Vector3();
463
+ this.points = this.positionPoints.asReadonly();
464
+ this.positions = computed(() => new Float32Array(this.pointsInput.limit() * 3));
465
+ this.colors = computed(() => Float32Array.from({ length: this.pointsInput.limit() * 3 }, () => 1));
466
+ this.sizes = computed(() => Float32Array.from({ length: this.pointsInput.limit() }, () => 1));
467
+ this.injector = inject(Injector);
468
+ this.api = {
469
+ getParent: () => this.pointsInput.pointsRef,
470
+ subscribe: (pointRef) => {
471
+ untracked(() => {
472
+ this.positionPoints.update((s) => [...s, pointRef]);
473
+ });
474
+ return () => {
475
+ untracked(() => {
476
+ this.positionPoints.update((s) => s.filter((positionPoint) => positionPoint !== pointRef));
477
+ });
478
+ };
479
+ },
480
+ };
481
+ this.checkUpdatePositionAttribute();
482
+ this.beforeRender();
483
+ }
484
+ checkUpdatePositionAttribute() {
485
+ effect(() => {
486
+ const points = this.pointsInput.pointsRef.nativeElement;
487
+ if (!points)
488
+ return;
489
+ checkUpdate(points.geometry.attributes['position']);
490
+ });
491
+ }
492
+ beforeRender() {
493
+ injectBeforeRender(() => {
494
+ const points = this.pointsInput.pointsRef.nativeElement;
495
+ if (!points)
496
+ return;
497
+ const [limit, range, positionPoints, positions, colors, sizes] = [
498
+ this.pointsInput.limit(),
499
+ this.pointsInput.range(),
500
+ this.positionPoints(),
501
+ this.positions(),
502
+ this.colors(),
503
+ this.sizes(),
504
+ ];
505
+ points.updateMatrix();
506
+ points.updateMatrixWorld();
507
+ this.parentMatrix.copy(points.matrixWorld).invert();
508
+ points.geometry.drawRange.count = Math.min(limit, range !== undefined ? range : limit, positionPoints.length);
509
+ for (let i = 0; i < positionPoints.length; i++) {
510
+ const positionPointRef = positionPoints[i];
511
+ const positionPoint = is.ref(positionPointRef) ? positionPointRef.nativeElement : positionPointRef;
512
+ if (!positionPoint)
513
+ continue;
514
+ positionPoint.getWorldPosition(this.position).applyMatrix4(this.parentMatrix);
515
+ this.position.toArray(positions, i * 3);
516
+ checkUpdate(points.geometry.attributes['position']);
517
+ positionPoint.matrixWorldNeedsUpdate = true;
518
+ positionPoint.color.toArray(colors, i * 3);
519
+ checkUpdate(points.geometry.attributes['color']);
520
+ sizes.set([positionPoint.size], i);
521
+ checkUpdate(points.geometry.attributes['size']);
522
+ }
523
+ });
524
+ }
525
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPointsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
526
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsPointsInstances, isStandalone: true, selector: "ngts-points-instances", providers: [provideNgtsPointsInstancesApi()], ngImport: i0, template: `
527
+ <ngt-points
528
+ [ref]="pointsInput.pointsRef"
529
+ [userData]="{ instances: points() }"
530
+ [matrixAutoUpdate]="false"
531
+ [raycast]="nullRaycast"
532
+ ngtCompound
533
+ >
534
+ <ngt-buffer-geometry>
535
+ <ngt-buffer-attribute
536
+ attach="attributes.position"
537
+ [count]="positions().length / 3"
538
+ [array]="positions()"
539
+ [itemSize]="3"
540
+ [usage]="DynamicDrawUsage"
541
+ />
542
+ <ngt-buffer-attribute
543
+ attach="attributes.color"
544
+ [count]="colors().length / 3"
545
+ [array]="colors()"
546
+ [itemSize]="3"
547
+ [usage]="DynamicDrawUsage"
548
+ />
549
+ <ngt-buffer-attribute
550
+ attach="attributes.size"
551
+ [count]="sizes().length"
552
+ [array]="sizes()"
553
+ [itemSize]="1"
554
+ [usage]="DynamicDrawUsage"
555
+ />
556
+ </ngt-buffer-geometry>
557
+ <ng-content />
558
+ </ngt-points>
559
+ `, isInline: true }); }
560
+ }
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPointsInstances, decorators: [{
562
+ type: Component,
563
+ args: [{
564
+ selector: 'ngts-points-instances',
565
+ standalone: true,
566
+ template: `
567
+ <ngt-points
568
+ [ref]="pointsInput.pointsRef"
569
+ [userData]="{ instances: points() }"
570
+ [matrixAutoUpdate]="false"
571
+ [raycast]="nullRaycast"
572
+ ngtCompound
573
+ >
574
+ <ngt-buffer-geometry>
575
+ <ngt-buffer-attribute
576
+ attach="attributes.position"
577
+ [count]="positions().length / 3"
578
+ [array]="positions()"
579
+ [itemSize]="3"
580
+ [usage]="DynamicDrawUsage"
581
+ />
582
+ <ngt-buffer-attribute
583
+ attach="attributes.color"
584
+ [count]="colors().length / 3"
585
+ [array]="colors()"
586
+ [itemSize]="3"
587
+ [usage]="DynamicDrawUsage"
588
+ />
589
+ <ngt-buffer-attribute
590
+ attach="attributes.size"
591
+ [count]="sizes().length"
592
+ [array]="sizes()"
593
+ [itemSize]="1"
594
+ [usage]="DynamicDrawUsage"
595
+ />
596
+ </ngt-buffer-geometry>
597
+ <ng-content />
598
+ </ngt-points>
599
+ `,
600
+ providers: [provideNgtsPointsInstancesApi()],
601
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
602
+ }]
603
+ }], ctorParameters: function () { return []; } });
604
+ class NgtsPoint {
605
+ constructor() {
606
+ this.pointRef = injectNgtRef();
607
+ this.zone = inject(NgZone);
608
+ this.injector = inject(Injector);
609
+ this.pointsInstancesApi = injectNgtsPointsInstanceApi();
610
+ }
611
+ ngOnInit() {
612
+ effect((onCleanup) => {
613
+ const cleanup = this.zone.runOutsideAngular(() => this.pointsInstancesApi.subscribe(this.pointRef));
614
+ onCleanup(cleanup);
615
+ }, { injector: this.injector });
616
+ }
617
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPoint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
618
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsPoint, isStandalone: true, selector: "ngts-point", inputs: { pointRef: "pointRef" }, ngImport: i0, template: `
619
+ <ngt-position-point
620
+ [instance]="pointsInstancesApi.getParent()"
621
+ [ref]="pointRef"
622
+ [instanceKey]="pointRef"
623
+ ngtCompound
624
+ >
625
+ <ng-content />
626
+ </ngt-position-point>
627
+ `, isInline: true }); }
628
+ }
629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPoint, decorators: [{
630
+ type: Component,
631
+ args: [{
632
+ selector: 'ngts-point',
633
+ standalone: true,
634
+ template: `
635
+ <ngt-position-point
636
+ [instance]="pointsInstancesApi.getParent()"
637
+ [ref]="pointRef"
638
+ [instanceKey]="pointRef"
639
+ ngtCompound
640
+ >
641
+ <ng-content />
642
+ </ngt-position-point>
643
+ `,
644
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
645
+ }]
646
+ }], propDecorators: { pointRef: [{
647
+ type: Input
648
+ }] } });
649
+ class NgtsPointsBuffers {
650
+ constructor() {
651
+ this.DynamicDrawUsage = THREE.DynamicDrawUsage;
652
+ this.pointsInput = inject(NgtsPointsInput);
653
+ this.store = injectNgtStore();
654
+ injectBeforeRender(() => {
655
+ const points = this.pointsInput.pointsRef.nativeElement;
656
+ if (!points)
657
+ return;
658
+ const [sizes, colors] = [this.pointsInput.sizes(), this.pointsInput.colors()];
659
+ const attr = points.geometry.attributes;
660
+ checkUpdate(attr['position']);
661
+ if (colors)
662
+ checkUpdate(attr['color']);
663
+ if (sizes)
664
+ checkUpdate(attr['size']);
665
+ });
666
+ }
667
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPointsBuffers, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
668
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsPointsBuffers, isStandalone: true, selector: "ngts-points-buffers", ngImport: i0, template: `
669
+ <ngt-points [ref]="pointsInput.pointsRef" ngtCompound>
670
+ <ngt-buffer-geometry>
671
+ <ngt-buffer-attribute
672
+ attach="attributes.position"
673
+ [count]="pointsInput.positions().length / pointsInput.stride()"
674
+ [array]="pointsInput.positions()"
675
+ [itemSize]="pointsInput.stride()"
676
+ [usage]="DynamicDrawUsage"
677
+ />
678
+ <ngt-buffer-attribute
679
+ attach="attributes.color"
680
+ [count]="pointsInput.colorsLength() / pointsInput.stride()"
681
+ [array]="pointsInput.colors()"
682
+ [itemSize]="pointsInput.stride()"
683
+ [usage]="DynamicDrawUsage"
684
+ />
685
+ <ngt-buffer-attribute
686
+ attach="attributes.size"
687
+ [count]="pointsInput.sizesLength() / pointsInput.stride()"
688
+ [array]="pointsInput.sizes()"
689
+ [itemSize]="1"
690
+ [usage]="DynamicDrawUsage"
691
+ />
692
+ </ngt-buffer-geometry>
693
+ <ng-content />
694
+ </ngt-points>
695
+ `, isInline: true }); }
696
+ }
697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPointsBuffers, decorators: [{
698
+ type: Component,
699
+ args: [{
700
+ selector: 'ngts-points-buffers',
701
+ standalone: true,
702
+ template: `
703
+ <ngt-points [ref]="pointsInput.pointsRef" ngtCompound>
704
+ <ngt-buffer-geometry>
705
+ <ngt-buffer-attribute
706
+ attach="attributes.position"
707
+ [count]="pointsInput.positions().length / pointsInput.stride()"
708
+ [array]="pointsInput.positions()"
709
+ [itemSize]="pointsInput.stride()"
710
+ [usage]="DynamicDrawUsage"
711
+ />
712
+ <ngt-buffer-attribute
713
+ attach="attributes.color"
714
+ [count]="pointsInput.colorsLength() / pointsInput.stride()"
715
+ [array]="pointsInput.colors()"
716
+ [itemSize]="pointsInput.stride()"
717
+ [usage]="DynamicDrawUsage"
718
+ />
719
+ <ngt-buffer-attribute
720
+ attach="attributes.size"
721
+ [count]="pointsInput.sizesLength() / pointsInput.stride()"
722
+ [array]="pointsInput.sizes()"
723
+ [itemSize]="1"
724
+ [usage]="DynamicDrawUsage"
725
+ />
726
+ </ngt-buffer-geometry>
727
+ <ng-content />
728
+ </ngt-points>
729
+ `,
730
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
731
+ }]
732
+ }], ctorParameters: function () { return []; } });
733
+ class NgtsPoints extends NgtsPointsInput {
734
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPoints, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
735
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsPoints, isStandalone: true, selector: "ngts-points", providers: [{ provide: NgtsPointsInput, useExisting: NgtsPoints }], queries: [{ propertyName: "content", first: true, predicate: NgtsSobaContent, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: `
736
+ <ngts-points-buffers *ngIf="positions()">
737
+ <ng-container *ngTemplateOutlet="content" />
738
+ </ngts-points-buffers>
739
+ <ngts-points-instances *ngIf="!positions()" #pointsInstances>
740
+ <!-- NOTE: passing in the injector to templateOutlet allow the consumers to abstract ngts-point -->
741
+ <ng-container *ngTemplateOutlet="content; injector: pointsInstances.injector" />
742
+ </ngts-points-instances>
743
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtsPointsBuffers, selector: "ngts-points-buffers" }, { kind: "component", type: NgtsPointsInstances, selector: "ngts-points-instances" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
744
+ }
745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsPoints, decorators: [{
746
+ type: Component,
747
+ args: [{
748
+ selector: 'ngts-points',
749
+ standalone: true,
750
+ template: `
751
+ <ngts-points-buffers *ngIf="positions()">
752
+ <ng-container *ngTemplateOutlet="content" />
753
+ </ngts-points-buffers>
754
+ <ngts-points-instances *ngIf="!positions()" #pointsInstances>
755
+ <!-- NOTE: passing in the injector to templateOutlet allow the consumers to abstract ngts-point -->
756
+ <ng-container *ngTemplateOutlet="content; injector: pointsInstances.injector" />
757
+ </ngts-points-instances>
758
+ `,
759
+ imports: [NgIf, NgtsPointsBuffers, NgtsPointsInstances, NgTemplateOutlet],
760
+ providers: [{ provide: NgtsPointsInput, useExisting: NgtsPoints }],
761
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
762
+ }]
763
+ }], propDecorators: { content: [{
764
+ type: ContentChild,
765
+ args: [NgtsSobaContent, { static: true, read: TemplateRef }]
766
+ }] } });
767
+
768
+ class SegmentObject {
769
+ constructor() {
770
+ this.color = new THREE.Color('white');
771
+ this.start = new THREE.Vector3(0, 0, 0);
772
+ this.end = new THREE.Vector3(0, 0, 0);
773
+ }
774
+ }
775
+
776
+ const normPos = (pos) => pos instanceof THREE.Vector3
777
+ ? pos
778
+ : new THREE.Vector3(...(typeof pos === 'number' ? [pos, pos, pos] : pos));
779
+ extend({ SegmentObject });
780
+ const [injectNgtsSegmentsApi, provideNgtsSegmentsApi] = createInjectionToken((segments) => segments.api, { isRoot: false, deps: [forwardRef(() => NgtsSegments)] });
781
+ class NgtsSegment {
782
+ constructor() {
783
+ this.inputs = signalStore({});
784
+ this.segmentRef = injectNgtRef();
785
+ this.segmentsApi = injectNgtsSegmentsApi();
786
+ this.injector = inject(Injector);
787
+ this.zone = inject(NgZone);
788
+ this.start = this.inputs.select('start');
789
+ this.end = this.inputs.select('end');
790
+ this.normalizedStart = computed(() => normPos(this.start()));
791
+ this.normalizedEnd = computed(() => normPos(this.end()));
792
+ this.color = this.inputs.select('color');
793
+ }
794
+ set _start(start) {
795
+ this.inputs.set({ start });
796
+ }
797
+ set _end(end) {
798
+ this.inputs.set({ end });
799
+ }
800
+ set _color(color) {
801
+ this.inputs.set({ color });
802
+ }
803
+ ngOnInit() {
804
+ effect((onCleanup) => {
805
+ const cleanup = this.zone.runOutsideAngular(() => {
806
+ const api = this.segmentsApi();
807
+ return api.subscribe(this.segmentRef);
808
+ });
809
+ onCleanup(cleanup);
810
+ }, { injector: this.injector });
811
+ }
812
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
813
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsSegment, isStandalone: true, selector: "ngts-segment", inputs: { segmentRef: "segmentRef", _start: ["start", "_start"], _end: ["end", "_end"], _color: ["color", "_color"] }, ngImport: i0, template: `
814
+ <ngt-segment-object [ref]="segmentRef" [color]="color()" [start]="normalizedStart()" [end]="normalizedEnd()" />
815
+ `, isInline: true }); }
816
+ }
817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSegment, decorators: [{
818
+ type: Component,
819
+ args: [{
820
+ selector: 'ngts-segment',
821
+ standalone: true,
822
+ template: `
823
+ <ngt-segment-object [ref]="segmentRef" [color]="color()" [start]="normalizedStart()" [end]="normalizedEnd()" />
824
+ `,
825
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
826
+ }]
827
+ }], propDecorators: { segmentRef: [{
828
+ type: Input
829
+ }], _start: [{
830
+ type: Input,
831
+ args: [{ alias: 'start' }]
832
+ }], _end: [{
833
+ type: Input,
834
+ args: [{ alias: 'end' }]
835
+ }], _color: [{
836
+ type: Input,
837
+ args: [{ alias: 'color' }]
838
+ }] } });
839
+ class NgtsSegments {
840
+ set _limit(limit) {
841
+ this.inputs.set({ limit });
842
+ }
843
+ set _lineWidth(lineWidth) {
844
+ this.inputs.set({ lineWidth });
845
+ }
846
+ constructor() {
847
+ this.inputs = signalStore({ limit: 1000, lineWidth: 1 });
848
+ this.segmentsRef = injectNgtRef();
849
+ this.segments = signal([]);
850
+ this.limit = this.inputs.select('limit');
851
+ this.positions = computed(() => Array(this.limit() * 6).fill(0));
852
+ this.colors = computed(() => Array(this.limit() * 6).fill(0));
853
+ this.resolution = new THREE.Vector2(512, 512);
854
+ this.lineWidth = this.inputs.select('lineWidth');
855
+ this.line = new Line2();
856
+ this.material = new LineMaterial();
857
+ this.geometry = new LineSegmentsGeometry();
858
+ this.api = computed(() => ({
859
+ subscribe: (segmentRef) => {
860
+ untracked(() => {
861
+ this.segments.update((s) => [...s, segmentRef]);
862
+ });
863
+ return () => {
864
+ untracked(() => {
865
+ this.segments.update((s) => s.filter((segment) => segment !== segmentRef));
866
+ });
867
+ };
868
+ },
869
+ }));
870
+ this.beforeRender();
871
+ }
872
+ beforeRender() {
873
+ injectBeforeRender(() => {
874
+ const [segments, limit, positions, colors] = [
875
+ this.segments(),
876
+ this.limit(),
877
+ this.positions(),
878
+ this.colors(),
879
+ ];
880
+ for (let i = 0; i < limit; i++) {
881
+ const segmentRef = segments[i];
882
+ const segment = is.ref(segmentRef) ? segmentRef.nativeElement : segmentRef;
883
+ if (segment) {
884
+ positions[i * 6 + 0] = segment.start.x;
885
+ positions[i * 6 + 1] = segment.start.y;
886
+ positions[i * 6 + 2] = segment.start.z;
887
+ positions[i * 6 + 3] = segment.end.x;
888
+ positions[i * 6 + 4] = segment.end.y;
889
+ positions[i * 6 + 5] = segment.end.z;
890
+ colors[i * 6 + 0] = segment.color.r;
891
+ colors[i * 6 + 1] = segment.color.g;
892
+ colors[i * 6 + 2] = segment.color.b;
893
+ colors[i * 6 + 3] = segment.color.r;
894
+ colors[i * 6 + 4] = segment.color.g;
895
+ colors[i * 6 + 5] = segment.color.b;
896
+ }
897
+ }
898
+ this.geometry.setColors(colors);
899
+ this.geometry.setPositions(positions);
900
+ this.line.computeLineDistances();
901
+ });
902
+ }
903
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSegments, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
904
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsSegments, isStandalone: true, selector: "ngts-segments", inputs: { segmentsRef: "segmentsRef", _limit: ["limit", "_limit"], _lineWidth: ["lineWidth", "_lineWidth"] }, providers: [provideNgtsSegmentsApi()], ngImport: i0, template: `
905
+ <ngt-primitive *args="[line]" [ref]="segmentsRef">
906
+ <ngt-primitive *args="[geometry]" attach="geometry" />
907
+ <ngt-primitive
908
+ *args="[material]"
909
+ attach="material"
910
+ ngtCompound
911
+ [vertexColors]="true"
912
+ [resolution]="resolution"
913
+ [linewidth]="lineWidth()"
914
+ />
915
+ <ng-content />
916
+ </ngt-primitive>
917
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
918
+ }
919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSegments, decorators: [{
920
+ type: Component,
921
+ args: [{
922
+ selector: 'ngts-segments',
923
+ standalone: true,
924
+ template: `
925
+ <ngt-primitive *args="[line]" [ref]="segmentsRef">
926
+ <ngt-primitive *args="[geometry]" attach="geometry" />
927
+ <ngt-primitive
928
+ *args="[material]"
929
+ attach="material"
930
+ ngtCompound
931
+ [vertexColors]="true"
932
+ [resolution]="resolution"
933
+ [linewidth]="lineWidth()"
934
+ />
935
+ <ng-content />
936
+ </ngt-primitive>
937
+ `,
938
+ imports: [NgtArgs],
939
+ providers: [provideNgtsSegmentsApi()],
940
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
941
+ }]
942
+ }], ctorParameters: function () { return []; }, propDecorators: { segmentsRef: [{
943
+ type: Input
944
+ }], _limit: [{
945
+ type: Input,
946
+ args: [{ alias: 'limit' }]
947
+ }], _lineWidth: [{
948
+ type: Input,
949
+ args: [{ alias: 'lineWidth' }]
950
+ }] } });
951
+
952
+ /**
953
+ * Generated bundle index. Do not edit.
954
+ */
955
+
956
+ export { NgtsAdaptiveDpr, NgtsAdaptiveEvents, NgtsInstance, NgtsInstances, NgtsPoint, NgtsPoints, NgtsPointsBuffers, NgtsPointsInstances, NgtsSegment, NgtsSegments, PositionMesh, SegmentObject, injectNgtsInstancesApi, injectNgtsPointsInstanceApi, injectNgtsSegmentsApi, provideNgtsInstancesApi, provideNgtsPointsInstancesApi, provideNgtsSegmentsApi };
957
+ //# sourceMappingURL=angular-three-soba-performances.mjs.map