angular-three-soba 1.13.0 → 1.14.1

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 (257) hide show
  1. package/abstractions/lib/billboard/billboard.d.ts +1 -1
  2. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +1 -1
  3. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +1 -1
  4. package/abstractions/lib/edges/edges.d.ts +2 -2
  5. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +1 -1
  6. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +1 -1
  7. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +2 -2
  8. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +1 -1
  9. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +1 -1
  10. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +2 -2
  11. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +1 -1
  12. package/abstractions/lib/line/line-input.d.ts +1 -1
  13. package/abstractions/lib/line/line.d.ts +1 -1
  14. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +1 -1
  15. package/abstractions/lib/text/text.d.ts +1 -1
  16. package/abstractions/lib/text-3d/text-3d.d.ts +1 -1
  17. package/cameras/lib/camera/camera-content.d.ts +1 -1
  18. package/cameras/lib/camera/camera.d.ts +1 -1
  19. package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
  20. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
  21. package/controls/lib/orbit-controls/orbit-controls.d.ts +1 -1
  22. package/esm2022/abstractions/lib/billboard/billboard.mjs +74 -0
  23. package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +120 -0
  24. package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +99 -0
  25. package/esm2022/abstractions/lib/edges/edges.mjs +96 -0
  26. package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +213 -0
  27. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +92 -0
  28. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +184 -0
  29. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +46 -0
  30. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +8 -7
  31. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  32. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +8 -7
  33. package/esm2022/abstractions/lib/line/line-input.mjs +76 -0
  34. package/esm2022/abstractions/lib/line/line.mjs +133 -0
  35. package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +128 -0
  36. package/esm2022/abstractions/lib/text/text.mjs +115 -0
  37. package/esm2022/abstractions/lib/text-3d/text-3d.mjs +145 -0
  38. package/esm2022/cameras/lib/camera/camera-content.mjs +21 -0
  39. package/esm2022/cameras/lib/camera/camera.mjs +75 -0
  40. package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +131 -0
  41. package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +93 -0
  42. package/{esm2020 → esm2022}/cameras/lib/perspective-camera/perspective-camera.mjs +8 -7
  43. package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +147 -0
  44. package/{esm2020 → esm2022}/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +3 -3
  45. package/esm2022/loaders/lib/loader/loader.mjs +134 -0
  46. package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +75 -0
  47. package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +328 -0
  48. package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +158 -0
  49. package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +238 -0
  50. package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
  51. package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +26 -0
  52. package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +47 -0
  53. package/esm2022/performance/lib/adaptive/adaptive-events.mjs +37 -0
  54. package/esm2022/performance/lib/detailed/detailed.mjs +54 -0
  55. package/esm2022/performance/lib/stats/stats.mjs +80 -0
  56. package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +61 -0
  57. package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +249 -0
  58. package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +201 -0
  59. package/{esm2020 → esm2022}/staging/lib/bounds/bounds.mjs +8 -7
  60. package/esm2022/staging/lib/camera-shake/camera-shake.mjs +122 -0
  61. package/esm2022/staging/lib/caustics/caustics.mjs +364 -0
  62. package/esm2022/staging/lib/center/center.mjs +143 -0
  63. package/esm2022/staging/lib/cloud/cloud.mjs +160 -0
  64. package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +228 -0
  65. package/esm2022/staging/lib/environment/environment-cube.mjs +41 -0
  66. package/esm2022/staging/lib/environment/environment-ground.mjs +67 -0
  67. package/esm2022/staging/lib/environment/environment-inputs.mjs +87 -0
  68. package/esm2022/staging/lib/environment/environment-map.mjs +39 -0
  69. package/esm2022/staging/lib/environment/environment-portal.mjs +111 -0
  70. package/{esm2020 → esm2022}/staging/lib/environment/environment.mjs +13 -11
  71. package/esm2022/staging/lib/float/float.mjs +77 -0
  72. package/esm2022/staging/lib/sky/sky.mjs +109 -0
  73. package/esm2022/staging/lib/sparkles/sparkles.mjs +210 -0
  74. package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +51 -0
  75. package/esm2022/staging/lib/spot-light/spot-light-input.mjs +62 -0
  76. package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +74 -0
  77. package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +126 -0
  78. package/{esm2020 → esm2022}/staging/lib/spot-light/spot-light-shadow.mjs +8 -7
  79. package/esm2022/staging/lib/spot-light/spot-light.mjs +117 -0
  80. package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +86 -0
  81. package/{esm2020 → esm2022}/staging/lib/stage/stage.mjs +13 -11
  82. package/esm2022/staging/lib/stars/stars.mjs +140 -0
  83. package/{fesm2020 → fesm2022}/angular-three-soba-abstractions.mjs +89 -89
  84. package/{fesm2015 → fesm2022}/angular-three-soba-abstractions.mjs.map +1 -1
  85. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs +21 -21
  86. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs.map +1 -1
  87. package/{fesm2020 → fesm2022}/angular-three-soba-controls.mjs +5 -5
  88. package/fesm2022/angular-three-soba-controls.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs +7 -7
  90. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs.map +1 -1
  91. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs +25 -25
  92. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs.map +1 -1
  93. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs +3 -3
  94. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs.map +1 -1
  95. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs +14 -14
  96. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs.map +1 -1
  97. package/{fesm2020 → fesm2022}/angular-three-soba-shaders.mjs +2 -2
  98. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs +139 -139
  100. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs.map +1 -1
  101. package/loaders/lib/loader/loader.d.ts +1 -1
  102. package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +1 -1
  103. package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +1 -1
  104. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +1 -1
  105. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  106. package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +1 -1
  107. package/package.json +45 -70
  108. package/performance/lib/adaptive/adaptive-dpr.d.ts +1 -1
  109. package/performance/lib/detailed/detailed.d.ts +1 -1
  110. package/performance/lib/stats/stats.d.ts +1 -1
  111. package/plugin/package.json +1 -1
  112. package/plugin/src/generators/init/compat.js +1 -1
  113. package/plugin/src/generators/init/compat.js.map +1 -1
  114. package/plugin/src/generators/init/init.d.ts +1 -1
  115. package/plugin/src/generators/init/init.js +1 -1
  116. package/plugin/src/generators/init/init.js.map +1 -1
  117. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -2
  118. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
  119. package/staging/lib/bounds/bounds.d.ts +1 -1
  120. package/staging/lib/camera-shake/camera-shake.d.ts +1 -1
  121. package/staging/lib/caustics/caustics.d.ts +2 -2
  122. package/staging/lib/center/center.d.ts +1 -1
  123. package/staging/lib/cloud/cloud.d.ts +1 -1
  124. package/staging/lib/contact-shadows/contact-shadows.d.ts +1 -1
  125. package/staging/lib/environment/environment-inputs.d.ts +1 -1
  126. package/staging/lib/float/float.d.ts +1 -1
  127. package/staging/lib/sky/sky.d.ts +1 -1
  128. package/staging/lib/sparkles/sparkles.d.ts +2 -2
  129. package/staging/lib/spot-light/shadow-mesh-input.d.ts +1 -1
  130. package/staging/lib/spot-light/spot-light-input.d.ts +1 -1
  131. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
  132. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +1 -1
  133. package/staging/lib/spot-light/spot-light.d.ts +1 -1
  134. package/staging/lib/spot-light/volumetric-mesh.d.ts +1 -1
  135. package/staging/lib/stage/stage.d.ts +2 -2
  136. package/staging/lib/stars/stars.d.ts +2 -2
  137. package/esm2020/abstractions/lib/billboard/billboard.mjs +0 -73
  138. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -119
  139. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -98
  140. package/esm2020/abstractions/lib/edges/edges.mjs +0 -95
  141. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -211
  142. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -91
  143. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -182
  144. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -45
  145. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -193
  146. package/esm2020/abstractions/lib/line/line-input.mjs +0 -75
  147. package/esm2020/abstractions/lib/line/line.mjs +0 -132
  148. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -127
  149. package/esm2020/abstractions/lib/text/text.mjs +0 -114
  150. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +0 -144
  151. package/esm2020/cameras/lib/camera/camera-content.mjs +0 -20
  152. package/esm2020/cameras/lib/camera/camera.mjs +0 -74
  153. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -130
  154. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -92
  155. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +0 -146
  156. package/esm2020/loaders/lib/loader/loader.mjs +0 -133
  157. package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -74
  158. package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -327
  159. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -157
  160. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -237
  161. package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -67
  162. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +0 -25
  163. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +0 -46
  164. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +0 -36
  165. package/esm2020/performance/lib/detailed/detailed.mjs +0 -53
  166. package/esm2020/performance/lib/stats/stats.mjs +0 -79
  167. package/esm2020/shaders/lib/blur-pass/blur-pass.mjs +0 -61
  168. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -247
  169. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -199
  170. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +0 -121
  171. package/esm2020/staging/lib/caustics/caustics.mjs +0 -363
  172. package/esm2020/staging/lib/center/center.mjs +0 -142
  173. package/esm2020/staging/lib/cloud/cloud.mjs +0 -159
  174. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +0 -227
  175. package/esm2020/staging/lib/environment/environment-cube.mjs +0 -40
  176. package/esm2020/staging/lib/environment/environment-ground.mjs +0 -66
  177. package/esm2020/staging/lib/environment/environment-inputs.mjs +0 -86
  178. package/esm2020/staging/lib/environment/environment-map.mjs +0 -38
  179. package/esm2020/staging/lib/environment/environment-portal.mjs +0 -110
  180. package/esm2020/staging/lib/float/float.mjs +0 -76
  181. package/esm2020/staging/lib/sky/sky.mjs +0 -108
  182. package/esm2020/staging/lib/sparkles/sparkles.mjs +0 -209
  183. package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +0 -50
  184. package/esm2020/staging/lib/spot-light/spot-light-input.mjs +0 -61
  185. package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -73
  186. package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -125
  187. package/esm2020/staging/lib/spot-light/spot-light.mjs +0 -116
  188. package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +0 -85
  189. package/esm2020/staging/lib/stars/stars.mjs +0 -139
  190. package/fesm2015/angular-three-soba-abstractions.mjs +0 -2048
  191. package/fesm2015/angular-three-soba-controls.mjs +0 -153
  192. package/fesm2015/angular-three-soba-controls.mjs.map +0 -1
  193. package/fesm2015/angular-three-soba-loaders.mjs +0 -229
  194. package/fesm2015/angular-three-soba-loaders.mjs.map +0 -1
  195. package/fesm2015/angular-three-soba-materials.mjs +0 -851
  196. package/fesm2015/angular-three-soba-materials.mjs.map +0 -1
  197. package/fesm2015/angular-three-soba-misc.mjs +0 -148
  198. package/fesm2015/angular-three-soba-misc.mjs.map +0 -1
  199. package/fesm2015/angular-three-soba-performance.mjs +0 -210
  200. package/fesm2015/angular-three-soba-performance.mjs.map +0 -1
  201. package/fesm2015/angular-three-soba-shaders.mjs +0 -1239
  202. package/fesm2015/angular-three-soba-shaders.mjs.map +0 -1
  203. package/fesm2015/angular-three-soba-staging.mjs +0 -3772
  204. package/fesm2015/angular-three-soba-staging.mjs.map +0 -1
  205. package/fesm2020/angular-three-soba-abstractions.mjs.map +0 -1
  206. package/fesm2020/angular-three-soba-cameras.mjs +0 -347
  207. package/fesm2020/angular-three-soba-cameras.mjs.map +0 -1
  208. package/fesm2020/angular-three-soba-controls.mjs.map +0 -1
  209. package/fesm2020/angular-three-soba-shaders.mjs.map +0 -1
  210. package/fesm2020/angular-three-soba.mjs +0 -6
  211. package/fesm2020/angular-three-soba.mjs.map +0 -1
  212. /package/{esm2020 → esm2022}/abstractions/angular-three-soba-abstractions.mjs +0 -0
  213. /package/{esm2020 → esm2022}/abstractions/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -0
  215. /package/{esm2020 → esm2022}/angular-three-soba.mjs +0 -0
  216. /package/{esm2020 → esm2022}/cameras/angular-three-soba-cameras.mjs +0 -0
  217. /package/{esm2020 → esm2022}/cameras/index.mjs +0 -0
  218. /package/{esm2020 → esm2022}/controls/angular-three-soba-controls.mjs +0 -0
  219. /package/{esm2020 → esm2022}/controls/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/loaders/angular-three-soba-loaders.mjs +0 -0
  222. /package/{esm2020 → esm2022}/loaders/index.mjs +0 -0
  223. /package/{esm2020 → esm2022}/loaders/lib/gltf-loader/gltf-loader.mjs +0 -0
  224. /package/{esm2020 → esm2022}/loaders/lib/progress/progress.mjs +0 -0
  225. /package/{esm2020 → esm2022}/loaders/lib/texture-loader/texture-loader.mjs +0 -0
  226. /package/{esm2020 → esm2022}/materials/angular-three-soba-materials.mjs +0 -0
  227. /package/{esm2020 → esm2022}/materials/index.mjs +0 -0
  228. /package/{esm2020 → esm2022}/misc/angular-three-soba-misc.mjs +0 -0
  229. /package/{esm2020 → esm2022}/misc/index.mjs +0 -0
  230. /package/{esm2020 → esm2022}/misc/lib/animations/animations.mjs +0 -0
  231. /package/{esm2020 → esm2022}/misc/lib/depth-buffer/depth-buffer.mjs +0 -0
  232. /package/{esm2020 → esm2022}/misc/lib/fbo/fbo.mjs +0 -0
  233. /package/{esm2020 → esm2022}/performance/angular-three-soba-performance.mjs +0 -0
  234. /package/{esm2020 → esm2022}/performance/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/shaders/angular-three-soba-shaders.mjs +0 -0
  236. /package/{esm2020 → esm2022}/shaders/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/shaders/lib/caustics-material/caustics-material.mjs +0 -0
  238. /package/{esm2020 → esm2022}/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -0
  239. /package/{esm2020 → esm2022}/shaders/lib/convolution-material/convolution-material.mjs +0 -0
  240. /package/{esm2020 → esm2022}/shaders/lib/discard-material/discard-material.mjs +0 -0
  241. /package/{esm2020 → esm2022}/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -0
  242. /package/{esm2020 → esm2022}/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -0
  243. /package/{esm2020 → esm2022}/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -0
  244. /package/{esm2020 → esm2022}/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -0
  245. /package/{esm2020 → esm2022}/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -0
  246. /package/{esm2020 → esm2022}/shaders/lib/shader-material/shader-material.mjs +0 -0
  247. /package/{esm2020 → esm2022}/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -0
  248. /package/{esm2020 → esm2022}/shaders/lib/spot-light-material/spot-light-material.mjs +0 -0
  249. /package/{esm2020 → esm2022}/shaders/lib/star-field-material/star-field-material.mjs +0 -0
  250. /package/{esm2020 → esm2022}/staging/angular-three-soba-staging.mjs +0 -0
  251. /package/{esm2020 → esm2022}/staging/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -0
  253. /package/{esm2020 → esm2022}/staging/lib/environment/assets.mjs +0 -0
  254. /package/{esm2020 → esm2022}/staging/lib/environment/utils.mjs +0 -0
  255. /package/{esm2020 → esm2022}/staging/lib/spot-light/common.mjs +0 -0
  256. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs +0 -0
  257. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs.map +0 -0
@@ -1,211 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, Directive, EventEmitter, inject, InjectionToken, Input, Output, TemplateRef, } from '@angular/core';
3
- import { extend, injectNgtRef, NgtPortal, NgtPortalContent, NgtRxStore, NgtStore } from 'angular-three';
4
- import { NgtsOrthographicCamera } from 'angular-three-soba/cameras';
5
- import { combineLatest, map } from 'rxjs';
6
- import { Group, Matrix4, Object3D, Quaternion, Vector3 } from 'three';
7
- import * as i0 from "@angular/core";
8
- const isOrbitControls = (controls) => {
9
- return 'minPolarAngle' in controls;
10
- };
11
- export const NGTS_GIZMO_HELPER_API = new InjectionToken('NgtsGizmoHelper API');
12
- function gizmoHelperApiFactory(gizmo) {
13
- const store = inject(NgtStore);
14
- return {
15
- tweenCamera: (direction) => {
16
- const { controls, camera, invalidate } = store.get();
17
- const defaultControls = controls;
18
- gizmo.animating = true;
19
- if (defaultControls)
20
- gizmo.focusPoint = defaultControls.target;
21
- gizmo.radius = camera.position.distanceTo(gizmo.target);
22
- // rotate from current camera orientation
23
- gizmo.q1.copy(camera.quaternion);
24
- // to new current camera orientation
25
- gizmo.targetPosition.copy(direction).multiplyScalar(gizmo.radius).add(gizmo.target);
26
- gizmo.dummy.lookAt(gizmo.targetPosition);
27
- gizmo.q2.copy(gizmo.dummy.quaternion);
28
- invalidate();
29
- },
30
- };
31
- }
32
- extend({ Group });
33
- export class NgtsGizmoHelperContent {
34
- }
35
- NgtsGizmoHelperContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoHelperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
- NgtsGizmoHelperContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoHelperContent, isStandalone: true, selector: "ng-template[ngtsGizmoHelperContent]", ngImport: i0 });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoHelperContent, decorators: [{
38
- type: Directive,
39
- args: [{
40
- selector: 'ng-template[ngtsGizmoHelperContent]',
41
- standalone: true,
42
- }]
43
- }] });
44
- export class NgtsGizmoHelper extends NgtRxStore {
45
- constructor() {
46
- super(...arguments);
47
- this.store = inject(NgtStore);
48
- this.gizmoRef = injectNgtRef();
49
- this.virtualCameraRef = injectNgtRef();
50
- this.animating = false;
51
- this.radius = 0;
52
- this.focusPoint = new Vector3(0, 0, 0);
53
- this.q1 = new Quaternion();
54
- this.q2 = new Quaternion();
55
- this.target = new Vector3();
56
- this.targetPosition = new Vector3();
57
- this.dummy = new Object3D();
58
- this.defaultUp = new Vector3(0, 0, 0);
59
- this.turnRate = 2 * Math.PI; // turn rate in angles per sec
60
- this.matrix = new Matrix4();
61
- this.updated = new EventEmitter();
62
- }
63
- set alignment(alignment) {
64
- this.set({ alignment });
65
- }
66
- set margin(margin) {
67
- this.set({ margin });
68
- }
69
- set renderPriority(renderPriority) {
70
- this.set({ renderPriority });
71
- }
72
- set autoClear(autoClear) {
73
- this.set({ autoClear });
74
- }
75
- initialize() {
76
- super.initialize();
77
- this.set({ alignment: 'bottom-right', margin: [80, 80], renderPriority: 1 });
78
- }
79
- ngOnInit() {
80
- this.updateDefaultUp();
81
- this.setGizmoPosition();
82
- }
83
- onBeforeRender(delta) {
84
- if (this.virtualCameraRef.nativeElement && this.gizmoRef.nativeElement) {
85
- const { controls, camera: mainCamera, invalidate } = this.store.get();
86
- const defaultControls = controls;
87
- // Animate step
88
- if (this.animating) {
89
- if (this.q1.angleTo(this.q2) < 0.01) {
90
- this.animating = false;
91
- // Orbit controls uses UP vector as the orbit axes,
92
- // so we need to reset it after the animation is done
93
- // moving it around for the controls to work correctly
94
- if (isOrbitControls(defaultControls)) {
95
- mainCamera.up.copy(this.defaultUp);
96
- }
97
- }
98
- else {
99
- const step = delta * this.turnRate;
100
- // animate position by doing a slerp and then scaling the position on the unit sphere
101
- this.q1.rotateTowards(this.q2, step);
102
- // animate orientation
103
- mainCamera.position
104
- .set(0, 0, 1)
105
- .applyQuaternion(this.q1)
106
- .multiplyScalar(this.radius)
107
- .add(this.focusPoint);
108
- mainCamera.up.set(0, 1, 0).applyQuaternion(this.q1).normalize();
109
- mainCamera.quaternion.copy(this.q1);
110
- if (this.updated.observed)
111
- this.updated.emit();
112
- else if (defaultControls) {
113
- defaultControls.update();
114
- }
115
- invalidate();
116
- }
117
- }
118
- // Sync Gizmo with main camera orientation
119
- this.matrix.copy(mainCamera.matrix).invert();
120
- this.gizmoRef.nativeElement.quaternion.setFromRotationMatrix(this.matrix);
121
- }
122
- }
123
- setGizmoPosition() {
124
- this.connect('gizmoPosition', combineLatest([
125
- this.store.select('size'),
126
- combineLatest({
127
- alignment: this.select('alignment'),
128
- margin: this.select('margin'),
129
- }),
130
- ]).pipe(map(([size, { alignment, margin }]) => {
131
- const [marginX, marginY] = margin;
132
- const x = alignment.endsWith('-center')
133
- ? 0
134
- : alignment.endsWith('-left')
135
- ? -size.width / 2 + marginX
136
- : size.width / 2 - marginX;
137
- const y = alignment.startsWith('center-')
138
- ? 0
139
- : alignment.startsWith('top-')
140
- ? size.height / 2 - marginY
141
- : -size.height / 2 + marginY;
142
- return [x, y, 0];
143
- })));
144
- }
145
- updateDefaultUp() {
146
- this.hold(this.store.select('camera'), (camera) => {
147
- this.defaultUp.copy(camera.up);
148
- });
149
- }
150
- }
151
- NgtsGizmoHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoHelper, deps: null, target: i0.ɵɵFactoryTarget.Component });
152
- NgtsGizmoHelper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoHelper, isStandalone: true, selector: "ngts-gizmo-helper", inputs: { alignment: "alignment", margin: "margin", renderPriority: "renderPriority", autoClear: "autoClear" }, outputs: { updated: "updated" }, providers: [{ provide: NGTS_GIZMO_HELPER_API, useFactory: gizmoHelperApiFactory, deps: [NgtsGizmoHelper] }], queries: [{ propertyName: "gizmoHelperContent", first: true, predicate: NgtsGizmoHelperContent, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: `
153
- <ngt-portal [renderPriority]="get('renderPriority')">
154
- <ng-template ngtPortalContent>
155
- <ngts-orthographic-camera
156
- [cameraRef]="virtualCameraRef"
157
- [makeDefault]="true"
158
- [position]="[0, 0, 200]"
159
- />
160
- <ngt-group
161
- [ref]="gizmoRef"
162
- [position]="get('gizmoPosition')"
163
- (beforeRender)="onBeforeRender($any($event).state.delta)"
164
- >
165
- <ng-container *ngTemplateOutlet="gizmoHelperContent" />
166
- </ngt-group>
167
- </ng-template>
168
- </ngt-portal>
169
- `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "component", type: NgtsOrthographicCamera, selector: "ngts-orthographic-camera", inputs: ["left", "right", "top", "bottom"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoHelper, decorators: [{
171
- type: Component,
172
- args: [{
173
- selector: 'ngts-gizmo-helper',
174
- standalone: true,
175
- template: `
176
- <ngt-portal [renderPriority]="get('renderPriority')">
177
- <ng-template ngtPortalContent>
178
- <ngts-orthographic-camera
179
- [cameraRef]="virtualCameraRef"
180
- [makeDefault]="true"
181
- [position]="[0, 0, 200]"
182
- />
183
- <ngt-group
184
- [ref]="gizmoRef"
185
- [position]="get('gizmoPosition')"
186
- (beforeRender)="onBeforeRender($any($event).state.delta)"
187
- >
188
- <ng-container *ngTemplateOutlet="gizmoHelperContent" />
189
- </ngt-group>
190
- </ng-template>
191
- </ngt-portal>
192
- `,
193
- imports: [NgtPortal, NgtPortalContent, NgtsOrthographicCamera, NgTemplateOutlet],
194
- providers: [{ provide: NGTS_GIZMO_HELPER_API, useFactory: gizmoHelperApiFactory, deps: [NgtsGizmoHelper] }],
195
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
196
- }]
197
- }], propDecorators: { alignment: [{
198
- type: Input
199
- }], margin: [{
200
- type: Input
201
- }], renderPriority: [{
202
- type: Input
203
- }], autoClear: [{
204
- type: Input
205
- }], updated: [{
206
- type: Output
207
- }], gizmoHelperContent: [{
208
- type: ContentChild,
209
- args: [NgtsGizmoHelperContent, { static: true, read: TemplateRef }]
210
- }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvZ2l6bW8taGVscGVyL2dpem1vLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBc0IsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFLMUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF1QixFQUE2QixFQUFFO0lBQzNFLE9BQU8sZUFBZSxJQUFLLFFBQTBCLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBTUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHFCQUFxQixDQUFDLENBQUM7QUFFbkcsU0FBUyxxQkFBcUIsQ0FBQyxLQUFzQjtJQUNqRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0IsT0FBTztRQUNILFdBQVcsRUFBRSxDQUFDLFNB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QUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcm91cCwgTWF0cml4NCwgT2JqZWN0M0QsIE9ydGhvZ3JhcGhpY0NhbWVyYSwgUXVhdGVybmlvbiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG50eXBlIENvbnRyb2xzUHJvdG8gPSB7IHVwZGF0ZSgpOiB2b2lkOyB0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfTtcblxuY29uc3QgaXNPcmJpdENvbnRyb2xzID0gKGNvbnRyb2xzOiBDb250cm9sc1Byb3RvKTogY29udHJvbHMgaXMgT3JiaXRDb250cm9scyA9PiB7XG4gICAgcmV0dXJuICdtaW5Qb2xhckFuZ2xlJyBpbiAoY29udHJvbHMgYXMgT3JiaXRDb250cm9scyk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNHaXptb0hlbHBlckFwaSB7XG4gICAgdHdlZW5DYW1lcmE6IChkaXJlY3Rpb246IFZlY3RvcjMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBOR1RTX0dJWk1PX0hFTFBFUl9BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0c0dpem1vSGVscGVyQXBpPignTmd0c0dpem1vSGVscGVyIEFQSScpO1xuXG5mdW5jdGlvbiBnaXptb0hlbHBlckFwaUZhY3RvcnkoZ2l6bW86IE5ndHNHaXptb0hlbHBlcikge1xuICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHR3ZWVuQ2FtZXJhOiAoZGlyZWN0aW9uOiBWZWN0b3IzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbnRyb2xzLCBjYW1lcmEsIGludmFsaWRhdGUgfSA9IHN0b3JlLmdldCgpO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENvbnRyb2xzID0gY29udHJvbHMgYXMgdW5rbm93biBhcyBDb250cm9sc1Byb3RvO1xuXG4gICAgICAgICAgICBnaXptby5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRDb250cm9scykgZ2l6bW8uZm9jdXNQb2ludCA9IGRlZmF1bHRDb250cm9scy50YXJnZXQ7XG4gICAgICAgICAgICBnaXptby5yYWRpdXMgPSBjYW1lcmEucG9zaXRpb24uZGlzdGFuY2VUbyhnaXptby50YXJnZXQpO1xuICAgICAgICAgICAgLy8gcm90YXRlIGZyb20gY3VycmVudCBjYW1lcmEgb3JpZW50YXRpb25cbiAgICAgICAgICAgIGdpem1vLnExLmNvcHkoY2FtZXJhLnF1YXRlcm5pb24pO1xuICAgICAgICAgICAgLy8gdG8gbmV3IGN1cnJlbnQgY2FtZXJhIG9yaWVudGF0aW9uXG4gICAgICAgICAgICBnaXptby50YXJnZXRQb3NpdGlvbi5jb3B5KGRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZ2l6bW8ucmFkaXVzKS5hZGQoZ2l6bW8udGFyZ2V0KTtcbiAgICAgICAgICAgIGdpem1vLmR1bW15Lmxvb2tBdChnaXptby50YXJnZXRQb3NpdGlvbik7XG4gICAgICAgICAgICBnaXptby5xMi5jb3B5KGdpem1vLmR1bW15LnF1YXRlcm5pb24pO1xuICAgICAgICAgICAgaW52YWxpZGF0ZSgpO1xuICAgICAgICB9LFxuICAgIH07XG59XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25ndHNHaXptb0hlbHBlckNvbnRlbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzR2l6bW9IZWxwZXJDb250ZW50IHt9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1naXptby1oZWxwZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wb3J0YWwgW3JlbmRlclByaW9yaXR5XT1cImdldCgncmVuZGVyUHJpb3JpdHknKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5ndFBvcnRhbENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5ndHMtb3J0aG9ncmFwaGljLWNhbWVyYVxuICAgICAgICAgICAgICAgICAgICBbY2FtZXJhUmVmXT1cInZpcnR1YWxDYW1lcmFSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbWFrZURlZmF1bHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCwgMCwgMjAwXVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIFtyZWZdPVwiZ2l6bW9SZWZcIlxuICAgICAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiZ2V0KCdnaXptb1Bvc2l0aW9uJylcIlxuICAgICAgICAgICAgICAgICAgICAoYmVmb3JlUmVuZGVyKT1cIm9uQmVmb3JlUmVuZGVyKCRhbnkoJGV2ZW50KS5zdGF0ZS5kZWx0YSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdpem1vSGVscGVyQ29udGVudFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25ndC1wb3J0YWw+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50LCBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HVFNfR0laTU9fSEVMUEVSX0FQSSwgdXNlRmFjdG9yeTogZ2l6bW9IZWxwZXJBcGlGYWN0b3J5LCBkZXBzOiBbTmd0c0dpem1vSGVscGVyXSB9XSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb0hlbHBlciBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmVhZG9ubHkgZ2l6bW9SZWYgPSBpbmplY3ROZ3RSZWY8R3JvdXA+KCk7XG4gICAgcmVhZG9ubHkgdmlydHVhbENhbWVyYVJlZiA9IGluamVjdE5ndFJlZjxPcnRob2dyYXBoaWNDYW1lcmE+KCk7XG5cbiAgICBhbmltYXRpbmcgPSBmYWxzZTtcbiAgICByYWRpdXMgPSAwO1xuICAgIGZvY3VzUG9pbnQgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcbiAgICBxMSA9IG5ldyBRdWF0ZXJuaW9uKCk7XG4gICAgcTIgPSBuZXcgUXVhdGVybmlvbigpO1xuXG4gICAgdGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcbiAgICB0YXJnZXRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCk7XG4gICAgZHVtbXkgPSBuZXcgT2JqZWN0M0QoKTtcblxuICAgIHByaXZhdGUgZGVmYXVsdFVwID0gbmV3IFZlY3RvcjMoMCwgMCwgMCk7XG4gICAgcHJpdmF0ZSB0dXJuUmF0ZSA9IDIgKiBNYXRoLlBJOyAvLyB0dXJuIHJhdGUgaW4gYW5nbGVzIHBlciBzZWNcbiAgICBwcml2YXRlIG1hdHJpeCA9IG5ldyBNYXRyaXg0KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgYWxpZ25tZW50KFxuICAgICAgICBhbGlnbm1lbnQ6XG4gICAgICAgICAgICB8ICd0b3AtbGVmdCdcbiAgICAgICAgICAgIHwgJ3RvcC1yaWdodCdcbiAgICAgICAgICAgIHwgJ2JvdHRvbS1yaWdodCdcbiAgICAgICAgICAgIHwgJ2JvdHRvbS1sZWZ0J1xuICAgICAgICAgICAgfCAnYm90dG9tLWNlbnRlcidcbiAgICAgICAgICAgIHwgJ2NlbnRlci1yaWdodCdcbiAgICAgICAgICAgIHwgJ2NlbnRlci1sZWZ0J1xuICAgICAgICAgICAgfCAnY2VudGVyLWNlbnRlcidcbiAgICAgICAgICAgIHwgJ3RvcC1jZW50ZXInXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxpZ25tZW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtYXJnaW4obWFyZ2luOiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWFyZ2luIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZW5kZXJQcmlvcml0eShyZW5kZXJQcmlvcml0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVuZGVyUHJpb3JpdHkgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF1dG9DbGVhcihhdXRvQ2xlYXI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhdXRvQ2xlYXIgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKE5ndHNHaXptb0hlbHBlckNvbnRlbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdpem1vSGVscGVyQ29udGVudCE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IGFsaWdubWVudDogJ2JvdHRvbS1yaWdodCcsIG1hcmdpbjogWzgwLCA4MF0sIHJlbmRlclByaW9yaXR5OiAxIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZURlZmF1bHRVcCgpO1xuICAgICAgICB0aGlzLnNldEdpem1vUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBvbkJlZm9yZVJlbmRlcihkZWx0YTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnR1YWxDYW1lcmFSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLmdpem1vUmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udHJvbHMsIGNhbWVyYTogbWFpbkNhbWVyYSwgaW52YWxpZGF0ZSB9ID0gdGhpcy5zdG9yZS5nZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb250cm9scyA9IGNvbnRyb2xzIGFzIHVua25vd24gYXMgQ29udHJvbHNQcm90bztcbiAgICAgICAgICAgIC8vIEFuaW1hdGUgc3RlcFxuICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucTEuYW5nbGVUbyh0aGlzLnEyKSA8IDAuMDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gT3JiaXQgY29udHJvbHMgdXNlcyBVUCB2ZWN0b3IgYXMgdGhlIG9yYml0IGF4ZXMsXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gcmVzZXQgaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyBkb25lXG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmluZyBpdCBhcm91bmQgZm9yIHRoZSBjb250cm9scyB0byB3b3JrIGNvcnJlY3RseVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcmJpdENvbnRyb2xzKGRlZmF1bHRDb250cm9scykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haW5DYW1lcmEudXAuY29weSh0aGlzLmRlZmF1bHRVcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGVwID0gZGVsdGEgKiB0aGlzLnR1cm5SYXRlO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbmltYXRlIHBvc2l0aW9uIGJ5IGRvaW5nIGEgc2xlcnAgYW5kIHRoZW4gc2NhbGluZyB0aGUgcG9zaXRpb24gb24gdGhlIHVuaXQgc3BoZXJlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucTEucm90YXRlVG93YXJkcyh0aGlzLnEyLCBzdGVwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5pbWF0ZSBvcmllbnRhdGlvblxuICAgICAgICAgICAgICAgICAgICBtYWluQ2FtZXJhLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2V0KDAsIDAsIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwbHlRdWF0ZXJuaW9uKHRoaXMucTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAubXVsdGlwbHlTY2FsYXIodGhpcy5yYWRpdXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYWRkKHRoaXMuZm9jdXNQb2ludCk7XG4gICAgICAgICAgICAgICAgICAgIG1haW5DYW1lcmEudXAuc2V0KDAsIDEsIDApLmFwcGx5UXVhdGVybmlvbih0aGlzLnExKS5ub3JtYWxpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgbWFpbkNhbWVyYS5xdWF0ZXJuaW9uLmNvcHkodGhpcy5xMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZWQub2JzZXJ2ZWQpIHRoaXMudXBkYXRlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlZmF1bHRDb250cm9scykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRyb2xzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN5bmMgR2l6bW8gd2l0aCBtYWluIGNhbWVyYSBvcmllbnRhdGlvblxuICAgICAgICAgICAgdGhpcy5tYXRyaXguY29weShtYWluQ2FtZXJhLm1hdHJpeCkuaW52ZXJ0KCk7XG4gICAgICAgICAgICB0aGlzLmdpem1vUmVmLm5hdGl2ZUVsZW1lbnQucXVhdGVybmlvbi5zZXRGcm9tUm90YXRpb25NYXRyaXgodGhpcy5tYXRyaXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRHaXptb1Bvc2l0aW9uKCkge1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnZ2l6bW9Qb3NpdGlvbicsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6IHRoaXMuc2VsZWN0KCdhbGlnbm1lbnQnKSxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiB0aGlzLnNlbGVjdCgnbWFyZ2luJyksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3NpemUsIHsgYWxpZ25tZW50LCBtYXJnaW4gfV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW21hcmdpblgsIG1hcmdpblldID0gbWFyZ2luO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4ID0gYWxpZ25tZW50LmVuZHNXaXRoKCctY2VudGVyJylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBhbGlnbm1lbnQuZW5kc1dpdGgoJy1sZWZ0JylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gLXNpemUud2lkdGggLyAyICsgbWFyZ2luWFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzaXplLndpZHRoIC8gMiAtIG1hcmdpblg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBhbGlnbm1lbnQuc3RhcnRzV2l0aCgnY2VudGVyLScpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYWxpZ25tZW50LnN0YXJ0c1dpdGgoJ3RvcC0nKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzaXplLmhlaWdodCAvIDIgLSBtYXJnaW5ZXG4gICAgICAgICAgICAgICAgICAgICAgICA6IC1zaXplLmhlaWdodCAvIDIgKyBtYXJnaW5ZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3gsIHksIDBdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEZWZhdWx0VXAoKSB7XG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyksIChjYW1lcmEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFVwLmNvcHkoY2FtZXJhLnVwKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,91 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input } from '@angular/core';
2
- import { extend, NgtArgs } from 'angular-three';
3
- import { BoxGeometry, Mesh, MeshBasicMaterial, Vector3 } from 'three';
4
- import { NGTS_GIZMO_HELPER_API } from '../gizmo-helper';
5
- import { colors } from './constants';
6
- import { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';
7
- import * as i0 from "@angular/core";
8
- extend({ Mesh, BoxGeometry, MeshBasicMaterial });
9
- export class NgtsGizmoViewcubeEdgeCube extends NgtsGizmoViewcubeInputs {
10
- constructor() {
11
- super(...arguments);
12
- this.gizmoHelperApi = inject(NGTS_GIZMO_HELPER_API);
13
- this.hover = false;
14
- }
15
- set dimensions(dimensions) {
16
- this.set({ dimensions });
17
- }
18
- set position(position) {
19
- this.set({ position });
20
- }
21
- initialize() {
22
- super.initialize();
23
- this.set({ hoverColor: colors.hover });
24
- }
25
- onPointerMove(event) {
26
- event.stopPropagation();
27
- this.hover = true;
28
- }
29
- onPointerOut(event) {
30
- event.stopPropagation();
31
- this.hover = false;
32
- }
33
- onClick(event) {
34
- if (this.get('clickEmitter')?.observed) {
35
- this.get('clickEmitter').emit(event);
36
- }
37
- else {
38
- event.stopPropagation();
39
- this.gizmoHelperApi.tweenCamera(this.get('position'));
40
- }
41
- }
42
- }
43
- NgtsGizmoViewcubeEdgeCube.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeEdgeCube, deps: null, target: i0.ɵɵFactoryTarget.Component });
44
- NgtsGizmoViewcubeEdgeCube.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewcubeEdgeCube, isStandalone: true, selector: "ngts-gizmo-viewcube-edge-cube[dimensions][position]", inputs: { dimensions: "dimensions", position: "position" }, usesInheritance: true, ngImport: i0, template: `
45
- <ngt-mesh
46
- [scale]="1.01"
47
- [position]="get('position')"
48
- (pointermove)="onPointerMove($any($event))"
49
- (pointerout)="onPointerOut($any($event))"
50
- (click)="onClick($any($event))"
51
- >
52
- <ngt-box-geometry *args="get('dimensions')" />
53
- <ngt-mesh-basic-material
54
- [color]="hover ? get('hoverColor') : 'white'"
55
- [transparent]="true"
56
- [opacity]="0.6"
57
- [visible]="hover"
58
- />
59
- </ngt-mesh>
60
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeEdgeCube, decorators: [{
62
- type: Component,
63
- args: [{
64
- selector: 'ngts-gizmo-viewcube-edge-cube[dimensions][position]',
65
- standalone: true,
66
- template: `
67
- <ngt-mesh
68
- [scale]="1.01"
69
- [position]="get('position')"
70
- (pointermove)="onPointerMove($any($event))"
71
- (pointerout)="onPointerOut($any($event))"
72
- (click)="onClick($any($event))"
73
- >
74
- <ngt-box-geometry *args="get('dimensions')" />
75
- <ngt-mesh-basic-material
76
- [color]="hover ? get('hoverColor') : 'white'"
77
- [transparent]="true"
78
- [opacity]="0.6"
79
- [visible]="hover"
80
- />
81
- </ngt-mesh>
82
- `,
83
- imports: [NgtArgs],
84
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
85
- }]
86
- }], propDecorators: { dimensions: [{
87
- type: Input
88
- }], position: [{
89
- type: Input
90
- }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld2N1YmUtZWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2dpem1vLWhlbHBlci9naXptby12aWV3Y3ViZS9naXptby12aWV3Y3ViZS1lZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWxFLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBeUJqRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsdUJBQXVCO0lBdkJ0RTs7UUF3QmEsbUJBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV4RCxVQUFLLEdBQUcsS0FBSyxDQUFDO0tBaUNqQjtJQS9CRyxJQUFhLFVBQVUsQ0FBQyxVQUFvQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBaUI7UUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWtDO1FBQzVDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWtDO1FBQzNDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWdDO1FBQ3BDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNILEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDekQ7SUFDTCxDQUFDOztzSEFuQ1EseUJBQXlCOzBHQUF6Qix5QkFBeUIsa01BcEJ4Qjs7Ozs7Ozs7Ozs7Ozs7OztLQWdCVCw0REFDUyxPQUFPOzJGQUdSLHlCQUF5QjtrQkF2QnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztLQWdCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFNZ0IsVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndFRocmVlRXZlbnQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJveEdlb21ldHJ5LCBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5HVFNfR0laTU9fSEVMUEVSX0FQSSB9IGZyb20gJy4uL2dpem1vLWhlbHBlcic7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBOZ3RzR2l6bW9WaWV3Y3ViZUlucHV0cyB9IGZyb20gJy4vZ2l6bW8tdmlld2N1YmUtaW5wdXRzJztcblxuZXh0ZW5kKHsgTWVzaCwgQm94R2VvbWV0cnksIE1lc2hCYXNpY01hdGVyaWFsIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZ2l6bW8tdmlld2N1YmUtZWRnZS1jdWJlW2RpbWVuc2lvbnNdW3Bvc2l0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW1lc2hcbiAgICAgICAgICAgIFtzY2FsZV09XCIxLjAxXCJcbiAgICAgICAgICAgIFtwb3NpdGlvbl09XCJnZXQoJ3Bvc2l0aW9uJylcIlxuICAgICAgICAgICAgKHBvaW50ZXJtb3ZlKT1cIm9uUG9pbnRlck1vdmUoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAocG9pbnRlcm91dCk9XCJvblBvaW50ZXJPdXQoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkYW55KCRldmVudCkpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5ndC1ib3gtZ2VvbWV0cnkgKmFyZ3M9XCJnZXQoJ2RpbWVuc2lvbnMnKVwiIC8+XG4gICAgICAgICAgICA8bmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWxcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiaG92ZXIgPyBnZXQoJ2hvdmVyQ29sb3InKSA6ICd3aGl0ZSdcIlxuICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbb3BhY2l0eV09XCIwLjZcIlxuICAgICAgICAgICAgICAgIFt2aXNpYmxlXT1cImhvdmVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzR2l6bW9WaWV3Y3ViZUVkZ2VDdWJlIGV4dGVuZHMgTmd0c0dpem1vVmlld2N1YmVJbnB1dHMge1xuICAgIHJlYWRvbmx5IGdpem1vSGVscGVyQXBpID0gaW5qZWN0KE5HVFNfR0laTU9fSEVMUEVSX0FQSSk7XG5cbiAgICBob3ZlciA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGRpbWVuc2lvbnMoZGltZW5zaW9uczogW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGltZW5zaW9ucyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcG9zaXRpb24ocG9zaXRpb246IFZlY3RvcjMpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBwb3NpdGlvbiB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgaG92ZXJDb2xvcjogY29sb3JzLmhvdmVyIH0pO1xuICAgIH1cblxuICAgIG9uUG9pbnRlck1vdmUoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pikge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5ob3ZlciA9IHRydWU7XG4gICAgfVxuXG4gICAgb25Qb2ludGVyT3V0KGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaG92ZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmdldCgnY2xpY2tFbWl0dGVyJyk/Lm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLmdldCgnY2xpY2tFbWl0dGVyJykuZW1pdChldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2l6bW9IZWxwZXJBcGkudHdlZW5DYW1lcmEodGhpcy5nZXQoJ3Bvc2l0aW9uJykpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,182 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input } from '@angular/core';
3
- import { extend, NgtRepeat } from 'angular-three';
4
- import { BoxGeometry, CanvasTexture, Mesh, MeshLambertMaterial } from 'three';
5
- import { NGTS_GIZMO_HELPER_API } from '../gizmo-helper';
6
- import { colors, defaultFaces } from './constants';
7
- import { NgtsGizmoViewcubeInputs } from './gizmo-viewcube-inputs';
8
- import * as i0 from "@angular/core";
9
- extend({ MeshLambertMaterial, Mesh, BoxGeometry });
10
- export class NgtsGizmoViewcubeFaceMaterial extends NgtsGizmoViewcubeInputs {
11
- constructor() {
12
- super(...arguments);
13
- this.document = inject(DOCUMENT);
14
- }
15
- set index(index) {
16
- this.set({ index });
17
- }
18
- set hover(hover) {
19
- this.set({ hover });
20
- }
21
- set font(font) {
22
- this.set({ font });
23
- }
24
- set color(color) {
25
- this.set({ color });
26
- }
27
- initialize() {
28
- super.initialize();
29
- this.set({
30
- font: '20px Inter var, Arial, sans-serif',
31
- faces: defaultFaces,
32
- color: colors.bg,
33
- hoverColor: colors.hover,
34
- textColor: colors.text,
35
- strokeColor: colors.stroke,
36
- opacity: 1,
37
- });
38
- this.connect('texture', this.select(['index', 'faces', 'color', 'font', 'textColor', 'strokeColor'], ({ index, faces, color, font, textColor, strokeColor }) => {
39
- const canvas = this.document.createElement('canvas');
40
- canvas.width = 128;
41
- canvas.height = 128;
42
- const context = canvas.getContext('2d');
43
- context.fillStyle = color;
44
- context.fillRect(0, 0, canvas.width, canvas.height);
45
- context.strokeStyle = strokeColor;
46
- context.strokeRect(0, 0, canvas.width, canvas.height);
47
- context.font = font;
48
- context.textAlign = 'center';
49
- context.fillStyle = textColor;
50
- context.fillText(faces[index].toUpperCase(), 64, 76);
51
- return new CanvasTexture(canvas);
52
- }));
53
- }
54
- }
55
- NgtsGizmoViewcubeFaceMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeFaceMaterial, deps: null, target: i0.ɵɵFactoryTarget.Component });
56
- NgtsGizmoViewcubeFaceMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewcubeFaceMaterial, isStandalone: true, selector: "ngts-gizmo-viewcube-face-material[hover][index]", inputs: { index: "index", hover: "hover", font: "font", color: "color" }, usesInheritance: true, ngImport: i0, template: `
57
- <ngt-mesh-lambert-material
58
- [attach]="['material', get('index')]"
59
- [map]="get('texture')"
60
- [color]="get('hover') ? get('hoverColor') : get('color')"
61
- [opacity]="get('opacity')"
62
- [transparent]="true"
63
- >
64
- <ngt-value [rawValue]="store.get('gl').outputEncoding" attach="map.encoding" />
65
- <ngt-value [rawValue]="store.get('gl').capabilities.getMaxAnisotropy() || 1" attach="map.anisotrophy" />
66
- </ngt-mesh-lambert-material>
67
- `, isInline: true });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeFaceMaterial, decorators: [{
69
- type: Component,
70
- args: [{
71
- selector: 'ngts-gizmo-viewcube-face-material[hover][index]',
72
- standalone: true,
73
- template: `
74
- <ngt-mesh-lambert-material
75
- [attach]="['material', get('index')]"
76
- [map]="get('texture')"
77
- [color]="get('hover') ? get('hoverColor') : get('color')"
78
- [opacity]="get('opacity')"
79
- [transparent]="true"
80
- >
81
- <ngt-value [rawValue]="store.get('gl').outputEncoding" attach="map.encoding" />
82
- <ngt-value [rawValue]="store.get('gl').capabilities.getMaxAnisotropy() || 1" attach="map.anisotrophy" />
83
- </ngt-mesh-lambert-material>
84
- `,
85
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
86
- }]
87
- }], propDecorators: { index: [{
88
- type: Input
89
- }], hover: [{
90
- type: Input
91
- }], font: [{
92
- type: Input
93
- }], color: [{
94
- type: Input
95
- }] } });
96
- export class NgtsGizmoViewcubeFaceCube extends NgtsGizmoViewcubeInputs {
97
- constructor() {
98
- super(...arguments);
99
- this.gizmoHelperApi = inject(NGTS_GIZMO_HELPER_API);
100
- this.hover = -1;
101
- }
102
- set font(font) {
103
- this.set({ font });
104
- }
105
- set color(color) {
106
- this.set({ color });
107
- }
108
- onPointerMove(event) {
109
- event.stopPropagation();
110
- this.hover = Math.floor(event.faceIndex / 2);
111
- }
112
- onPointerOut(event) {
113
- event.stopPropagation();
114
- this.hover = -1;
115
- }
116
- onClick(event) {
117
- if (this.get('clickEmitter')?.observed) {
118
- this.get('clickEmitter').emit(event);
119
- }
120
- else {
121
- event.stopPropagation();
122
- this.gizmoHelperApi.tweenCamera(event.face.normal);
123
- }
124
- }
125
- }
126
- NgtsGizmoViewcubeFaceCube.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeFaceCube, deps: null, target: i0.ɵɵFactoryTarget.Component });
127
- NgtsGizmoViewcubeFaceCube.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewcubeFaceCube, isStandalone: true, selector: "ngts-gizmo-viewcube-face-cube", inputs: { font: "font", color: "color" }, usesInheritance: true, ngImport: i0, template: `
128
- <ngt-mesh
129
- (pointermove)="onPointerMove($any($event))"
130
- (pointerout)="onPointerOut($any($event))"
131
- (click)="onClick($any($event))"
132
- >
133
- <ngt-box-geometry />
134
- <ngts-gizmo-viewcube-face-material
135
- *ngFor="let i; repeat: 6"
136
- [hover]="hover === i"
137
- [index]="i"
138
- [font]="get('font')"
139
- [color]="get('color')"
140
- [opacity]="get('opacity')"
141
- [hoverColor]="get('hoverColor')"
142
- [textColor]="get('textColor')"
143
- [strokeColor]="get('strokeColor')"
144
- [faces]="get('faces')"
145
- />
146
- </ngt-mesh>
147
- `, isInline: true, dependencies: [{ kind: "component", type: NgtsGizmoViewcubeFaceMaterial, selector: "ngts-gizmo-viewcube-face-material[hover][index]", inputs: ["index", "hover", "font", "color"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }] });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeFaceCube, decorators: [{
149
- type: Component,
150
- args: [{
151
- selector: 'ngts-gizmo-viewcube-face-cube',
152
- standalone: true,
153
- template: `
154
- <ngt-mesh
155
- (pointermove)="onPointerMove($any($event))"
156
- (pointerout)="onPointerOut($any($event))"
157
- (click)="onClick($any($event))"
158
- >
159
- <ngt-box-geometry />
160
- <ngts-gizmo-viewcube-face-material
161
- *ngFor="let i; repeat: 6"
162
- [hover]="hover === i"
163
- [index]="i"
164
- [font]="get('font')"
165
- [color]="get('color')"
166
- [opacity]="get('opacity')"
167
- [hoverColor]="get('hoverColor')"
168
- [textColor]="get('textColor')"
169
- [strokeColor]="get('strokeColor')"
170
- [faces]="get('faces')"
171
- />
172
- </ngt-mesh>
173
- `,
174
- imports: [NgtsGizmoViewcubeFaceMaterial, NgtRepeat],
175
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
176
- }]
177
- }], propDecorators: { font: [{
178
- type: Input
179
- }], color: [{
180
- type: Input
181
- }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld2N1YmUtZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2dpem1vLWhlbHBlci9naXptby12aWV3Y3ViZS9naXptby12aWV3Y3ViZS1mYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFbEUsTUFBTSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFtQm5ELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx1QkFBdUI7SUFqQjFFOztRQWtCcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQW1EaEQ7SUFqREcsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUs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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FvQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsU0FBUyxDQUFDO29CQUNuRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBSWdCLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBOZ3RSZXBlYXQsIE5ndFRocmVlRXZlbnQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJveEdlb21ldHJ5LCBDYW52YXNUZXh0dXJlLCBNZXNoLCBNZXNoTGFtYmVydE1hdGVyaWFsIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTkdUU19HSVpNT19IRUxQRVJfQVBJIH0gZnJvbSAnLi4vZ2l6bW8taGVscGVyJztcbmltcG9ydCB7IGNvbG9ycywgZGVmYXVsdEZhY2VzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTmd0c0dpem1vVmlld2N1YmVJbnB1dHMgfSBmcm9tICcuL2dpem1vLXZpZXdjdWJlLWlucHV0cyc7XG5cbmV4dGVuZCh7IE1lc2hMYW1iZXJ0TWF0ZXJpYWwsIE1lc2gsIEJveEdlb21ldHJ5IH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZ2l6bW8tdmlld2N1YmUtZmFjZS1tYXRlcmlhbFtob3Zlcl1baW5kZXhdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtbWVzaC1sYW1iZXJ0LW1hdGVyaWFsXG4gICAgICAgICAgICBbYXR0YWNoXT1cIlsnbWF0ZXJpYWwnLCBnZXQoJ2luZGV4JyldXCJcbiAgICAgICAgICAgIFttYXBdPVwiZ2V0KCd0ZXh0dXJlJylcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnaG92ZXInKSA/IGdldCgnaG92ZXJDb2xvcicpIDogZ2V0KCdjb2xvcicpXCJcbiAgICAgICAgICAgIFtvcGFjaXR5XT1cImdldCgnb3BhY2l0eScpXCJcbiAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic3RvcmUuZ2V0KCdnbCcpLm91dHB1dEVuY29kaW5nXCIgYXR0YWNoPVwibWFwLmVuY29kaW5nXCIgLz5cbiAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cInN0b3JlLmdldCgnZ2wnKS5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpIHx8IDFcIiBhdHRhY2g9XCJtYXAuYW5pc290cm9waHlcIiAvPlxuICAgICAgICA8L25ndC1tZXNoLWxhbWJlcnQtbWF0ZXJpYWw+XG4gICAgYCxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb1ZpZXdjdWJlRmFjZU1hdGVyaWFsIGV4dGVuZHMgTmd0c0dpem1vVmlld2N1YmVJbnB1dHMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgQElucHV0KCkgc2V0IGluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBpbmRleCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgaG92ZXIoaG92ZXI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBob3ZlciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZm9udChmb250OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb250IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBmb250OiAnMjBweCBJbnRlciB2YXIsIEFyaWFsLCBzYW5zLXNlcmlmJyxcbiAgICAgICAgICAgIGZhY2VzOiBkZWZhdWx0RmFjZXMsXG4gICAgICAgICAgICBjb2xvcjogY29sb3JzLmJnLFxuICAgICAgICAgICAgaG92ZXJDb2xvcjogY29sb3JzLmhvdmVyLFxuICAgICAgICAgICAgdGV4dENvbG9yOiBjb2xvcnMudGV4dCxcbiAgICAgICAgICAgIHN0cm9rZUNvbG9yOiBjb2xvcnMuc3Ryb2tlLFxuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICd0ZXh0dXJlJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KFxuICAgICAgICAgICAgICAgIFsnaW5kZXgnLCAnZmFjZXMnLCAnY29sb3InLCAnZm9udCcsICd0ZXh0Q29sb3InLCAnc3Ryb2tlQ29sb3InXSxcbiAgICAgICAgICAgICAgICAoeyBpbmRleCwgZmFjZXMsIGNvbG9yLCBmb250LCB0ZXh0Q29sb3IsIHN0cm9rZUNvbG9yIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgICAgICAgICAgICAgY2FudmFzLndpZHRoID0gMTI4O1xuICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gMTI4O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBzdHJva2VDb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2VSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gdGV4dENvbG9yO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGZhY2VzW2luZGV4XS50b1VwcGVyQ2FzZSgpLCA2NCwgNzYpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZ2l6bW8tdmlld2N1YmUtZmFjZS1jdWJlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtbWVzaFxuICAgICAgICAgICAgKHBvaW50ZXJtb3ZlKT1cIm9uUG9pbnRlck1vdmUoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAocG9pbnRlcm91dCk9XCJvblBvaW50ZXJPdXQoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkYW55KCRldmVudCkpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5ndC1ib3gtZ2VvbWV0cnkgLz5cbiAgICAgICAgICAgIDxuZ3RzLWdpem1vLXZpZXdjdWJlLWZhY2UtbWF0ZXJpYWxcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaTsgcmVwZWF0OiA2XCJcbiAgICAgICAgICAgICAgICBbaG92ZXJdPVwiaG92ZXIgPT09IGlcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICBbZm9udF09XCJnZXQoJ2ZvbnQnKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnY29sb3InKVwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwiZ2V0KCdvcGFjaXR5JylcIlxuICAgICAgICAgICAgICAgIFtob3ZlckNvbG9yXT1cImdldCgnaG92ZXJDb2xvcicpXCJcbiAgICAgICAgICAgICAgICBbdGV4dENvbG9yXT1cImdldCgndGV4dENvbG9yJylcIlxuICAgICAgICAgICAgICAgIFtzdHJva2VDb2xvcl09XCJnZXQoJ3N0cm9rZUNvbG9yJylcIlxuICAgICAgICAgICAgICAgIFtmYWNlc109XCJnZXQoJ2ZhY2VzJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9uZ3QtbWVzaD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RzR2l6bW9WaWV3Y3ViZUZhY2VNYXRlcmlhbCwgTmd0UmVwZWF0XSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb1ZpZXdjdWJlRmFjZUN1YmUgZXh0ZW5kcyBOZ3RzR2l6bW9WaWV3Y3ViZUlucHV0cyB7XG4gICAgcmVhZG9ubHkgZ2l6bW9IZWxwZXJBcGkgPSBpbmplY3QoTkdUU19HSVpNT19IRUxQRVJfQVBJKTtcblxuICAgIEBJbnB1dCgpIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjb2xvciB9KTtcbiAgICB9XG5cbiAgICBob3ZlciA9IC0xO1xuXG4gICAgb25Qb2ludGVyTW92ZShldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmhvdmVyID0gTWF0aC5mbG9vcihldmVudC5mYWNlSW5kZXghIC8gMik7XG4gICAgfVxuXG4gICAgb25Qb2ludGVyT3V0KGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaG92ZXIgPSAtMTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+KSB7XG4gICAgICAgIGlmICh0aGlzLmdldCgnY2xpY2tFbWl0dGVyJyk/Lm9ic2VydmVkKSB7XG4gICAgICAgICAgICB0aGlzLmdldCgnY2xpY2tFbWl0dGVyJykuZW1pdChldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2l6bW9IZWxwZXJBcGkudHdlZW5DYW1lcmEoZXZlbnQuZmFjZSEubm9ybWFsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { Directive, EventEmitter, inject, Input } from '@angular/core';
2
- import { NgtRxStore, NgtStore } from 'angular-three';
3
- import * as i0 from "@angular/core";
4
- export class NgtsGizmoViewcubeInputs extends NgtRxStore {
5
- constructor() {
6
- super(...arguments);
7
- this.store = inject(NgtStore);
8
- }
9
- set opacity(opacity) {
10
- this.set({ opacity });
11
- }
12
- set hoverColor(hoverColor) {
13
- this.set({ hoverColor });
14
- }
15
- set textColor(textColor) {
16
- this.set({ textColor });
17
- }
18
- set strokeColor(strokeColor) {
19
- this.set({ strokeColor });
20
- }
21
- set faces(faces) {
22
- this.set({ faces });
23
- }
24
- set clickEmitter(clickEmitter) {
25
- this.set({ clickEmitter });
26
- }
27
- }
28
- NgtsGizmoViewcubeInputs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeInputs, deps: null, target: i0.ɵɵFactoryTarget.Directive });
29
- NgtsGizmoViewcubeInputs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewcubeInputs, inputs: { opacity: "opacity", hoverColor: "hoverColor", textColor: "textColor", strokeColor: "strokeColor", faces: "faces", clickEmitter: "clickEmitter" }, usesInheritance: true, ngImport: i0 });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewcubeInputs, decorators: [{
31
- type: Directive
32
- }], propDecorators: { opacity: [{
33
- type: Input
34
- }], hoverColor: [{
35
- type: Input
36
- }], textColor: [{
37
- type: Input
38
- }], strokeColor: [{
39
- type: Input
40
- }], faces: [{
41
- type: Input
42
- }], clickEmitter: [{
43
- type: Input
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld2N1YmUtaW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvZ2l6bW8taGVscGVyL2dpem1vLXZpZXdjdWJlL2dpem1vLXZpZXdjdWJlLWlucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEUsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxVQUFVO0lBRGhFOztRQUV1QixVQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBeUIvQztJQXZCRyxJQUFhLE9BQU8sQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUFrQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBaUI7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLFdBQW1CO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFlO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLFlBQVksQ0FBQyxZQUFxRDtRQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDOztvSEF6QmlCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRDVDLFNBQVM7OEJBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UnhTdG9yZSwgTmd0U3RvcmUsIE5ndFRocmVlRXZlbnQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0c0dpem1vVmlld2N1YmVJbnB1dHMgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgQElucHV0KCkgc2V0IG9wYWNpdHkob3BhY2l0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgb3BhY2l0eSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgaG92ZXJDb2xvcihob3ZlckNvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBob3ZlckNvbG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0ZXh0Q29sb3IodGV4dENvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0ZXh0Q29sb3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHN0cm9rZUNvbG9yKHN0cm9rZUNvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzdHJva2VDb2xvciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmFjZXMoZmFjZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmFjZXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNsaWNrRW1pdHRlcihjbGlja0VtaXR0ZXI6IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+Pikge1xuICAgICAgICB0aGlzLnNldCh7IGNsaWNrRW1pdHRlciB9KTtcbiAgICB9XG59XG4iXX0=