@dreamerbird/camera-studio 0.0.0-stage → 0.2.0

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 (837) hide show
  1. package/LICENSE +866 -0
  2. package/assets/models/Y Bot.glb +0 -0
  3. package/assets/poseThumbs/qbx-hands-01-base-base-l.png +0 -0
  4. package/assets/poseThumbs/qbx-hands-01-base-base-r.png +0 -0
  5. package/assets/poseThumbs/qbx-hands-01-base-point-relaxed-l.png +0 -0
  6. package/assets/poseThumbs/qbx-hands-01-base-point-relaxed-r.png +0 -0
  7. package/assets/poseThumbs/qbx-hands-01-base-point-straight-l.png +0 -0
  8. package/assets/poseThumbs/qbx-hands-01-base-point-straight-r.png +0 -0
  9. package/assets/poseThumbs/qbx-hands-01-base-relaxed-01-l.png +0 -0
  10. package/assets/poseThumbs/qbx-hands-01-base-relaxed-01-r.png +0 -0
  11. package/assets/poseThumbs/qbx-hands-01-base-relaxed-02-l.png +0 -0
  12. package/assets/poseThumbs/qbx-hands-01-base-relaxed-02-r.png +0 -0
  13. package/assets/poseThumbs/qbx-hands-01-base-relaxed-03-l.png +0 -0
  14. package/assets/poseThumbs/qbx-hands-01-base-relaxed-03-r.png +0 -0
  15. package/assets/poseThumbs/qbx-hands-01-base-relaxed-04-l.png +0 -0
  16. package/assets/poseThumbs/qbx-hands-01-base-relaxed-04-r.png +0 -0
  17. package/assets/poseThumbs/qbx-hands-01-base-relaxed-05-l.png +0 -0
  18. package/assets/poseThumbs/qbx-hands-01-base-relaxed-05-r.png +0 -0
  19. package/assets/poseThumbs/qbx-hands-01-base-relaxed-06-l.png +0 -0
  20. package/assets/poseThumbs/qbx-hands-01-base-relaxed-06-r.png +0 -0
  21. package/assets/poseThumbs/qbx-hands-02-other-bowl-l.png +0 -0
  22. package/assets/poseThumbs/qbx-hands-02-other-bowl-r.png +0 -0
  23. package/assets/poseThumbs/qbx-hands-02-other-card-l.png +0 -0
  24. package/assets/poseThumbs/qbx-hands-02-other-card-r.png +0 -0
  25. package/assets/poseThumbs/qbx-hands-02-other-claw-l.png +0 -0
  26. package/assets/poseThumbs/qbx-hands-02-other-claw-r.png +0 -0
  27. package/assets/poseThumbs/qbx-hands-02-other-fist-l.png +0 -0
  28. package/assets/poseThumbs/qbx-hands-02-other-fist-r.png +0 -0
  29. package/assets/poseThumbs/qbx-hands-02-other-grip-l.png +0 -0
  30. package/assets/poseThumbs/qbx-hands-02-other-grip-r.png +0 -0
  31. package/assets/poseThumbs/qbx-hands-02-other-ko-l.png +0 -0
  32. package/assets/poseThumbs/qbx-hands-02-other-ko-r.png +0 -0
  33. package/assets/poseThumbs/qbx-hands-02-other-nail-check-01-l.png +0 -0
  34. package/assets/poseThumbs/qbx-hands-02-other-nail-check-01-r.png +0 -0
  35. package/assets/poseThumbs/qbx-hands-02-other-nail-check-02-l.png +0 -0
  36. package/assets/poseThumbs/qbx-hands-02-other-nail-check-02-r.png +0 -0
  37. package/assets/poseThumbs/qbx-hands-02-other-offer-l.png +0 -0
  38. package/assets/poseThumbs/qbx-hands-02-other-offer-r.png +0 -0
  39. package/assets/poseThumbs/qbx-hands-02-other-push-l.png +0 -0
  40. package/assets/poseThumbs/qbx-hands-02-other-push-r.png +0 -0
  41. package/assets/poseThumbs/qbx-hands-02-other-push-the-button-l.png +0 -0
  42. package/assets/poseThumbs/qbx-hands-02-other-push-the-button-r.png +0 -0
  43. package/assets/poseThumbs/qbx-hands-02-other-scratch-l.png +0 -0
  44. package/assets/poseThumbs/qbx-hands-02-other-scratch-r.png +0 -0
  45. package/assets/poseThumbs/qbx-hands-02-other-spread-l.png +0 -0
  46. package/assets/poseThumbs/qbx-hands-02-other-spread-r.png +0 -0
  47. package/assets/poseThumbs/qbx-hands-02-other-write-l.png +0 -0
  48. package/assets/poseThumbs/qbx-hands-02-other-write-r.png +0 -0
  49. package/assets/poseThumbs/qbx-hands-03-signs-cobblepot-l.png +0 -0
  50. package/assets/poseThumbs/qbx-hands-03-signs-cobblepot-r.png +0 -0
  51. package/assets/poseThumbs/qbx-hands-03-signs-fingers-crossed-l.png +0 -0
  52. package/assets/poseThumbs/qbx-hands-03-signs-fingers-crossed-r.png +0 -0
  53. package/assets/poseThumbs/qbx-hands-03-signs-five-l.png +0 -0
  54. package/assets/poseThumbs/qbx-hands-03-signs-five-r.png +0 -0
  55. package/assets/poseThumbs/qbx-hands-03-signs-four-l.png +0 -0
  56. package/assets/poseThumbs/qbx-hands-03-signs-four-r.png +0 -0
  57. package/assets/poseThumbs/qbx-hands-03-signs-four-ring-l.png +0 -0
  58. package/assets/poseThumbs/qbx-hands-03-signs-four-ring-r.png +0 -0
  59. package/assets/poseThumbs/qbx-hands-03-signs-fu-l.png +0 -0
  60. package/assets/poseThumbs/qbx-hands-03-signs-fu-r.png +0 -0
  61. package/assets/poseThumbs/qbx-hands-03-signs-index-l.png +0 -0
  62. package/assets/poseThumbs/qbx-hands-03-signs-index-r.png +0 -0
  63. package/assets/poseThumbs/qbx-hands-03-signs-martian-reactor-switch-l.png +0 -0
  64. package/assets/poseThumbs/qbx-hands-03-signs-martian-reactor-switch-r.png +0 -0
  65. package/assets/poseThumbs/qbx-hands-03-signs-one-does-not-simply-l.png +0 -0
  66. package/assets/poseThumbs/qbx-hands-03-signs-one-does-not-simply-r.png +0 -0
  67. package/assets/poseThumbs/qbx-hands-03-signs-peace-flipped-r.png +0 -0
  68. package/assets/poseThumbs/qbx-hands-03-signs-peace-flipped.png +0 -0
  69. package/assets/poseThumbs/qbx-hands-03-signs-peace-l.png +0 -0
  70. package/assets/poseThumbs/qbx-hands-03-signs-peace-r.png +0 -0
  71. package/assets/poseThumbs/qbx-hands-03-signs-perfect-l.png +0 -0
  72. package/assets/poseThumbs/qbx-hands-03-signs-perfect-r.png +0 -0
  73. package/assets/poseThumbs/qbx-hands-03-signs-pinky-swear-l.png +0 -0
  74. package/assets/poseThumbs/qbx-hands-03-signs-pinky-swear-r.png +0 -0
  75. package/assets/poseThumbs/qbx-hands-03-signs-rock-out-l.png +0 -0
  76. package/assets/poseThumbs/qbx-hands-03-signs-rock-out-r.png +0 -0
  77. package/assets/poseThumbs/qbx-hands-03-signs-scout-salute-l.png +0 -0
  78. package/assets/poseThumbs/qbx-hands-03-signs-scout-salute-r.png +0 -0
  79. package/assets/poseThumbs/qbx-hands-03-signs-spock-l.png +0 -0
  80. package/assets/poseThumbs/qbx-hands-03-signs-spock-r.png +0 -0
  81. package/assets/poseThumbs/qbx-hands-03-signs-stop-l.png +0 -0
  82. package/assets/poseThumbs/qbx-hands-03-signs-stop-r.png +0 -0
  83. package/assets/poseThumbs/qbx-hands-03-signs-surf-s-up-flipped-l.png +0 -0
  84. package/assets/poseThumbs/qbx-hands-03-signs-surf-s-up-flipped-r.png +0 -0
  85. package/assets/poseThumbs/qbx-hands-03-signs-surf-s-up-l.png +0 -0
  86. package/assets/poseThumbs/qbx-hands-03-signs-surf-s-up-r.png +0 -0
  87. package/assets/poseThumbs/qbx-hands-03-signs-three-hicox-l.png +0 -0
  88. package/assets/poseThumbs/qbx-hands-03-signs-three-hicox-r.png +0 -0
  89. package/assets/poseThumbs/qbx-hands-03-signs-three-l.png +0 -0
  90. package/assets/poseThumbs/qbx-hands-03-signs-three-r.png +0 -0
  91. package/assets/poseThumbs/qbx-hands-03-signs-three-ring-l.png +0 -0
  92. package/assets/poseThumbs/qbx-hands-03-signs-three-ring-r.png +0 -0
  93. package/assets/poseThumbs/qbx-hands-03-signs-thumbs-up-l.png +0 -0
  94. package/assets/poseThumbs/qbx-hands-03-signs-thumbs-up-r.png +0 -0
  95. package/assets/poseThumbs/qbx-hands-04-weapons-detonator-l.png +0 -0
  96. package/assets/poseThumbs/qbx-hands-04-weapons-detonator-r.png +0 -0
  97. package/assets/poseThumbs/qbx-hands-04-weapons-grip-sword-l.png +0 -0
  98. package/assets/poseThumbs/qbx-hands-04-weapons-grip-sword-r.png +0 -0
  99. package/assets/poseThumbs/qbx-hands-04-weapons-gun-01-l.png +0 -0
  100. package/assets/poseThumbs/qbx-hands-04-weapons-gun-01-r.png +0 -0
  101. package/assets/poseThumbs/qbx-hands-04-weapons-gun-02-l.png +0 -0
  102. package/assets/poseThumbs/qbx-hands-04-weapons-gun-02-r.png +0 -0
  103. package/assets/poseThumbs/qbx-hands-04-weapons-gun-03-l-cock-the-hammer.png +0 -0
  104. package/assets/poseThumbs/qbx-hands-04-weapons-gun-03-r-cock-the-hammer.png +0 -0
  105. package/assets/poseThumbs/qbx-hands-04-weapons-hadoken-l.png +0 -0
  106. package/assets/poseThumbs/qbx-hands-04-weapons-hadoken-r.png +0 -0
  107. package/assets/poseThumbs/qbx-hands-04-weapons-pistol-double-l.png +0 -0
  108. package/assets/poseThumbs/qbx-hands-04-weapons-pistol-double-r.png +0 -0
  109. package/assets/poseThumbs/qbx-hands-04-weapons-pistol-l.png +0 -0
  110. package/assets/poseThumbs/qbx-hands-04-weapons-pistol-r.png +0 -0
  111. package/assets/poseThumbs/qbx-hands-04-weapons-throw-l.png +0 -0
  112. package/assets/poseThumbs/qbx-hands-04-weapons-throw-r.png +0 -0
  113. package/dist/Anchors.d.ts +11 -0
  114. package/dist/Anchors.d.ts.map +1 -0
  115. package/dist/Anchors.js +315 -0
  116. package/dist/App.hostFlows.test.d.ts +2 -0
  117. package/dist/App.hostFlows.test.d.ts.map +1 -0
  118. package/dist/App.hostFlows.test.js +48 -0
  119. package/dist/CameraPath.d.ts +130 -0
  120. package/dist/CameraPath.d.ts.map +1 -0
  121. package/dist/CameraPath.js +920 -0
  122. package/dist/CameraScene.d.ts +45 -0
  123. package/dist/CameraScene.d.ts.map +1 -0
  124. package/dist/CameraScene.js +1777 -0
  125. package/dist/CameraScene.test.d.ts +2 -0
  126. package/dist/CameraScene.test.d.ts.map +1 -0
  127. package/dist/CameraScene.test.js +259 -0
  128. package/dist/PathPresetDropRig.d.ts +27 -0
  129. package/dist/PathPresetDropRig.d.ts.map +1 -0
  130. package/dist/PathPresetDropRig.js +192 -0
  131. package/dist/PathPresetThumb.d.ts +11 -0
  132. package/dist/PathPresetThumb.d.ts.map +1 -0
  133. package/dist/PathPresetThumb.js +85 -0
  134. package/dist/PipCameraSelector.d.ts +15 -0
  135. package/dist/PipCameraSelector.d.ts.map +1 -0
  136. package/dist/PipCameraSelector.js +92 -0
  137. package/dist/PlacementManager.d.ts +252 -0
  138. package/dist/PlacementManager.d.ts.map +1 -0
  139. package/dist/PlacementManager.js +1552 -0
  140. package/dist/ShotCamera.d.ts +21 -0
  141. package/dist/ShotCamera.d.ts.map +1 -0
  142. package/dist/ShotCamera.js +568 -0
  143. package/dist/TopToolbar.d.ts +43 -0
  144. package/dist/TopToolbar.d.ts.map +1 -0
  145. package/dist/TopToolbar.js +167 -0
  146. package/dist/TopToolbar.test.d.ts +2 -0
  147. package/dist/TopToolbar.test.d.ts.map +1 -0
  148. package/dist/TopToolbar.test.js +107 -0
  149. package/dist/agent/api.d.ts +95 -0
  150. package/dist/agent/api.d.ts.map +1 -0
  151. package/dist/agent/api.js +337 -0
  152. package/dist/agent/api.test.d.ts +2 -0
  153. package/dist/agent/api.test.d.ts.map +1 -0
  154. package/dist/agent/api.test.js +907 -0
  155. package/dist/agent/bridgeClient.d.ts +62 -0
  156. package/dist/agent/bridgeClient.d.ts.map +1 -0
  157. package/dist/agent/bridgeClient.js +277 -0
  158. package/dist/agent/bridgeClient.test.d.ts +2 -0
  159. package/dist/agent/bridgeClient.test.d.ts.map +1 -0
  160. package/dist/agent/bridgeClient.test.js +413 -0
  161. package/dist/agent/bridgeFiles.d.ts +33 -0
  162. package/dist/agent/bridgeFiles.d.ts.map +1 -0
  163. package/dist/agent/bridgeFiles.js +193 -0
  164. package/dist/agent/bridgeFiles.test.d.ts +2 -0
  165. package/dist/agent/bridgeFiles.test.d.ts.map +1 -0
  166. package/dist/agent/bridgeFiles.test.js +220 -0
  167. package/dist/agent/commands/anchors.d.ts +43 -0
  168. package/dist/agent/commands/anchors.d.ts.map +1 -0
  169. package/dist/agent/commands/anchors.js +331 -0
  170. package/dist/agent/commands/anchors.test.d.ts +2 -0
  171. package/dist/agent/commands/anchors.test.d.ts.map +1 -0
  172. package/dist/agent/commands/anchors.test.js +447 -0
  173. package/dist/agent/commands/animations.d.ts +47 -0
  174. package/dist/agent/commands/animations.d.ts.map +1 -0
  175. package/dist/agent/commands/animations.js +245 -0
  176. package/dist/agent/commands/animations.test.d.ts +2 -0
  177. package/dist/agent/commands/animations.test.d.ts.map +1 -0
  178. package/dist/agent/commands/animations.test.js +426 -0
  179. package/dist/agent/commands/assets.d.ts +34 -0
  180. package/dist/agent/commands/assets.d.ts.map +1 -0
  181. package/dist/agent/commands/assets.js +367 -0
  182. package/dist/agent/commands/assets.test.d.ts +2 -0
  183. package/dist/agent/commands/assets.test.d.ts.map +1 -0
  184. package/dist/agent/commands/assets.test.js +405 -0
  185. package/dist/agent/commands/bindings.realStudio.test.d.ts +21 -0
  186. package/dist/agent/commands/bindings.realStudio.test.d.ts.map +1 -0
  187. package/dist/agent/commands/bindings.realStudio.test.js +281 -0
  188. package/dist/agent/commands/cameras.d.ts +65 -0
  189. package/dist/agent/commands/cameras.d.ts.map +1 -0
  190. package/dist/agent/commands/cameras.js +498 -0
  191. package/dist/agent/commands/cameras.test.d.ts +2 -0
  192. package/dist/agent/commands/cameras.test.d.ts.map +1 -0
  193. package/dist/agent/commands/cameras.test.js +560 -0
  194. package/dist/agent/commands/delete.test.d.ts +2 -0
  195. package/dist/agent/commands/delete.test.d.ts.map +1 -0
  196. package/dist/agent/commands/delete.test.js +518 -0
  197. package/dist/agent/commands/exports.d.ts +12 -0
  198. package/dist/agent/commands/exports.d.ts.map +1 -0
  199. package/dist/agent/commands/exports.js +132 -0
  200. package/dist/agent/commands/exports.test.d.ts +2 -0
  201. package/dist/agent/commands/exports.test.d.ts.map +1 -0
  202. package/dist/agent/commands/exports.test.js +402 -0
  203. package/dist/agent/commands/history.d.ts +17 -0
  204. package/dist/agent/commands/history.d.ts.map +1 -0
  205. package/dist/agent/commands/history.js +96 -0
  206. package/dist/agent/commands/history.test.d.ts +2 -0
  207. package/dist/agent/commands/history.test.d.ts.map +1 -0
  208. package/dist/agent/commands/history.test.js +140 -0
  209. package/dist/agent/commands/jobs.d.ts +23 -0
  210. package/dist/agent/commands/jobs.d.ts.map +1 -0
  211. package/dist/agent/commands/jobs.js +66 -0
  212. package/dist/agent/commands/keyframes.d.ts +42 -0
  213. package/dist/agent/commands/keyframes.d.ts.map +1 -0
  214. package/dist/agent/commands/keyframes.js +310 -0
  215. package/dist/agent/commands/keyframes.realStudio.test.d.ts +11 -0
  216. package/dist/agent/commands/keyframes.realStudio.test.d.ts.map +1 -0
  217. package/dist/agent/commands/keyframes.realStudio.test.js +95 -0
  218. package/dist/agent/commands/keyframes.test.d.ts +2 -0
  219. package/dist/agent/commands/keyframes.test.d.ts.map +1 -0
  220. package/dist/agent/commands/keyframes.test.js +474 -0
  221. package/dist/agent/commands/models.d.ts +34 -0
  222. package/dist/agent/commands/models.d.ts.map +1 -0
  223. package/dist/agent/commands/models.js +137 -0
  224. package/dist/agent/commands/models.test.d.ts +2 -0
  225. package/dist/agent/commands/models.test.d.ts.map +1 -0
  226. package/dist/agent/commands/models.test.js +268 -0
  227. package/dist/agent/commands/objects.d.ts +4 -0
  228. package/dist/agent/commands/objects.d.ts.map +1 -0
  229. package/dist/agent/commands/objects.js +182 -0
  230. package/dist/agent/commands/objects.test.d.ts +2 -0
  231. package/dist/agent/commands/objects.test.d.ts.map +1 -0
  232. package/dist/agent/commands/objects.test.js +316 -0
  233. package/dist/agent/commands/paths.d.ts +111 -0
  234. package/dist/agent/commands/paths.d.ts.map +1 -0
  235. package/dist/agent/commands/paths.js +576 -0
  236. package/dist/agent/commands/paths.test.d.ts +2 -0
  237. package/dist/agent/commands/paths.test.d.ts.map +1 -0
  238. package/dist/agent/commands/paths.test.js +773 -0
  239. package/dist/agent/commands/poses.d.ts +101 -0
  240. package/dist/agent/commands/poses.d.ts.map +1 -0
  241. package/dist/agent/commands/poses.js +500 -0
  242. package/dist/agent/commands/poses.realStudio.test.d.ts +15 -0
  243. package/dist/agent/commands/poses.realStudio.test.d.ts.map +1 -0
  244. package/dist/agent/commands/poses.realStudio.test.js +161 -0
  245. package/dist/agent/commands/poses.test.d.ts +2 -0
  246. package/dist/agent/commands/poses.test.d.ts.map +1 -0
  247. package/dist/agent/commands/poses.test.js +735 -0
  248. package/dist/agent/commands/project.d.ts +12 -0
  249. package/dist/agent/commands/project.d.ts.map +1 -0
  250. package/dist/agent/commands/project.js +42 -0
  251. package/dist/agent/commands/project.test.d.ts +2 -0
  252. package/dist/agent/commands/project.test.d.ts.map +1 -0
  253. package/dist/agent/commands/project.test.js +125 -0
  254. package/dist/agent/commands/revision.realStudio.test.d.ts +14 -0
  255. package/dist/agent/commands/revision.realStudio.test.d.ts.map +1 -0
  256. package/dist/agent/commands/revision.realStudio.test.js +129 -0
  257. package/dist/agent/commands/scene.d.ts +32 -0
  258. package/dist/agent/commands/scene.d.ts.map +1 -0
  259. package/dist/agent/commands/scene.js +100 -0
  260. package/dist/agent/commands/scene.test.d.ts +2 -0
  261. package/dist/agent/commands/scene.test.d.ts.map +1 -0
  262. package/dist/agent/commands/scene.test.js +147 -0
  263. package/dist/agent/commands/selection.d.ts +21 -0
  264. package/dist/agent/commands/selection.d.ts.map +1 -0
  265. package/dist/agent/commands/selection.js +101 -0
  266. package/dist/agent/commands/selection.test.d.ts +2 -0
  267. package/dist/agent/commands/selection.test.d.ts.map +1 -0
  268. package/dist/agent/commands/selection.test.js +173 -0
  269. package/dist/agent/commands/sequence.d.ts +25 -0
  270. package/dist/agent/commands/sequence.d.ts.map +1 -0
  271. package/dist/agent/commands/sequence.js +174 -0
  272. package/dist/agent/commands/sequence.test.d.ts +2 -0
  273. package/dist/agent/commands/sequence.test.d.ts.map +1 -0
  274. package/dist/agent/commands/sequence.test.js +264 -0
  275. package/dist/agent/commands/ui.d.ts +40 -0
  276. package/dist/agent/commands/ui.d.ts.map +1 -0
  277. package/dist/agent/commands/ui.js +166 -0
  278. package/dist/agent/commands/view.d.ts +61 -0
  279. package/dist/agent/commands/view.d.ts.map +1 -0
  280. package/dist/agent/commands/view.js +229 -0
  281. package/dist/agent/commands/view.test.d.ts +2 -0
  282. package/dist/agent/commands/view.test.d.ts.map +1 -0
  283. package/dist/agent/commands/view.test.js +347 -0
  284. package/dist/agent/contractCoverage.test.d.ts +2 -0
  285. package/dist/agent/contractCoverage.test.d.ts.map +1 -0
  286. package/dist/agent/contractCoverage.test.js +87 -0
  287. package/dist/agent/deleteHandlers.d.ts +61 -0
  288. package/dist/agent/deleteHandlers.d.ts.map +1 -0
  289. package/dist/agent/deleteHandlers.js +41 -0
  290. package/dist/agent/errors.d.ts +24 -0
  291. package/dist/agent/errors.d.ts.map +1 -0
  292. package/dist/agent/errors.js +59 -0
  293. package/dist/agent/errors.test.d.ts +2 -0
  294. package/dist/agent/errors.test.d.ts.map +1 -0
  295. package/dist/agent/errors.test.js +25 -0
  296. package/dist/agent/expectedCommands.d.ts +9 -0
  297. package/dist/agent/expectedCommands.d.ts.map +1 -0
  298. package/dist/agent/expectedCommands.js +79 -0
  299. package/dist/agent/jobs.d.ts +52 -0
  300. package/dist/agent/jobs.d.ts.map +1 -0
  301. package/dist/agent/jobs.js +175 -0
  302. package/dist/agent/jobs.test.d.ts +2 -0
  303. package/dist/agent/jobs.test.d.ts.map +1 -0
  304. package/dist/agent/jobs.test.js +281 -0
  305. package/dist/agent/keyframeTracks.d.ts +57 -0
  306. package/dist/agent/keyframeTracks.d.ts.map +1 -0
  307. package/dist/agent/keyframeTracks.js +127 -0
  308. package/dist/agent/objectIds.d.ts +7 -0
  309. package/dist/agent/objectIds.d.ts.map +1 -0
  310. package/dist/agent/objectIds.js +20 -0
  311. package/dist/agent/objectIds.test.d.ts +2 -0
  312. package/dist/agent/objectIds.test.d.ts.map +1 -0
  313. package/dist/agent/objectIds.test.js +10 -0
  314. package/dist/agent/objectResolver.d.ts +34 -0
  315. package/dist/agent/objectResolver.d.ts.map +1 -0
  316. package/dist/agent/objectResolver.js +112 -0
  317. package/dist/agent/pathCommands.d.ts +78 -0
  318. package/dist/agent/pathCommands.d.ts.map +1 -0
  319. package/dist/agent/pathCommands.js +240 -0
  320. package/dist/agent/propAccess.d.ts +42 -0
  321. package/dist/agent/propAccess.d.ts.map +1 -0
  322. package/dist/agent/propAccess.js +181 -0
  323. package/dist/agent/registerCommands.d.ts +9 -0
  324. package/dist/agent/registerCommands.d.ts.map +1 -0
  325. package/dist/agent/registerCommands.js +77 -0
  326. package/dist/agent/registry.d.ts +33 -0
  327. package/dist/agent/registry.d.ts.map +1 -0
  328. package/dist/agent/registry.js +55 -0
  329. package/dist/agent/registry.test.d.ts +2 -0
  330. package/dist/agent/registry.test.d.ts.map +1 -0
  331. package/dist/agent/registry.test.js +106 -0
  332. package/dist/agent/runtime/animationStatus.d.ts +25 -0
  333. package/dist/agent/runtime/animationStatus.d.ts.map +1 -0
  334. package/dist/agent/runtime/animationStatus.js +13 -0
  335. package/dist/agent/runtime/cameraLifecycle.d.ts +37 -0
  336. package/dist/agent/runtime/cameraLifecycle.d.ts.map +1 -0
  337. package/dist/agent/runtime/cameraLifecycle.js +112 -0
  338. package/dist/agent/runtime/directorView.d.ts +42 -0
  339. package/dist/agent/runtime/directorView.d.ts.map +1 -0
  340. package/dist/agent/runtime/directorView.js +27 -0
  341. package/dist/agent/runtime/exportRuntime.d.ts +95 -0
  342. package/dist/agent/runtime/exportRuntime.d.ts.map +1 -0
  343. package/dist/agent/runtime/exportRuntime.js +227 -0
  344. package/dist/agent/runtime/objectRuntime.d.ts +26 -0
  345. package/dist/agent/runtime/objectRuntime.d.ts.map +1 -0
  346. package/dist/agent/runtime/objectRuntime.js +29 -0
  347. package/dist/agent/runtime/pathRuntime.d.ts +21 -0
  348. package/dist/agent/runtime/pathRuntime.d.ts.map +1 -0
  349. package/dist/agent/runtime/pathRuntime.js +13 -0
  350. package/dist/agent/runtime/placementLifecycle.d.ts +34 -0
  351. package/dist/agent/runtime/placementLifecycle.d.ts.map +1 -0
  352. package/dist/agent/runtime/placementLifecycle.js +63 -0
  353. package/dist/agent/runtime/placementLifecycle.test.d.ts +2 -0
  354. package/dist/agent/runtime/placementLifecycle.test.d.ts.map +1 -0
  355. package/dist/agent/runtime/placementLifecycle.test.js +68 -0
  356. package/dist/agent/runtime/poseSessionRuntime.d.ts +17 -0
  357. package/dist/agent/runtime/poseSessionRuntime.d.ts.map +1 -0
  358. package/dist/agent/runtime/poseSessionRuntime.js +64 -0
  359. package/dist/agent/runtime.d.ts +67 -0
  360. package/dist/agent/runtime.d.ts.map +1 -0
  361. package/dist/agent/runtime.js +214 -0
  362. package/dist/agent/runtime.test.d.ts +2 -0
  363. package/dist/agent/runtime.test.d.ts.map +1 -0
  364. package/dist/agent/runtime.test.js +142 -0
  365. package/dist/agent/sequenceLength.d.ts +20 -0
  366. package/dist/agent/sequenceLength.d.ts.map +1 -0
  367. package/dist/agent/sequenceLength.js +18 -0
  368. package/dist/agent/types.d.ts +70 -0
  369. package/dist/agent/types.d.ts.map +1 -0
  370. package/dist/agent/types.js +6 -0
  371. package/dist/agent/validation.d.ts +7 -0
  372. package/dist/agent/validation.d.ts.map +1 -0
  373. package/dist/agent/validation.js +39 -0
  374. package/dist/aimTargets.d.ts +128 -0
  375. package/dist/aimTargets.d.ts.map +1 -0
  376. package/dist/aimTargets.js +367 -0
  377. package/dist/aimTargets.test.d.ts +2 -0
  378. package/dist/aimTargets.test.d.ts.map +1 -0
  379. package/dist/aimTargets.test.js +84 -0
  380. package/dist/anchorParenting.test.d.ts +2 -0
  381. package/dist/anchorParenting.test.d.ts.map +1 -0
  382. package/dist/anchorParenting.test.js +87 -0
  383. package/dist/anchorsRegistry.d.ts +45 -0
  384. package/dist/anchorsRegistry.d.ts.map +1 -0
  385. package/dist/anchorsRegistry.js +101 -0
  386. package/dist/anchorsRegistry.test.d.ts +2 -0
  387. package/dist/anchorsRegistry.test.d.ts.map +1 -0
  388. package/dist/anchorsRegistry.test.js +29 -0
  389. package/dist/assetLibrary/AssetLibraryPanel.d.ts +35 -0
  390. package/dist/assetLibrary/AssetLibraryPanel.d.ts.map +1 -0
  391. package/dist/assetLibrary/AssetLibraryPanel.js +544 -0
  392. package/dist/assetLibrary/AssetLibraryPanel.viewer.test.d.ts +2 -0
  393. package/dist/assetLibrary/AssetLibraryPanel.viewer.test.d.ts.map +1 -0
  394. package/dist/assetLibrary/AssetLibraryPanel.viewer.test.js +133 -0
  395. package/dist/assetLibrary/ModelPickerSlot.d.ts +24 -0
  396. package/dist/assetLibrary/ModelPickerSlot.d.ts.map +1 -0
  397. package/dist/assetLibrary/ModelPickerSlot.js +32 -0
  398. package/dist/assetLibrary/catalogThumbs.d.ts +7 -0
  399. package/dist/assetLibrary/catalogThumbs.d.ts.map +1 -0
  400. package/dist/assetLibrary/catalogThumbs.js +75 -0
  401. package/dist/assetLibrary/classify.d.ts +14 -0
  402. package/dist/assetLibrary/classify.d.ts.map +1 -0
  403. package/dist/assetLibrary/classify.js +43 -0
  404. package/dist/assetLibrary/classify.test.d.ts +2 -0
  405. package/dist/assetLibrary/classify.test.d.ts.map +1 -0
  406. package/dist/assetLibrary/classify.test.js +44 -0
  407. package/dist/assetLibrary/contract.indexeddb.test.d.ts +2 -0
  408. package/dist/assetLibrary/contract.indexeddb.test.d.ts.map +1 -0
  409. package/dist/assetLibrary/contract.indexeddb.test.js +10 -0
  410. package/dist/assetLibrary/contractTests.d.ts +12 -0
  411. package/dist/assetLibrary/contractTests.d.ts.map +1 -0
  412. package/dist/assetLibrary/contractTests.js +51 -0
  413. package/dist/assetLibrary/dispose.d.ts +4 -0
  414. package/dist/assetLibrary/dispose.d.ts.map +1 -0
  415. package/dist/assetLibrary/dispose.js +21 -0
  416. package/dist/assetLibrary/draco.d.ts +6 -0
  417. package/dist/assetLibrary/draco.d.ts.map +1 -0
  418. package/dist/assetLibrary/draco.js +45 -0
  419. package/dist/assetLibrary/draco.test.d.ts +2 -0
  420. package/dist/assetLibrary/draco.test.d.ts.map +1 -0
  421. package/dist/assetLibrary/draco.test.js +93 -0
  422. package/dist/assetLibrary/exportGLB.d.ts +45 -0
  423. package/dist/assetLibrary/exportGLB.d.ts.map +1 -0
  424. package/dist/assetLibrary/exportGLB.js +125 -0
  425. package/dist/assetLibrary/exportGLB.test.d.ts +2 -0
  426. package/dist/assetLibrary/exportGLB.test.d.ts.map +1 -0
  427. package/dist/assetLibrary/exportGLB.test.js +127 -0
  428. package/dist/assetLibrary/gltfLoader.d.ts +8 -0
  429. package/dist/assetLibrary/gltfLoader.d.ts.map +1 -0
  430. package/dist/assetLibrary/gltfLoader.js +11 -0
  431. package/dist/assetLibrary/hash.d.ts +7 -0
  432. package/dist/assetLibrary/hash.d.ts.map +1 -0
  433. package/dist/assetLibrary/hash.js +17 -0
  434. package/dist/assetLibrary/importModelFile.d.ts +5 -0
  435. package/dist/assetLibrary/importModelFile.d.ts.map +1 -0
  436. package/dist/assetLibrary/importModelFile.js +19 -0
  437. package/dist/assetLibrary/importModelFile.test.d.ts +2 -0
  438. package/dist/assetLibrary/importModelFile.test.d.ts.map +1 -0
  439. package/dist/assetLibrary/importModelFile.test.js +77 -0
  440. package/dist/assetLibrary/importPipeline.d.ts +61 -0
  441. package/dist/assetLibrary/importPipeline.d.ts.map +1 -0
  442. package/dist/assetLibrary/importPipeline.js +253 -0
  443. package/dist/assetLibrary/importPipeline.test.d.ts +2 -0
  444. package/dist/assetLibrary/importPipeline.test.d.ts.map +1 -0
  445. package/dist/assetLibrary/importPipeline.test.js +188 -0
  446. package/dist/assetLibrary/indexedDBBackend.d.ts +31 -0
  447. package/dist/assetLibrary/indexedDBBackend.d.ts.map +1 -0
  448. package/dist/assetLibrary/indexedDBBackend.js +134 -0
  449. package/dist/assetLibrary/indexedDBBackend.test.d.ts +2 -0
  450. package/dist/assetLibrary/indexedDBBackend.test.d.ts.map +1 -0
  451. package/dist/assetLibrary/indexedDBBackend.test.js +148 -0
  452. package/dist/assetLibrary/legacySeedCleanup.d.ts +19 -0
  453. package/dist/assetLibrary/legacySeedCleanup.d.ts.map +1 -0
  454. package/dist/assetLibrary/legacySeedCleanup.js +50 -0
  455. package/dist/assetLibrary/legacySeedCleanup.test.d.ts +2 -0
  456. package/dist/assetLibrary/legacySeedCleanup.test.d.ts.map +1 -0
  457. package/dist/assetLibrary/legacySeedCleanup.test.js +74 -0
  458. package/dist/assetLibrary/library.d.ts +122 -0
  459. package/dist/assetLibrary/library.d.ts.map +1 -0
  460. package/dist/assetLibrary/library.js +424 -0
  461. package/dist/assetLibrary/library.test.d.ts +2 -0
  462. package/dist/assetLibrary/library.test.d.ts.map +1 -0
  463. package/dist/assetLibrary/library.test.js +520 -0
  464. package/dist/assetLibrary/options.d.ts +9 -0
  465. package/dist/assetLibrary/options.d.ts.map +1 -0
  466. package/dist/assetLibrary/options.js +20 -0
  467. package/dist/assetLibrary/options.test.d.ts +2 -0
  468. package/dist/assetLibrary/options.test.d.ts.map +1 -0
  469. package/dist/assetLibrary/options.test.js +70 -0
  470. package/dist/assetLibrary/pose.d.ts +15 -0
  471. package/dist/assetLibrary/pose.d.ts.map +1 -0
  472. package/dist/assetLibrary/pose.js +41 -0
  473. package/dist/assetLibrary/pose.test.d.ts +2 -0
  474. package/dist/assetLibrary/pose.test.d.ts.map +1 -0
  475. package/dist/assetLibrary/pose.test.js +45 -0
  476. package/dist/assetLibrary/poseThumbnail.d.ts +30 -0
  477. package/dist/assetLibrary/poseThumbnail.d.ts.map +1 -0
  478. package/dist/assetLibrary/poseThumbnail.js +144 -0
  479. package/dist/assetLibrary/poseThumbnail.test.d.ts +2 -0
  480. package/dist/assetLibrary/poseThumbnail.test.d.ts.map +1 -0
  481. package/dist/assetLibrary/poseThumbnail.test.js +111 -0
  482. package/dist/assetLibrary/rig.d.ts +14 -0
  483. package/dist/assetLibrary/rig.d.ts.map +1 -0
  484. package/dist/assetLibrary/rig.js +33 -0
  485. package/dist/assetLibrary/rig.test.d.ts +2 -0
  486. package/dist/assetLibrary/rig.test.d.ts.map +1 -0
  487. package/dist/assetLibrary/rig.test.js +55 -0
  488. package/dist/assetLibrary/seedAssetsManifest.d.ts +24 -0
  489. package/dist/assetLibrary/seedAssetsManifest.d.ts.map +1 -0
  490. package/dist/assetLibrary/seedAssetsManifest.js +347 -0
  491. package/dist/assetLibrary/seedBuiltinPoses.d.ts +29 -0
  492. package/dist/assetLibrary/seedBuiltinPoses.d.ts.map +1 -0
  493. package/dist/assetLibrary/seedBuiltinPoses.js +114 -0
  494. package/dist/assetLibrary/seedBuiltinPoses.test.d.ts +2 -0
  495. package/dist/assetLibrary/seedBuiltinPoses.test.d.ts.map +1 -0
  496. package/dist/assetLibrary/seedBuiltinPoses.test.js +176 -0
  497. package/dist/assetLibrary/seedPoses.d.ts +8 -0
  498. package/dist/assetLibrary/seedPoses.d.ts.map +1 -0
  499. package/dist/assetLibrary/seedPoses.js +2414 -0
  500. package/dist/assetLibrary/seedPosesDpl.d.ts +8 -0
  501. package/dist/assetLibrary/seedPosesDpl.d.ts.map +1 -0
  502. package/dist/assetLibrary/seedPosesDpl.js +11660 -0
  503. package/dist/assetLibrary/seedPosesQbx.d.ts +8 -0
  504. package/dist/assetLibrary/seedPosesQbx.d.ts.map +1 -0
  505. package/dist/assetLibrary/seedPosesQbx.js +5612 -0
  506. package/dist/assetLibrary/seedPosesQbx.test.d.ts +2 -0
  507. package/dist/assetLibrary/seedPosesQbx.test.d.ts.map +1 -0
  508. package/dist/assetLibrary/seedPosesQbx.test.js +181 -0
  509. package/dist/assetLibrary/source.d.ts +45 -0
  510. package/dist/assetLibrary/source.d.ts.map +1 -0
  511. package/dist/assetLibrary/source.js +11 -0
  512. package/dist/assetLibrary/source.test.d.ts +2 -0
  513. package/dist/assetLibrary/source.test.d.ts.map +1 -0
  514. package/dist/assetLibrary/source.test.js +28 -0
  515. package/dist/assetLibrary/staticCatalogSource.d.ts +48 -0
  516. package/dist/assetLibrary/staticCatalogSource.d.ts.map +1 -0
  517. package/dist/assetLibrary/staticCatalogSource.js +140 -0
  518. package/dist/assetLibrary/staticCatalogSource.test.d.ts +2 -0
  519. package/dist/assetLibrary/staticCatalogSource.test.d.ts.map +1 -0
  520. package/dist/assetLibrary/staticCatalogSource.test.js +154 -0
  521. package/dist/assetLibrary/thumbnail.d.ts +14 -0
  522. package/dist/assetLibrary/thumbnail.d.ts.map +1 -0
  523. package/dist/assetLibrary/thumbnail.js +70 -0
  524. package/dist/assetLibrary/types.d.ts +54 -0
  525. package/dist/assetLibrary/types.d.ts.map +1 -0
  526. package/dist/assetLibrary/types.js +1 -0
  527. package/dist/assetLibrary/useModelThumbUrl.d.ts +10 -0
  528. package/dist/assetLibrary/useModelThumbUrl.d.ts.map +1 -0
  529. package/dist/assetLibrary/useModelThumbUrl.js +56 -0
  530. package/dist/boneAnchorWiring.test.d.ts +2 -0
  531. package/dist/boneAnchorWiring.test.d.ts.map +1 -0
  532. package/dist/boneAnchorWiring.test.js +173 -0
  533. package/dist/boneAnchors.d.ts +30 -0
  534. package/dist/boneAnchors.d.ts.map +1 -0
  535. package/dist/boneAnchors.js +111 -0
  536. package/dist/boneAnchors.test.d.ts +2 -0
  537. package/dist/boneAnchors.test.d.ts.map +1 -0
  538. package/dist/boneAnchors.test.js +98 -0
  539. package/dist/bootstrap.d.ts +37 -0
  540. package/dist/bootstrap.d.ts.map +1 -0
  541. package/dist/bootstrap.js +394 -0
  542. package/dist/bootstrap.test.d.ts +2 -0
  543. package/dist/bootstrap.test.d.ts.map +1 -0
  544. package/dist/bootstrap.test.js +647 -0
  545. package/dist/cameraRegistry.d.ts +65 -0
  546. package/dist/cameraRegistry.d.ts.map +1 -0
  547. package/dist/cameraRegistry.js +151 -0
  548. package/dist/cameraRegistry.test.d.ts +2 -0
  549. package/dist/cameraRegistry.test.d.ts.map +1 -0
  550. package/dist/cameraRegistry.test.js +68 -0
  551. package/dist/config.d.ts +92 -0
  552. package/dist/config.d.ts.map +1 -0
  553. package/dist/config.js +1 -0
  554. package/dist/contextMenu.d.ts +16 -0
  555. package/dist/contextMenu.d.ts.map +1 -0
  556. package/dist/contextMenu.js +10 -0
  557. package/dist/dropPoint.d.ts +61 -0
  558. package/dist/dropPoint.d.ts.map +1 -0
  559. package/dist/dropPoint.js +97 -0
  560. package/dist/dropPoint.test.d.ts +2 -0
  561. package/dist/dropPoint.test.d.ts.map +1 -0
  562. package/dist/dropPoint.test.js +174 -0
  563. package/dist/editorOnly.d.ts +6 -0
  564. package/dist/editorOnly.d.ts.map +1 -0
  565. package/dist/editorOnly.js +32 -0
  566. package/dist/errors.d.ts +24 -0
  567. package/dist/errors.d.ts.map +1 -0
  568. package/dist/errors.js +13 -0
  569. package/dist/firstScreenGate.d.ts +28 -0
  570. package/dist/firstScreenGate.d.ts.map +1 -0
  571. package/dist/firstScreenGate.js +67 -0
  572. package/dist/firstScreenGate.test.d.ts +2 -0
  573. package/dist/firstScreenGate.test.d.ts.map +1 -0
  574. package/dist/firstScreenGate.test.js +83 -0
  575. package/dist/gestureProps.d.ts +99 -0
  576. package/dist/gestureProps.d.ts.map +1 -0
  577. package/dist/gestureProps.js +118 -0
  578. package/dist/gestureProps.test.d.ts +2 -0
  579. package/dist/gestureProps.test.d.ts.map +1 -0
  580. package/dist/gestureProps.test.js +182 -0
  581. package/dist/gesturePropsEditor.d.ts +27 -0
  582. package/dist/gesturePropsEditor.d.ts.map +1 -0
  583. package/dist/gesturePropsEditor.js +121 -0
  584. package/dist/getDeep.d.ts +8 -0
  585. package/dist/getDeep.d.ts.map +1 -0
  586. package/dist/getDeep.js +15 -0
  587. package/dist/gizmoRegistry.test.d.ts +2 -0
  588. package/dist/gizmoRegistry.test.d.ts.map +1 -0
  589. package/dist/gizmoRegistry.test.js +40 -0
  590. package/dist/hostFlows.d.ts +55 -0
  591. package/dist/hostFlows.d.ts.map +1 -0
  592. package/dist/hostFlows.js +77 -0
  593. package/dist/hostFlows.test.d.ts +2 -0
  594. package/dist/hostFlows.test.d.ts.map +1 -0
  595. package/dist/hostFlows.test.js +191 -0
  596. package/dist/i18n.d.ts +26 -0
  597. package/dist/i18n.d.ts.map +1 -0
  598. package/dist/i18n.js +271 -0
  599. package/dist/i18n.test.d.ts +2 -0
  600. package/dist/i18n.test.d.ts.map +1 -0
  601. package/dist/i18n.test.js +41 -0
  602. package/dist/index.d.ts +42 -0
  603. package/dist/index.d.ts.map +1 -0
  604. package/dist/index.js +11 -0
  605. package/dist/menuModel.d.ts +51 -0
  606. package/dist/menuModel.d.ts.map +1 -0
  607. package/dist/menuModel.js +111 -0
  608. package/dist/menuModel.test.d.ts +2 -0
  609. package/dist/menuModel.test.d.ts.map +1 -0
  610. package/dist/menuModel.test.js +197 -0
  611. package/dist/modalGrab.d.ts +29 -0
  612. package/dist/modalGrab.d.ts.map +1 -0
  613. package/dist/modalGrab.js +127 -0
  614. package/dist/outlineObjectMenu.d.ts +41 -0
  615. package/dist/outlineObjectMenu.d.ts.map +1 -0
  616. package/dist/outlineObjectMenu.js +58 -0
  617. package/dist/outlineObjectMenu.test.d.ts +2 -0
  618. package/dist/outlineObjectMenu.test.d.ts.map +1 -0
  619. package/dist/outlineObjectMenu.test.js +83 -0
  620. package/dist/pathBinding.d.ts +16 -0
  621. package/dist/pathBinding.d.ts.map +1 -0
  622. package/dist/pathBinding.js +19 -0
  623. package/dist/pathBinding.test.d.ts +2 -0
  624. package/dist/pathBinding.test.d.ts.map +1 -0
  625. package/dist/pathBinding.test.js +14 -0
  626. package/dist/pathModel.d.ts +123 -0
  627. package/dist/pathModel.d.ts.map +1 -0
  628. package/dist/pathModel.js +343 -0
  629. package/dist/pathModel.test.d.ts +2 -0
  630. package/dist/pathModel.test.d.ts.map +1 -0
  631. package/dist/pathModel.test.js +394 -0
  632. package/dist/pathPresets.d.ts +38 -0
  633. package/dist/pathPresets.d.ts.map +1 -0
  634. package/dist/pathPresets.js +180 -0
  635. package/dist/pathPresets.test.d.ts +2 -0
  636. package/dist/pathPresets.test.d.ts.map +1 -0
  637. package/dist/pathPresets.test.js +154 -0
  638. package/dist/pathRegistry.d.ts +46 -0
  639. package/dist/pathRegistry.d.ts.map +1 -0
  640. package/dist/pathRegistry.js +105 -0
  641. package/dist/pathRegistry.test.d.ts +2 -0
  642. package/dist/pathRegistry.test.d.ts.map +1 -0
  643. package/dist/pathRegistry.test.js +23 -0
  644. package/dist/pickerRegistry.d.ts +49 -0
  645. package/dist/pickerRegistry.d.ts.map +1 -0
  646. package/dist/pickerRegistry.js +17 -0
  647. package/dist/pickerRegistry.test.d.ts +2 -0
  648. package/dist/pickerRegistry.test.d.ts.map +1 -0
  649. package/dist/pickerRegistry.test.js +31 -0
  650. package/dist/pipLayout.d.ts +7 -0
  651. package/dist/pipLayout.d.ts.map +1 -0
  652. package/dist/pipLayout.js +58 -0
  653. package/dist/placementKey.test.d.ts +2 -0
  654. package/dist/placementKey.test.d.ts.map +1 -0
  655. package/dist/placementKey.test.js +32 -0
  656. package/dist/placementPoseProps.d.ts +29 -0
  657. package/dist/placementPoseProps.d.ts.map +1 -0
  658. package/dist/placementPoseProps.js +43 -0
  659. package/dist/placementPoseProps.test.d.ts +2 -0
  660. package/dist/placementPoseProps.test.d.ts.map +1 -0
  661. package/dist/placementPoseProps.test.js +35 -0
  662. package/dist/poseMode/PoseModeBar.d.ts +18 -0
  663. package/dist/poseMode/PoseModeBar.d.ts.map +1 -0
  664. package/dist/poseMode/PoseModeBar.js +127 -0
  665. package/dist/poseMode/PoseModeRig.d.ts +9 -0
  666. package/dist/poseMode/PoseModeRig.d.ts.map +1 -0
  667. package/dist/poseMode/PoseModeRig.js +300 -0
  668. package/dist/poseMode/PosePickerFrame.d.ts +42 -0
  669. package/dist/poseMode/PosePickerFrame.d.ts.map +1 -0
  670. package/dist/poseMode/PosePickerFrame.js +164 -0
  671. package/dist/poseMode/PosePropEditor.d.ts +30 -0
  672. package/dist/poseMode/PosePropEditor.d.ts.map +1 -0
  673. package/dist/poseMode/PosePropEditor.js +139 -0
  674. package/dist/poseMode/controlSpec.d.ts +26 -0
  675. package/dist/poseMode/controlSpec.d.ts.map +1 -0
  676. package/dist/poseMode/controlSpec.js +157 -0
  677. package/dist/poseMode/controlSpec.test.d.ts +2 -0
  678. package/dist/poseMode/controlSpec.test.d.ts.map +1 -0
  679. package/dist/poseMode/controlSpec.test.js +196 -0
  680. package/dist/poseMode/dragState.d.ts +16 -0
  681. package/dist/poseMode/dragState.d.ts.map +1 -0
  682. package/dist/poseMode/dragState.js +15 -0
  683. package/dist/poseMode/dragState.test.d.ts +2 -0
  684. package/dist/poseMode/dragState.test.d.ts.map +1 -0
  685. package/dist/poseMode/dragState.test.js +23 -0
  686. package/dist/poseMode/poseDisplayText.d.ts +18 -0
  687. package/dist/poseMode/poseDisplayText.d.ts.map +1 -0
  688. package/dist/poseMode/poseDisplayText.js +13 -0
  689. package/dist/poseMode/poseDisplayText.test.d.ts +2 -0
  690. package/dist/poseMode/poseDisplayText.test.d.ts.map +1 -0
  691. package/dist/poseMode/poseDisplayText.test.js +35 -0
  692. package/dist/poseMode/poseExitGuard.d.ts +8 -0
  693. package/dist/poseMode/poseExitGuard.d.ts.map +1 -0
  694. package/dist/poseMode/poseExitGuard.js +13 -0
  695. package/dist/poseMode/poseExitGuard.test.d.ts +2 -0
  696. package/dist/poseMode/poseExitGuard.test.d.ts.map +1 -0
  697. package/dist/poseMode/poseExitGuard.test.js +41 -0
  698. package/dist/poseMode/poseFrame.d.ts +11 -0
  699. package/dist/poseMode/poseFrame.d.ts.map +1 -0
  700. package/dist/poseMode/poseFrame.js +7 -0
  701. package/dist/poseMode/poseFrame.test.d.ts +2 -0
  702. package/dist/poseMode/poseFrame.test.d.ts.map +1 -0
  703. package/dist/poseMode/poseFrame.test.js +25 -0
  704. package/dist/poseMode/poseInterpolate.d.ts +4 -0
  705. package/dist/poseMode/poseInterpolate.d.ts.map +1 -0
  706. package/dist/poseMode/poseInterpolate.js +75 -0
  707. package/dist/poseMode/poseInterpolate.test.d.ts +2 -0
  708. package/dist/poseMode/poseInterpolate.test.d.ts.map +1 -0
  709. package/dist/poseMode/poseInterpolate.test.js +61 -0
  710. package/dist/poseMode/poseLibResolve.d.ts +9 -0
  711. package/dist/poseMode/poseLibResolve.d.ts.map +1 -0
  712. package/dist/poseMode/poseLibResolve.js +49 -0
  713. package/dist/poseMode/poseLibResolve.test.d.ts +2 -0
  714. package/dist/poseMode/poseLibResolve.test.d.ts.map +1 -0
  715. package/dist/poseMode/poseLibResolve.test.js +59 -0
  716. package/dist/poseMode/poseMigration.d.ts +5 -0
  717. package/dist/poseMode/poseMigration.d.ts.map +1 -0
  718. package/dist/poseMode/poseMigration.js +16 -0
  719. package/dist/poseMode/poseMigration.test.d.ts +2 -0
  720. package/dist/poseMode/poseMigration.test.d.ts.map +1 -0
  721. package/dist/poseMode/poseMigration.test.js +25 -0
  722. package/dist/poseMode/poseOptions.d.ts +45 -0
  723. package/dist/poseMode/poseOptions.d.ts.map +1 -0
  724. package/dist/poseMode/poseOptions.js +39 -0
  725. package/dist/poseMode/poseOptions.test.d.ts +2 -0
  726. package/dist/poseMode/poseOptions.test.d.ts.map +1 -0
  727. package/dist/poseMode/poseOptions.test.js +83 -0
  728. package/dist/poseMode/poseOverride.d.ts +13 -0
  729. package/dist/poseMode/poseOverride.d.ts.map +1 -0
  730. package/dist/poseMode/poseOverride.js +26 -0
  731. package/dist/poseMode/poseOverride.test.d.ts +2 -0
  732. package/dist/poseMode/poseOverride.test.d.ts.map +1 -0
  733. package/dist/poseMode/poseOverride.test.js +23 -0
  734. package/dist/poseMode/poseRetarget.d.ts +17 -0
  735. package/dist/poseMode/poseRetarget.d.ts.map +1 -0
  736. package/dist/poseMode/poseRetarget.js +53 -0
  737. package/dist/poseMode/poseRetarget.test.d.ts +2 -0
  738. package/dist/poseMode/poseRetarget.test.d.ts.map +1 -0
  739. package/dist/poseMode/poseRetarget.test.js +88 -0
  740. package/dist/poseMode/poseSession.d.ts +58 -0
  741. package/dist/poseMode/poseSession.d.ts.map +1 -0
  742. package/dist/poseMode/poseSession.js +183 -0
  743. package/dist/poseMode/poseSession.test.d.ts +2 -0
  744. package/dist/poseMode/poseSession.test.d.ts.map +1 -0
  745. package/dist/poseMode/poseSession.test.js +159 -0
  746. package/dist/poseMode/poseSessionHooks.test.d.ts +2 -0
  747. package/dist/poseMode/poseSessionHooks.test.d.ts.map +1 -0
  748. package/dist/poseMode/poseSessionHooks.test.js +49 -0
  749. package/dist/poseMode/poseTrack.d.ts +30 -0
  750. package/dist/poseMode/poseTrack.d.ts.map +1 -0
  751. package/dist/poseMode/poseTrack.js +155 -0
  752. package/dist/poseMode/poseTrack.test.d.ts +2 -0
  753. package/dist/poseMode/poseTrack.test.d.ts.map +1 -0
  754. package/dist/poseMode/poseTrack.test.js +84 -0
  755. package/dist/poseMode/poseValue.d.ts +22 -0
  756. package/dist/poseMode/poseValue.d.ts.map +1 -0
  757. package/dist/poseMode/poseValue.js +73 -0
  758. package/dist/poseMode/poseValue.test.d.ts +2 -0
  759. package/dist/poseMode/poseValue.test.d.ts.map +1 -0
  760. package/dist/poseMode/poseValue.test.js +62 -0
  761. package/dist/poseMode/savePose.d.ts +23 -0
  762. package/dist/poseMode/savePose.d.ts.map +1 -0
  763. package/dist/poseMode/savePose.js +29 -0
  764. package/dist/poseMode/selectionModes.d.ts +14 -0
  765. package/dist/poseMode/selectionModes.d.ts.map +1 -0
  766. package/dist/poseMode/selectionModes.js +39 -0
  767. package/dist/poseMode/selectionModes.test.d.ts +2 -0
  768. package/dist/poseMode/selectionModes.test.d.ts.map +1 -0
  769. package/dist/poseMode/selectionModes.test.js +91 -0
  770. package/dist/poseNameMessages.d.ts +13 -0
  771. package/dist/poseNameMessages.d.ts.map +1 -0
  772. package/dist/poseNameMessages.js +370 -0
  773. package/dist/poseNames.d.ts +14 -0
  774. package/dist/poseNames.d.ts.map +1 -0
  775. package/dist/poseNames.js +21 -0
  776. package/dist/poseNames.test.d.ts +2 -0
  777. package/dist/poseNames.test.d.ts.map +1 -0
  778. package/dist/poseNames.test.js +41 -0
  779. package/dist/poseStatusText.d.ts +2 -0
  780. package/dist/poseStatusText.d.ts.map +1 -0
  781. package/dist/poseStatusText.js +11 -0
  782. package/dist/poseStatusText.test.d.ts +2 -0
  783. package/dist/poseStatusText.test.d.ts.map +1 -0
  784. package/dist/poseStatusText.test.js +21 -0
  785. package/dist/presetThumbGeometry.d.ts +26 -0
  786. package/dist/presetThumbGeometry.d.ts.map +1 -0
  787. package/dist/presetThumbGeometry.js +103 -0
  788. package/dist/presetThumbGeometry.test.d.ts +2 -0
  789. package/dist/presetThumbGeometry.test.d.ts.map +1 -0
  790. package/dist/presetThumbGeometry.test.js +83 -0
  791. package/dist/selectionOutline.d.ts +42 -0
  792. package/dist/selectionOutline.d.ts.map +1 -0
  793. package/dist/selectionOutline.js +174 -0
  794. package/dist/selectionOutline.test.d.ts +2 -0
  795. package/dist/selectionOutline.test.d.ts.map +1 -0
  796. package/dist/selectionOutline.test.js +58 -0
  797. package/dist/smoke.test.d.ts +1 -0
  798. package/dist/smoke.test.d.ts.map +1 -0
  799. package/dist/smoke.test.js +17 -0
  800. package/dist/uiConfig.d.ts +16 -0
  801. package/dist/uiConfig.d.ts.map +1 -0
  802. package/dist/uiConfig.js +13 -0
  803. package/dist/uiConfig.test.d.ts +2 -0
  804. package/dist/uiConfig.test.d.ts.map +1 -0
  805. package/dist/uiConfig.test.js +98 -0
  806. package/dist/undoShortcuts.d.ts +28 -0
  807. package/dist/undoShortcuts.d.ts.map +1 -0
  808. package/dist/undoShortcuts.js +59 -0
  809. package/dist/undoShortcuts.test.d.ts +2 -0
  810. package/dist/undoShortcuts.test.d.ts.map +1 -0
  811. package/dist/undoShortcuts.test.js +37 -0
  812. package/dist/useCameraStudio.d.ts +3 -0
  813. package/dist/useCameraStudio.d.ts.map +1 -0
  814. package/dist/useCameraStudio.js +86 -0
  815. package/dist/version.d.ts +2 -0
  816. package/dist/version.d.ts.map +1 -0
  817. package/dist/version.js +11 -0
  818. package/dist/videoExport/BlobCollectSink.d.ts +25 -0
  819. package/dist/videoExport/BlobCollectSink.d.ts.map +1 -0
  820. package/dist/videoExport/BlobCollectSink.js +56 -0
  821. package/dist/videoExport/BlobCollectSink.test.d.ts +2 -0
  822. package/dist/videoExport/BlobCollectSink.test.d.ts.map +1 -0
  823. package/dist/videoExport/BlobCollectSink.test.js +78 -0
  824. package/dist/videoExport/encoder.d.ts +34 -0
  825. package/dist/videoExport/encoder.d.ts.map +1 -0
  826. package/dist/videoExport/encoder.js +61 -0
  827. package/dist/videoExport/encoder.test.d.ts +2 -0
  828. package/dist/videoExport/encoder.test.d.ts.map +1 -0
  829. package/dist/videoExport/encoder.test.js +21 -0
  830. package/dist/videoExport/exporter.d.ts +24 -0
  831. package/dist/videoExport/exporter.d.ts.map +1 -0
  832. package/dist/videoExport/exporter.js +74 -0
  833. package/dist/videoExport/sinks.d.ts +55 -0
  834. package/dist/videoExport/sinks.d.ts.map +1 -0
  835. package/dist/videoExport/sinks.js +69 -0
  836. package/package.json +59 -3
  837. package/README.md +0 -3
@@ -0,0 +1,128 @@
1
+ /**
2
+ * 瞄准/父级绑定的目标 id 方案与解析。
3
+ * id 取值:''(无)| anchor:<key>(独立锚点)| bone:<placement>#<part>(骨骼锚点)
4
+ * | model:<placementKey>(整个放置模型)| camera:<cameraKey>(拍摄相机)。
5
+ * 解析分两层:纯函数 resolveTargetObject(id, lookup) 供测试注入;
6
+ * resolveAimTarget / resolveAnchorParent 读运行时登记表,供帧驱动调用。
7
+ */
8
+ import { Vector3 } from 'three';
9
+ import type { Object3D } from 'three';
10
+ import type { BonePart } from './boneAnchors';
11
+ import type { ISheet } from '@dreamerbird/core';
12
+ import type { AnchorChildReset } from './anchorsRegistry';
13
+ export type TargetKind = 'anchor' | 'bone' | 'model' | 'camera';
14
+ export declare function parseTargetId(id: string): {
15
+ kind: 'anchor';
16
+ key: string;
17
+ } | {
18
+ kind: 'bone';
19
+ placementKey: string;
20
+ part: BonePart;
21
+ } | {
22
+ kind: 'model';
23
+ key: string;
24
+ } | {
25
+ kind: 'camera';
26
+ key: string;
27
+ } | null;
28
+ export declare function makeTargetId(kind: TargetKind, key: string, part?: BonePart): string;
29
+ /**
30
+ * 只探测不创建:sheet.object 会把不存在的对象顺手建出来。顶层扁平化
31
+ * (相机/模型不再套文件夹)后取名要与全场景对象防撞,靠它先问路径占用。
32
+ * 探测不到/注册表未建一律 false(对齐 aimTargetOptions 的 privateAPI 用法)
33
+ */
34
+ export declare function sheetObjectExists(sheet: ISheet, key: string): boolean;
35
+ export interface TargetLookup {
36
+ anchors: ReadonlyMap<string, Object3D>;
37
+ bones: ReadonlyMap<string, Object3D>;
38
+ models: ReadonlyMap<string, Object3D>;
39
+ cameras: ReadonlyMap<string, Object3D>;
40
+ }
41
+ export declare function resolveTargetObject(id: string, lookup: TargetLookup): Object3D | null;
42
+ /** 订阅登记表变更,返回退订函数 */
43
+ export declare function subscribeTargetRegistry(fn: () => void): () => void;
44
+ /** 登记表变更广播;各 register/unregister 路径在写表后调用 */
45
+ export declare function notifyTargetRegistryChange(): void;
46
+ export declare function registerAnchorObject(key: string, obj: Object3D | null): void;
47
+ export declare function getAnchorObjects(): ReadonlyMap<string, Object3D>;
48
+ /** Anchors 组件挂载时登记 home group;卸载清 null */
49
+ export declare function registerAnchorHome(obj: Object3D | null): void;
50
+ export declare function defaultTargetLookup(): TargetLookup;
51
+ export declare function resolveAimTarget(id: string): Object3D | null;
52
+ export declare function resolveAnchorParent(id: string): Object3D | null;
53
+ export declare function setAimOptionsSheet(sheet: ISheet | null): void;
54
+ export declare function aimTargetOptions(): {
55
+ [key: string]: string;
56
+ };
57
+ /**
58
+ * 「父级」下拉选项(锚点面板,按锚点 key 排除自己与后代防环)。
59
+ * 候选:其他锚点 + 拍摄相机 + 放置模型 + 骨骼锚点。
60
+ */
61
+ export declare function anchorParentOptionsFor(selfKey: string): {
62
+ [key: string]: string;
63
+ };
64
+ /** 环检测:candidate 沿父链向上能否到达 selfKey(candidate 是 self 的后代) */
65
+ export declare function isDescendantAnchor(selfKey: string, candidateKey: string, parentOf: (key: string) => string): boolean;
66
+ /** 世界坐标 → 父级局部偏移(纯函数,绑定/解绑定格用) */
67
+ export declare function localOffsetForParent(childWorld: Vector3, parentObj: Object3D, out: Vector3): Vector3;
68
+ /**
69
+ * 命令侧父级切换的定格计划(2026-10-19,Agent API F1 修复):
70
+ * anchors.setParent/clearParent 把坐标定格折进写 parent 的同一事务,
71
+ * 否则 AnchorObject 的看护 effect 会在属性变化后再补一笔定格提交——
72
+ * 两步撤销,undo 一次只回属性不回定格,锚点跳变(撤销陷阱,同
73
+ * removeAnchor/removePathFromRegistry 注释)。
74
+ *
75
+ * 同步读当前世界坐标,算出换父后 position 属性应取值(绑定=新父局部
76
+ * 偏移;解绑=世界坐标)。返回的 reparent 必须在事务提交后、同一调用栈
77
+ * 内执行:抢在包装器应用新 position 与看护 effect 之前完成换父,包装器
78
+ * 应用落在新父之下、世界坐标不变,看护的同值守卫看到 persisted==定格值
79
+ * 即跳过提交(只推进游标)。
80
+ *
81
+ * 返回 null = 锚点网格未登记(未挂载)或父级目标运行时对象未就绪
82
+ * (异步加载中)——调用方按 INVALID_STATE 拒绝(可重试),不写半悬挂
83
+ * 状态。
84
+ */
85
+ export declare function planAnchorParentFreeze(key: string, parentId: string): {
86
+ position: {
87
+ x: number;
88
+ y: number;
89
+ z: number;
90
+ };
91
+ reparent: () => void;
92
+ } | null;
93
+ /**
94
+ * 锚点卸载时脱离命令式父级(骨骼/模型上的锚点被删的清理)。
95
+ * fiber v9 卸载按 JSX 父实例 remove,对换父后的网格是 no-op,不脱离会
96
+ * 残留在场景里,可见不可选,绑骨骼上还会跟随动画。
97
+ * 注意:passive useEffect cleanup 执行时 React 已把 ref 置 null
98
+ * (实测 React 19.2.8,layout cleanup 才保有),调用方必须在 effect
99
+ * 体内捕获 mesh 传进来。
100
+ */
101
+ export declare function detachAnchorMesh(mesh: Object3D | null): void;
102
+ /**
103
+ * 绑定重试循环的判定:有父级目标、且本会话尚未对当前 parentId 绑定
104
+ * 成功。刷新/撤销恢复的持久绑定在异步目标(放置模型/骨骼锚点,
105
+ * Suspense 加载完才注册)就绪前一直满足本条件,由 useFrame 每帧补建;
106
+ * 建立成功后写入 boundParentId,不再重试。
107
+ */
108
+ export declare function needsParentEstablish(boundParentId: string | null, parentId: string): boolean;
109
+ /**
110
+ * 父级消失看护的清除判定:本会话曾对当前 parentId 绑定成功、且此刻
111
+ * 解析不到 → 允许「清除 parent + 定格世界坐标」。从未绑定成功过的
112
+ * 父级(刷新恢复/加载中)判 false:不清不定格,交给重试循环直到建立
113
+ * ——否则异步目标加载完成前的空窗会被误当「父级消失」,持久绑定被清掉。
114
+ */
115
+ export declare function shouldClearMissingParent(boundParentId: string | null, parentId: string, resolvable: boolean): boolean;
116
+ /**
117
+ * 删除锚点前收集以它为父级的子锚点(连同世界定格),交给
118
+ * anchorsRegistry.removeAnchor 折进删除的同一事务(同
119
+ * collectBoundCameraResets 对路径删除的作用;撤销陷阱见
120
+ * pathRegistry.removePathFromRegistry 注释)。
121
+ *
122
+ * 只探测不创建:子锚点对象经内部对象表 peek(getObject 不创建),
123
+ * 世界定格读运行时登记表(anchorObjects)的节点。节点缺失(未挂载)
124
+ * 的子锚点跳过——局部偏移没有世界定格可写,持久绑定留给挂载后的
125
+ * 重试/看护处理。
126
+ */
127
+ export declare function collectAnchorChildResets(sheet: ISheet, parentKey: string): AnchorChildReset[];
128
+ //# sourceMappingURL=aimTargets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aimTargets.d.ts","sourceRoot":"","sources":["../src/aimTargets.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,OAAO,EAAU,OAAO,EAAC,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAA;AASnC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AAQ3C,OAAO,KAAK,EAAC,MAAM,EAAe,MAAM,mBAAmB,CAAA;AAE3D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAI/D,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,GAER;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GAC7B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GACpD;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GAC5B;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GAC7B,IAAI,CAcP;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,QAAQ,GACd,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAMrE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACpC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CACvC;AAED,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,YAAY,GACnB,QAAQ,GAAG,IAAI,CAgBjB;AAaD,qBAAqB;AACrB,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKlE;AAED,6CAA6C;AAC7C,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAI5E;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAEhE;AASD,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAE7D;AAED,wBAAgB,mBAAmB,IAAI,YAAY,CAOlD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAE/D;AAQD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE7D;AAED,wBAAgB,gBAAgB,IAAI;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,CA2B1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB,CA6DA;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAChC,OAAO,CAST;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,QAAQ,EACnB,GAAG,EAAE,OAAO,GACX,OAAO,CAIT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf;IAAC,QAAQ,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAC,GAAG,IAAI,CAuB5E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,GAClB,OAAO,CAET;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,gBAAgB,EAAE,CAkBpB"}
@@ -0,0 +1,367 @@
1
+ // packages/camera-studio/src/aimTargets.ts
2
+ /**
3
+ * 瞄准/父级绑定的目标 id 方案与解析。
4
+ * id 取值:''(无)| anchor:<key>(独立锚点)| bone:<placement>#<part>(骨骼锚点)
5
+ * | model:<placementKey>(整个放置模型)| camera:<cameraKey>(拍摄相机)。
6
+ * 解析分两层:纯函数 resolveTargetObject(id, lookup) 供测试注入;
7
+ * resolveAimTarget / resolveAnchorParent 读运行时登记表,供帧驱动调用。
8
+ */
9
+ import { Matrix4, Vector3 } from 'three';
10
+ import { translate } from '@dreamerbird/studio/i18n';
11
+ import { val } from '@dreamerbird/core';
12
+ import { privateAPI } from '@dreamerbird/core/privateAPIs';
13
+ import { getBoneAnchorObjects, makeBoneAnchorId, parseBoneAnchorId, } from './boneAnchors';
14
+ import { getPlacedInstances, readPlacementEntries } from './PlacementManager';
15
+ import { cameraDisplayName, getCamerasRegistry, getShotCameraObjects, readCameraEntries, } from './cameraRegistry';
16
+ import { getAnchorsRegistry, readAnchorKeys } from './anchorsRegistry';
17
+ const KIND_PREFIXES = ['anchor', 'bone', 'model', 'camera'];
18
+ export function parseTargetId(id) {
19
+ if (id === '')
20
+ return null;
21
+ const bone = parseBoneAnchorId(id);
22
+ if (bone)
23
+ return { kind: 'bone', ...bone };
24
+ const colon = id.indexOf(':');
25
+ if (colon <= 0)
26
+ return null;
27
+ const kind = id.slice(0, colon);
28
+ const key = id.slice(colon + 1);
29
+ if (!KIND_PREFIXES.includes(kind) || !key)
30
+ return null;
31
+ if (kind === 'bone')
32
+ return null; // 已被 parseBoneAnchorId 拦截,带 # 校验
33
+ return { kind, key };
34
+ }
35
+ export function makeTargetId(kind, key, part) {
36
+ if (kind === 'bone')
37
+ return makeBoneAnchorId(key, part);
38
+ return `${kind}:${key}`;
39
+ }
40
+ /**
41
+ * 只探测不创建:sheet.object 会把不存在的对象顺手建出来。顶层扁平化
42
+ * (相机/模型不再套文件夹)后取名要与全场景对象防撞,靠它先问路径占用。
43
+ * 探测不到/注册表未建一律 false(对齐 aimTargetOptions 的 privateAPI 用法)
44
+ */
45
+ export function sheetObjectExists(sheet, key) {
46
+ try {
47
+ return Boolean(privateAPI(sheet).getObject(key));
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ export function resolveTargetObject(id, lookup) {
54
+ const parsed = parseTargetId(id);
55
+ if (!parsed)
56
+ return null;
57
+ switch (parsed.kind) {
58
+ case 'anchor':
59
+ return lookup.anchors.get(parsed.key) ?? null;
60
+ case 'bone':
61
+ return (lookup.bones.get(makeBoneAnchorId(parsed.placementKey, parsed.part)) ??
62
+ null);
63
+ case 'model':
64
+ return lookup.models.get(parsed.key) ?? null;
65
+ case 'camera':
66
+ return lookup.cameras.get(parsed.key) ?? null;
67
+ }
68
+ }
69
+ /** 独立锚点的 theatreKey → 场景网格(Anchors 组件登记) */
70
+ const anchorObjects = new Map();
71
+ /**
72
+ * 运行时目标登记表(锚点/相机,bones/placedInstances 在 Task 8 接线)
73
+ * 的变更订阅:挂载登记/卸载注销时广播。ShotCamera 订阅后重渲染,
74
+ * 持久态 aimTarget 指向的目标在目标挂载登记瞬间 tracking 立即翻正,
75
+ * 不等到无关重渲染;目标被删同理即时回退自由朝向(规格§4)。
76
+ */
77
+ const targetRegistryListeners = new Set();
78
+ /** 订阅登记表变更,返回退订函数 */
79
+ export function subscribeTargetRegistry(fn) {
80
+ targetRegistryListeners.add(fn);
81
+ return () => {
82
+ targetRegistryListeners.delete(fn);
83
+ };
84
+ }
85
+ /** 登记表变更广播;各 register/unregister 路径在写表后调用 */
86
+ export function notifyTargetRegistryChange() {
87
+ for (const fn of targetRegistryListeners)
88
+ fn();
89
+ }
90
+ export function registerAnchorObject(key, obj) {
91
+ if (obj)
92
+ anchorObjects.set(key, obj);
93
+ else
94
+ anchorObjects.delete(key);
95
+ notifyTargetRegistryChange();
96
+ }
97
+ export function getAnchorObjects() {
98
+ return anchorObjects;
99
+ }
100
+ /**
101
+ * 锚点网格的「娘家」挂载点(Anchors 组件的 home group):解绑/父级消失
102
+ * 时挂回这里。命令侧(anchors.clearParent)同步换父也需要它,故随
103
+ * Anchors 挂载登记进模块级(单页单场景,同 anchorObjects)。
104
+ */
105
+ let anchorHome = null;
106
+ /** Anchors 组件挂载时登记 home group;卸载清 null */
107
+ export function registerAnchorHome(obj) {
108
+ anchorHome = obj;
109
+ }
110
+ export function defaultTargetLookup() {
111
+ return {
112
+ anchors: anchorObjects,
113
+ bones: getBoneAnchorObjects(),
114
+ models: getPlacedInstances(),
115
+ cameras: getShotCameraObjects(),
116
+ };
117
+ }
118
+ export function resolveAimTarget(id) {
119
+ return resolveTargetObject(id, defaultTargetLookup());
120
+ }
121
+ export function resolveAnchorParent(id) {
122
+ return resolveTargetObject(id, defaultTargetLookup());
123
+ }
124
+ /**
125
+ * 「瞄准目标」下拉选项(模块级,studio 面板渲染时调用)。
126
+ * 「无」+ 独立锚点(经 optionsSheet 读 Anchors 注册表,Task 6 落地,
127
+ * 未落地前退化为空)+ 骨骼锚点(遍历运行时表,Task 8 接入数据)。
128
+ */
129
+ let optionsSheet = null;
130
+ export function setAimOptionsSheet(sheet) {
131
+ optionsSheet = sheet;
132
+ }
133
+ export function aimTargetOptions() {
134
+ const options = { '': translate('pg.props.aimNone') };
135
+ if (!optionsSheet)
136
+ return options;
137
+ try {
138
+ for (const key of readAnchorKeys(getAnchorsRegistry(optionsSheet))) {
139
+ options[makeTargetId('anchor', key)] = key;
140
+ }
141
+ }
142
+ catch {
143
+ // Anchors 注册表尚未创建:跳过
144
+ }
145
+ // 骨骼锚点按模型分组:bone:<placement>#part → "<模型显示名> · <部位名>"
146
+ const byPlacement = new Map();
147
+ for (const id of getBoneAnchorObjects().keys()) {
148
+ const parsed = parseBoneAnchorId(id);
149
+ if (!parsed)
150
+ continue;
151
+ const list = byPlacement.get(parsed.placementKey) ?? [];
152
+ list.push(parsed.part);
153
+ byPlacement.set(parsed.placementKey, list);
154
+ }
155
+ for (const [placementKey, parts] of byPlacement) {
156
+ const modelName = placementDisplayName(optionsSheet, placementKey);
157
+ for (const part of parts) {
158
+ options[makeTargetId('bone', placementKey, part)] =
159
+ `${modelName} · ${translate(`pg.parts.${part}`)}`;
160
+ }
161
+ }
162
+ return options;
163
+ }
164
+ /**
165
+ * 「父级」下拉选项(锚点面板,按锚点 key 排除自己与后代防环)。
166
+ * 候选:其他锚点 + 拍摄相机 + 放置模型 + 骨骼锚点。
167
+ */
168
+ export function anchorParentOptionsFor(selfKey) {
169
+ const options = {
170
+ '': translate('pg.props.parentNone'),
171
+ };
172
+ if (!optionsSheet)
173
+ return options;
174
+ const sheet = optionsSheet;
175
+ const parentOf = (key) => {
176
+ try {
177
+ // 只探测不创建:sheet.object 会把不存在的对象顺手建出来
178
+ // (对齐 CameraPath.pathExists 的 privateAPI 用法)
179
+ const obj = privateAPI(sheet).getObject(key);
180
+ return obj ? val(obj.props.parent) ?? '' : '';
181
+ }
182
+ catch {
183
+ return '';
184
+ }
185
+ };
186
+ try {
187
+ for (const key of readAnchorKeys(getAnchorsRegistry(sheet))) {
188
+ if (key === selfKey)
189
+ continue;
190
+ if (isDescendantAnchor(selfKey, key, parentOf))
191
+ continue;
192
+ options[makeTargetId('anchor', key)] = key;
193
+ }
194
+ }
195
+ catch {
196
+ // 注册表未建
197
+ }
198
+ try {
199
+ for (const entry of readCameraEntries(getCamerasRegistry(sheet))) {
200
+ options[makeTargetId('camera', entry.cameraKey)] = cameraDisplayName(entry.cameraKey);
201
+ }
202
+ }
203
+ catch {
204
+ // 相机注册表未建
205
+ }
206
+ try {
207
+ for (const entry of readPlacementEntries(sheet)) {
208
+ options[makeTargetId('model', entry.key)] = entry.key.replace(/^Models \/ /, '');
209
+ }
210
+ }
211
+ catch {
212
+ // 放置注册表未建
213
+ }
214
+ // 骨骼锚点(分组同 aimTargetOptions)
215
+ const byPlacement = new Map();
216
+ for (const id of getBoneAnchorObjects().keys()) {
217
+ const parsed = parseBoneAnchorId(id);
218
+ if (!parsed)
219
+ continue;
220
+ const list = byPlacement.get(parsed.placementKey) ?? [];
221
+ list.push(parsed.part);
222
+ byPlacement.set(parsed.placementKey, list);
223
+ }
224
+ for (const [placementKey, parts] of byPlacement) {
225
+ const modelName = placementDisplayName(sheet, placementKey);
226
+ for (const part of parts) {
227
+ options[makeTargetId('bone', placementKey, part)] =
228
+ `${modelName} · ${translate(`pg.parts.${part}`)}`;
229
+ }
230
+ }
231
+ return options;
232
+ }
233
+ /** 环检测:candidate 沿父链向上能否到达 selfKey(candidate 是 self 的后代) */
234
+ export function isDescendantAnchor(selfKey, candidateKey, parentOf) {
235
+ let cur = parentOf(candidateKey);
236
+ let guard = 0;
237
+ while (cur && guard++ < 100) {
238
+ if (cur === `anchor:${selfKey}`)
239
+ return true;
240
+ const parsed = parseTargetId(cur);
241
+ cur = parsed && parsed.kind === 'anchor' ? parentOf(parsed.key) : '';
242
+ }
243
+ return false;
244
+ }
245
+ /** 世界坐标 → 父级局部偏移(纯函数,绑定/解绑定格用) */
246
+ export function localOffsetForParent(childWorld, parentObj, out) {
247
+ parentObj.updateWorldMatrix(true, false);
248
+ const inv = new Matrix4().copy(parentObj.matrixWorld).invert();
249
+ return out.copy(childWorld).applyMatrix4(inv);
250
+ }
251
+ /**
252
+ * 命令侧父级切换的定格计划(2026-10-19,Agent API F1 修复):
253
+ * anchors.setParent/clearParent 把坐标定格折进写 parent 的同一事务,
254
+ * 否则 AnchorObject 的看护 effect 会在属性变化后再补一笔定格提交——
255
+ * 两步撤销,undo 一次只回属性不回定格,锚点跳变(撤销陷阱,同
256
+ * removeAnchor/removePathFromRegistry 注释)。
257
+ *
258
+ * 同步读当前世界坐标,算出换父后 position 属性应取值(绑定=新父局部
259
+ * 偏移;解绑=世界坐标)。返回的 reparent 必须在事务提交后、同一调用栈
260
+ * 内执行:抢在包装器应用新 position 与看护 effect 之前完成换父,包装器
261
+ * 应用落在新父之下、世界坐标不变,看护的同值守卫看到 persisted==定格值
262
+ * 即跳过提交(只推进游标)。
263
+ *
264
+ * 返回 null = 锚点网格未登记(未挂载)或父级目标运行时对象未就绪
265
+ * (异步加载中)——调用方按 INVALID_STATE 拒绝(可重试),不写半悬挂
266
+ * 状态。
267
+ */
268
+ export function planAnchorParentFreeze(key, parentId) {
269
+ const node = anchorObjects.get(key);
270
+ if (!node)
271
+ return null;
272
+ const world = node.getWorldPosition(new Vector3());
273
+ if (parentId === '') {
274
+ const home = anchorHome;
275
+ if (!home)
276
+ return null;
277
+ return {
278
+ position: { x: world.x, y: world.y, z: world.z },
279
+ reparent: () => {
280
+ home.add(node);
281
+ },
282
+ };
283
+ }
284
+ const parentObj = resolveAnchorParent(parentId);
285
+ if (!parentObj)
286
+ return null;
287
+ const local = localOffsetForParent(world, parentObj, new Vector3());
288
+ return {
289
+ position: { x: local.x, y: local.y, z: local.z },
290
+ reparent: () => {
291
+ parentObj.add(node);
292
+ },
293
+ };
294
+ }
295
+ /**
296
+ * 锚点卸载时脱离命令式父级(骨骼/模型上的锚点被删的清理)。
297
+ * fiber v9 卸载按 JSX 父实例 remove,对换父后的网格是 no-op,不脱离会
298
+ * 残留在场景里,可见不可选,绑骨骼上还会跟随动画。
299
+ * 注意:passive useEffect cleanup 执行时 React 已把 ref 置 null
300
+ * (实测 React 19.2.8,layout cleanup 才保有),调用方必须在 effect
301
+ * 体内捕获 mesh 传进来。
302
+ */
303
+ export function detachAnchorMesh(mesh) {
304
+ mesh?.removeFromParent();
305
+ }
306
+ /**
307
+ * 绑定重试循环的判定:有父级目标、且本会话尚未对当前 parentId 绑定
308
+ * 成功。刷新/撤销恢复的持久绑定在异步目标(放置模型/骨骼锚点,
309
+ * Suspense 加载完才注册)就绪前一直满足本条件,由 useFrame 每帧补建;
310
+ * 建立成功后写入 boundParentId,不再重试。
311
+ */
312
+ export function needsParentEstablish(boundParentId, parentId) {
313
+ return parentId !== '' && boundParentId !== parentId;
314
+ }
315
+ /**
316
+ * 父级消失看护的清除判定:本会话曾对当前 parentId 绑定成功、且此刻
317
+ * 解析不到 → 允许「清除 parent + 定格世界坐标」。从未绑定成功过的
318
+ * 父级(刷新恢复/加载中)判 false:不清不定格,交给重试循环直到建立
319
+ * ——否则异步目标加载完成前的空窗会被误当「父级消失」,持久绑定被清掉。
320
+ */
321
+ export function shouldClearMissingParent(boundParentId, parentId, resolvable) {
322
+ return parentId !== '' && boundParentId === parentId && !resolvable;
323
+ }
324
+ /**
325
+ * 删除锚点前收集以它为父级的子锚点(连同世界定格),交给
326
+ * anchorsRegistry.removeAnchor 折进删除的同一事务(同
327
+ * collectBoundCameraResets 对路径删除的作用;撤销陷阱见
328
+ * pathRegistry.removePathFromRegistry 注释)。
329
+ *
330
+ * 只探测不创建:子锚点对象经内部对象表 peek(getObject 不创建),
331
+ * 世界定格读运行时登记表(anchorObjects)的节点。节点缺失(未挂载)
332
+ * 的子锚点跳过——局部偏移没有世界定格可写,持久绑定留给挂载后的
333
+ * 重试/看护处理。
334
+ */
335
+ export function collectAnchorChildResets(sheet, parentKey) {
336
+ const parentId = makeTargetId('anchor', parentKey);
337
+ const resets = [];
338
+ for (const key of readAnchorKeys(getAnchorsRegistry(sheet))) {
339
+ if (key === parentKey)
340
+ continue;
341
+ const node = anchorObjects.get(key);
342
+ if (!node)
343
+ continue;
344
+ const internal = privateAPI(sheet).getObject(key);
345
+ const obj = (internal?.publicApi ?? undefined);
346
+ if (!obj)
347
+ continue;
348
+ const parent = val(obj.props.parent) ?? '';
349
+ if (parent !== parentId)
350
+ continue;
351
+ const world = node.getWorldPosition(new Vector3());
352
+ resets.push({ obj, freeze: { x: world.x, y: world.y, z: world.z } });
353
+ }
354
+ return resets;
355
+ }
356
+ /** 从放置注册表反查模型显示名;放置注册表未建好时回退原 key */
357
+ function placementDisplayName(sheet, placementKey) {
358
+ try {
359
+ const entry = readPlacementEntries(sheet).find((e) => e.key === placementKey);
360
+ if (entry)
361
+ return entry.key.replace(/^Models \/ /, '');
362
+ }
363
+ catch {
364
+ // 放置注册表尚未创建
365
+ }
366
+ return placementKey;
367
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=aimTargets.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aimTargets.test.d.ts","sourceRoot":"","sources":["../src/aimTargets.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ // packages/camera-studio/src/aimTargets.test.ts
2
+ import { Object3D } from 'three';
3
+ import { registerMessages, translate } from '@dreamerbird/studio/i18n';
4
+ import { parseTargetId, makeTargetId, resolveTargetObject, registerAnchorObject, getAnchorObjects, aimTargetOptions, } from './aimTargets';
5
+ import { makeBoneAnchorId } from './boneAnchors';
6
+ function emptyLookup() {
7
+ return {
8
+ anchors: new Map(),
9
+ bones: new Map(),
10
+ models: new Map(),
11
+ cameras: new Map(),
12
+ };
13
+ }
14
+ describe('parseTargetId / makeTargetId', () => {
15
+ test('四种 kind 互逆', () => {
16
+ expect(parseTargetId('')).toBeNull();
17
+ expect(makeTargetId('anchor', 'Anchor 1')).toBe('anchor:Anchor 1');
18
+ expect(parseTargetId('anchor:Anchor 1')).toEqual({
19
+ kind: 'anchor',
20
+ key: 'Anchor 1',
21
+ });
22
+ expect(makeTargetId('model', 'Models / Y Bot')).toBe('model:Models / Y Bot');
23
+ expect(parseTargetId('model:Models / Y Bot')).toEqual({
24
+ kind: 'model',
25
+ key: 'Models / Y Bot',
26
+ });
27
+ expect(makeTargetId('camera', 'Shot Camera / Camera')).toBe('camera:Shot Camera / Camera');
28
+ expect(parseTargetId('camera:Shot Camera / Camera')).toEqual({
29
+ kind: 'camera',
30
+ key: 'Shot Camera / Camera',
31
+ });
32
+ const boneId = makeBoneAnchorId('Models / Y Bot', 'head');
33
+ expect(parseTargetId(boneId)).toEqual({
34
+ kind: 'bone',
35
+ placementKey: 'Models / Y Bot',
36
+ part: 'head',
37
+ });
38
+ expect(makeTargetId('bone', 'Models / Y Bot', 'head')).toBe(boneId);
39
+ });
40
+ test('坏 id 返回 null', () => {
41
+ expect(parseTargetId('nonsense')).toBeNull();
42
+ expect(parseTargetId('anchor:')).toBeNull();
43
+ expect(parseTargetId('bone:k#nope')).toBeNull();
44
+ });
45
+ });
46
+ describe('resolveTargetObject', () => {
47
+ test('按 kind 查对应表;空 id 与解析失败都是 null', () => {
48
+ const anchorObj = new Object3D();
49
+ const boneObj = new Object3D();
50
+ const modelObj = new Object3D();
51
+ const camObj = new Object3D();
52
+ const lookup = emptyLookup();
53
+ lookup.anchors.set('Anchor 1', anchorObj);
54
+ lookup.bones.set(makeBoneAnchorId('M1', 'handL'), boneObj);
55
+ lookup.models.set('M1', modelObj);
56
+ lookup.cameras.set('C1', camObj);
57
+ expect(resolveTargetObject('', lookup)).toBeNull();
58
+ expect(resolveTargetObject('anchor:Anchor 1', lookup)).toBe(anchorObj);
59
+ expect(resolveTargetObject(makeBoneAnchorId('M1', 'handL'), lookup)).toBe(boneObj);
60
+ expect(resolveTargetObject('model:M1', lookup)).toBe(modelObj);
61
+ expect(resolveTargetObject('camera:C1', lookup)).toBe(camObj);
62
+ expect(resolveTargetObject('anchor:不存在', lookup)).toBeNull();
63
+ });
64
+ });
65
+ describe('registerAnchorObject', () => {
66
+ test('登记/覆盖/注销(null)', () => {
67
+ const obj = new Object3D();
68
+ registerAnchorObject('Anchor 1', obj);
69
+ expect(getAnchorObjects().get('Anchor 1')).toBe(obj);
70
+ registerAnchorObject('Anchor 1', null);
71
+ expect(getAnchorObjects().size).toBe(0);
72
+ });
73
+ });
74
+ describe('aimTargetOptions', () => {
75
+ // 选项函数读运行时登记表;此处只验证纯函数层:未注入 sheet 时
76
+ // 只有「无」一项(锚点/骨骼注册表的读取在注入后才有候选,Task 8
77
+ // 统一浏览器冒烟)。动态选项组装依赖 studio 面板渲染上下文,
78
+ // 不进单元测试。
79
+ test('未注入 sheet 时只有「无」一项', () => {
80
+ registerMessages('en', { 'pg.props.aimNone': 'None' });
81
+ registerMessages('zh-CN', { 'pg.props.aimNone': '无' });
82
+ expect(aimTargetOptions()).toEqual({ '': translate('pg.props.aimNone') });
83
+ });
84
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=anchorParenting.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchorParenting.test.d.ts","sourceRoot":"","sources":["../src/anchorParenting.test.ts"],"names":[],"mappings":""}