@fps-games/editor 0.1.4-beta.4 → 0.1.5-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 (288) hide show
  1. package/dist/build-info.json +45 -0
  2. package/dist/local-editor-harness.d.ts +25 -5
  3. package/dist/local-editor-harness.d.ts.map +1 -1
  4. package/dist/local-editor-harness.js +518 -90
  5. package/dist/local-editor-harness.js.map +1 -1
  6. package/dist/local-editor-performance-stats.d.ts +12 -0
  7. package/dist/local-editor-performance-stats.d.ts.map +1 -0
  8. package/dist/local-editor-performance-stats.js +46 -0
  9. package/dist/local-editor-performance-stats.js.map +1 -0
  10. package/dist/playable-babylon-facade.d.ts +4 -4
  11. package/dist/playable-babylon-facade.d.ts.map +1 -1
  12. package/dist/playable-babylon-facade.js +2 -2
  13. package/dist/playable-babylon-facade.js.map +1 -1
  14. package/dist/playable-babylon-rendering.d.ts +66 -9
  15. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  16. package/dist/playable-babylon-rendering.js +567 -13
  17. package/dist/playable-babylon-rendering.js.map +1 -1
  18. package/dist/playable-local-editor-host.d.ts +12 -9
  19. package/dist/playable-local-editor-host.d.ts.map +1 -1
  20. package/dist/playable-local-editor-host.js.map +1 -1
  21. package/dist/playable-sdk-vite.d.ts +2 -0
  22. package/dist/playable-sdk-vite.d.ts.map +1 -0
  23. package/dist/playable-sdk-vite.js +2 -0
  24. package/dist/playable-sdk-vite.js.map +1 -0
  25. package/dist/playable-sdk.d.ts +6 -4
  26. package/dist/playable-sdk.d.ts.map +1 -1
  27. package/dist/playable-sdk.js +3 -2
  28. package/dist/playable-sdk.js.map +1 -1
  29. package/dist/static-shadow-cpu-worker.d.ts +7 -0
  30. package/dist/static-shadow-cpu-worker.d.ts.map +1 -0
  31. package/dist/static-shadow-cpu-worker.js +221 -0
  32. package/dist/static-shadow-cpu-worker.js.map +1 -0
  33. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +5 -0
  34. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
  35. package/node_modules/@fps-games/babylon-renderer/dist/index.js +5 -0
  36. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  37. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.d.ts +5 -0
  38. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.d.ts.map +1 -0
  39. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js +46 -0
  40. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -0
  41. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.d.ts +5 -0
  42. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.d.ts.map +1 -0
  43. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js +398 -0
  44. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -0
  45. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.d.ts +4 -0
  46. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -0
  47. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js +584 -0
  48. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -0
  49. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.d.ts +61 -0
  50. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.d.ts.map +1 -0
  51. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js +382 -0
  52. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -0
  53. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.d.ts +47 -0
  54. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.d.ts.map +1 -0
  55. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js +285 -0
  56. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -0
  57. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.d.ts +88 -0
  58. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.d.ts.map +1 -0
  59. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js +813 -0
  60. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -0
  61. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.d.ts +27 -0
  62. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.d.ts.map +1 -0
  63. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js +220 -0
  64. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -0
  65. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.d.ts +38 -0
  66. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.d.ts.map +1 -0
  67. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.js +173 -0
  68. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.js.map +1 -0
  69. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.d.ts +286 -0
  70. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.d.ts.map +1 -1
  71. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js +82 -0
  72. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
  73. package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
  74. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +3 -0
  75. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  76. package/node_modules/@fps-games/editor-babylon/dist/index.js +3 -0
  77. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  78. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.d.ts +34 -0
  79. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.d.ts.map +1 -0
  80. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js +272 -0
  81. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -0
  82. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.d.ts +49 -0
  83. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.d.ts.map +1 -0
  84. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +141 -0
  85. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -0
  86. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +11 -0
  87. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  88. package/node_modules/@fps-games/editor-babylon/dist/projection.js +137 -6
  89. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  90. package/node_modules/@fps-games/editor-babylon/dist/rendering.d.ts +19 -0
  91. package/node_modules/@fps-games/editor-babylon/dist/rendering.d.ts.map +1 -0
  92. package/node_modules/@fps-games/editor-babylon/dist/rendering.js +66 -0
  93. package/node_modules/@fps-games/editor-babylon/dist/rendering.js.map +1 -0
  94. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +17 -3
  95. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
  96. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +256 -8
  97. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  98. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  99. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +19 -2
  100. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  101. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  102. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +1 -1
  103. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  104. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  105. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.d.ts +8 -0
  106. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.d.ts.map +1 -0
  107. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js +14 -0
  108. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -0
  109. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
  110. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +10 -2
  111. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  112. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  113. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  114. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +17 -0
  115. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  116. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  117. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +494 -43
  118. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  119. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +72 -5
  120. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  121. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
  122. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  123. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +595 -5
  124. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  125. package/node_modules/@fps-games/editor-browser/package.json +3 -3
  126. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +14 -1
  127. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  128. package/node_modules/@fps-games/editor-core/dist/editor-session.js +34 -10
  129. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  130. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +2 -1
  131. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
  132. package/node_modules/@fps-games/editor-core/dist/inspector.js +11 -1
  133. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  134. package/node_modules/@fps-games/editor-core/dist/serialized-object.d.ts +7 -0
  135. package/node_modules/@fps-games/editor-core/dist/serialized-object.d.ts.map +1 -1
  136. package/node_modules/@fps-games/editor-core/dist/serialized-object.js +1 -0
  137. package/node_modules/@fps-games/editor-core/dist/serialized-object.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-placement/document.d.ts.map +1 -1
  141. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js +10 -5
  142. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  143. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.d.ts.map +1 -1
  144. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js +3 -1
  145. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
  146. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +4 -1
  147. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  148. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +29 -0
  149. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  150. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +12 -0
  151. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
  152. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts +1 -1
  153. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts.map +1 -1
  154. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js +1 -1
  155. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  156. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.d.ts.map +1 -1
  157. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js +5 -1
  158. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  159. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts +1 -0
  160. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts.map +1 -1
  161. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js +8 -0
  162. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  163. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +1 -0
  164. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
  165. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +1 -0
  166. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  167. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts +34 -2
  168. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
  169. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +272 -0
  170. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  171. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.d.ts +1 -1
  172. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.d.ts.map +1 -1
  173. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js +1 -1
  174. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
  175. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  176. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +0 -4
  177. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  178. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts +12 -1
  179. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
  180. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +161 -1
  181. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  182. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.d.ts +4 -2
  183. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.d.ts.map +1 -1
  184. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js +2 -1
  185. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
  186. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
  187. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +4 -1
  188. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  189. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.d.ts +19 -0
  190. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.d.ts.map +1 -0
  191. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js +57 -0
  192. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -0
  193. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.d.ts +7 -1
  194. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.d.ts.map +1 -1
  195. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  196. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  197. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +5 -0
  198. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  199. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
  200. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +1003 -7
  201. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  202. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.d.ts +12 -3
  203. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.d.ts.map +1 -1
  204. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.js +521 -6
  205. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.js.map +1 -1
  206. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +217 -3
  207. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  208. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  209. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +26 -0
  210. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  211. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +3 -1
  212. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
  213. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  214. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +4 -0
  215. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  216. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.d.ts +9 -1
  217. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.d.ts.map +1 -1
  218. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js +12 -1
  219. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
  220. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +2 -0
  221. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  222. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.d.ts +1 -0
  223. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.d.ts.map +1 -1
  224. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js +75 -0
  225. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  226. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.d.ts +1 -0
  227. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.d.ts.map +1 -1
  228. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js +1 -0
  229. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
  230. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts +17 -0
  231. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -0
  232. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +262 -0
  233. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -0
  234. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.d.ts.map +1 -1
  235. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js +7 -3
  236. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  237. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.d.ts +6 -0
  238. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.d.ts.map +1 -1
  239. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js +31 -0
  240. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
  241. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.d.ts +2 -1
  242. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.d.ts.map +1 -1
  243. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js +1 -1
  244. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
  245. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
  246. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +21 -9
  247. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  248. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.d.ts +151 -0
  249. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.d.ts.map +1 -0
  250. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js +445 -0
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -0
  252. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.d.ts +2 -0
  253. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.d.ts.map +1 -0
  254. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js +2 -0
  255. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -0
  256. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.d.ts +1 -1
  257. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.d.ts.map +1 -1
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js +1 -1
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.d.ts +2 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.d.ts.map +1 -1
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +37 -0
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts +15 -0
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.d.ts +36 -0
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.d.ts.map +1 -0
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js +65 -0
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -0
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.d.ts +4 -0
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.d.ts.map +1 -0
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js +87 -0
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -0
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +5 -0
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -0
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +5 -0
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -0
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +8 -0
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -0
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +226 -0
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -0
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +64 -0
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -0
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js +2 -0
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -0
  286. package/node_modules/@fps-games/editor-playable-sdk/package.json +7 -3
  287. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  288. package/package.json +12 -8
@@ -0,0 +1,66 @@
1
+ export function applyBabylonRenderingToMesh(mesh, rendering) {
2
+ if (!isRenderableBabylonMesh(mesh))
3
+ return noop;
4
+ const renderingGroupId = readBabylonRenderingGroupId(rendering?.renderingGroupId);
5
+ const alphaIndex = readFiniteNumber(rendering?.alphaIndex);
6
+ if (renderingGroupId == null && alphaIndex == null)
7
+ return noop;
8
+ const previousRenderingGroupId = mesh.renderingGroupId;
9
+ const previousAlphaIndex = mesh.alphaIndex;
10
+ if (renderingGroupId != null)
11
+ mesh.renderingGroupId = renderingGroupId;
12
+ if (alphaIndex != null)
13
+ mesh.alphaIndex = alphaIndex;
14
+ return () => {
15
+ mesh.renderingGroupId = previousRenderingGroupId;
16
+ mesh.alphaIndex = previousAlphaIndex;
17
+ };
18
+ }
19
+ export function collectRenderableBabylonMeshes(root, contentRoot) {
20
+ const meshes = [];
21
+ const seen = new Set();
22
+ const append = (node) => {
23
+ if (!node || seen.has(node))
24
+ return;
25
+ seen.add(node);
26
+ if (isRenderableBabylonMesh(node))
27
+ meshes.push(node);
28
+ const childMeshes = isBabylonRenderableNode(node) ? node.getChildMeshes?.(false) : [];
29
+ if (Array.isArray(childMeshes)) {
30
+ for (const child of childMeshes)
31
+ append(child);
32
+ }
33
+ };
34
+ append(root);
35
+ if (contentRoot && contentRoot !== root)
36
+ append(contentRoot);
37
+ return meshes;
38
+ }
39
+ export function applyBabylonRenderingToNodeTree(root, rendering, contentRoot) {
40
+ const restoreCallbacks = collectRenderableBabylonMeshes(root, contentRoot)
41
+ .map(mesh => applyBabylonRenderingToMesh(mesh, rendering));
42
+ if (restoreCallbacks.length === 0)
43
+ return noop;
44
+ return () => {
45
+ for (const restore of restoreCallbacks.reverse())
46
+ restore();
47
+ };
48
+ }
49
+ function isBabylonRenderableNode(node) {
50
+ return !!node && typeof node === 'object' && typeof node.getChildMeshes === 'function';
51
+ }
52
+ function isRenderableBabylonMesh(node) {
53
+ return !!node
54
+ && typeof node === 'object'
55
+ && typeof node.getTotalVertices === 'function'
56
+ && typeof node.renderingGroupId === 'number'
57
+ && typeof node.alphaIndex === 'number';
58
+ }
59
+ function readBabylonRenderingGroupId(value) {
60
+ return value === 0 || value === 1 || value === 2 || value === 3 ? value : null;
61
+ }
62
+ function readFiniteNumber(value) {
63
+ return typeof value === 'number' && Number.isFinite(value) ? value : null;
64
+ }
65
+ function noop() { }
66
+ //# sourceMappingURL=rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,28 @@
1
- import { type PlanarShadowOptions } from '@fps-games/babylon-renderer';
1
+ import { type StaticProjectedShadowArtifact, type StaticProjectedShadowArtifactOptions, type StaticProjectedShadowArtifactTextureReadyEvent, type StaticProjectedShadowOptions, type BlobShadowOptions, type PlanarShadowOptions } from '@fps-games/babylon-renderer';
2
2
  import type { BabylonEditorProjection } from './projection';
3
3
  import type { RuntimeScene } from './types';
4
- export interface BabylonEditorPlanarShadowPreviewOptions extends Partial<PlanarShadowOptions> {
4
+ export type BabylonEditorPlanarShadowPreviewOptions = Partial<PlanarShadowOptions> & {
5
5
  enabled?: boolean;
6
6
  directionalLightNodeId?: string | null;
7
- }
7
+ };
8
+ export type BabylonEditorBlobShadowPreviewOptions = Partial<BlobShadowOptions> & {
9
+ enabled?: boolean;
10
+ };
11
+ export type BabylonEditorStaticProjectedShadowPreviewOptions = Partial<StaticProjectedShadowOptions> & Partial<StaticProjectedShadowArtifactOptions> & {
12
+ enabled?: boolean;
13
+ directionalLightNodeId?: string | null;
14
+ artifact?: StaticProjectedShadowArtifact | null;
15
+ };
16
+ export type BabylonEditorShadowPreviewMode = 'none' | 'blob' | 'static' | 'planar' | 'dynamic';
8
17
  export interface BabylonEditorShadowPreviewOptions {
18
+ defaultMode?: BabylonEditorShadowPreviewMode | null;
19
+ blob?: BabylonEditorBlobShadowPreviewOptions | false | null;
20
+ staticProjected?: BabylonEditorStaticProjectedShadowPreviewOptions | false | null;
9
21
  planar?: BabylonEditorPlanarShadowPreviewOptions | false | null;
10
22
  }
11
23
  export interface BabylonEditorShadowPreviewController {
12
24
  setOptions(options?: BabylonEditorShadowPreviewOptions | null): void;
25
+ invalidateStaticProjectedArtifact(): void;
13
26
  refresh(): void;
14
27
  rebuild(): void;
15
28
  dispose(): void;
@@ -18,6 +31,7 @@ export interface BabylonEditorShadowPreviewControllerOptions {
18
31
  scene: RuntimeScene;
19
32
  projection: BabylonEditorProjection;
20
33
  options?: BabylonEditorShadowPreviewOptions | null;
34
+ onStaticProjectedShadowTextureReady?: (event: StaticProjectedShadowArtifactTextureReadyEvent) => void;
21
35
  }
22
36
  export declare function createBabylonEditorShadowPreviewController(options: BabylonEditorShadowPreviewControllerOptions): BabylonEditorShadowPreviewController;
23
37
  //# sourceMappingURL=shadow-preview-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-preview-controller.d.ts","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,uCAAwC,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,CAAC,EAAE,uCAAuC,GAAG,KAAK,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,oCAAoC;IACnD,UAAU,CAAC,OAAO,CAAC,EAAE,iCAAiC,GAAG,IAAI,GAAG,IAAI,CAAC;IACrE,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2CAA2C;IAC1D,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;CACpD;AAKD,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,2CAA2C,GACnD,oCAAoC,CAuDtC"}
1
+ {"version":3,"file":"shadow-preview-controller.d.ts","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,6BAA6B,EAElC,KAAK,oCAAoC,EACzC,KAAK,8CAA8C,EACnD,KAAK,4BAA4B,EAEjC,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EAEzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,uBAAuB,EAAqC,MAAM,cAAc,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,uCAAuC,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gDAAgD,GAC1D,OAAO,CAAC,4BAA4B,CAAC,GACnC,OAAO,CAAC,oCAAoC,CAAC,GAC7C;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,iCAAiC;IAChD,WAAW,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,EAAE,qCAAqC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5D,eAAe,CAAC,EAAE,gDAAgD,GAAG,KAAK,GAAG,IAAI,CAAC;IAClF,MAAM,CAAC,EAAE,uCAAuC,GAAG,KAAK,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,oCAAoC;IACnD,UAAU,CAAC,OAAO,CAAC,EAAE,iCAAiC,GAAG,IAAI,GAAG,IAAI,CAAC;IACrE,iCAAiC,IAAI,IAAI,CAAC;IAC1C,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2CAA2C;IAC1D,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACnD,mCAAmC,CAAC,EAAE,CAAC,KAAK,EAAE,8CAA8C,KAAK,IAAI,CAAC;CACvG;AAoBD,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,2CAA2C,GACnD,oCAAoC,CAiJtC"}
@@ -1,12 +1,42 @@
1
- import { createPlanarShadowSystem, } from '@fps-games/babylon-renderer';
1
+ import { createBlobShadowSystem, createPlanarShadowSystem, collectStaticProjectedShadowBakeRoots, createStaticProjectedShadowArtifactSystem, createStaticProjectedShadowBakeHashes, } from '@fps-games/babylon-renderer';
2
+ const PLANAR_PREVIEW_ROOT_BOUNDARY_PATTERNS = ['root', 'scene_builder_root'];
2
3
  export function createBabylonEditorShadowPreviewController(options) {
3
4
  let currentOptions = normalizeShadowPreviewOptions(options.options);
5
+ let blobSystem = null;
6
+ let staticSystem = null;
4
7
  let planarSystem = null;
5
8
  let planarLight = null;
9
+ const blobCasters = new Set();
10
+ const planarCasters = new Set();
11
+ const disposeBlob = () => {
12
+ blobSystem?.dispose();
13
+ blobSystem = null;
14
+ blobCasters.clear();
15
+ };
6
16
  const disposePlanar = () => {
7
17
  planarSystem?.dispose();
8
18
  planarSystem = null;
9
19
  planarLight = null;
20
+ planarCasters.clear();
21
+ };
22
+ const disposeStatic = () => {
23
+ staticSystem?.dispose();
24
+ staticSystem = null;
25
+ };
26
+ const syncBlob = () => {
27
+ const blobOptions = currentOptions.blob;
28
+ if (!blobOptions || blobOptions.enabled === false) {
29
+ disposeBlob();
30
+ return;
31
+ }
32
+ const nextOptions = disableBlobAutoDetection(blobOptions);
33
+ if (!blobSystem) {
34
+ blobSystem = createBlobShadowSystem(options.scene, nextOptions);
35
+ blobSystem.initialize();
36
+ }
37
+ else {
38
+ blobSystem.setOptions(nextOptions);
39
+ }
10
40
  };
11
41
  const syncPlanar = () => {
12
42
  const planarOptions = currentOptions.planar;
@@ -22,36 +52,254 @@ export function createBabylonEditorShadowPreviewController(options) {
22
52
  if (!planarSystem || planarLight !== light) {
23
53
  disposePlanar();
24
54
  planarLight = light;
25
- planarSystem = createPlanarShadowSystem(options.scene, light, { ...planarOptions, direction: { mode: 'follow-light' } });
55
+ planarSystem = createPlanarShadowSystem(options.scene, light, disablePlanarAutoDetection({ ...planarOptions, direction: { mode: 'follow-light' } }));
26
56
  planarSystem.initialize();
27
57
  return;
28
58
  }
29
- planarSystem.setOptions({ ...planarOptions, direction: { mode: 'follow-light' } });
30
- planarSystem.refresh();
59
+ planarSystem.setOptions(disablePlanarAutoDetection({ ...planarOptions, direction: { mode: 'follow-light' } }));
31
60
  };
32
- syncPlanar();
61
+ const syncStatic = () => {
62
+ const staticOptions = currentOptions.staticProjected;
63
+ if (!staticOptions || staticOptions.enabled === false || !staticOptions.artifact) {
64
+ disposeStatic();
65
+ return;
66
+ }
67
+ const expectedHashes = createStaticExpectedHashes(options.scene, options.projection, staticOptions);
68
+ if (!staticSystem) {
69
+ staticSystem = createStaticProjectedShadowArtifactSystem(options.scene, staticOptions.artifact, toStaticArtifactOptions(staticOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
70
+ staticSystem.initialize();
71
+ return;
72
+ }
73
+ staticSystem.setOptions(toStaticArtifactOptions(staticOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
74
+ staticSystem.setArtifact(staticOptions.artifact);
75
+ };
76
+ const syncRoutes = () => {
77
+ syncBlob();
78
+ syncStatic();
79
+ syncPlanar();
80
+ const meshes = readSceneMeshes(options.scene);
81
+ const nextBlobCasters = new Set();
82
+ const nextPlanarCasters = new Set();
83
+ for (const mesh of meshes) {
84
+ const mode = resolvePreviewMeshShadowMode(mesh, currentOptions.defaultMode ?? 'none');
85
+ if (mode === 'blob' && blobSystem)
86
+ nextBlobCasters.add(mesh);
87
+ if (mode === 'planar' && planarSystem)
88
+ nextPlanarCasters.add(mesh);
89
+ }
90
+ syncDynamicShadowCasters(blobSystem, blobCasters, nextBlobCasters);
91
+ syncDynamicShadowCasters(planarSystem, planarCasters, nextPlanarCasters);
92
+ blobSystem?.refresh();
93
+ planarSystem?.refresh();
94
+ };
95
+ syncRoutes();
33
96
  return {
34
97
  setOptions(nextOptions) {
35
98
  currentOptions = normalizeShadowPreviewOptions(nextOptions);
36
- syncPlanar();
99
+ syncRoutes();
100
+ },
101
+ invalidateStaticProjectedArtifact() {
102
+ const staticOptions = currentOptions.staticProjected;
103
+ if (staticOptions) {
104
+ currentOptions = {
105
+ ...currentOptions,
106
+ staticProjected: {
107
+ ...staticOptions,
108
+ artifact: null,
109
+ expectedHashes: null,
110
+ },
111
+ };
112
+ }
113
+ disposeStatic();
37
114
  },
38
115
  refresh() {
39
- syncPlanar();
116
+ syncRoutes();
40
117
  },
41
118
  rebuild() {
119
+ disposeBlob();
120
+ disposeStatic();
42
121
  disposePlanar();
43
- syncPlanar();
122
+ syncRoutes();
44
123
  },
45
124
  dispose() {
125
+ disposeBlob();
126
+ disposeStatic();
46
127
  disposePlanar();
47
128
  },
48
129
  };
49
130
  }
50
131
  function normalizeShadowPreviewOptions(options) {
51
132
  return {
133
+ defaultMode: readPreviewDefaultMode(options?.defaultMode),
134
+ blob: options?.blob ?? null,
135
+ staticProjected: options?.staticProjected ?? null,
52
136
  planar: options?.planar ?? null,
53
137
  };
54
138
  }
139
+ function disableBlobAutoDetection(options) {
140
+ return {
141
+ ...options,
142
+ casters: {
143
+ ...options.casters,
144
+ autoDetectAll: false,
145
+ includePatterns: [],
146
+ },
147
+ };
148
+ }
149
+ function disablePlanarAutoDetection(options) {
150
+ return {
151
+ ...options,
152
+ casters: {
153
+ ...options.casters,
154
+ autoDetectAll: false,
155
+ includePatterns: [],
156
+ rootBoundaryPatterns: mergeUniquePatterns([
157
+ ...(options.casters?.rootBoundaryPatterns ?? []),
158
+ ...PLANAR_PREVIEW_ROOT_BOUNDARY_PATTERNS,
159
+ ]),
160
+ },
161
+ };
162
+ }
163
+ function toStaticArtifactOptions(options, expectedHashes, onTextureReady) {
164
+ return {
165
+ enabled: options.enabled ?? true,
166
+ appearance: options.appearance ?? {
167
+ color: { r: 0, g: 0, b: 0, a: 0.35 },
168
+ },
169
+ bake: {
170
+ blur: options.bake?.blur,
171
+ },
172
+ expectedHashes: options.expectedHashes ?? expectedHashes,
173
+ onTextureReady,
174
+ debug: options.debug,
175
+ };
176
+ }
177
+ function createStaticExpectedHashes(scene, projection, options) {
178
+ if (options.expectedHashes)
179
+ return options.expectedHashes;
180
+ if (!canValidateStaticExpectedHashes(projection))
181
+ return null;
182
+ const directionalLight = resolveDirectionalLight(projection, options.directionalLightNodeId ?? null);
183
+ try {
184
+ return createStaticProjectedShadowBakeHashes({
185
+ scene: scene,
186
+ directionalLight: directionalLight,
187
+ roots: collectStaticProjectedShadowBakeRoots(scene),
188
+ options: options,
189
+ });
190
+ }
191
+ catch {
192
+ return null;
193
+ }
194
+ }
195
+ function canValidateStaticExpectedHashes(projection) {
196
+ try {
197
+ if (!projection.getLastProjectionBatch?.())
198
+ return false;
199
+ const idleState = projection.getIdleState?.();
200
+ return idleState?.idle !== false;
201
+ }
202
+ catch {
203
+ return false;
204
+ }
205
+ }
206
+ function syncDynamicShadowCasters(system, current, next) {
207
+ for (const mesh of [...current]) {
208
+ if (!next.has(mesh)) {
209
+ system?.removeCaster(mesh);
210
+ current.delete(mesh);
211
+ }
212
+ }
213
+ if (!system) {
214
+ current.clear();
215
+ return;
216
+ }
217
+ for (const mesh of next) {
218
+ if (!current.has(mesh)) {
219
+ system.addCaster(mesh);
220
+ current.add(mesh);
221
+ }
222
+ }
223
+ }
224
+ function readSceneMeshes(scene) {
225
+ return Array.isArray(scene?.meshes) ? scene.meshes : [];
226
+ }
227
+ function resolvePreviewMeshShadowMode(mesh, defaultMode) {
228
+ if (mesh.isDisposed?.())
229
+ return 'none';
230
+ if (hasGeneratedShadowDisabled(mesh))
231
+ return 'none';
232
+ const authoredMode = readProjectionShadowMode(mesh);
233
+ if (!authoredMode || authoredMode === 'default')
234
+ return defaultMode;
235
+ return authoredMode;
236
+ }
237
+ function readPreviewDefaultMode(value) {
238
+ return value === 'none' || value === 'blob' || value === 'static' || value === 'planar' || value === 'dynamic'
239
+ ? value
240
+ : 'none';
241
+ }
242
+ function readProjectionShadowMode(mesh) {
243
+ for (const node of walkNodeAndParents(mesh)) {
244
+ const editorProjection = readEditorProjectionMetadata(node);
245
+ const mode = editorProjection?.shadowMode;
246
+ if (mode === 'default' || mode === 'none' || mode === 'blob' || mode === 'static' || mode === 'planar' || mode === 'dynamic')
247
+ return mode;
248
+ }
249
+ return null;
250
+ }
251
+ function hasGeneratedShadowDisabled(mesh) {
252
+ for (const node of walkNodeAndParents(mesh)) {
253
+ const metadata = readObject(node.metadata);
254
+ if (metadata?.blobShadowInternal === true
255
+ || metadata?.staticProjectedShadowInternal === true
256
+ || metadata?.planarShadowInternal === true)
257
+ return true;
258
+ const projection = readEditorProjectionMetadata(node);
259
+ if (projection?.runtimeKind === 'camera' || projection?.runtimeKind === 'light')
260
+ return true;
261
+ if (metadata?.disableBlobShadow === true
262
+ && metadata?.disableStaticProjectedShadow === true
263
+ && metadata?.disablePlanarShadow === true
264
+ && projection?.nodeId !== 'root'
265
+ && projection?.helperKind !== 'root') {
266
+ return true;
267
+ }
268
+ }
269
+ return false;
270
+ }
271
+ function walkNodeAndParents(mesh) {
272
+ const nodes = [];
273
+ const seen = new Set();
274
+ let cursor = mesh;
275
+ while (cursor && typeof cursor === 'object' && !seen.has(cursor)) {
276
+ nodes.push(cursor);
277
+ seen.add(cursor);
278
+ cursor = cursor.parent;
279
+ }
280
+ return nodes;
281
+ }
282
+ function readEditorProjectionMetadata(node) {
283
+ return readObject(readObject(node?.metadata)?.editorProjection);
284
+ }
285
+ function readObject(value) {
286
+ return value && typeof value === 'object' && !Array.isArray(value)
287
+ ? value
288
+ : null;
289
+ }
290
+ function mergeUniquePatterns(patterns) {
291
+ const normalized = [];
292
+ const seen = new Set();
293
+ for (const pattern of patterns) {
294
+ const trimmed = pattern.trim();
295
+ const key = trimmed.toLowerCase();
296
+ if (!trimmed || seen.has(key))
297
+ continue;
298
+ seen.add(key);
299
+ normalized.push(trimmed);
300
+ }
301
+ return normalized;
302
+ }
55
303
  function resolveDirectionalLight(projection, nodeId) {
56
304
  if (!nodeId)
57
305
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-preview-controller.js","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shadow-preview-controller.js","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-gizmo-controller.d.ts","sourceRoot":"","sources":["../src/transform-gizmo-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-gizmo-controller.d.ts","sourceRoot":"","sources":["../src/transform-gizmo-controller.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export function resolveBabylonTransformHandleConstraint(tool, handleKey) {
18
18
  }
19
19
  return null;
20
20
  }
21
+ const LARGE_SELECTION_GIZMO_LIMIT = 200;
21
22
  export function createBabylonTransformGizmoController(options) {
22
23
  const GizmoManagerCtor = options.babylon.GizmoManager;
23
24
  if (!GizmoManagerCtor)
@@ -105,6 +106,13 @@ export function createBabylonTransformGizmoController(options) {
105
106
  proxy.scaling = new Vector3(1, 1, 1);
106
107
  return proxy;
107
108
  }
109
+ function setPivotProxyPosition(position) {
110
+ const proxy = ensurePivotProxy();
111
+ const Vector3 = options.babylon.Vector3;
112
+ if (!proxy || !Vector3)
113
+ return;
114
+ proxy.position = new Vector3(position.x, position.y, position.z);
115
+ }
108
116
  function clearDragObservers() {
109
117
  for (const dispose of observerDisposers)
110
118
  dispose();
@@ -694,7 +702,7 @@ export function createBabylonTransformGizmoController(options) {
694
702
  return false;
695
703
  const delta = subtractVec3(currentPoint, drag.viewPlane.startPoint);
696
704
  const transforms = previewMoveWithDelta(drag, delta);
697
- setFreeMoveHandlePosition(resolvePreviewPivotPosition(drag, transforms) ?? addVec3(drag.pivot.position, delta));
705
+ syncFreeMovePreviewPivot(drag, transforms, addVec3(drag.pivot.position, delta));
698
706
  const current = drag.activeId
699
707
  ? transforms[drag.activeId] ?? Object.values(transforms)[0] ?? null
700
708
  : Object.values(transforms)[0] ?? null;
@@ -710,11 +718,17 @@ export function createBabylonTransformGizmoController(options) {
710
718
  const transforms = currentPoint
711
719
  ? previewMoveWithDelta(drag, subtractVec3(currentPoint, drag.viewPlane.startPoint))
712
720
  : previewMoveWithDelta(drag, { x: 0, y: 0, z: 0 });
721
+ syncFreeMovePreviewPivot(drag, transforms, currentPoint ?? drag.pivot.position);
713
722
  activeDrag = null;
714
723
  emitTransformCommit(drag, transforms);
715
724
  attachCurrentSelection();
716
725
  return true;
717
726
  }
727
+ function syncFreeMovePreviewPivot(drag, transforms, fallbackPosition) {
728
+ const pivotPosition = resolvePreviewPivotPosition(drag, transforms) ?? fallbackPosition;
729
+ setPivotProxyPosition(pivotPosition);
730
+ setFreeMoveHandlePosition(pivotPosition);
731
+ }
718
732
  function resolvePreviewPivotPosition(drag, transforms) {
719
733
  for (const nodeId of drag.targetIds) {
720
734
  const before = drag.beforeTransforms[nodeId];
@@ -1086,7 +1100,10 @@ export function createBabylonTransformGizmoController(options) {
1086
1100
  setSelection(selection) {
1087
1101
  if (disposed)
1088
1102
  return;
1089
- const nextNodeIds = [...selection.selectedIds];
1103
+ const largeSelection = selection.selectedIds.length > LARGE_SELECTION_GIZMO_LIMIT;
1104
+ const nextNodeIds = largeSelection
1105
+ ? [selection.activeId].filter((id) => !!id)
1106
+ : [...selection.selectedIds];
1090
1107
  const nextActiveId = selection.activeId;
1091
1108
  if (selectedNodeId === nextActiveId
1092
1109
  && selectedNodeIds.length === nextNodeIds.length