angular-three-soba 2.0.0-beta.7 → 2.0.0-beta.8

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 (296) hide show
  1. package/abstractions/billboard/billboard.d.ts +11 -7
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +23 -11
  4. package/abstractions/grid/grid.d.ts +41 -50
  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 +47 -40
  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 +50 -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 +30 -13
  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 +119 -121
  22. package/esm2022/cameras/camera/camera-content.mjs +5 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
  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 +94 -90
  29. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  30. package/esm2022/loaders/loader/loader.mjs +92 -87
  31. package/esm2022/loaders/progress/progress.mjs +1 -1
  32. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  33. package/esm2022/materials/index.mjs +2 -1
  34. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  35. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  36. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  37. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  38. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  39. package/esm2022/materials/point-material/point-material.mjs +46 -0
  40. package/esm2022/misc/animations/animations.mjs +20 -16
  41. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  42. package/esm2022/misc/caustics/caustics.mjs +387 -0
  43. package/esm2022/misc/decal/decal.mjs +187 -0
  44. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  45. package/esm2022/misc/example/example.mjs +160 -0
  46. package/esm2022/misc/fbo/fbo.mjs +35 -35
  47. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  48. package/esm2022/misc/html/html.mjs +304 -0
  49. package/esm2022/misc/index.mjs +10 -1
  50. package/esm2022/misc/sampler/sampler.mjs +142 -0
  51. package/esm2022/misc/shadow/shadow.mjs +111 -0
  52. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  53. package/esm2022/misc/trail/trail.mjs +209 -0
  54. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  55. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  56. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  57. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  58. package/esm2022/modifiers/index.mjs +2 -0
  59. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  60. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  61. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  62. package/esm2022/performances/index.mjs +6 -0
  63. package/esm2022/performances/points/points-input.mjs +64 -0
  64. package/esm2022/performances/points/points.mjs +329 -0
  65. package/esm2022/performances/points/position-point.mjs +54 -0
  66. package/esm2022/performances/segments/segment-object.mjs +9 -0
  67. package/esm2022/performances/segments/segments.mjs +182 -0
  68. package/esm2022/shaders/blur-pass/blur-pass.mjs +1 -1
  69. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  70. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  71. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  72. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  73. package/esm2022/shaders/grid-material/grid-material.mjs +29 -14
  74. package/esm2022/shaders/index.mjs +5 -3
  75. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  76. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +1 -1
  77. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  78. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  79. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  80. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  81. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  82. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  83. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  84. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  85. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  86. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  87. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  88. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  89. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  90. package/esm2022/staging/bb-anchor/bb-anchor.mjs +70 -0
  91. package/esm2022/staging/bounds/bounds.mjs +144 -143
  92. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  93. package/esm2022/staging/center/center.mjs +106 -91
  94. package/esm2022/staging/cloud/cloud.mjs +118 -124
  95. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  96. package/esm2022/staging/environment/assets.mjs +12 -12
  97. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  98. package/esm2022/staging/environment/environment-ground.mjs +18 -20
  99. package/esm2022/staging/environment/environment-input.mjs +97 -84
  100. package/esm2022/staging/environment/environment-map.mjs +33 -33
  101. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  102. package/esm2022/staging/environment/environment.mjs +34 -51
  103. package/esm2022/staging/environment/utils.mjs +35 -14
  104. package/esm2022/staging/float/float.mjs +70 -58
  105. package/esm2022/staging/index.mjs +7 -3
  106. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  107. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  108. package/esm2022/staging/sky/sky.mjs +85 -80
  109. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  110. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  111. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  112. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  113. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  114. package/esm2022/staging/spot-light/volumetric-mesh.mjs +61 -78
  115. package/esm2022/staging/stage/stage.mjs +304 -290
  116. package/esm2022/staging/stars/stars.mjs +101 -102
  117. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  118. package/esm2022/staging/wireframe/wireframe.mjs +224 -0
  119. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  120. package/esm2022/utils/content/content.mjs +15 -0
  121. package/esm2022/utils/index.mjs +2 -0
  122. package/fesm2022/angular-three-soba-abstractions.mjs +505 -2087
  123. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  124. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  125. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  126. package/fesm2022/angular-three-soba-controls.mjs +93 -88
  127. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  128. package/fesm2022/angular-three-soba-loaders.mjs +94 -90
  129. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  130. package/fesm2022/angular-three-soba-materials.mjs +655 -590
  131. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  132. package/fesm2022/angular-three-soba-misc.mjs +2198 -89
  133. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  134. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  135. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  136. package/fesm2022/angular-three-soba-performances.mjs +697 -0
  137. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  138. package/fesm2022/angular-three-soba-shaders.mjs +501 -264
  139. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-staging.mjs +2870 -2555
  141. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  143. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  144. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  145. package/loaders/loader/loader.d.ts +19 -17
  146. package/loaders/progress/progress.d.ts +1 -1
  147. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  148. package/materials/index.d.ts +1 -0
  149. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  150. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  151. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  152. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  153. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  154. package/materials/point-material/point-material.d.ts +24 -0
  155. package/metadata.json +1 -0
  156. package/misc/animations/animations.d.ts +6 -4
  157. package/misc/caustics/caustics.d.ts +87 -0
  158. package/misc/decal/decal.d.ts +49 -0
  159. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  160. package/misc/example/example.d.ts +81 -0
  161. package/misc/fbo/fbo.d.ts +2 -2
  162. package/misc/html/html-wrapper.d.ts +559 -0
  163. package/misc/html/html.d.ts +214 -0
  164. package/misc/index.d.ts +9 -0
  165. package/misc/sampler/sampler.d.ts +67 -0
  166. package/misc/shadow/shadow.d.ts +37 -0
  167. package/misc/stats-gl/stats-gl.d.ts +24 -0
  168. package/misc/trail/trail.d.ts +57 -0
  169. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  170. package/misc/trail-texture/trail-texture.d.ts +50 -0
  171. package/modifiers/README.md +3 -0
  172. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  173. package/modifiers/index.d.ts +1 -0
  174. package/package.json +30 -22
  175. package/performances/README.md +3 -0
  176. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  177. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  178. package/performances/index.d.ts +5 -0
  179. package/performances/points/points-input.d.ts +32 -0
  180. package/performances/points/points.d.ts +92 -0
  181. package/{performance/instances/position-mesh.d.ts → performances/points/position-point.d.ts} +4 -3
  182. package/performances/segments/segment-object.d.ts +7 -0
  183. package/performances/segments/segments.d.ts +124 -0
  184. package/shaders/grid-material/grid-material.d.ts +33 -0
  185. package/shaders/index.d.ts +4 -2
  186. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +146 -1
  187. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  188. package/shaders/shader-material/shader-material.d.ts +2 -2
  189. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  190. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  191. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  192. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  193. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  194. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  195. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  196. package/staging/backdrop/backdrop.d.ts +30 -0
  197. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  198. package/staging/bounds/bounds.d.ts +100 -24
  199. package/staging/camera-shake/camera-shake.d.ts +30 -19
  200. package/staging/center/center.d.ts +43 -35
  201. package/staging/cloud/cloud.d.ts +26 -23
  202. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  203. package/staging/environment/assets.d.ts +9 -9
  204. package/staging/environment/environment-cube.d.ts +9 -5
  205. package/staging/environment/environment-ground.d.ts +7 -7
  206. package/staging/environment/environment-input.d.ts +36 -36
  207. package/staging/environment/environment-map.d.ts +10 -5
  208. package/staging/environment/environment-portal.d.ts +10 -5
  209. package/staging/environment/environment.d.ts +0 -4
  210. package/staging/environment/utils.d.ts +2 -2
  211. package/staging/float/float.d.ts +14 -10
  212. package/staging/index.d.ts +6 -2
  213. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  214. package/staging/normal-texture/normal-texture.d.ts +16 -0
  215. package/staging/sky/sky.d.ts +28 -21
  216. package/staging/sparkles/sparkles.d.ts +35 -21
  217. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  218. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  219. package/staging/spot-light/spot-light-input.d.ts +25 -25
  220. package/staging/spot-light/spot-light.d.ts +31 -15
  221. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  222. package/staging/stage/stage.d.ts +88 -63
  223. package/staging/stars/stars.d.ts +27 -16
  224. package/staging/wireframe/wireframe-input.d.ts +65 -0
  225. package/staging/wireframe/wireframe.d.ts +28 -0
  226. package/utils/README.md +3 -0
  227. package/utils/content/content.d.ts +8 -0
  228. package/utils/index.d.ts +1 -0
  229. package/web-types.json +1 -0
  230. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  231. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  232. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  233. package/abstractions/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  234. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  235. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  236. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  237. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  238. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  239. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  240. package/abstractions/line/line-input.d.ts +0 -42
  241. package/abstractions/line/line.d.ts +0 -35
  242. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  243. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  244. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  245. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  246. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  247. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  248. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  249. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  250. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  251. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  252. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  253. package/esm2022/abstractions/line/line-input.mjs +0 -113
  254. package/esm2022/abstractions/line/line.mjs +0 -165
  255. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  256. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  257. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  258. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  259. package/esm2022/performance/detailed/detailed.mjs +0 -61
  260. package/esm2022/performance/index.mjs +0 -7
  261. package/esm2022/performance/instances/instance.mjs +0 -48
  262. package/esm2022/performance/instances/instances.mjs +0 -189
  263. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  264. package/esm2022/performance/stats/stats.mjs +0 -79
  265. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  266. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  267. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  268. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  269. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -258
  270. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  271. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  272. package/performance/README.md +0 -3
  273. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  274. package/performance/detailed/detailed.d.ts +0 -20
  275. package/performance/index.d.ts +0 -6
  276. package/performance/instances/instance.d.ts +0 -9
  277. package/performance/instances/instances.d.ts +0 -35
  278. package/performance/stats/stats.d.ts +0 -18
  279. package/plugin/generators.json +0 -19
  280. package/plugin/libs/plugin/README.md +0 -11
  281. package/plugin/package.json +0 -9
  282. package/plugin/src/generators/init/compat.d.ts +0 -2
  283. package/plugin/src/generators/init/compat.js +0 -6
  284. package/plugin/src/generators/init/compat.js.map +0 -1
  285. package/plugin/src/generators/init/init.d.ts +0 -7
  286. package/plugin/src/generators/init/init.js +0 -28
  287. package/plugin/src/generators/init/init.js.map +0 -1
  288. package/plugin/src/generators/init/schema.json +0 -6
  289. package/plugin/src/index.d.ts +0 -1
  290. package/plugin/src/index.js +0 -6
  291. package/plugin/src/index.js.map +0 -1
  292. package/staging/caustics/caustisc.d.ts +0 -70
  293. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  294. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  295. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  296. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/camera/camera.ts","../../../../libs/soba/cameras/src/camera/camera-content.ts","../../../../libs/soba/cameras/src/cube-camera/cube-camera.ts","../../../../libs/soba/cameras/src/orthographic-camera/orthographic-camera.ts","../../../../libs/soba/cameras/src/perspective-camera/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, effect, inject, Input } from '@angular/core';\nimport {\n injectNgtRef,\n NgtSignalStore,\n NgtStore,\n requestAnimationFrameInInjectionContext,\n type NgtCamera,\n} from 'angular-three';\nimport { injectNgtsFBO } from 'angular-three-soba/misc';\n\nexport interface NgtsCameraState {\n makeDefault: boolean;\n manual: boolean;\n frames: number;\n resolution: number;\n envMap?: THREE.Texture;\n}\n\n@Directive()\nexport abstract class NgtsCamera<TCamera extends NgtCamera> extends NgtSignalStore<NgtsCameraState> {\n @Input() set makeDefault(makeDefault: boolean) {\n this.set({ makeDefault });\n }\n\n @Input() set manual(manual: boolean) {\n this.set({ manual });\n }\n\n @Input() set frames(frames: number) {\n this.set({ frames });\n }\n\n @Input() set resolution(resolution: number) {\n this.set({ resolution });\n }\n\n @Input() set envMap(envMap: THREE.Texture) {\n this.set({ envMap });\n }\n\n @Input() cameraRef = injectNgtRef<TCamera>();\n\n protected readonly store = inject(NgtStore);\n readonly #resolution = this.select('resolution');\n readonly fboRef = injectNgtsFBO(() => ({ width: this.#resolution() }));\n\n constructor() {\n super({ resolution: 256, frames: Infinity, makeDefault: false, manual: false });\n requestAnimationFrameInInjectionContext(() => {\n this.#setDefaultCamera();\n this.#updateProjectionMatrix();\n });\n }\n\n #setDefaultCamera() {\n const makeDefault = this.select('makeDefault');\n effect(\n (onCleanup) => {\n const camera = this.cameraRef.nativeElement;\n if (camera && makeDefault()) {\n const { camera: oldCamera } = this.store.get();\n this.store.set({ camera });\n onCleanup(() => this.store.set({ camera: oldCamera }));\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n #updateProjectionMatrix() {\n const manual = this.select('manual');\n effect(() => {\n const camera = this.cameraRef.nativeElement;\n if (!manual() && camera) camera.updateProjectionMatrix();\n });\n }\n}\n","import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[ngtsCameraContent]', standalone: true })\nexport class NgtsCameraContent {\n readonly template = inject(TemplateRef);\n @Input() ngtsCameraContent: true | '' = '';\n\n static ngTemplateContextGuard(\n _: NgtsCameraContent,\n ctx: unknown\n ): ctx is { fbo: THREE.WebGLRenderTarget; group?: THREE.Group } {\n return true;\n }\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n ContentChild,\n ElementRef,\n Input,\n ViewChild,\n computed,\n inject,\n} from '@angular/core';\nimport { NgtArgs, NgtSignalStore, NgtStore, extend, injectBeforeRender, injectNgtRef } from 'angular-three';\nimport * as THREE from 'three';\nimport { CubeCamera, Group } from 'three';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ Group, CubeCamera });\n\nexport interface NgtsCubeCameraState {\n /** Number of frames to render, Infinity */\n frames: number;\n /** Resolution of the FBO, 256 */\n resolution: number;\n /** Camera near, 0.1 */\n near: number;\n /** Camera far, 1000 */\n far: number;\n /** Custom environment map that is temporarily set as the scenes background */\n envMap: THREE.Texture;\n /** Custom fog that is temporarily set as the scenes fog */\n fog: THREE.Fog | THREE.FogExp2;\n}\n\n@Component({\n selector: 'ngts-cube-camera',\n standalone: true,\n template: `\n <ngt-group ngtCompound>\n <ngt-cube-camera [ref]=\"cameraRef\" *args=\"cameraArgs()\" />\n <ngt-group #group>\n <ng-container\n *ngIf=\"cameraContent && cameraContent.ngtsCameraContent && fbo()\"\n [ngTemplateOutlet]=\"cameraContent.template\"\n [ngTemplateOutletContext]=\"{ fbo: fbo(), group }\"\n />\n </ngt-group>\n </ngt-group>\n `,\n imports: [NgIf, NgTemplateOutlet, NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsCubeCamera extends NgtSignalStore<NgtsCubeCameraState> {\n @ViewChild('group', { static: true }) groupRef!: ElementRef<THREE.Group>;\n @ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n\n @Input() cameraRef = injectNgtRef<THREE.CubeCamera>();\n\n /** Number of frames to render, Infinity */\n @Input() set frames(frames: number) {\n this.set({ frames });\n }\n /** Resolution of the FBO, 256 */\n @Input() set resolution(resolution: number) {\n this.set({ resolution });\n }\n /** Camera near, 0.1 */\n @Input() set near(near: number) {\n this.set({ near });\n }\n /** Camera far, 1000 */\n @Input() set far(far: number) {\n this.set({ far });\n }\n /** Custom environment map that is temporarily set as the scenes background */\n @Input() set envMap(envMap: THREE.Texture) {\n this.set({ envMap });\n }\n /** Custom fog that is temporarily set as the scenes fog */\n @Input() set fog(fog: THREE.Fog | THREE.FogExp2) {\n this.set({ fog });\n }\n\n readonly #store = inject(NgtStore);\n\n readonly #resolution = this.select('resolution');\n readonly #near = this.select('near');\n readonly #far = this.select('far');\n\n readonly fbo = computed(() => {\n const resolution = this.#resolution();\n const fbo = new THREE.WebGLCubeRenderTarget(resolution);\n fbo.texture.encoding = this.#store.get('gl').outputEncoding;\n fbo.texture.type = THREE.HalfFloatType;\n return fbo;\n });\n\n readonly cameraArgs = computed(() => [this.#near(), this.#far(), this.fbo()]);\n\n constructor() {\n super({ frames: Infinity, resolution: 256, near: 0.1, far: 1000 });\n\n let count = 0;\n let originalFog: THREE.Scene['fog'];\n let originalBackground: THREE.Scene['background'];\n injectBeforeRender(({ scene, gl }) => {\n const { frames, envMap, fog } = this.get();\n if (\n envMap &&\n this.cameraRef.nativeElement &&\n this.groupRef.nativeElement &&\n (frames === Infinity || count < frames)\n ) {\n this.groupRef.nativeElement.visible = false;\n originalFog = scene.fog;\n originalBackground = scene.background;\n scene.background = envMap || originalBackground;\n scene.fog = fog || originalFog;\n this.cameraRef.nativeElement.update(gl, scene);\n scene.fog = originalFog;\n scene.background = originalBackground;\n this.groupRef.nativeElement.visible = true;\n count++;\n }\n });\n }\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, Input, computed } from '@angular/core';\nimport { extend } from 'angular-three';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCamera } from '../camera/camera';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ OrthographicCamera, Group });\n\ndeclare module '../camera/camera' {\n interface NgtsCameraState {\n left: number;\n top: number;\n right: number;\n bottom: number;\n }\n}\n\n@Component({\n selector: 'ngts-orthographic-camera',\n standalone: true,\n template: `\n <ngt-orthographic-camera\n ngtCompound\n [ref]=\"cameraRef\"\n [left]=\"cameraLeft()\"\n [right]=\"cameraRight()\"\n [top]=\"cameraTop()\"\n [bottom]=\"cameraBottom()\"\n >\n <ng-container\n *ngIf=\"cameraContent && !cameraContent.ngtsCameraContent\"\n [ngTemplateOutlet]=\"cameraContent.template\"\n />\n </ngt-orthographic-camera>\n <ngt-group #group *ngIf=\"cameraContent && cameraContent.ngtsCameraContent\">\n <ng-container *ngTemplateOutlet=\"cameraContent.template; context: { fbo: fboRef(), group }\" />\n </ngt-group>\n `,\n imports: [NgIf, NgTemplateOutlet],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera extends NgtsCamera<THREE.OrthographicCamera> {\n @ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n\n @Input() set left(left: number) {\n this.set({ left });\n }\n\n @Input() set right(right: number) {\n this.set({ right });\n }\n\n @Input() set top(top: number) {\n this.set({ top });\n }\n\n @Input() set bottom(bottom: number) {\n this.set({ bottom });\n }\n\n readonly #left = this.select('left');\n readonly #right = this.select('right');\n readonly #top = this.select('top');\n readonly #bottom = this.select('bottom');\n readonly #size = this.store.select('size');\n\n readonly cameraLeft = computed(() => this.#left() || this.#size().width / -2);\n readonly cameraRight = computed(() => this.#right() || this.#size().width / 2);\n readonly cameraTop = computed(() => this.#top() || this.#size().height / 2);\n readonly cameraBottom = computed(() => this.#bottom() || this.#size().height / -2);\n\n constructor() {\n super();\n this.set({ left: 0, right: 0, top: 0, bottom: 0 });\n }\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild } from '@angular/core';\nimport { extend } from 'angular-three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCamera } from '../camera/camera';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ PerspectiveCamera, Group });\n\n@Component({\n selector: 'ngts-perspective-camera',\n standalone: true,\n template: `\n <ngt-perspective-camera [ref]=\"cameraRef\" ngtCompound>\n <ng-container\n *ngIf=\"cameraContent && !cameraContent.ngtsCameraContent\"\n [ngTemplateOutlet]=\"cameraContent.template\"\n />\n </ngt-perspective-camera>\n <ngt-group #group *ngIf=\"cameraContent && cameraContent.ngtsCameraContent\">\n <ng-container *ngTemplateOutlet=\"cameraContent.template; context: { fbo: fboRef(), group }\" />\n </ngt-group>\n `,\n imports: [NgIf, NgTemplateOutlet],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera extends NgtsCamera<PerspectiveCamera> {\n @ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/camera/camera-content.ts","../../../../libs/soba/cameras/src/cube-camera/cube-camera.ts","../../../../libs/soba/cameras/src/camera/camera.ts","../../../../libs/soba/cameras/src/orthographic-camera/orthographic-camera.ts","../../../../libs/soba/cameras/src/perspective-camera/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[ngtsCameraContent]', standalone: true })\nexport class NgtsCameraContent {\n\ttemplate = inject(TemplateRef);\n\t@Input() ngtsCameraContent: true | '' = '';\n\n\tstatic ngTemplateContextGuard(\n\t\t_: NgtsCameraContent,\n\t\tctx: unknown,\n\t): ctx is { fbo: THREE.WebGLRenderTarget; group?: THREE.Group } {\n\t\treturn true;\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tComponent,\n\tContentChild,\n\tDestroyRef,\n\tDirective,\n\tEmbeddedViewRef,\n\tInput,\n\tOnInit,\n\tSignal,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n\trunInInjectionContext,\n\tuntracked,\n\ttype Injector,\n} from '@angular/core';\nimport {\n\tNgtArgs,\n\tassertInjectionContext,\n\textend,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tsignalStore,\n\ttype NgtGroup,\n} from 'angular-three';\nimport * as THREE from 'three';\nimport { Group } from 'three';\n\nexport type NgtsCubeCameraState = {\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Camera near, 0.1 */\n\tnear: number;\n\t/** Camera far, 1000 */\n\tfar: number;\n\t/** Custom environment map that is temporarily set as the scenes background */\n\tenvMap?: THREE.Texture;\n\t/** Custom fog that is temporarily set as the scenes fog */\n\tfog?: THREE.Fog | THREE.FogExp2;\n};\n\nconst defaultCubeCameraState = {\n\tresolution: 256,\n\tnear: 0.1,\n\tfar: 1000,\n} satisfies NgtsCubeCameraState;\n\nexport function injectNgtsCubeCamera(\n\tcubeCameraState: () => Partial<NgtsCubeCameraState>,\n\t{ injector }: { injector?: Injector } = {},\n) {\n\tinjector = assertInjectionContext(injectNgtsCubeCamera, injector);\n\treturn runInInjectionContext(injector, () => {\n\t\tconst state = computed(() => ({ ...defaultCubeCameraState, ...cubeCameraState() }));\n\t\tconst resolution = computed(() => state().resolution);\n\t\tconst near = computed(() => state().near);\n\t\tconst far = computed(() => state().far);\n\n\t\tconst store = injectNgtStore();\n\n\t\tconst _gl = store.select('gl');\n\t\tconst _scene = store.select('scene');\n\n\t\tconst _fbo = computed(() => {\n\t\t\tconst renderTarget = new THREE.WebGLCubeRenderTarget(resolution());\n\t\t\trenderTarget.texture.type = THREE.HalfFloatType;\n\t\t\treturn renderTarget;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst fbo = _fbo();\n\t\t\tonCleanup(() => fbo.dispose());\n\t\t});\n\n\t\tconst _camera = computed(() => new THREE.CubeCamera(near(), far(), _fbo()));\n\n\t\tlet originalFog: THREE.Scene['fog'];\n\t\tlet originalBackground: THREE.Scene['background'];\n\n\t\tconst update = computed(() => {\n\t\t\tconst [scene, gl, camera, { envMap, fog }] = [_scene(), _gl(), _camera(), untracked(state)];\n\n\t\t\treturn () => {\n\t\t\t\toriginalFog = scene.fog;\n\t\t\t\toriginalBackground = scene.background;\n\t\t\t\tscene.background = envMap || originalBackground;\n\t\t\t\tscene.fog = fog || originalFog;\n\t\t\t\tcamera.update(gl, scene);\n\t\t\t\tscene.fog = originalFog;\n\t\t\t\tscene.background = originalBackground;\n\t\t\t};\n\t\t});\n\n\t\treturn { fbo: _fbo, camera: _camera, update };\n\t});\n}\n\nextend({ Group });\n\nexport type NgtsCubeCameraComponentState = NgtsCubeCameraState & {\n\tframes: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-group\n\t\t */\n\t\t'ngts-cube-camera': NgtsCubeCameraComponentState & NgtGroup;\n\t}\n}\n\n@Directive({ selector: 'ng-template[ngtsCubeCameraContent]', standalone: true })\nexport class NgtsCubeCameraContent {\n\tstatic ngTemplateContextGuard(\n\t\t_: NgtsCubeCameraContent,\n\t\tctx: unknown,\n\t): ctx is { texture: Signal<THREE.WebGLRenderTarget['texture']> } {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-cube-camera',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group ngtCompound>\n\t\t\t<ngt-primitive *args=\"[cubeCamera.camera()]\" />\n\t\t\t<ngt-group [ref]=\"cameraRef\">\n\t\t\t\t<ng-container #anchor />\n\t\t\t</ngt-group>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtArgs, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsCubeCamera implements OnInit {\n\tprivate inputs = signalStore<NgtsCubeCameraComponentState>({ frames: Infinity });\n\n\t@Input() cameraRef = injectNgtRef<Group>();\n\n\t@ContentChild(NgtsCubeCameraContent, { static: true, read: TemplateRef })\n\tprivate cameraContent!: TemplateRef<{ texture: Signal<THREE.WebGLRenderTarget['texture']> }>;\n\n\t@ViewChild('anchor', { static: true, read: ViewContainerRef })\n\tprivate anchor!: ViewContainerRef;\n\n\t/** Resolution of the FBO, 256 */\n\t@Input({ alias: 'resolution' }) set _resolution(resolution: number) {\n\t\tthis.inputs.set({ resolution });\n\t}\n\n\t/** Camera near, 0.1 */\n\t@Input({ alias: 'near' }) set _near(near: number) {\n\t\tthis.inputs.set({ near });\n\t}\n\n\t/** Camera far, 1000 */\n\t@Input({ alias: 'far' }) set _far(far: number) {\n\t\tthis.inputs.set({ far });\n\t}\n\n\t/** Custom environment map that is temporarily set as the scenes background */\n\t@Input({ alias: 'envMap' }) set _envMap(envMap: THREE.Texture) {\n\t\tthis.inputs.set({ envMap });\n\t}\n\n\t/** Custom fog that is temporarily set as the scenes fog */\n\t@Input({ alias: 'fog' }) set _fog(fog: THREE.Fog | THREE.FogExp2) {\n\t\tthis.inputs.set({ fog });\n\t}\n\n\tcubeCamera = injectNgtsCubeCamera(this.inputs.state);\n\tprivate texture = computed(() => this.cubeCamera.fbo().texture);\n\tprivate contentRef?: EmbeddedViewRef<unknown>;\n\n\tconstructor() {\n\t\tthis.beforeRender();\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.contentRef?.destroy();\n\t\t});\n\t}\n\n\tngOnInit() {\n\t\tthis.contentRef = this.anchor.createEmbeddedView(this.cameraContent, { texture: this.texture });\n\t}\n\n\tprivate beforeRender() {\n\t\tlet count = 0;\n\t\tinjectBeforeRender(() => {\n\t\t\tconst camera = this.cameraRef.nativeElement;\n\t\t\tif (!camera) return;\n\t\t\tconst update = this.cubeCamera.update();\n\t\t\tconst frames = this.inputs.get('frames');\n\t\t\tif (frames === Infinity || count < frames) {\n\t\t\t\tcamera.visible = false;\n\t\t\t\tupdate();\n\t\t\t\tcamera.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Directive, effect, Input } from '@angular/core';\nimport { injectNgtRef, injectNgtStore, signalStore, type NgtCamera } from 'angular-three';\nimport { injectNgtsFBO } from 'angular-three-soba/misc';\n\nexport type NgtsCameraState = {\n\tmakeDefault: boolean;\n\tmanual: boolean;\n\tframes: number;\n\tresolution: number;\n\tenvMap?: THREE.Texture;\n};\n\n@Directive()\nexport abstract class NgtsCamera<TCamera extends NgtCamera> {\n\tprotected inputs = signalStore<NgtsCameraState>({\n\t\tresolution: 256,\n\t\tframes: Infinity,\n\t\tmakeDefault: false,\n\t\tmanual: false,\n\t});\n\n\t@Input({ alias: 'makeDefault' }) set _makeDefault(makeDefault: boolean) {\n\t\tthis.inputs.set({ makeDefault });\n\t}\n\n\t@Input({ alias: 'manual' }) set _manual(manual: boolean) {\n\t\tthis.inputs.set({ manual });\n\t}\n\n\t@Input({ alias: 'frames' }) set _frames(frames: number) {\n\t\tthis.inputs.set({ frames });\n\t}\n\n\t@Input({ alias: 'resolution' }) set _resolution(resolution: number) {\n\t\tthis.inputs.set({ resolution });\n\t}\n\n\t@Input({ alias: 'envMap' }) set _envMap(envMap: THREE.Texture) {\n\t\tthis.inputs.set({ envMap });\n\t}\n\n\t@Input() cameraRef = injectNgtRef<TCamera>();\n\n\tprivate cameraResolution = this.inputs.select('resolution');\n\n\tprotected store = injectNgtStore();\n\tprotected fboRef = injectNgtsFBO(() => ({ width: this.cameraResolution() }));\n\n\tconstructor() {\n\t\tthis.setDefaultCamera();\n\t\tthis.updateProjectionMatrix();\n\t}\n\n\tprivate setDefaultCamera() {\n\t\tconst makeDefault = this.inputs.select('makeDefault');\n\t\teffect((onCleanup) => {\n\t\t\tconst camera = this.cameraRef.nativeElement;\n\t\t\tif (camera && makeDefault()) {\n\t\t\t\tconst { camera: oldCamera } = this.store.get();\n\t\t\t\tthis.store.set({ camera });\n\t\t\t\tonCleanup(() => this.store.set({ camera: oldCamera }));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updateProjectionMatrix() {\n\t\tconst manual = this.inputs.select('manual');\n\t\teffect(() => {\n\t\t\tconst camera = this.cameraRef.nativeElement;\n\t\t\tif (!manual() && camera) camera.updateProjectionMatrix();\n\t\t});\n\t}\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, Input, computed } from '@angular/core';\nimport { extend, signalStore, type NgtOrthographicCamera } from 'angular-three';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCamera, type NgtsCameraState } from '../camera/camera';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ OrthographicCamera, Group });\n\nexport type NgtsOrthographicCameraState = {\n\tleft: number;\n\ttop: number;\n\tright: number;\n\tbottom: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-orthographic-camera\n\t\t */\n\t\t'ngts-orthographic-camera': NgtsCameraState & NgtsOrthographicCameraState & NgtOrthographicCamera;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-orthographic-camera',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-orthographic-camera\n\t\t\tngtCompound\n\t\t\t[ref]=\"cameraRef\"\n\t\t\t[left]=\"cameraLeft()\"\n\t\t\t[right]=\"cameraRight()\"\n\t\t\t[top]=\"cameraTop()\"\n\t\t\t[bottom]=\"cameraBottom()\"\n\t\t>\n\t\t\t<ng-container\n\t\t\t\t*ngIf=\"cameraContent && !cameraContent.ngtsCameraContent\"\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent.template\"\n\t\t\t/>\n\t\t</ngt-orthographic-camera>\n\t\t<ngt-group #group *ngIf=\"cameraContent && cameraContent.ngtsCameraContent\">\n\t\t\t<ng-container *ngTemplateOutlet=\"cameraContent.template; context: { fbo: fboRef.nativeElement, group }\" />\n\t\t</ngt-group>\n\t`,\n\timports: [NgIf, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera extends NgtsCamera<THREE.OrthographicCamera> {\n\tprivate orthographicInputs = signalStore<NgtsOrthographicCameraState>({\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0,\n\t});\n\n\t@ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n\n\t@Input({ alias: 'left' }) set _left(left: number) {\n\t\tthis.orthographicInputs.set({ left });\n\t}\n\n\t@Input({ alias: 'right' }) set _right(right: number) {\n\t\tthis.orthographicInputs.set({ right });\n\t}\n\n\t@Input({ alias: 'top' }) set _top(top: number) {\n\t\tthis.orthographicInputs.set({ top });\n\t}\n\n\t@Input({ alias: 'bottom' }) set _bottom(bottom: number) {\n\t\tthis.orthographicInputs.set({ bottom });\n\t}\n\n\tprivate left = this.orthographicInputs.select('left');\n\tprivate right = this.orthographicInputs.select('right');\n\tprivate top = this.orthographicInputs.select('top');\n\tprivate bottom = this.orthographicInputs.select('bottom');\n\tprivate size = this.store.select('size');\n\n\tcameraLeft = computed(() => this.left() || this.size().width / -2);\n\tcameraRight = computed(() => this.right() || this.size().width / 2);\n\tcameraTop = computed(() => this.top() || this.size().height / 2);\n\tcameraBottom = computed(() => this.bottom() || this.size().height / -2);\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild } from '@angular/core';\nimport { extend, type NgtPerspectiveCamera } from 'angular-three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCamera, type NgtsCameraState } from '../camera/camera';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ PerspectiveCamera, Group });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends ngt-perspective-camera\n\t\t */\n\t\t'ngts-perspective-camera': NgtsCameraState & NgtPerspectiveCamera;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-perspective-camera',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-perspective-camera [ref]=\"cameraRef\" ngtCompound>\n\t\t\t<ng-container\n\t\t\t\t*ngIf=\"cameraContent && !cameraContent.ngtsCameraContent\"\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent.template\"\n\t\t\t/>\n\t\t</ngt-perspective-camera>\n\t\t<ngt-group #group *ngIf=\"cameraContent && cameraContent.ngtsCameraContent\">\n\t\t\t<ng-container *ngTemplateOutlet=\"cameraContent.template; context: { fbo: fboRef.nativeElement, group }\" />\n\t\t</ngt-group>\n\t`,\n\timports: [NgIf, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera extends NgtsCamera<PerspectiveCamera> {\n\t@ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,82 +1,86 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, inject, computed, effect, Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output } from '@angular/core';
3
- import { NgtSignalStore, injectNgtRef, NgtStore, injectBeforeRender, NgtArgs } from 'angular-three';
2
+ import { EventEmitter, computed, effect, Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output } from '@angular/core';
3
+ import { signalStore, injectNgtRef, injectNgtStore, injectBeforeRender, NgtArgs } from 'angular-three';
4
4
  import { OrbitControls } from 'three-stdlib';
5
5
 
6
- class NgtsOrbitControls extends NgtSignalStore {
7
- set camera(camera) {
8
- this.set({ camera });
6
+ class NgtsOrbitControls {
7
+ set _camera(camera) {
8
+ this.inputs.set({ camera });
9
9
  }
10
- set domElement(domElement) {
11
- this.set({ domElement });
10
+ set _domElement(domElement) {
11
+ this.inputs.set({ domElement });
12
12
  }
13
- set makeDefault(makeDefault) {
14
- this.set({ makeDefault });
13
+ set _makeDefault(makeDefault) {
14
+ this.inputs.set({ makeDefault });
15
15
  }
16
- set regress(regress) {
17
- this.set({ regress });
16
+ set _regress(regress) {
17
+ this.inputs.set({ regress });
18
18
  }
19
- set target(target) {
20
- this.set({ target });
19
+ set _target(target) {
20
+ this.inputs.set({ target });
21
21
  }
22
- set enableDamping(enableDamping) {
23
- this.set({ enableDamping });
22
+ set _enableDamping(enableDamping) {
23
+ this.inputs.set({ enableDamping });
24
24
  }
25
- set keyEvents(keyEvents) {
26
- this.set({ keyEvents });
25
+ set _keyEvents(keyEvents) {
26
+ this.inputs.set({ keyEvents });
27
27
  }
28
- #store;
29
28
  constructor() {
30
- super({ enableDamping: true, regress: false, makeDefault: false, keyEvents: false });
29
+ this.inputs = signalStore({
30
+ enableDamping: true,
31
+ regress: false,
32
+ makeDefault: false,
33
+ keyEvents: false,
34
+ });
31
35
  this.controlsRef = injectNgtRef();
32
36
  this.change = new EventEmitter();
33
37
  this.start = new EventEmitter();
34
38
  this.end = new EventEmitter();
35
- this.#store = inject(NgtStore);
39
+ this.store = injectNgtStore();
40
+ this.invalidate = this.store.select('invalidate');
41
+ this.performanceRegress = this.store.select('performance', 'regress');
42
+ this.defaultCamera = this.store.select('camera');
43
+ this.glDomElement = this.store.select('gl', 'domElement');
44
+ this.regress = this.inputs.select('regress');
45
+ this.camera = this.inputs.select('camera');
46
+ this.domElement = this.inputs.select('domElement');
47
+ this.keyEvents = this.inputs.select('keyEvents');
48
+ this.makeDefault = this.inputs.select('makeDefault');
36
49
  this.args = computed(() => [this.controlsRef.nativeElement]);
37
- this.damping = this.select('enableDamping');
50
+ this.enableDamping = this.inputs.select('enableDamping');
38
51
  injectBeforeRender(() => {
39
- const controls = this.controlsRef.untracked;
52
+ const controls = this.controlsRef.nativeElement;
40
53
  if (controls && controls.enabled) {
41
54
  controls.update();
42
55
  }
43
56
  }, { priority: -1 });
44
- this.#setControls();
45
- this.#connectElement();
46
- this.#makeControlsDefault();
47
- this.#setEvents();
57
+ this.setControls();
58
+ this.connectElement();
59
+ this.makeControlsDefault();
60
+ this.setEvents();
48
61
  }
49
- #setControls() {
50
- const camera = this.select('camera');
51
- const defaultCamera = this.#store.select('camera');
52
- const trigger = computed(() => ({ camera: camera(), defaultCamera: defaultCamera() }));
62
+ setControls() {
53
63
  effect(() => {
54
- const { camera, defaultCamera } = trigger();
64
+ const [camera, defaultCamera, controls] = [
65
+ this.camera(),
66
+ this.defaultCamera(),
67
+ this.controlsRef.nativeElement,
68
+ ];
55
69
  const controlsCamera = camera || defaultCamera;
56
- const controls = this.controlsRef.nativeElement;
57
70
  if (!controls || controls.object !== controlsCamera) {
58
71
  this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
59
72
  }
60
- }, { allowSignalWrites: true });
61
- }
62
- #connectElement() {
63
- const glDomElement = this.#store.select('gl', 'domElement');
64
- const domElement = this.select('domElement');
65
- const regress = this.select('regress');
66
- const invalidate = this.#store.select('invalidate');
67
- const keyEvents = this.select('keyEvents');
68
- const trigger = computed(() => {
69
- const eventsSource = this.#store.get('events', 'connected');
70
- return {
71
- keyEvents: keyEvents(),
72
- controls: this.controlsRef.nativeElement,
73
- domElement: domElement() || eventsSource || glDomElement(),
74
- regress: regress(),
75
- invalidate: invalidate(),
76
- };
77
73
  });
74
+ }
75
+ connectElement() {
78
76
  effect((onCleanup) => {
79
- const { domElement, controls, keyEvents } = trigger();
77
+ const [keyEvents, domElement, controls] = [
78
+ this.keyEvents(),
79
+ this.domElement() || this.store.get('events', 'connected') || this.glDomElement(),
80
+ this.controlsRef.nativeElement,
81
+ this.invalidate(),
82
+ this.regress(),
83
+ ];
80
84
  if (!controls)
81
85
  return;
82
86
  if (keyEvents) {
@@ -88,38 +92,32 @@ class NgtsOrbitControls extends NgtSignalStore {
88
92
  onCleanup(() => void controls.dispose());
89
93
  });
90
94
  }
91
- #makeControlsDefault() {
92
- const makeDefault = this.select('makeDefault');
93
- const trigger = computed(() => ({ controls: this.controlsRef.nativeElement, makeDefault: makeDefault() }));
95
+ makeControlsDefault() {
94
96
  effect((onCleanup) => {
95
- const { controls, makeDefault } = trigger();
97
+ const [controls, makeDefault] = [this.controlsRef.nativeElement, this.makeDefault()];
96
98
  if (!controls)
97
99
  return;
98
100
  if (makeDefault) {
99
- const oldControls = this.#store.get('controls');
100
- this.#store.set({ controls });
101
- onCleanup(() => void this.#store.set({ controls: oldControls }));
101
+ const oldControls = this.store.get('controls');
102
+ this.store.set({ controls });
103
+ onCleanup(() => void this.store.set({ controls: oldControls }));
102
104
  }
103
- }, { allowSignalWrites: true });
105
+ });
104
106
  }
105
- #setEvents() {
106
- const invalidate = this.#store.select('invalidate');
107
- const performance = this.#store.select('performance');
108
- const regress = this.select('regress');
109
- const trigger = computed(() => ({
110
- invalidate: invalidate(),
111
- performance: performance(),
112
- regress: regress(),
113
- controls: this.controlsRef.nativeElement,
114
- }));
107
+ setEvents() {
115
108
  effect((onCleanup) => {
116
- const { controls, invalidate, performance, regress } = trigger();
109
+ const [controls, invalidate, performanceRegress, regress] = [
110
+ this.controlsRef.nativeElement,
111
+ this.invalidate(),
112
+ this.performanceRegress(),
113
+ this.regress(),
114
+ ];
117
115
  if (!controls)
118
116
  return;
119
117
  const changeCallback = (e) => {
120
118
  invalidate();
121
119
  if (regress)
122
- performance.regress();
120
+ performanceRegress();
123
121
  if (this.change.observed)
124
122
  this.change.emit(e);
125
123
  };
@@ -139,34 +137,41 @@ class NgtsOrbitControls extends NgtSignalStore {
139
137
  });
140
138
  });
141
139
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping", keyEvents: "keyEvents" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="damping()" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", _camera: ["camera", "_camera"], _domElement: ["domElement", "_domElement"], _makeDefault: ["makeDefault", "_makeDefault"], _regress: ["regress", "_regress"], _target: ["target", "_target"], _enableDamping: ["enableDamping", "_enableDamping"], _keyEvents: ["keyEvents", "_keyEvents"] }, outputs: { change: "change", start: "start", end: "end" }, ngImport: i0, template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
144
142
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsOrbitControls, decorators: [{
146
144
  type: Component,
147
145
  args: [{
148
146
  selector: 'ngts-orbit-controls',
149
147
  standalone: true,
150
- template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="damping()" /> `,
148
+ template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" /> `,
151
149
  imports: [NgtArgs],
152
150
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
153
151
  }]
154
152
  }], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
155
153
  type: Input
156
- }], camera: [{
157
- type: Input
158
- }], domElement: [{
159
- type: Input
160
- }], makeDefault: [{
161
- type: Input
162
- }], regress: [{
163
- type: Input
164
- }], target: [{
165
- type: Input
166
- }], enableDamping: [{
167
- type: Input
168
- }], keyEvents: [{
169
- type: Input
154
+ }], _camera: [{
155
+ type: Input,
156
+ args: [{ alias: 'camera' }]
157
+ }], _domElement: [{
158
+ type: Input,
159
+ args: [{ alias: 'domElement' }]
160
+ }], _makeDefault: [{
161
+ type: Input,
162
+ args: [{ alias: 'makeDefault' }]
163
+ }], _regress: [{
164
+ type: Input,
165
+ args: [{ alias: 'regress' }]
166
+ }], _target: [{
167
+ type: Input,
168
+ args: [{ alias: 'target' }]
169
+ }], _enableDamping: [{
170
+ type: Input,
171
+ args: [{ alias: 'enableDamping' }]
172
+ }], _keyEvents: [{
173
+ type: Input,
174
+ args: [{ alias: 'keyEvents' }]
170
175
  }], change: [{
171
176
  type: Output
172
177
  }], start: [{
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/soba/controls/src/orbit-controls/orbit-controls.ts","../../../../libs/soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import {\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n effect,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n injectBeforeRender,\n injectNgtRef,\n NgtArgs,\n NgtSignalStore,\n NgtStore,\n type NgtCamera,\n type NgtVector3,\n} from 'angular-three';\nimport { OrbitControls } from 'three-stdlib';\n\nexport type NgtsOrbitControlsState = {\n camera?: THREE.Camera;\n domElement?: HTMLElement;\n target?: NgtVector3;\n makeDefault: boolean;\n regress: boolean;\n enableDamping: boolean;\n keyEvents: boolean | HTMLElement;\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ngts-orbit-controls': OrbitControls & NgtsOrbitControlsState;\n }\n}\n\n@Component({\n selector: 'ngts-orbit-controls',\n standalone: true,\n template: ` <ngt-primitive *args=\"args()\" ngtCompound [enableDamping]=\"damping()\" /> `,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls extends NgtSignalStore<NgtsOrbitControlsState> {\n @Input() controlsRef = injectNgtRef<OrbitControls>();\n\n @Input() set camera(camera: THREE.Camera) {\n this.set({ camera });\n }\n\n @Input() set domElement(domElement: HTMLElement) {\n this.set({ domElement });\n }\n\n @Input() set makeDefault(makeDefault: boolean) {\n this.set({ makeDefault });\n }\n\n @Input() set regress(regress: boolean) {\n this.set({ regress });\n }\n\n @Input() set target(target: THREE.Vector3 | Parameters<THREE.Vector3['set']>) {\n this.set({ target });\n }\n\n @Input() set enableDamping(enableDamping: boolean) {\n this.set({ enableDamping });\n }\n\n @Input() set keyEvents(keyEvents: boolean) {\n this.set({ keyEvents });\n }\n\n @Output() change = new EventEmitter<THREE.Event>();\n @Output() start = new EventEmitter<THREE.Event>();\n @Output() end = new EventEmitter<THREE.Event>();\n\n readonly #store = inject(NgtStore);\n\n readonly args = computed(() => [this.controlsRef.nativeElement]);\n readonly damping = this.select('enableDamping');\n\n constructor() {\n super({ enableDamping: true, regress: false, makeDefault: false, keyEvents: false });\n injectBeforeRender(\n () => {\n const controls = this.controlsRef.untracked;\n if (controls && controls.enabled) {\n controls.update();\n }\n },\n { priority: -1 }\n );\n\n this.#setControls();\n this.#connectElement();\n this.#makeControlsDefault();\n this.#setEvents();\n }\n\n #setControls() {\n const camera = this.select('camera');\n const defaultCamera = this.#store.select('camera');\n const trigger = computed(() => ({ camera: camera(), defaultCamera: defaultCamera() }));\n\n effect(\n () => {\n const { camera, defaultCamera } = trigger();\n const controlsCamera = camera || defaultCamera;\n const controls = this.controlsRef.nativeElement;\n if (!controls || controls.object !== controlsCamera) {\n this.controlsRef.nativeElement = new OrbitControls(controlsCamera as NgtCamera);\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n #connectElement() {\n const glDomElement = this.#store.select('gl', 'domElement');\n const domElement = this.select('domElement');\n const regress = this.select('regress');\n const invalidate = this.#store.select('invalidate');\n const keyEvents = this.select('keyEvents');\n\n const trigger = computed(() => {\n const eventsSource = this.#store.get('events', 'connected');\n return {\n keyEvents: keyEvents(),\n controls: this.controlsRef.nativeElement,\n domElement: domElement() || eventsSource || glDomElement(),\n regress: regress(),\n invalidate: invalidate(),\n };\n });\n\n effect((onCleanup) => {\n const { domElement, controls, keyEvents } = trigger();\n if (!controls) return;\n if (keyEvents) {\n controls.connect(keyEvents === true ? domElement : keyEvents);\n } else {\n controls.connect(domElement);\n }\n onCleanup(() => void controls.dispose());\n });\n }\n\n #makeControlsDefault() {\n const makeDefault = this.select('makeDefault');\n const trigger = computed(() => ({ controls: this.controlsRef.nativeElement, makeDefault: makeDefault() }));\n\n effect(\n (onCleanup) => {\n const { controls, makeDefault } = trigger();\n if (!controls) return;\n if (makeDefault) {\n const oldControls = this.#store.get('controls');\n this.#store.set({ controls });\n onCleanup(() => void this.#store.set({ controls: oldControls }));\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n #setEvents() {\n const invalidate = this.#store.select('invalidate');\n const performance = this.#store.select('performance');\n const regress = this.select('regress');\n\n const trigger = computed(() => ({\n invalidate: invalidate(),\n performance: performance(),\n regress: regress(),\n controls: this.controlsRef.nativeElement,\n }));\n effect((onCleanup) => {\n const { controls, invalidate, performance, regress } = trigger();\n if (!controls) return;\n const changeCallback: (e: THREE.Event) => void = (e) => {\n invalidate();\n if (regress) performance.regress();\n if (this.change.observed) this.change.emit(e);\n };\n\n const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;\n const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;\n\n controls.addEventListener('change', changeCallback);\n if (startCallback) controls.addEventListener('start', startCallback);\n if (endCallback) controls.addEventListener('end', endCallback);\n\n onCleanup(() => {\n controls.removeEventListener('change', changeCallback);\n if (startCallback) controls.removeEventListener('start', startCallback);\n if (endCallback) controls.removeEventListener('end', endCallback);\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/soba/controls/src/orbit-controls/orbit-controls.ts","../../../../libs/soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, Input, Output } from '@angular/core';\nimport {\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tNgtArgs,\n\tsignalStore,\n\ttype NgtCamera,\n\ttype NgtVector3,\n} from 'angular-three';\nimport { OrbitControls } from 'three-stdlib';\n\nexport type NgtsOrbitControlsState = {\n\tcamera?: THREE.Camera;\n\tdomElement?: HTMLElement;\n\ttarget?: NgtVector3;\n\tmakeDefault: boolean;\n\tregress: boolean;\n\tenableDamping: boolean;\n\tkeyEvents: boolean | HTMLElement;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends three-stdlib|OrbitControls\n\t\t */\n\t\t'ngts-orbit-controls': OrbitControls & NgtsOrbitControlsState;\n\t}\n}\n\n@Component({\n\tselector: 'ngts-orbit-controls',\n\tstandalone: true,\n\ttemplate: ` <ngt-primitive *args=\"args()\" ngtCompound [enableDamping]=\"enableDamping()\" /> `,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls {\n\tprivate inputs = signalStore<NgtsOrbitControlsState>({\n\t\tenableDamping: true,\n\t\tregress: false,\n\t\tmakeDefault: false,\n\t\tkeyEvents: false,\n\t});\n\n\t@Input() controlsRef = injectNgtRef<OrbitControls>();\n\n\t@Input({ alias: 'camera' }) set _camera(camera: THREE.Camera) {\n\t\tthis.inputs.set({ camera });\n\t}\n\n\t@Input({ alias: 'domElement' }) set _domElement(domElement: HTMLElement) {\n\t\tthis.inputs.set({ domElement });\n\t}\n\n\t@Input({ alias: 'makeDefault' }) set _makeDefault(makeDefault: boolean) {\n\t\tthis.inputs.set({ makeDefault });\n\t}\n\n\t@Input({ alias: 'regress' }) set _regress(regress: boolean) {\n\t\tthis.inputs.set({ regress });\n\t}\n\n\t@Input({ alias: 'target' }) set _target(target: THREE.Vector3 | Parameters<THREE.Vector3['set']>) {\n\t\tthis.inputs.set({ target });\n\t}\n\n\t@Input({ alias: 'enableDamping' }) set _enableDamping(enableDamping: boolean) {\n\t\tthis.inputs.set({ enableDamping });\n\t}\n\n\t@Input({ alias: 'keyEvents' }) set _keyEvents(keyEvents: boolean) {\n\t\tthis.inputs.set({ keyEvents });\n\t}\n\n\t@Output() change = new EventEmitter<THREE.Event>();\n\t@Output() start = new EventEmitter<THREE.Event>();\n\t@Output() end = new EventEmitter<THREE.Event>();\n\n\tprivate store = injectNgtStore();\n\tprivate invalidate = this.store.select('invalidate');\n\tprivate performanceRegress = this.store.select('performance', 'regress');\n\tprivate defaultCamera = this.store.select('camera');\n\tprivate glDomElement = this.store.select('gl', 'domElement');\n\tprivate regress = this.inputs.select('regress');\n\tprivate camera = this.inputs.select('camera');\n\tprivate domElement = this.inputs.select('domElement');\n\tprivate keyEvents = this.inputs.select('keyEvents');\n\tprivate makeDefault = this.inputs.select('makeDefault');\n\n\targs = computed(() => [this.controlsRef.nativeElement]);\n\tenableDamping = this.inputs.select('enableDamping');\n\n\tconstructor() {\n\t\tinjectBeforeRender(\n\t\t\t() => {\n\t\t\t\tconst controls = this.controlsRef.nativeElement;\n\t\t\t\tif (controls && controls.enabled) {\n\t\t\t\t\tcontrols.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ priority: -1 },\n\t\t);\n\n\t\tthis.setControls();\n\t\tthis.connectElement();\n\t\tthis.makeControlsDefault();\n\t\tthis.setEvents();\n\t}\n\n\tprivate setControls() {\n\t\teffect(() => {\n\t\t\tconst [camera, defaultCamera, controls] = [\n\t\t\t\tthis.camera(),\n\t\t\t\tthis.defaultCamera(),\n\t\t\t\tthis.controlsRef.nativeElement,\n\t\t\t];\n\t\t\tconst controlsCamera = camera || defaultCamera;\n\t\t\tif (!controls || controls.object !== controlsCamera) {\n\t\t\t\tthis.controlsRef.nativeElement = new OrbitControls(controlsCamera as NgtCamera);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate connectElement() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [keyEvents, domElement, controls] = [\n\t\t\t\tthis.keyEvents(),\n\t\t\t\tthis.domElement() || this.store.get('events', 'connected') || this.glDomElement(),\n\t\t\t\tthis.controlsRef.nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.regress(),\n\t\t\t];\n\t\t\tif (!controls) return;\n\t\t\tif (keyEvents) {\n\t\t\t\tcontrols.connect(keyEvents === true ? domElement : keyEvents);\n\t\t\t} else {\n\t\t\t\tcontrols.connect(domElement);\n\t\t\t}\n\t\t\tonCleanup(() => void controls.dispose());\n\t\t});\n\t}\n\n\tprivate makeControlsDefault() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [controls, makeDefault] = [this.controlsRef.nativeElement, this.makeDefault()];\n\t\t\tif (!controls) return;\n\t\t\tif (makeDefault) {\n\t\t\t\tconst oldControls = this.store.get('controls');\n\t\t\t\tthis.store.set({ controls });\n\t\t\t\tonCleanup(() => void this.store.set({ controls: oldControls }));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setEvents() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [controls, invalidate, performanceRegress, regress] = [\n\t\t\t\tthis.controlsRef.nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.performanceRegress(),\n\t\t\t\tthis.regress(),\n\t\t\t];\n\t\t\tif (!controls) return;\n\t\t\tconst changeCallback: (e: THREE.Event) => void = (e) => {\n\t\t\t\tinvalidate();\n\t\t\t\tif (regress) performanceRegress();\n\t\t\t\tif (this.change.observed) this.change.emit(e);\n\t\t\t};\n\n\t\t\tconst startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;\n\t\t\tconst endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;\n\n\t\t\tcontrols.addEventListener('change', changeCallback);\n\t\t\tif (startCallback) controls.addEventListener('start', startCallback);\n\t\t\tif (endCallback) controls.addEventListener('end', endCallback);\n\n\t\t\tonCleanup(() => {\n\t\t\t\tcontrols.removeEventListener('change', changeCallback);\n\t\t\t\tif (startCallback) controls.removeEventListener('start', startCallback);\n\t\t\t\tif (endCallback) controls.removeEventListener('end', endCallback);\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAsCa,iBAAiB,CAAA;IAU7B,IAAgC,OAAO,CAAC,MAAoB,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAAoC,WAAW,CAAC,UAAuB,EAAA;QACtE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAChC;IAED,IAAqC,YAAY,CAAC,WAAoB,EAAA;QACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;IAED,IAAiC,QAAQ,CAAC,OAAgB,EAAA;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;IAED,IAAgC,OAAO,CAAC,MAAwD,EAAA;QAC/F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAAuC,cAAc,CAAC,aAAsB,EAAA;QAC3E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAmC,UAAU,CAAC,SAAkB,EAAA;QAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC/B;AAoBD,IAAA,WAAA,GAAA;QAvDQ,IAAM,CAAA,MAAA,GAAG,WAAW,CAAyB;AACpD,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,SAAS,EAAE,KAAK;AAChB,SAAA,CAAC,CAAC;QAEM,IAAW,CAAA,WAAA,GAAG,YAAY,EAAiB,CAAC;AA8B3C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAe,CAAC;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAe,CAAC;AACxC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,YAAY,EAAe,CAAC;QAExC,IAAK,CAAA,KAAA,GAAG,cAAc,EAAE,CAAC;QACzB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACjE,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrD,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAGnD,kBAAkB,CACjB,MAAK;AACJ,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAChD,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACjC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAClB,aAAA;SACD,EACD,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAChB,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;KACjB;IAEO,WAAW,GAAA;QAClB,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,GAAG;gBACzC,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,aAAa;aAC9B,CAAC;AACF,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,aAAa,CAAC;YAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE;gBACpD,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,cAA2B,CAAC,CAAC;AAChF,aAAA;AACF,SAAC,CAAC,CAAC;KACH;IAEO,cAAc,GAAA;AACrB,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACpB,YAAA,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG;gBACzC,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACjF,IAAI,CAAC,WAAW,CAAC,aAAa;gBAC9B,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,OAAO,EAAE;aACd,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACtB,YAAA,IAAI,SAAS,EAAE;AACd,gBAAA,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;AAC9D,aAAA;AAAM,iBAAA;AACN,gBAAA,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7B,aAAA;YACD,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1C,SAAC,CAAC,CAAC;KACH;IAEO,mBAAmB,GAAA;AAC1B,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACpB,YAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACtB,YAAA,IAAI,WAAW,EAAE;gBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7B,gBAAA,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAChE,aAAA;AACF,SAAC,CAAC,CAAC;KACH;IAEO,SAAS,GAAA;AAChB,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACpB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,GAAG;gBAC3D,IAAI,CAAC,WAAW,CAAC,aAAa;gBAC9B,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,OAAO,EAAE;aACd,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACtB,YAAA,MAAM,cAAc,GAA6B,CAAC,CAAC,KAAI;AACtD,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,IAAI,OAAO;AAAE,oBAAA,kBAAkB,EAAE,CAAC;AAClC,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;AAAE,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,aAAC,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACpF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAE5E,YAAA,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACpD,YAAA,IAAI,aAAa;AAAE,gBAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACrE,YAAA,IAAI,WAAW;AAAE,gBAAA,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAE/D,SAAS,CAAC,MAAK;AACd,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACvD,gBAAA,IAAI,aAAa;AAAE,oBAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACxE,gBAAA,IAAI,WAAW;AAAE,oBAAA,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnE,aAAC,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;8GAlJW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,WAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJnB,CAAkF,gFAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClF,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAkF,gFAAA,CAAA;oBAC5F,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EASS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAE0B,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIU,WAAW,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;gBAIO,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBAIE,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIK,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIa,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIE,UAAU,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;gBAInB,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,GAAG,EAAA,CAAA;sBAAZ,MAAM;;;AC9ER;;AAEG;;;;"}