@fps-games/editor 0.1.5-beta.4 → 0.1.6-beta.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 (218) hide show
  1. package/dist/build-info.json +16 -16
  2. package/dist/local-editor-agent-actions.d.ts +8 -1
  3. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  4. package/dist/local-editor-agent-actions.js +171 -12
  5. package/dist/local-editor-agent-actions.js.map +1 -1
  6. package/dist/local-editor-agent-context.d.ts +29 -1
  7. package/dist/local-editor-agent-context.d.ts.map +1 -1
  8. package/dist/local-editor-agent-context.js +403 -0
  9. package/dist/local-editor-agent-context.js.map +1 -1
  10. package/dist/local-editor-harness.d.ts +103 -5
  11. package/dist/local-editor-harness.d.ts.map +1 -1
  12. package/dist/local-editor-harness.js +1982 -101
  13. package/dist/local-editor-harness.js.map +1 -1
  14. package/dist/local-editor-marker-graph.d.ts +92 -0
  15. package/dist/local-editor-marker-graph.d.ts.map +1 -0
  16. package/dist/local-editor-marker-graph.js +1432 -0
  17. package/dist/local-editor-marker-graph.js.map +1 -0
  18. package/dist/local-editor-performance-stats.js +1 -1
  19. package/dist/local-editor-performance-stats.js.map +1 -1
  20. package/dist/playable-babylon-facade.d.ts +2 -2
  21. package/dist/playable-babylon-facade.d.ts.map +1 -1
  22. package/dist/playable-babylon-facade.js +1 -1
  23. package/dist/playable-babylon-facade.js.map +1 -1
  24. package/dist/playable-local-editor-host.d.ts +52 -7
  25. package/dist/playable-local-editor-host.d.ts.map +1 -1
  26. package/dist/playable-local-editor-host.js +23 -1
  27. package/dist/playable-local-editor-host.js.map +1 -1
  28. package/dist/playable-sdk.d.ts +4 -2
  29. package/dist/playable-sdk.d.ts.map +1 -1
  30. package/dist/playable-sdk.js +2 -1
  31. package/dist/playable-sdk.js.map +1 -1
  32. package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
  33. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.d.ts.map +1 -1
  34. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +11 -0
  35. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  36. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.d.ts +3 -1
  37. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.d.ts.map +1 -1
  38. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js +114 -18
  39. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  40. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts +1 -0
  41. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts.map +1 -1
  42. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js +3 -0
  43. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  44. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +3 -0
  45. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  46. package/node_modules/@fps-games/editor-babylon/dist/index.js +3 -0
  47. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  48. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.d.ts +52 -0
  49. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.d.ts.map +1 -0
  50. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js +1395 -0
  51. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -0
  52. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts.map +1 -1
  53. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js +4 -65
  54. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  55. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts +28 -0
  56. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -0
  57. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +235 -0
  58. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -0
  59. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +37 -0
  60. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +1 -0
  61. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +451 -0
  62. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -0
  63. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.d.ts.map +1 -1
  64. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +24 -10
  65. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  66. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.d.ts +1 -0
  67. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.d.ts.map +1 -1
  68. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js +20 -4
  69. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
  70. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.d.ts +9 -0
  71. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.d.ts.map +1 -0
  72. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js +64 -0
  73. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -0
  74. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +44 -1
  75. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  76. package/node_modules/@fps-games/editor-babylon/dist/projection.js +311 -70
  77. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  78. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  79. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +5 -2
  80. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  81. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  82. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  83. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +5 -0
  84. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -0
  85. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +23 -0
  86. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -0
  87. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +1 -1
  88. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +69 -0
  89. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  90. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +1 -1
  91. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +1 -0
  92. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
  93. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -0
  94. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  95. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +38 -1
  96. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  97. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +1 -1
  98. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
  99. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  100. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +8 -2
  101. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  102. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  103. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  104. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +7 -0
  105. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  106. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js +1 -1
  107. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  108. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +4 -0
  109. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  110. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +1471 -29
  111. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  112. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +52 -0
  113. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -0
  114. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +131 -0
  115. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -0
  116. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts +1 -1
  117. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
  118. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
  119. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +9 -2
  120. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  121. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +234 -3
  122. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  123. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +10 -1
  124. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  125. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +3 -1
  126. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  127. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +4 -3
  128. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  129. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +1274 -55
  130. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  131. package/node_modules/@fps-games/editor-browser/package.json +3 -3
  132. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -1
  133. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  134. package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts +2 -0
  135. package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts.map +1 -1
  136. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js +1 -0
  137. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  138. package/node_modules/@fps-games/editor-core/package.json +2 -2
  139. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  140. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
  141. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +17 -3
  142. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  143. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
  144. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +2 -1
  145. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  146. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.d.ts +3 -2
  147. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.d.ts.map +1 -1
  148. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.d.ts +1 -0
  149. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.d.ts.map +1 -1
  150. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js +68 -2
  151. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  152. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.d.ts +1 -1
  153. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.d.ts.map +1 -1
  154. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js +1 -1
  155. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
  156. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +56 -1
  157. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  158. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +531 -0
  159. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  160. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +103 -2
  161. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
  162. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts +1 -1
  163. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts.map +1 -1
  164. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js +1 -1
  165. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  166. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.d.ts.map +1 -1
  167. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js +9 -1
  168. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  169. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts +1 -0
  170. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts.map +1 -1
  171. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js +3 -0
  172. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  173. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  174. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +3 -7
  175. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  176. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
  177. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +6 -0
  178. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  179. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +2 -10
  180. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
  181. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
  182. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +8 -0
  183. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  184. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  185. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +66 -31
  186. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  187. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +2 -1
  188. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
  189. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.d.ts.map +1 -1
  190. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +40 -2
  191. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  192. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.d.ts +1 -0
  193. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.d.ts.map +1 -1
  194. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js +20 -0
  195. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  196. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
  197. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +68 -27
  198. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  199. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.d.ts.map +1 -1
  200. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js +7 -4
  201. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  202. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.d.ts.map +1 -1
  203. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js +2 -1
  204. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
  205. package/node_modules/@fps-games/editor-playable-sdk/package.json +3 -3
  206. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +57 -3
  207. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +1 -1
  208. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  209. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +19 -0
  210. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  211. package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
  212. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  213. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.d.ts +128 -0
  214. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.d.ts.map +1 -0
  215. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js +2 -0
  216. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -0
  217. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  218. package/package.json +8 -8
@@ -0,0 +1,451 @@
1
+ const MAIN_CAMERA_LAYER_MASK = 0x0fffffff;
2
+ const MESH_CLONE_LAYER_MASK = 0x10000000;
3
+ const INSTANCED_MESH_LAYER_MASK = 0x20000000;
4
+ const COMPARISON_LAYER_MASK = MESH_CLONE_LAYER_MASK | INSTANCED_MESH_LAYER_MASK;
5
+ const ORBIT_POINTER_PIXEL_TO_RADIAN = 0.008;
6
+ const ZOOM_WHEEL_DELTA_TO_SCALE = 0.0012;
7
+ export function createBabylonPrefabComparisonPreviewController(options) {
8
+ const cameras = new Map();
9
+ const viewState = createInitialComparisonViewState();
10
+ let active = false;
11
+ let disposed = false;
12
+ let savedActiveCamera = null;
13
+ let savedActiveCameras;
14
+ let savedEditorCameraLayerMask = null;
15
+ let savedEditorCameraViewport = null;
16
+ let savedSkyLayerMask = null;
17
+ function sync(surfaces) {
18
+ if (disposed)
19
+ return false;
20
+ const canvasRect = readRenderCanvasRect(options.scene);
21
+ if (!canvasRect || surfaces.length === 0)
22
+ return clear({ resetViewState: false });
23
+ const visibleProjectionIds = new Set();
24
+ let changed = false;
25
+ for (const surface of surfaces) {
26
+ const projectedNode = options.projection.getProjectedNode(surface.projectionNodeId);
27
+ const viewport = resolveSurfaceViewport(surface.rect, canvasRect);
28
+ const layerMask = resolveComparisonLayerMask(surface);
29
+ if (!projectedNode || !viewport || layerMask == null)
30
+ continue;
31
+ const fit = resolveProjectionFit(options.babylon, projectedNode);
32
+ visibleProjectionIds.add(surface.projectionNodeId);
33
+ applyProjectionLayerMask(projectedNode, layerMask);
34
+ const existing = cameras.get(surface.projectionNodeId);
35
+ const cameraState = ensureCamera(surface, layerMask);
36
+ if (!cameraState)
37
+ continue;
38
+ if (!existing)
39
+ changed = true;
40
+ if (cameraState.layerMask !== layerMask)
41
+ changed = true;
42
+ if (!viewportsEqual(cameraState.viewport, viewport))
43
+ changed = true;
44
+ cameraState.projectionNodeId = surface.projectionNodeId;
45
+ cameraState.layerMask = layerMask;
46
+ cameraState.viewport = viewport;
47
+ if (!vectorsEqual(cameraState.target, fit.target))
48
+ changed = true;
49
+ if (Math.abs(cameraState.requiredRadius - fit.requiredRadius) > 0.0001)
50
+ changed = true;
51
+ cameraState.target = fit.target;
52
+ cameraState.requiredRadius = fit.requiredRadius;
53
+ cameraState.camera.layerMask = layerMask;
54
+ applyCameraViewport(options.babylon, cameraState.camera, viewport);
55
+ }
56
+ for (const [projectionNodeId, cameraState] of cameras) {
57
+ if (visibleProjectionIds.has(projectionNodeId))
58
+ continue;
59
+ cameraState.camera.dispose?.();
60
+ cameras.delete(projectionNodeId);
61
+ changed = true;
62
+ }
63
+ if (cameras.size === 0)
64
+ return clear() || changed;
65
+ if (syncSharedComparisonViewState())
66
+ changed = true;
67
+ applyComparisonCameraFrames();
68
+ if (!active)
69
+ changed = true;
70
+ activateSceneCameras();
71
+ return changed;
72
+ }
73
+ function prepareFrame() {
74
+ if (disposed || !active)
75
+ return;
76
+ ensureSceneCamerasActive();
77
+ applyComparisonCameraFrames();
78
+ applySkyLayerMask();
79
+ }
80
+ function adjustView(input) {
81
+ if (disposed || !active || cameras.size === 0)
82
+ return false;
83
+ if (input.kind === 'orbit') {
84
+ if (!Number.isFinite(input.deltaX) || !Number.isFinite(input.deltaY))
85
+ return false;
86
+ if (Math.abs(input.deltaX) < 0.001 && Math.abs(input.deltaY) < 0.001)
87
+ return false;
88
+ viewState.alpha -= input.deltaX * ORBIT_POINTER_PIXEL_TO_RADIAN;
89
+ viewState.beta = clamp(viewState.beta + input.deltaY * ORBIT_POINTER_PIXEL_TO_RADIAN, 0.08, Math.PI - 0.08);
90
+ viewState.userAdjusted = true;
91
+ applyComparisonCameraFrames();
92
+ return true;
93
+ }
94
+ if (!Number.isFinite(input.deltaY) || Math.abs(input.deltaY) < 0.001)
95
+ return false;
96
+ const nextRadius = clamp(viewState.radius * Math.exp(input.deltaY * ZOOM_WHEEL_DELTA_TO_SCALE), viewState.minRadius, viewState.maxRadius);
97
+ if (Math.abs(nextRadius - viewState.radius) < 0.0001)
98
+ return false;
99
+ viewState.radius = nextRadius;
100
+ viewState.userAdjusted = true;
101
+ applyComparisonCameraFrames();
102
+ return true;
103
+ }
104
+ function clear(clearOptions = {}) {
105
+ if (disposed)
106
+ return false;
107
+ const hadState = active || cameras.size > 0;
108
+ for (const cameraState of cameras.values())
109
+ cameraState.camera.dispose?.();
110
+ cameras.clear();
111
+ restoreSceneCameras();
112
+ restoreSkyLayerMask();
113
+ if (clearOptions.resetViewState !== false)
114
+ resetComparisonViewState(viewState);
115
+ return hadState;
116
+ }
117
+ function dispose() {
118
+ if (disposed)
119
+ return;
120
+ clear();
121
+ disposed = true;
122
+ }
123
+ function ensureCamera(surface, layerMask) {
124
+ const existing = cameras.get(surface.projectionNodeId);
125
+ if (existing)
126
+ return existing;
127
+ const camera = createComparisonCamera(options.babylon, options.scene, surface.projectionNodeId);
128
+ if (!camera)
129
+ return null;
130
+ camera.layerMask = layerMask;
131
+ camera.inertia = 0;
132
+ const state = {
133
+ previewId: surface.previewId,
134
+ projectionNodeId: surface.projectionNodeId,
135
+ layerMask,
136
+ viewport: null,
137
+ camera,
138
+ target: { x: 0, y: 0, z: 0 },
139
+ requiredRadius: 9,
140
+ };
141
+ cameras.set(surface.projectionNodeId, state);
142
+ return state;
143
+ }
144
+ function activateSceneCameras() {
145
+ if (!active) {
146
+ savedActiveCamera = options.scene.activeCamera ?? options.editorCamera;
147
+ savedActiveCameras = Array.isArray(options.scene.activeCameras)
148
+ ? [...options.scene.activeCameras]
149
+ : options.scene.activeCameras ?? null;
150
+ savedEditorCameraLayerMask = typeof options.editorCamera.layerMask === 'number'
151
+ ? options.editorCamera.layerMask
152
+ : null;
153
+ savedEditorCameraViewport = options.editorCamera.viewport ?? null;
154
+ active = true;
155
+ }
156
+ ensureSceneCamerasActive();
157
+ applySkyLayerMask();
158
+ }
159
+ function ensureSceneCamerasActive() {
160
+ if (!active)
161
+ return;
162
+ options.editorCamera.layerMask = MAIN_CAMERA_LAYER_MASK;
163
+ options.scene.activeCamera = options.editorCamera;
164
+ options.scene.activeCameras = [options.editorCamera, ...[...cameras.values()].map(state => state.camera)];
165
+ }
166
+ function restoreSceneCameras() {
167
+ if (!active)
168
+ return;
169
+ if (savedEditorCameraLayerMask != null)
170
+ options.editorCamera.layerMask = savedEditorCameraLayerMask;
171
+ if (savedEditorCameraViewport != null)
172
+ options.editorCamera.viewport = savedEditorCameraViewport;
173
+ options.scene.activeCamera = savedActiveCamera ?? options.editorCamera;
174
+ if (savedActiveCameras === undefined) {
175
+ delete options.scene.activeCameras;
176
+ }
177
+ else {
178
+ options.scene.activeCameras = savedActiveCameras;
179
+ }
180
+ savedActiveCamera = null;
181
+ savedActiveCameras = undefined;
182
+ savedEditorCameraLayerMask = null;
183
+ savedEditorCameraViewport = null;
184
+ active = false;
185
+ }
186
+ function syncSharedComparisonViewState() {
187
+ if (cameras.size === 0)
188
+ return false;
189
+ const cameraStates = [...cameras.values()];
190
+ const requiredRadius = Math.max(...cameraStates.map(state => state.requiredRadius), 2);
191
+ const minRadius = Math.max(0.1, requiredRadius * 0.12);
192
+ const maxRadius = Math.max(requiredRadius * 8, minRadius + 1);
193
+ const fitKey = cameraStates
194
+ .map(state => `${state.projectionNodeId}:${formatComparisonNumber(state.target.x)},${formatComparisonNumber(state.target.y)},${formatComparisonNumber(state.target.z)}:${formatComparisonNumber(state.requiredRadius)}`)
195
+ .sort()
196
+ .join('|');
197
+ const shouldRefit = !viewState.initialized || (!viewState.userAdjusted && viewState.fitKey !== fitKey);
198
+ let changed = false;
199
+ if (viewState.minRadius !== minRadius || viewState.maxRadius !== maxRadius) {
200
+ viewState.minRadius = minRadius;
201
+ viewState.maxRadius = maxRadius;
202
+ changed = true;
203
+ }
204
+ if (shouldRefit) {
205
+ if (Math.abs(viewState.radius - requiredRadius) > 0.0001)
206
+ changed = true;
207
+ viewState.radius = requiredRadius;
208
+ viewState.initialized = true;
209
+ }
210
+ else {
211
+ const clampedRadius = clamp(viewState.radius, minRadius, maxRadius);
212
+ if (Math.abs(viewState.radius - clampedRadius) > 0.0001)
213
+ changed = true;
214
+ viewState.radius = clampedRadius;
215
+ }
216
+ if (viewState.fitKey !== fitKey) {
217
+ viewState.fitKey = fitKey;
218
+ changed = true;
219
+ }
220
+ return changed;
221
+ }
222
+ function applyComparisonCameraFrames() {
223
+ for (const cameraState of cameras.values()) {
224
+ applyComparisonCameraFrame(options.babylon, cameraState.camera, cameraState.target, viewState);
225
+ cameraState.camera.layerMask = cameraState.layerMask;
226
+ }
227
+ }
228
+ function applySkyLayerMask() {
229
+ const mesh = options.getSkyBackdrop?.()?.mesh;
230
+ if (!mesh || typeof mesh !== 'object')
231
+ return;
232
+ if (savedSkyLayerMask == null && typeof mesh.layerMask === 'number') {
233
+ savedSkyLayerMask = mesh.layerMask;
234
+ }
235
+ const baseMask = typeof mesh.layerMask === 'number' ? mesh.layerMask : MAIN_CAMERA_LAYER_MASK;
236
+ mesh.layerMask = baseMask | COMPARISON_LAYER_MASK;
237
+ }
238
+ function restoreSkyLayerMask() {
239
+ const mesh = options.getSkyBackdrop?.()?.mesh;
240
+ if (mesh && savedSkyLayerMask != null)
241
+ mesh.layerMask = savedSkyLayerMask;
242
+ savedSkyLayerMask = null;
243
+ }
244
+ return {
245
+ sync,
246
+ prepareFrame,
247
+ adjustView,
248
+ clear,
249
+ dispose,
250
+ };
251
+ }
252
+ function createInitialComparisonViewState() {
253
+ return {
254
+ alpha: Math.PI / 4,
255
+ beta: Math.PI / 3,
256
+ radius: 9,
257
+ minRadius: 0.5,
258
+ maxRadius: 72,
259
+ initialized: false,
260
+ userAdjusted: false,
261
+ fitKey: '',
262
+ };
263
+ }
264
+ function resetComparisonViewState(viewState) {
265
+ const initial = createInitialComparisonViewState();
266
+ viewState.alpha = initial.alpha;
267
+ viewState.beta = initial.beta;
268
+ viewState.radius = initial.radius;
269
+ viewState.minRadius = initial.minRadius;
270
+ viewState.maxRadius = initial.maxRadius;
271
+ viewState.initialized = initial.initialized;
272
+ viewState.userAdjusted = initial.userAdjusted;
273
+ viewState.fitKey = initial.fitKey;
274
+ }
275
+ function createComparisonCamera(babylon, scene, projectionNodeId) {
276
+ const Vector3 = babylon.Vector3;
277
+ if (!Vector3)
278
+ return null;
279
+ if (babylon.ArcRotateCamera) {
280
+ return new babylon.ArcRotateCamera(`prefab-comparison-preview:${projectionNodeId}`, Math.PI / 4, Math.PI / 3, 9, new Vector3(0, 0, 0), scene);
281
+ }
282
+ if (!babylon.UniversalCamera)
283
+ return null;
284
+ return new babylon.UniversalCamera(`prefab-comparison-preview:${projectionNodeId}`, new Vector3(0, 0, -9), scene);
285
+ }
286
+ function applyComparisonCameraFrame(babylon, camera, target, viewState) {
287
+ const beta = clamp(viewState.beta, 0.05, Math.PI - 0.05);
288
+ const radius = clamp(viewState.radius, viewState.minRadius, viewState.maxRadius);
289
+ if (typeof camera.alpha === 'number' && typeof camera.beta === 'number' && typeof camera.radius === 'number') {
290
+ camera.alpha = viewState.alpha;
291
+ camera.beta = beta;
292
+ camera.radius = radius;
293
+ setCameraTarget(babylon, camera, target);
294
+ return;
295
+ }
296
+ if (camera.position) {
297
+ const position = sphericalToPosition(target, viewState.alpha, beta, radius);
298
+ copyPlainVec3ToVectorLike(position, camera.position);
299
+ }
300
+ setCameraTarget(babylon, camera, target);
301
+ }
302
+ function cloneVector3(babylon, value) {
303
+ const Vector3 = babylon.Vector3;
304
+ if (!Vector3)
305
+ return { x: value.x ?? 0, y: value.y ?? 0, z: value.z ?? 0 };
306
+ return new Vector3(value.x ?? 0, value.y ?? 0, value.z ?? 0);
307
+ }
308
+ function setCameraTarget(babylon, camera, target) {
309
+ const cloned = cloneVector3(babylon, target);
310
+ if (typeof camera.setTarget === 'function') {
311
+ camera.setTarget(cloned);
312
+ return;
313
+ }
314
+ camera.target = cloned;
315
+ }
316
+ function copyPlainVec3ToVectorLike(source, target) {
317
+ if (!target || typeof target !== 'object')
318
+ return;
319
+ const to = target;
320
+ if (typeof to.copyFrom === 'function') {
321
+ to.copyFrom(source);
322
+ return;
323
+ }
324
+ to.x = source.x;
325
+ to.y = source.y;
326
+ to.z = source.z;
327
+ }
328
+ function sphericalToPosition(target, alpha, beta, radius) {
329
+ const sinBeta = Math.sin(beta);
330
+ return {
331
+ x: target.x + radius * sinBeta * Math.cos(alpha),
332
+ y: target.y + radius * Math.cos(beta),
333
+ z: target.z + radius * sinBeta * Math.sin(alpha),
334
+ };
335
+ }
336
+ function applyCameraViewport(babylon, camera, viewport) {
337
+ camera.viewport = babylon.Viewport
338
+ ? new babylon.Viewport(viewport.x, viewport.y, viewport.width, viewport.height)
339
+ : viewport;
340
+ }
341
+ function viewportsEqual(left, right) {
342
+ return !!left
343
+ && Math.abs(left.x - right.x) < 0.0001
344
+ && Math.abs(left.y - right.y) < 0.0001
345
+ && Math.abs(left.width - right.width) < 0.0001
346
+ && Math.abs(left.height - right.height) < 0.0001;
347
+ }
348
+ function resolveSurfaceViewport(surfaceRect, canvasRect) {
349
+ const canvasWidth = Math.max(1, canvasRect.width);
350
+ const canvasHeight = Math.max(1, canvasRect.height);
351
+ const left = clamp01((surfaceRect.left - canvasRect.left) / canvasWidth);
352
+ const top = clamp01((surfaceRect.top - canvasRect.top) / canvasHeight);
353
+ const right = clamp01((surfaceRect.right - canvasRect.left) / canvasWidth);
354
+ const bottom = clamp01((surfaceRect.bottom - canvasRect.top) / canvasHeight);
355
+ const width = right - left;
356
+ const height = bottom - top;
357
+ if (width <= 0 || height <= 0)
358
+ return null;
359
+ return {
360
+ x: left,
361
+ y: 1 - bottom,
362
+ width,
363
+ height,
364
+ };
365
+ }
366
+ function resolveComparisonLayerMask(surface) {
367
+ if (surface.previewId === 'mesh-clone' || surface.projectionNodeId.endsWith(':compare-clone')) {
368
+ return MESH_CLONE_LAYER_MASK;
369
+ }
370
+ if (surface.previewId === 'instanced-mesh' || surface.projectionNodeId.endsWith(':compare-instance')) {
371
+ return INSTANCED_MESH_LAYER_MASK;
372
+ }
373
+ return null;
374
+ }
375
+ function applyProjectionLayerMask(projection, layerMask) {
376
+ applyNodeLayerMask(projection.root, layerMask);
377
+ for (const mesh of projection.outlineMeshes ?? [])
378
+ applyNodeLayerMask(mesh, layerMask);
379
+ }
380
+ function resolveProjectionFit(babylon, projection) {
381
+ const bounds = projection.root?.getHierarchyBoundingVectors?.();
382
+ if (bounds?.min && bounds?.max) {
383
+ const min = readComparisonVec3(bounds.min);
384
+ const max = readComparisonVec3(bounds.max);
385
+ const target = {
386
+ x: (min.x + max.x) / 2,
387
+ y: (min.y + max.y) / 2,
388
+ z: (min.z + max.z) / 2,
389
+ };
390
+ const size = {
391
+ x: Math.max(0, max.x - min.x),
392
+ y: Math.max(0, max.y - min.y),
393
+ z: Math.max(0, max.z - min.z),
394
+ };
395
+ const diagonal = Math.hypot(size.x, size.y, size.z);
396
+ return {
397
+ target,
398
+ requiredRadius: Number.isFinite(diagonal) && diagonal > 0 ? Math.max(diagonal * 1.6, 2) : 2,
399
+ };
400
+ }
401
+ return {
402
+ target: readComparisonVec3(projection.root?.position, { x: 0, y: 0, z: 0 }),
403
+ requiredRadius: 4,
404
+ };
405
+ }
406
+ function readComparisonVec3(value, fallback = { x: 0, y: 0, z: 0 }) {
407
+ if (!value || typeof value !== 'object')
408
+ return fallback;
409
+ const input = value;
410
+ return {
411
+ x: typeof input.x === 'number' && Number.isFinite(input.x) ? input.x : fallback.x,
412
+ y: typeof input.y === 'number' && Number.isFinite(input.y) ? input.y : fallback.y,
413
+ z: typeof input.z === 'number' && Number.isFinite(input.z) ? input.z : fallback.z,
414
+ };
415
+ }
416
+ function vectorsEqual(left, right) {
417
+ return Math.abs(left.x - right.x) < 0.0001
418
+ && Math.abs(left.y - right.y) < 0.0001
419
+ && Math.abs(left.z - right.z) < 0.0001;
420
+ }
421
+ function formatComparisonNumber(value) {
422
+ return Number.isFinite(value) ? value.toFixed(4) : '0.0000';
423
+ }
424
+ function applyNodeLayerMask(node, layerMask) {
425
+ if (!node || typeof node !== 'object')
426
+ return;
427
+ node.layerMask = layerMask;
428
+ const childMeshes = node.getChildMeshes?.(false) ?? [];
429
+ for (const child of childMeshes) {
430
+ if (child && typeof child === 'object')
431
+ child.layerMask = layerMask;
432
+ }
433
+ }
434
+ function readRenderCanvasRect(scene) {
435
+ const canvas = scene.getEngine?.()?.getRenderingCanvas?.();
436
+ const rect = canvas?.getBoundingClientRect?.();
437
+ if (!rect || rect.width <= 0 || rect.height <= 0)
438
+ return null;
439
+ return rect;
440
+ }
441
+ function clamp01(value) {
442
+ if (!Number.isFinite(value))
443
+ return 0;
444
+ return Math.max(0, Math.min(1, value));
445
+ }
446
+ function clamp(value, min, max) {
447
+ if (!Number.isFinite(value))
448
+ return min;
449
+ return Math.max(min, Math.min(max, value));
450
+ }
451
+ //# sourceMappingURL=prefab-comparison-preview-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefab-comparison-preview-controller.js","sourceRoot":"","sources":["../src/prefab-comparison-preview-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projection-asset-container-importer.d.ts","sourceRoot":"","sources":["../src/projection-asset-container-importer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,+BAA+B,EAEhC,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,wCAAwC;IACvD,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,wBAAwB,CAAC,EAAE,CACzB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,EAC7C,cAAc,CAAC,EAAE,OAAO,EACxB,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACrC,kDAAkD,CAAC;CACzD;AAED,MAAM,WAAW,kDAAkD;IACjE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,0CAA0C,GAClD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;IAC9C,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;IAC9C,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEN,MAAM,WAAW,8CAA8C;IAC7D,aAAa,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAChH,eAAe,CAAC,CAAC,OAAO,EAAE,oCAAoC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAChI,iBAAiB,CAAC,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC;IAC3E,kBAAkB,CAAC,CAAC,KAAK,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,oCAAoC,CAAC;KAC/C,GAAG,MAAM,CAAC;IACX,OAAO,CAAC,CAAC,KAAK,EAAE,0CAA0C,GAAG,IAAI,CAAC;CACnE;AAID,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,8CAA8C,GACtD,+BAA+B,CAwBjC"}
1
+ {"version":3,"file":"projection-asset-container-importer.d.ts","sourceRoot":"","sources":["../src/projection-asset-container-importer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,+BAA+B,EAEhC,MAAM,cAAc,CAAC;AAMtB,MAAM,WAAW,wCAAwC;IACvD,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,wBAAwB,CAAC,EAAE,CACzB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,EAC7C,cAAc,CAAC,EAAE,OAAO,EACxB,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KACrC,kDAAkD,CAAC;CACzD;AAED,MAAM,WAAW,kDAAkD;IACjE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,0CAA0C,GAClD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;IAC9C,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,CAAC;IAC9C,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEN,MAAM,WAAW,8CAA8C;IAC7D,aAAa,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAChH,eAAe,CAAC,CAAC,OAAO,EAAE,oCAAoC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAChI,iBAAiB,CAAC,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC;IAC3E,kBAAkB,CAAC,CAAC,KAAK,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,oCAAoC,CAAC;KAC/C,GAAG,MAAM,CAAC;IACX,OAAO,CAAC,CAAC,KAAK,EAAE,0CAA0C,GAAG,IAAI,CAAC;CACnE;AAID,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,8CAA8C,GACtD,+BAA+B,CA2BjC"}
@@ -1,3 +1,4 @@
1
+ import { assignProjectionSourceNodeMetadata, createProjectionSourceNameMapper, } from './projection-source-owner-path.js';
1
2
  export function createBabylonAssetContainerProjectionImporter(options) {
2
3
  const sceneCaches = new WeakMap();
3
4
  return async (context) => {
@@ -10,14 +11,24 @@ export function createBabylonAssetContainerProjectionImporter(options) {
10
11
  }
11
12
  const container = await containerPromise;
12
13
  ensureProjectionContainerResourcesInScene(container, context.scene);
13
- const doNotInstantiate = options.shouldCloneMeshes?.(context)
14
- ?? hasProjectionSlotMaterialProfiles(context);
14
+ const doNotInstantiate = resolveProjectionInstantiationDoNotInstantiate(options, context);
15
15
  options.onEvent?.({ type: 'instantiate', cacheKey, context, doNotInstantiate });
16
- const entries = container.instantiateModelsToScene?.(sourceName => options.createInstanceName?.({ sourceName, cacheKey, context })
17
- ?? `${context.node.id}.projectionAsset.${sourceName}`, false, { doNotInstantiate });
18
- return entries ? collectProjectionImportResult(entries) : null;
16
+ const sourceNameByInstanceName = new Map();
17
+ const entries = container.instantiateModelsToScene?.(createProjectionSourceNameMapper(sourceNameByInstanceName, sourceName => options.createInstanceName?.({ sourceName, cacheKey, context })
18
+ ?? `${context.node.id}.projectionAsset.${sourceName}`), false, { doNotInstantiate });
19
+ return entries ? collectProjectionImportResult(entries, sourceNameByInstanceName) : null;
19
20
  };
20
21
  }
22
+ function resolveProjectionInstantiationDoNotInstantiate(options, context) {
23
+ switch (context.node.assetInstantiationMode) {
24
+ case 'meshClone': return true;
25
+ case 'instancedMesh': return false;
26
+ case 'auto':
27
+ default:
28
+ return options.shouldCloneMeshes?.(context)
29
+ ?? hasProjectionSlotMaterialProfiles(context);
30
+ }
31
+ }
21
32
  function getProjectionContainerSceneCache(sceneCaches, scene) {
22
33
  let sceneCache = sceneCaches.get(scene);
23
34
  if (!sceneCache) {
@@ -50,6 +61,7 @@ async function resolveProjectionContainerCacheKey(options, context) {
50
61
  return `${baseKey}|profiles:${stableProjectionCacheStringify({
51
62
  artistMaterialKind: context.node.artistMaterialKind,
52
63
  artistMaterialProfile: context.node.artistMaterialProfile,
64
+ artistMaterialSlotBindings: context.node.artistMaterialSlotBindings,
53
65
  artistMaterialSlotProfiles: context.node.artistMaterialSlotProfiles,
54
66
  })}`;
55
67
  }
@@ -67,7 +79,8 @@ function readProjectionAssetUrlCandidate(metadata) {
67
79
  return metadata.url ?? metadata.sourceUrl ?? metadata.src ?? metadata.path;
68
80
  }
69
81
  function hasProjectionSlotMaterialProfiles(context) {
70
- return Object.keys(context.node.artistMaterialSlotProfiles ?? {}).length > 0;
82
+ return (context.node.artistMaterialSlotBindings?.length ?? 0) > 0
83
+ || Object.keys(context.node.artistMaterialSlotProfiles ?? {}).length > 0;
71
84
  }
72
85
  function ensureProjectionContainerResourcesInScene(container, scene) {
73
86
  addUniqueSceneResources(scene, scene.materials, container.materials, scene.addMaterial);
@@ -83,12 +96,12 @@ function addUniqueSceneResources(scene, existing, resources, addResource) {
83
96
  addResource.call(scene, resource);
84
97
  }
85
98
  }
86
- function collectProjectionImportResult(entries) {
99
+ function collectProjectionImportResult(entries, sourceNameByInstanceName) {
87
100
  const meshes = [];
88
101
  const transformNodes = [];
89
102
  const seen = new Set();
90
103
  for (const rootNode of entries.rootNodes ?? []) {
91
- collectProjectionNode(rootNode, seen, meshes, transformNodes);
104
+ collectProjectionNode(rootNode, sourceNameByInstanceName, seen, meshes, transformNodes);
92
105
  }
93
106
  return {
94
107
  meshes,
@@ -96,10 +109,11 @@ function collectProjectionImportResult(entries) {
96
109
  animationGroups: entries.animationGroups ?? [],
97
110
  };
98
111
  }
99
- function collectProjectionNode(node, seen, meshes, transformNodes) {
112
+ function collectProjectionNode(node, sourceNameByInstanceName, seen, meshes, transformNodes) {
100
113
  if (!node || seen.has(node))
101
114
  return;
102
115
  seen.add(node);
116
+ assignProjectionSourceNodeMetadata(node, sourceNameByInstanceName);
103
117
  if (isProjectionMeshLike(node)) {
104
118
  meshes.push(node);
105
119
  }
@@ -107,7 +121,7 @@ function collectProjectionNode(node, seen, meshes, transformNodes) {
107
121
  transformNodes.push(node);
108
122
  }
109
123
  for (const child of readProjectionNodeChildren(node)) {
110
- collectProjectionNode(child, seen, meshes, transformNodes);
124
+ collectProjectionNode(child, sourceNameByInstanceName, seen, meshes, transformNodes);
111
125
  }
112
126
  }
113
127
  function readProjectionNodeChildren(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"projection-asset-container-importer.js","sourceRoot":"","sources":["../src/projection-asset-container-importer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection-asset-container-importer.js","sourceRoot":"","sources":["../src/projection-asset-container-importer.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface BabylonProjectionPickCandidate {
9
9
  node: any;
10
10
  projection: Record<string, unknown>;
11
11
  selectionNodeId: string;
12
+ editorOverlayPriority: number;
12
13
  renderingGroupId: number;
13
14
  alphaIndex: number;
14
15
  distance: number;
@@ -1 +1 @@
1
- {"version":3,"file":"projection-pick-resolver.d.ts","sourceRoot":"","sources":["../src/projection-pick-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ7E;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAahF;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,2BAA2B,CAQ7B;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,OAAO,CAAC,2BAA2B,CAAC,CAkBtC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,8BAA8B,GAAG,IAAI,CAEvC;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,8BAA8B,EAAE,CAoBlC;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,SAAS,8BAA8B,EAAE,GACpD,8BAA8B,EAAE,CAclC"}
1
+ {"version":3,"file":"projection-pick-resolver.d.ts","sourceRoot":"","sources":["../src/projection-pick-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ7E;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAahF;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,2BAA2B,CAQ7B;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,OAAO,CAAC,2BAA2B,CAAC,CAkBtC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,8BAA8B,GAAG,IAAI,CAEvC;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,8BAA8B,EAAE,CAsBlC;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,SAAS,8BAA8B,EAAE,GACpD,8BAA8B,EAAE,CAelC"}