@crystaldesign/real-time-viewer-next 26.11.0-beta.18

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 (529) hide show
  1. package/build/esm/DeckCutoutSubsystem-76dfe828.js +2536 -0
  2. package/build/esm/SunLensflare-e4ab3f81.js +483 -0
  3. package/build/esm/WaterSurface-93383fdf.js +2041 -0
  4. package/build/esm/index-920dd901.js +23273 -0
  5. package/build/esm/index.js +32 -0
  6. package/build/types/real-time-viewer-next/src/RealTimeRendererNext.d.ts +58 -0
  7. package/build/types/real-time-viewer-next/src/RealTimeRendererNext.d.ts.map +1 -0
  8. package/build/types/real-time-viewer-next/src/analyzerComponents.d.ts +23 -0
  9. package/build/types/real-time-viewer-next/src/analyzerComponents.d.ts.map +1 -0
  10. package/build/types/real-time-viewer-next/src/analyzerStageContext.d.ts +9 -0
  11. package/build/types/real-time-viewer-next/src/analyzerStageContext.d.ts.map +1 -0
  12. package/build/types/real-time-viewer-next/src/capture/applyShot.d.ts +8 -0
  13. package/build/types/real-time-viewer-next/src/capture/applyShot.d.ts.map +1 -0
  14. package/build/types/real-time-viewer-next/src/capture/blob.d.ts +11 -0
  15. package/build/types/real-time-viewer-next/src/capture/blob.d.ts.map +1 -0
  16. package/build/types/real-time-viewer-next/src/capture/materialMute.d.ts +16 -0
  17. package/build/types/real-time-viewer-next/src/capture/materialMute.d.ts.map +1 -0
  18. package/build/types/real-time-viewer-next/src/capture/shotState.d.ts +24 -0
  19. package/build/types/real-time-viewer-next/src/capture/shotState.d.ts.map +1 -0
  20. package/build/types/real-time-viewer-next/src/capture/types.d.ts +80 -0
  21. package/build/types/real-time-viewer-next/src/capture/types.d.ts.map +1 -0
  22. package/build/types/real-time-viewer-next/src/capture/useCaptureEngine.d.ts +7 -0
  23. package/build/types/real-time-viewer-next/src/capture/useCaptureEngine.d.ts.map +1 -0
  24. package/build/types/real-time-viewer-next/src/config/descriptor.d.ts +156 -0
  25. package/build/types/real-time-viewer-next/src/config/descriptor.d.ts.map +1 -0
  26. package/build/types/real-time-viewer-next/src/config/descriptor.test.d.ts +2 -0
  27. package/build/types/real-time-viewer-next/src/config/descriptor.test.d.ts.map +1 -0
  28. package/build/types/real-time-viewer-next/src/config/environment.config.d.ts +511 -0
  29. package/build/types/real-time-viewer-next/src/config/environment.config.d.ts.map +1 -0
  30. package/build/types/real-time-viewer-next/src/config/environment.config.test.d.ts +5 -0
  31. package/build/types/real-time-viewer-next/src/config/environment.config.test.d.ts.map +1 -0
  32. package/build/types/real-time-viewer-next/src/core/BBoxPreloader.d.ts +15 -0
  33. package/build/types/real-time-viewer-next/src/core/BBoxPreloader.d.ts.map +1 -0
  34. package/build/types/real-time-viewer-next/src/core/FloorGrid.d.ts +3 -0
  35. package/build/types/real-time-viewer-next/src/core/FloorGrid.d.ts.map +1 -0
  36. package/build/types/real-time-viewer-next/src/core/GeoBBoxReporter.d.ts +10 -0
  37. package/build/types/real-time-viewer-next/src/core/GeoBBoxReporter.d.ts.map +1 -0
  38. package/build/types/real-time-viewer-next/src/core/GeoInstance.d.ts +13 -0
  39. package/build/types/real-time-viewer-next/src/core/GeoInstance.d.ts.map +1 -0
  40. package/build/types/real-time-viewer-next/src/core/PaletteDragPreview.d.ts +19 -0
  41. package/build/types/real-time-viewer-next/src/core/PaletteDragPreview.d.ts.map +1 -0
  42. package/build/types/real-time-viewer-next/src/core/PerfLog.d.ts +38 -0
  43. package/build/types/real-time-viewer-next/src/core/PerfLog.d.ts.map +1 -0
  44. package/build/types/real-time-viewer-next/src/core/PlannerGrid.d.ts +83 -0
  45. package/build/types/real-time-viewer-next/src/core/PlannerGrid.d.ts.map +1 -0
  46. package/build/types/real-time-viewer-next/src/core/R3FAssetBoundary.d.ts +31 -0
  47. package/build/types/real-time-viewer-next/src/core/R3FAssetBoundary.d.ts.map +1 -0
  48. package/build/types/real-time-viewer-next/src/core/RTVErrorBoundary.d.ts +16 -0
  49. package/build/types/real-time-viewer-next/src/core/RTVErrorBoundary.d.ts.map +1 -0
  50. package/build/types/real-time-viewer-next/src/core/SceneRenderer.d.ts +3 -0
  51. package/build/types/real-time-viewer-next/src/core/SceneRenderer.d.ts.map +1 -0
  52. package/build/types/real-time-viewer-next/src/core/SceneTree.d.ts +16 -0
  53. package/build/types/real-time-viewer-next/src/core/SceneTree.d.ts.map +1 -0
  54. package/build/types/real-time-viewer-next/src/core/VariantMeshOverride.d.ts +62 -0
  55. package/build/types/real-time-viewer-next/src/core/VariantMeshOverride.d.ts.map +1 -0
  56. package/build/types/real-time-viewer-next/src/core/camera/CameraController.d.ts +3 -0
  57. package/build/types/real-time-viewer-next/src/core/camera/CameraController.d.ts.map +1 -0
  58. package/build/types/real-time-viewer-next/src/core/camera/cameraAnimationEngine.d.ts +69 -0
  59. package/build/types/real-time-viewer-next/src/core/camera/cameraAnimationEngine.d.ts.map +1 -0
  60. package/build/types/real-time-viewer-next/src/core/camera/cameraPoseBook.d.ts +24 -0
  61. package/build/types/real-time-viewer-next/src/core/camera/cameraPoseBook.d.ts.map +1 -0
  62. package/build/types/real-time-viewer-next/src/core/camera/controlsLock.d.ts +25 -0
  63. package/build/types/real-time-viewer-next/src/core/camera/controlsLock.d.ts.map +1 -0
  64. package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.d.ts +38 -0
  65. package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.d.ts.map +1 -0
  66. package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.test.d.ts +2 -0
  67. package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.test.d.ts.map +1 -0
  68. package/build/types/real-time-viewer-next/src/core/camera/useAutoFrame.d.ts +29 -0
  69. package/build/types/real-time-viewer-next/src/core/camera/useAutoFrame.d.ts.map +1 -0
  70. package/build/types/real-time-viewer-next/src/core/camera/useAutoRotate.d.ts +8 -0
  71. package/build/types/real-time-viewer-next/src/core/camera/useAutoRotate.d.ts.map +1 -0
  72. package/build/types/real-time-viewer-next/src/core/camera/useCameraActions.d.ts +13 -0
  73. package/build/types/real-time-viewer-next/src/core/camera/useCameraActions.d.ts.map +1 -0
  74. package/build/types/real-time-viewer-next/src/core/camera/useCameraAnimation.d.ts +15 -0
  75. package/build/types/real-time-viewer-next/src/core/camera/useCameraAnimation.d.ts.map +1 -0
  76. package/build/types/real-time-viewer-next/src/core/camera/useCameraConstraints.d.ts +25 -0
  77. package/build/types/real-time-viewer-next/src/core/camera/useCameraConstraints.d.ts.map +1 -0
  78. package/build/types/real-time-viewer-next/src/core/camera/useCameraSmoothing.d.ts +57 -0
  79. package/build/types/real-time-viewer-next/src/core/camera/useCameraSmoothing.d.ts.map +1 -0
  80. package/build/types/real-time-viewer-next/src/core/camera/useMaterialFade.d.ts +5 -0
  81. package/build/types/real-time-viewer-next/src/core/camera/useMaterialFade.d.ts.map +1 -0
  82. package/build/types/real-time-viewer-next/src/core/camera/useViewModeTransition.d.ts +19 -0
  83. package/build/types/real-time-viewer-next/src/core/camera/useViewModeTransition.d.ts.map +1 -0
  84. package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLine2D.d.ts +28 -0
  85. package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLine2D.d.ts.map +1 -0
  86. package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines2D.d.ts +3 -0
  87. package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines2D.d.ts.map +1 -0
  88. package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines3D.d.ts +3 -0
  89. package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines3D.d.ts.map +1 -0
  90. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionGeometry.d.ts +34 -0
  91. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionGeometry.d.ts.map +1 -0
  92. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders.test.d.ts +2 -0
  93. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders.test.d.ts.map +1 -0
  94. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders2D.d.ts +82 -0
  95. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders2D.d.ts.map +1 -0
  96. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders3D.d.ts +76 -0
  97. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders3D.d.ts.map +1 -0
  98. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.d.ts +25 -0
  99. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.d.ts.map +1 -0
  100. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.test.d.ts +2 -0
  101. package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.test.d.ts.map +1 -0
  102. package/build/types/real-time-viewer-next/src/core/dimension-lines/index.d.ts +3 -0
  103. package/build/types/real-time-viewer-next/src/core/dimension-lines/index.d.ts.map +1 -0
  104. package/build/types/real-time-viewer-next/src/core/dimension-lines/useDimensionFade.d.ts +12 -0
  105. package/build/types/real-time-viewer-next/src/core/dimension-lines/useDimensionFade.d.ts.map +1 -0
  106. package/build/types/real-time-viewer-next/src/core/dimension-lines/useLabelScale.d.ts +11 -0
  107. package/build/types/real-time-viewer-next/src/core/dimension-lines/useLabelScale.d.ts.map +1 -0
  108. package/build/types/real-time-viewer-next/src/core/dimension-lines/utils.d.ts +26 -0
  109. package/build/types/real-time-viewer-next/src/core/dimension-lines/utils.d.ts.map +1 -0
  110. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentDome.d.ts +14 -0
  111. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentDome.d.ts.map +1 -0
  112. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSceneLoader.d.ts +14 -0
  113. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSceneLoader.d.ts.map +1 -0
  114. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSources.d.ts +33 -0
  115. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSources.d.ts.map +1 -0
  116. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSunLensflare.d.ts +3 -0
  117. package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSunLensflare.d.ts.map +1 -0
  118. package/build/types/real-time-viewer-next/src/core/environment/LightingRig.d.ts +28 -0
  119. package/build/types/real-time-viewer-next/src/core/environment/LightingRig.d.ts.map +1 -0
  120. package/build/types/real-time-viewer-next/src/core/environment/PlainGround.d.ts +21 -0
  121. package/build/types/real-time-viewer-next/src/core/environment/PlainGround.d.ts.map +1 -0
  122. package/build/types/real-time-viewer-next/src/core/environment/RuntimePerfAdjuster.d.ts +15 -0
  123. package/build/types/real-time-viewer-next/src/core/environment/RuntimePerfAdjuster.d.ts.map +1 -0
  124. package/build/types/real-time-viewer-next/src/core/environment/SceneEnvironment.d.ts +19 -0
  125. package/build/types/real-time-viewer-next/src/core/environment/SceneEnvironment.d.ts.map +1 -0
  126. package/build/types/real-time-viewer-next/src/core/environment/SkydomeBackground.d.ts +11 -0
  127. package/build/types/real-time-viewer-next/src/core/environment/SkydomeBackground.d.ts.map +1 -0
  128. package/build/types/real-time-viewer-next/src/core/environment/SunLensflare.d.ts +29 -0
  129. package/build/types/real-time-viewer-next/src/core/environment/SunLensflare.d.ts.map +1 -0
  130. package/build/types/real-time-viewer-next/src/core/environment/SunLensflareLazy.d.ts +11 -0
  131. package/build/types/real-time-viewer-next/src/core/environment/SunLensflareLazy.d.ts.map +1 -0
  132. package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.d.ts +24 -0
  133. package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.d.ts.map +1 -0
  134. package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.test.d.ts +2 -0
  135. package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.test.d.ts.map +1 -0
  136. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutArticleSync.d.ts +22 -0
  137. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutArticleSync.d.ts.map +1 -0
  138. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutCollar.d.ts +15 -0
  139. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutCollar.d.ts.map +1 -0
  140. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutLazy.d.ts +10 -0
  141. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutLazy.d.ts.map +1 -0
  142. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutSubsystem.d.ts +9 -0
  143. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutSubsystem.d.ts.map +1 -0
  144. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.d.ts +40 -0
  145. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.d.ts.map +1 -0
  146. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.test.d.ts +2 -0
  147. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.test.d.ts.map +1 -0
  148. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.d.ts +62 -0
  149. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.d.ts.map +1 -0
  150. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.test.d.ts +2 -0
  151. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.test.d.ts.map +1 -0
  152. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.d.ts +25 -0
  153. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.d.ts.map +1 -0
  154. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.test.d.ts +2 -0
  155. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.test.d.ts.map +1 -0
  156. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/collectDeckTriangles.d.ts +86 -0
  157. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/collectDeckTriangles.d.ts.map +1 -0
  158. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.d.ts +28 -0
  159. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.d.ts.map +1 -0
  160. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.test.d.ts +2 -0
  161. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.test.d.ts.map +1 -0
  162. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.d.ts +49 -0
  163. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.d.ts.map +1 -0
  164. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.test.d.ts +2 -0
  165. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.test.d.ts.map +1 -0
  166. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureDiagnostics.d.ts +20 -0
  167. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureDiagnostics.d.ts.map +1 -0
  168. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/useCollarTextures.d.ts +16 -0
  169. package/build/types/real-time-viewer-next/src/core/environment/deckCutout/useCollarTextures.d.ts.map +1 -0
  170. package/build/types/real-time-viewer-next/src/core/environment/dome.config.d.ts +191 -0
  171. package/build/types/real-time-viewer-next/src/core/environment/dome.config.d.ts.map +1 -0
  172. package/build/types/real-time-viewer-next/src/core/environment/dome.config.test.d.ts +2 -0
  173. package/build/types/real-time-viewer-next/src/core/environment/dome.config.test.d.ts.map +1 -0
  174. package/build/types/real-time-viewer-next/src/core/environment/ground.config.d.ts +130 -0
  175. package/build/types/real-time-viewer-next/src/core/environment/ground.config.d.ts.map +1 -0
  176. package/build/types/real-time-viewer-next/src/core/environment/ground.config.test.d.ts +2 -0
  177. package/build/types/real-time-viewer-next/src/core/environment/ground.config.test.d.ts.map +1 -0
  178. package/build/types/real-time-viewer-next/src/core/environment/lighting.config.d.ts +297 -0
  179. package/build/types/real-time-viewer-next/src/core/environment/lighting.config.d.ts.map +1 -0
  180. package/build/types/real-time-viewer-next/src/core/environment/lighting.config.test.d.ts +2 -0
  181. package/build/types/real-time-viewer-next/src/core/environment/lighting.config.test.d.ts.map +1 -0
  182. package/build/types/real-time-viewer-next/src/core/environment/scene.config.d.ts +440 -0
  183. package/build/types/real-time-viewer-next/src/core/environment/scene.config.d.ts.map +1 -0
  184. package/build/types/real-time-viewer-next/src/core/environment/scene.config.test.d.ts +2 -0
  185. package/build/types/real-time-viewer-next/src/core/environment/scene.config.test.d.ts.map +1 -0
  186. package/build/types/real-time-viewer-next/src/core/environment/useEnvironmentMap.d.ts +19 -0
  187. package/build/types/real-time-viewer-next/src/core/environment/useEnvironmentMap.d.ts.map +1 -0
  188. package/build/types/real-time-viewer-next/src/core/environment/useStudioLightEffects.d.ts +28 -0
  189. package/build/types/real-time-viewer-next/src/core/environment/useStudioLightEffects.d.ts.map +1 -0
  190. package/build/types/real-time-viewer-next/src/core/frameOrder.d.ts +91 -0
  191. package/build/types/real-time-viewer-next/src/core/frameOrder.d.ts.map +1 -0
  192. package/build/types/real-time-viewer-next/src/core/handles.d.ts +35 -0
  193. package/build/types/real-time-viewer-next/src/core/handles.d.ts.map +1 -0
  194. package/build/types/real-time-viewer-next/src/core/interaction/AccessoryDropController.d.ts +9 -0
  195. package/build/types/real-time-viewer-next/src/core/interaction/AccessoryDropController.d.ts.map +1 -0
  196. package/build/types/real-time-viewer-next/src/core/interaction/AccessoryFollowController.d.ts +15 -0
  197. package/build/types/real-time-viewer-next/src/core/interaction/AccessoryFollowController.d.ts.map +1 -0
  198. package/build/types/real-time-viewer-next/src/core/interaction/DragController.d.ts +2 -0
  199. package/build/types/real-time-viewer-next/src/core/interaction/DragController.d.ts.map +1 -0
  200. package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlay.d.ts +16 -0
  201. package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlay.d.ts.map +1 -0
  202. package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlayIcons.d.ts +18 -0
  203. package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlayIcons.d.ts.map +1 -0
  204. package/build/types/real-time-viewer-next/src/core/interaction/FreeGridLayer.d.ts +10 -0
  205. package/build/types/real-time-viewer-next/src/core/interaction/FreeGridLayer.d.ts.map +1 -0
  206. package/build/types/real-time-viewer-next/src/core/interaction/InteractionGuides.d.ts +3 -0
  207. package/build/types/real-time-viewer-next/src/core/interaction/InteractionGuides.d.ts.map +1 -0
  208. package/build/types/real-time-viewer-next/src/core/interaction/accessoryCellTargeting.d.ts +31 -0
  209. package/build/types/real-time-viewer-next/src/core/interaction/accessoryCellTargeting.d.ts.map +1 -0
  210. package/build/types/real-time-viewer-next/src/core/interaction/selection.config.d.ts +65 -0
  211. package/build/types/real-time-viewer-next/src/core/interaction/selection.config.d.ts.map +1 -0
  212. package/build/types/real-time-viewer-next/src/core/interaction/selection.config.test.d.ts +2 -0
  213. package/build/types/real-time-viewer-next/src/core/interaction/selection.config.test.d.ts.map +1 -0
  214. package/build/types/real-time-viewer-next/src/core/interaction/useAccessoryMoveDrag.d.ts +21 -0
  215. package/build/types/real-time-viewer-next/src/core/interaction/useAccessoryMoveDrag.d.ts.map +1 -0
  216. package/build/types/real-time-viewer-next/src/core/interaction/useElementInteraction.d.ts +35 -0
  217. package/build/types/real-time-viewer-next/src/core/interaction/useElementInteraction.d.ts.map +1 -0
  218. package/build/types/real-time-viewer-next/src/core/lazySubsystems.d.ts +16 -0
  219. package/build/types/real-time-viewer-next/src/core/lazySubsystems.d.ts.map +1 -0
  220. package/build/types/real-time-viewer-next/src/core/materials/MaterialContext.d.ts +23 -0
  221. package/build/types/real-time-viewer-next/src/core/materials/MaterialContext.d.ts.map +1 -0
  222. package/build/types/real-time-viewer-next/src/core/materials/MaterialManager.d.ts +4 -0
  223. package/build/types/real-time-viewer-next/src/core/materials/MaterialManager.d.ts.map +1 -0
  224. package/build/types/real-time-viewer-next/src/core/materials/apply.d.ts +17 -0
  225. package/build/types/real-time-viewer-next/src/core/materials/apply.d.ts.map +1 -0
  226. package/build/types/real-time-viewer-next/src/core/materials/caches.d.ts +44 -0
  227. package/build/types/real-time-viewer-next/src/core/materials/caches.d.ts.map +1 -0
  228. package/build/types/real-time-viewer-next/src/core/materials/factory.d.ts +37 -0
  229. package/build/types/real-time-viewer-next/src/core/materials/factory.d.ts.map +1 -0
  230. package/build/types/real-time-viewer-next/src/core/materials/materials.config.d.ts +13 -0
  231. package/build/types/real-time-viewer-next/src/core/materials/materials.config.d.ts.map +1 -0
  232. package/build/types/real-time-viewer-next/src/core/materials/materials.config.test.d.ts +2 -0
  233. package/build/types/real-time-viewer-next/src/core/materials/materials.config.test.d.ts.map +1 -0
  234. package/build/types/real-time-viewer-next/src/core/materials/textureCache.d.ts +26 -0
  235. package/build/types/real-time-viewer-next/src/core/materials/textureCache.d.ts.map +1 -0
  236. package/build/types/real-time-viewer-next/src/core/materials/types.d.ts +5 -0
  237. package/build/types/real-time-viewer-next/src/core/materials/types.d.ts.map +1 -0
  238. package/build/types/real-time-viewer-next/src/core/meshBVH.d.ts +22 -0
  239. package/build/types/real-time-viewer-next/src/core/meshBVH.d.ts.map +1 -0
  240. package/build/types/real-time-viewer-next/src/core/meshBVH.test.d.ts +2 -0
  241. package/build/types/real-time-viewer-next/src/core/meshBVH.test.d.ts.map +1 -0
  242. package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingDynamicEffects.d.ts +11 -0
  243. package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingDynamicEffects.d.ts.map +1 -0
  244. package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingStack.d.ts +28 -0
  245. package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingStack.d.ts.map +1 -0
  246. package/build/types/real-time-viewer-next/src/core/postprocessing/applyRendererToneMapping.d.ts +10 -0
  247. package/build/types/real-time-viewer-next/src/core/postprocessing/applyRendererToneMapping.d.ts.map +1 -0
  248. package/build/types/real-time-viewer-next/src/core/postprocessing/index.d.ts +2 -0
  249. package/build/types/real-time-viewer-next/src/core/postprocessing/index.d.ts.map +1 -0
  250. package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.d.ts +453 -0
  251. package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.d.ts.map +1 -0
  252. package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.test.d.ts +2 -0
  253. package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.test.d.ts.map +1 -0
  254. package/build/types/real-time-viewer-next/src/core/renderer.config.d.ts +55 -0
  255. package/build/types/real-time-viewer-next/src/core/renderer.config.d.ts.map +1 -0
  256. package/build/types/real-time-viewer-next/src/core/renderer.config.test.d.ts +2 -0
  257. package/build/types/real-time-viewer-next/src/core/renderer.config.test.d.ts.map +1 -0
  258. package/build/types/real-time-viewer-next/src/core/shadows/SceneShadowSystem.d.ts +18 -0
  259. package/build/types/real-time-viewer-next/src/core/shadows/SceneShadowSystem.d.ts.map +1 -0
  260. package/build/types/real-time-viewer-next/src/core/shadows/SunShadow.d.ts +29 -0
  261. package/build/types/real-time-viewer-next/src/core/shadows/SunShadow.d.ts.map +1 -0
  262. package/build/types/real-time-viewer-next/src/core/shadows/index.d.ts +4 -0
  263. package/build/types/real-time-viewer-next/src/core/shadows/index.d.ts.map +1 -0
  264. package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.d.ts +20 -0
  265. package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.d.ts.map +1 -0
  266. package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.test.d.ts +2 -0
  267. package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.test.d.ts.map +1 -0
  268. package/build/types/real-time-viewer-next/src/core/shadows/shadowRegistry.d.ts +24 -0
  269. package/build/types/real-time-viewer-next/src/core/shadows/shadowRegistry.d.ts.map +1 -0
  270. package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.d.ts +75 -0
  271. package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.d.ts.map +1 -0
  272. package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.test.d.ts +2 -0
  273. package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.test.d.ts.map +1 -0
  274. package/build/types/real-time-viewer-next/src/core/shadows/useShadowDirty.d.ts +14 -0
  275. package/build/types/real-time-viewer-next/src/core/shadows/useShadowDirty.d.ts.map +1 -0
  276. package/build/types/real-time-viewer-next/src/core/shadows/useShadowFlags.d.ts +28 -0
  277. package/build/types/real-time-viewer-next/src/core/shadows/useShadowFlags.d.ts.map +1 -0
  278. package/build/types/real-time-viewer-next/src/core/shadows/useShadowRebake.d.ts +14 -0
  279. package/build/types/real-time-viewer-next/src/core/shadows/useShadowRebake.d.ts.map +1 -0
  280. package/build/types/real-time-viewer-next/src/core/useFrameloopVisibility.d.ts +37 -0
  281. package/build/types/real-time-viewer-next/src/core/useFrameloopVisibility.d.ts.map +1 -0
  282. package/build/types/real-time-viewer-next/src/core/view2d/DockingPoints2D.d.ts +17 -0
  283. package/build/types/real-time-viewer-next/src/core/view2d/DockingPoints2D.d.ts.map +1 -0
  284. package/build/types/real-time-viewer-next/src/core/view2d/Element2DPlane.d.ts +18 -0
  285. package/build/types/real-time-viewer-next/src/core/view2d/Element2DPlane.d.ts.map +1 -0
  286. package/build/types/real-time-viewer-next/src/core/view2d/ElementAnnotation2D.d.ts +16 -0
  287. package/build/types/real-time-viewer-next/src/core/view2d/ElementAnnotation2D.d.ts.map +1 -0
  288. package/build/types/real-time-viewer-next/src/core/view2d/Scene2DOverlay.d.ts +10 -0
  289. package/build/types/real-time-viewer-next/src/core/view2d/Scene2DOverlay.d.ts.map +1 -0
  290. package/build/types/real-time-viewer-next/src/core/viewMode/ViewModeRuntimeContext.d.ts +20 -0
  291. package/build/types/real-time-viewer-next/src/core/viewMode/ViewModeRuntimeContext.d.ts.map +1 -0
  292. package/build/types/real-time-viewer-next/src/core/viewMode/index.d.ts +4 -0
  293. package/build/types/real-time-viewer-next/src/core/viewMode/index.d.ts.map +1 -0
  294. package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.d.ts +9 -0
  295. package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.d.ts.map +1 -0
  296. package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.test.d.ts +2 -0
  297. package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.test.d.ts.map +1 -0
  298. package/build/types/real-time-viewer-next/src/core/viewMode/types.d.ts +67 -0
  299. package/build/types/real-time-viewer-next/src/core/viewMode/types.d.ts.map +1 -0
  300. package/build/types/real-time-viewer-next/src/core/water/CausticReceiver.d.ts +49 -0
  301. package/build/types/real-time-viewer-next/src/core/water/CausticReceiver.d.ts.map +1 -0
  302. package/build/types/real-time-viewer-next/src/core/water/CausticsTexture.d.ts +48 -0
  303. package/build/types/real-time-viewer-next/src/core/water/CausticsTexture.d.ts.map +1 -0
  304. package/build/types/real-time-viewer-next/src/core/water/Heightfield.d.ts +88 -0
  305. package/build/types/real-time-viewer-next/src/core/water/Heightfield.d.ts.map +1 -0
  306. package/build/types/real-time-viewer-next/src/core/water/PoolHeightMap.d.ts +36 -0
  307. package/build/types/real-time-viewer-next/src/core/water/PoolHeightMap.d.ts.map +1 -0
  308. package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.d.ts +73 -0
  309. package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.d.ts.map +1 -0
  310. package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.test.d.ts +2 -0
  311. package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.test.d.ts.map +1 -0
  312. package/build/types/real-time-viewer-next/src/core/water/SceneCapture.d.ts +66 -0
  313. package/build/types/real-time-viewer-next/src/core/water/SceneCapture.d.ts.map +1 -0
  314. package/build/types/real-time-viewer-next/src/core/water/WaterSurface.d.ts +8 -0
  315. package/build/types/real-time-viewer-next/src/core/water/WaterSurface.d.ts.map +1 -0
  316. package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceLazy.d.ts +10 -0
  317. package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceLazy.d.ts.map +1 -0
  318. package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceRenderer.d.ts +71 -0
  319. package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceRenderer.d.ts.map +1 -0
  320. package/build/types/real-time-viewer-next/src/core/water/useCausticReceivers.d.ts +11 -0
  321. package/build/types/real-time-viewer-next/src/core/water/useCausticReceivers.d.ts.map +1 -0
  322. package/build/types/real-time-viewer-next/src/core/water/useWaterPointer.d.ts +13 -0
  323. package/build/types/real-time-viewer-next/src/core/water/useWaterPointer.d.ts.map +1 -0
  324. package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.d.ts +44 -0
  325. package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.d.ts.map +1 -0
  326. package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.test.d.ts +2 -0
  327. package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.test.d.ts.map +1 -0
  328. package/build/types/real-time-viewer-next/src/core/water/water.config.d.ts +90 -0
  329. package/build/types/real-time-viewer-next/src/core/water/water.config.d.ts.map +1 -0
  330. package/build/types/real-time-viewer-next/src/core/water/water.config.test.d.ts +2 -0
  331. package/build/types/real-time-viewer-next/src/core/water/water.config.test.d.ts.map +1 -0
  332. package/build/types/real-time-viewer-next/src/core/water/waterDebug.d.ts +14 -0
  333. package/build/types/real-time-viewer-next/src/core/water/waterDebug.d.ts.map +1 -0
  334. package/build/types/real-time-viewer-next/src/core/water/waterShaders.d.ts +9 -0
  335. package/build/types/real-time-viewer-next/src/core/water/waterShaders.d.ts.map +1 -0
  336. package/build/types/real-time-viewer-next/src/core/water/waterSurfaceMaterial.d.ts +21 -0
  337. package/build/types/real-time-viewer-next/src/core/water/waterSurfaceMaterial.d.ts.map +1 -0
  338. package/build/types/real-time-viewer-next/src/core/water/waterUniforms.d.ts +51 -0
  339. package/build/types/real-time-viewer-next/src/core/water/waterUniforms.d.ts.map +1 -0
  340. package/build/types/real-time-viewer-next/src/hooks/useAssembledScene.d.ts +17 -0
  341. package/build/types/real-time-viewer-next/src/hooks/useAssembledScene.d.ts.map +1 -0
  342. package/build/types/real-time-viewer-next/src/hooks/useHostPropsSync.d.ts +20 -0
  343. package/build/types/real-time-viewer-next/src/hooks/useHostPropsSync.d.ts.map +1 -0
  344. package/build/types/real-time-viewer-next/src/index.d.ts +17 -0
  345. package/build/types/real-time-viewer-next/src/index.d.ts.map +1 -0
  346. package/build/types/real-time-viewer-next/src/internals.d.ts +61 -0
  347. package/build/types/real-time-viewer-next/src/internals.d.ts.map +1 -0
  348. package/build/types/real-time-viewer-next/src/loadingGates.d.ts +34 -0
  349. package/build/types/real-time-viewer-next/src/loadingGates.d.ts.map +1 -0
  350. package/build/types/real-time-viewer-next/src/parser/parseRenderScript.d.ts +51 -0
  351. package/build/types/real-time-viewer-next/src/parser/parseRenderScript.d.ts.map +1 -0
  352. package/build/types/real-time-viewer-next/src/parser/types.d.ts +58 -0
  353. package/build/types/real-time-viewer-next/src/parser/types.d.ts.map +1 -0
  354. package/build/types/real-time-viewer-next/src/presets/mergePresetBundle.d.ts +33 -0
  355. package/build/types/real-time-viewer-next/src/presets/mergePresetBundle.d.ts.map +1 -0
  356. package/build/types/real-time-viewer-next/src/presets/polyfaser-planner.d.ts +4 -0
  357. package/build/types/real-time-viewer-next/src/presets/polyfaser-planner.d.ts.map +1 -0
  358. package/build/types/real-time-viewer-next/src/presets/polyfaser-pool.d.ts +4 -0
  359. package/build/types/real-time-viewer-next/src/presets/polyfaser-pool.d.ts.map +1 -0
  360. package/build/types/real-time-viewer-next/src/presets/polyfaserPlannerOverride.d.ts +9 -0
  361. package/build/types/real-time-viewer-next/src/presets/polyfaserPlannerOverride.d.ts.map +1 -0
  362. package/build/types/real-time-viewer-next/src/presets/villa-cliff.d.ts +4 -0
  363. package/build/types/real-time-viewer-next/src/presets/villa-cliff.d.ts.map +1 -0
  364. package/build/types/real-time-viewer-next/src/publicApi.d.ts +35 -0
  365. package/build/types/real-time-viewer-next/src/publicApi.d.ts.map +1 -0
  366. package/build/types/real-time-viewer-next/src/publicPath.d.ts +1 -0
  367. package/build/types/real-time-viewer-next/src/publicPath.d.ts.map +1 -0
  368. package/build/types/real-time-viewer-next/src/store/index.d.ts +18 -0
  369. package/build/types/real-time-viewer-next/src/store/index.d.ts.map +1 -0
  370. package/build/types/real-time-viewer-next/src/store/shared.d.ts +25 -0
  371. package/build/types/real-time-viewer-next/src/store/shared.d.ts.map +1 -0
  372. package/build/types/real-time-viewer-next/src/store/slices/accessory.d.ts +147 -0
  373. package/build/types/real-time-viewer-next/src/store/slices/accessory.d.ts.map +1 -0
  374. package/build/types/real-time-viewer-next/src/store/slices/analyzerGate.d.ts +15 -0
  375. package/build/types/real-time-viewer-next/src/store/slices/analyzerGate.d.ts.map +1 -0
  376. package/build/types/real-time-viewer-next/src/store/slices/camera.d.ts +66 -0
  377. package/build/types/real-time-viewer-next/src/store/slices/camera.d.ts.map +1 -0
  378. package/build/types/real-time-viewer-next/src/store/slices/capture.d.ts +60 -0
  379. package/build/types/real-time-viewer-next/src/store/slices/capture.d.ts.map +1 -0
  380. package/build/types/real-time-viewer-next/src/store/slices/config.d.ts +52 -0
  381. package/build/types/real-time-viewer-next/src/store/slices/config.d.ts.map +1 -0
  382. package/build/types/real-time-viewer-next/src/store/slices/deckCutout.d.ts +29 -0
  383. package/build/types/real-time-viewer-next/src/store/slices/deckCutout.d.ts.map +1 -0
  384. package/build/types/real-time-viewer-next/src/store/slices/environment.d.ts +47 -0
  385. package/build/types/real-time-viewer-next/src/store/slices/environment.d.ts.map +1 -0
  386. package/build/types/real-time-viewer-next/src/store/slices/glGeneration.d.ts +18 -0
  387. package/build/types/real-time-viewer-next/src/store/slices/glGeneration.d.ts.map +1 -0
  388. package/build/types/real-time-viewer-next/src/store/slices/hostSelection.test.d.ts +5 -0
  389. package/build/types/real-time-viewer-next/src/store/slices/hostSelection.test.d.ts.map +1 -0
  390. package/build/types/real-time-viewer-next/src/store/slices/interaction.d.ts +53 -0
  391. package/build/types/real-time-viewer-next/src/store/slices/interaction.d.ts.map +1 -0
  392. package/build/types/real-time-viewer-next/src/store/slices/performanceProfile.d.ts +71 -0
  393. package/build/types/real-time-viewer-next/src/store/slices/performanceProfile.d.ts.map +1 -0
  394. package/build/types/real-time-viewer-next/src/store/slices/plannerUi.d.ts +46 -0
  395. package/build/types/real-time-viewer-next/src/store/slices/plannerUi.d.ts.map +1 -0
  396. package/build/types/real-time-viewer-next/src/store/slices/scene.d.ts +26 -0
  397. package/build/types/real-time-viewer-next/src/store/slices/scene.d.ts.map +1 -0
  398. package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.d.ts +75 -0
  399. package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.d.ts.map +1 -0
  400. package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.test.d.ts +5 -0
  401. package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.test.d.ts.map +1 -0
  402. package/build/types/real-time-viewer-next/src/store/slices/selection.d.ts +66 -0
  403. package/build/types/real-time-viewer-next/src/store/slices/selection.d.ts.map +1 -0
  404. package/build/types/real-time-viewer-next/src/store/slices/versions.d.ts +34 -0
  405. package/build/types/real-time-viewer-next/src/store/slices/versions.d.ts.map +1 -0
  406. package/build/types/real-time-viewer-next/src/store/slices/viewMode.d.ts +16 -0
  407. package/build/types/real-time-viewer-next/src/store/slices/viewMode.d.ts.map +1 -0
  408. package/build/types/real-time-viewer-next/src/store/types.d.ts +96 -0
  409. package/build/types/real-time-viewer-next/src/store/types.d.ts.map +1 -0
  410. package/build/types/real-time-viewer-next/src/testUtils/deepDiff.d.ts +26 -0
  411. package/build/types/real-time-viewer-next/src/testUtils/deepDiff.d.ts.map +1 -0
  412. package/build/types/real-time-viewer-next/src/testUtils/deepDiff.test.d.ts +11 -0
  413. package/build/types/real-time-viewer-next/src/testUtils/deepDiff.test.d.ts.map +1 -0
  414. package/build/types/real-time-viewer-next/src/testUtils/divaCoreMock.d.ts +47 -0
  415. package/build/types/real-time-viewer-next/src/testUtils/divaCoreMock.d.ts.map +1 -0
  416. package/build/types/real-time-viewer-next/src/testUtils/resolvedConfigSnapshots.d.ts +36 -0
  417. package/build/types/real-time-viewer-next/src/testUtils/resolvedConfigSnapshots.d.ts.map +1 -0
  418. package/build/types/real-time-viewer-next/src/testUtils/structuredClonePolyfill.d.ts +2 -0
  419. package/build/types/real-time-viewer-next/src/testUtils/structuredClonePolyfill.d.ts.map +1 -0
  420. package/build/types/real-time-viewer-next/src/types/accessoryGrids.d.ts +134 -0
  421. package/build/types/real-time-viewer-next/src/types/accessoryGrids.d.ts.map +1 -0
  422. package/build/types/real-time-viewer-next/src/types/camera.d.ts +288 -0
  423. package/build/types/real-time-viewer-next/src/types/camera.d.ts.map +1 -0
  424. package/build/types/real-time-viewer-next/src/types/environment.d.ts +146 -0
  425. package/build/types/real-time-viewer-next/src/types/environment.d.ts.map +1 -0
  426. package/build/types/real-time-viewer-next/src/types/plannerUi.d.ts +68 -0
  427. package/build/types/real-time-viewer-next/src/types/plannerUi.d.ts.map +1 -0
  428. package/build/types/real-time-viewer-next/src/types/scene2d.d.ts +168 -0
  429. package/build/types/real-time-viewer-next/src/types/scene2d.d.ts.map +1 -0
  430. package/build/types/real-time-viewer-next/src/utils/bootPhase.d.ts +75 -0
  431. package/build/types/real-time-viewer-next/src/utils/bootPhase.d.ts.map +1 -0
  432. package/build/types/real-time-viewer-next/src/utils/bootPhase.test.d.ts +5 -0
  433. package/build/types/real-time-viewer-next/src/utils/bootPhase.test.d.ts.map +1 -0
  434. package/build/types/real-time-viewer-next/src/utils/camera.d.ts +8 -0
  435. package/build/types/real-time-viewer-next/src/utils/camera.d.ts.map +1 -0
  436. package/build/types/real-time-viewer-next/src/utils/cameraFraming.d.ts +47 -0
  437. package/build/types/real-time-viewer-next/src/utils/cameraFraming.d.ts.map +1 -0
  438. package/build/types/real-time-viewer-next/src/utils/collisionTargets.d.ts +34 -0
  439. package/build/types/real-time-viewer-next/src/utils/collisionTargets.d.ts.map +1 -0
  440. package/build/types/real-time-viewer-next/src/utils/collisionTargets.test.d.ts +2 -0
  441. package/build/types/real-time-viewer-next/src/utils/collisionTargets.test.d.ts.map +1 -0
  442. package/build/types/real-time-viewer-next/src/utils/cursorStack.d.ts +21 -0
  443. package/build/types/real-time-viewer-next/src/utils/cursorStack.d.ts.map +1 -0
  444. package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.d.ts +24 -0
  445. package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.d.ts.map +1 -0
  446. package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.test.d.ts +5 -0
  447. package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.test.d.ts.map +1 -0
  448. package/build/types/real-time-viewer-next/src/utils/dockingGroups.d.ts +7 -0
  449. package/build/types/real-time-viewer-next/src/utils/dockingGroups.d.ts.map +1 -0
  450. package/build/types/real-time-viewer-next/src/utils/elementIds.d.ts +27 -0
  451. package/build/types/real-time-viewer-next/src/utils/elementIds.d.ts.map +1 -0
  452. package/build/types/real-time-viewer-next/src/utils/equirectCache.d.ts +45 -0
  453. package/build/types/real-time-viewer-next/src/utils/equirectCache.d.ts.map +1 -0
  454. package/build/types/real-time-viewer-next/src/utils/equirectUrl.d.ts +22 -0
  455. package/build/types/real-time-viewer-next/src/utils/equirectUrl.d.ts.map +1 -0
  456. package/build/types/real-time-viewer-next/src/utils/equirectUrl.test.d.ts +2 -0
  457. package/build/types/real-time-viewer-next/src/utils/equirectUrl.test.d.ts.map +1 -0
  458. package/build/types/real-time-viewer-next/src/utils/footprint.d.ts +15 -0
  459. package/build/types/real-time-viewer-next/src/utils/footprint.d.ts.map +1 -0
  460. package/build/types/real-time-viewer-next/src/utils/footprint.test.d.ts +2 -0
  461. package/build/types/real-time-viewer-next/src/utils/footprint.test.d.ts.map +1 -0
  462. package/build/types/real-time-viewer-next/src/utils/footprintTrace.d.ts +55 -0
  463. package/build/types/real-time-viewer-next/src/utils/footprintTrace.d.ts.map +1 -0
  464. package/build/types/real-time-viewer-next/src/utils/footprintTrace.test.d.ts +2 -0
  465. package/build/types/real-time-viewer-next/src/utils/footprintTrace.test.d.ts.map +1 -0
  466. package/build/types/real-time-viewer-next/src/utils/geoViewAngle.d.ts +17 -0
  467. package/build/types/real-time-viewer-next/src/utils/geoViewAngle.d.ts.map +1 -0
  468. package/build/types/real-time-viewer-next/src/utils/gltfLoader.d.ts +34 -0
  469. package/build/types/real-time-viewer-next/src/utils/gltfLoader.d.ts.map +1 -0
  470. package/build/types/real-time-viewer-next/src/utils/gridGeometryApi.d.ts +17 -0
  471. package/build/types/real-time-viewer-next/src/utils/gridGeometryApi.d.ts.map +1 -0
  472. package/build/types/real-time-viewer-next/src/utils/localUVSampler.d.ts +89 -0
  473. package/build/types/real-time-viewer-next/src/utils/localUVSampler.d.ts.map +1 -0
  474. package/build/types/real-time-viewer-next/src/utils/localUVSampler.test.d.ts +2 -0
  475. package/build/types/real-time-viewer-next/src/utils/localUVSampler.test.d.ts.map +1 -0
  476. package/build/types/real-time-viewer-next/src/utils/overlayGeometry.d.ts +28 -0
  477. package/build/types/real-time-viewer-next/src/utils/overlayGeometry.d.ts.map +1 -0
  478. package/build/types/real-time-viewer-next/src/utils/overlayGeometry.test.d.ts +2 -0
  479. package/build/types/real-time-viewer-next/src/utils/overlayGeometry.test.d.ts.map +1 -0
  480. package/build/types/real-time-viewer-next/src/utils/planarTransform.d.ts +20 -0
  481. package/build/types/real-time-viewer-next/src/utils/planarTransform.d.ts.map +1 -0
  482. package/build/types/real-time-viewer-next/src/utils/planarTransform.test.d.ts +2 -0
  483. package/build/types/real-time-viewer-next/src/utils/planarTransform.test.d.ts.map +1 -0
  484. package/build/types/real-time-viewer-next/src/utils/polygon2d.d.ts +25 -0
  485. package/build/types/real-time-viewer-next/src/utils/polygon2d.d.ts.map +1 -0
  486. package/build/types/real-time-viewer-next/src/utils/preloadEnvironment.d.ts +15 -0
  487. package/build/types/real-time-viewer-next/src/utils/preloadEnvironment.d.ts.map +1 -0
  488. package/build/types/real-time-viewer-next/src/utils/profiles.d.ts +113 -0
  489. package/build/types/real-time-viewer-next/src/utils/profiles.d.ts.map +1 -0
  490. package/build/types/real-time-viewer-next/src/utils/profiles.test.d.ts +17 -0
  491. package/build/types/real-time-viewer-next/src/utils/profiles.test.d.ts.map +1 -0
  492. package/build/types/real-time-viewer-next/src/utils/rasterMask.d.ts +31 -0
  493. package/build/types/real-time-viewer-next/src/utils/rasterMask.d.ts.map +1 -0
  494. package/build/types/real-time-viewer-next/src/utils/rasterMask.test.d.ts +2 -0
  495. package/build/types/real-time-viewer-next/src/utils/rasterMask.test.d.ts.map +1 -0
  496. package/build/types/real-time-viewer-next/src/utils/resolveEnvironment.d.ts +16 -0
  497. package/build/types/real-time-viewer-next/src/utils/resolveEnvironment.d.ts.map +1 -0
  498. package/build/types/real-time-viewer-next/src/utils/resolveGridCells.d.ts +35 -0
  499. package/build/types/real-time-viewer-next/src/utils/resolveGridCells.d.ts.map +1 -0
  500. package/build/types/real-time-viewer-next/src/utils/scene.d.ts +3 -0
  501. package/build/types/real-time-viewer-next/src/utils/scene.d.ts.map +1 -0
  502. package/build/types/real-time-viewer-next/src/utils/screenProjection.d.ts +42 -0
  503. package/build/types/real-time-viewer-next/src/utils/screenProjection.d.ts.map +1 -0
  504. package/build/types/real-time-viewer-next/src/utils/screenProjection.test.d.ts +2 -0
  505. package/build/types/real-time-viewer-next/src/utils/screenProjection.test.d.ts.map +1 -0
  506. package/build/types/real-time-viewer-next/src/utils/selectionScopeNames.d.ts +6 -0
  507. package/build/types/real-time-viewer-next/src/utils/selectionScopeNames.d.ts.map +1 -0
  508. package/build/types/real-time-viewer-next/src/utils/selectionScopeScene.d.ts +8 -0
  509. package/build/types/real-time-viewer-next/src/utils/selectionScopeScene.d.ts.map +1 -0
  510. package/build/types/real-time-viewer-next/src/utils/smoothDamp.d.ts +19 -0
  511. package/build/types/real-time-viewer-next/src/utils/smoothDamp.d.ts.map +1 -0
  512. package/build/types/real-time-viewer-next/src/utils/sunAngles.d.ts +29 -0
  513. package/build/types/real-time-viewer-next/src/utils/sunAngles.d.ts.map +1 -0
  514. package/build/types/real-time-viewer-next/src/utils/suspense.d.ts +11 -0
  515. package/build/types/real-time-viewer-next/src/utils/suspense.d.ts.map +1 -0
  516. package/build/types/real-time-viewer-next/src/utils/whiteRoomPreset.d.ts +48 -0
  517. package/build/types/real-time-viewer-next/src/utils/whiteRoomPreset.d.ts.map +1 -0
  518. package/build/types/real-time-viewer-next/src/utils/withRenderTarget.d.ts +48 -0
  519. package/build/types/real-time-viewer-next/src/utils/withRenderTarget.d.ts.map +1 -0
  520. package/build/umd/114.real-time-viewer-next.umd.min.js +2 -0
  521. package/build/umd/114.real-time-viewer-next.umd.min.js.LICENSE.txt +1 -0
  522. package/build/umd/699.real-time-viewer-next.umd.min.js +2 -0
  523. package/build/umd/699.real-time-viewer-next.umd.min.js.LICENSE.txt +1 -0
  524. package/build/umd/964.real-time-viewer-next.umd.min.js +2 -0
  525. package/build/umd/964.real-time-viewer-next.umd.min.js.LICENSE.txt +1 -0
  526. package/build/umd/real-time-viewer-next.umd.min.js +2 -0
  527. package/build/umd/real-time-viewer-next.umd.min.js.LICENSE.txt +117 -0
  528. package/build/umd/report.html +38 -0
  529. package/package.json +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/store/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,YAAY,GAAG,IAAI,EAC7B,WAAW,EAAE,sBAAsB,GAAG,IAAI,GACzC,sBAAsB,CAKxB;AAQD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,sBAAsB,EAC5B,eAAe,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,IAAI,EACnE,IAAI,CAAC,EAAE,yBAAyB,GAC/B,yBAAyB,CAU3B;AAyBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAQrG;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAejG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAIzD"}
@@ -0,0 +1,147 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { AllGrids, FreePlacesOnGrids, PlannedPlacesOnGrids, ResolvedGridCell } from '../../types/accessoryGrids';
3
+ import type { AccessoryRef, RTVStore } from '../types';
4
+ /**
5
+ * ShelfPlanner accessory grid state. Holds the raw host input and the server-computed
6
+ * geometry, and triggers the (cached) geometry fetch. The renderer consumes the resolved
7
+ * `ResolvedGridCell[]` (see `utils/resolveGridCells`) — the unification seam — never these raw fields.
8
+ */
9
+ export interface AccessoryGridSlice {
10
+ /** Free cells for the currently selected accessory. */
11
+ freePlacesOnGrids: FreePlacesOnGrids[] | null;
12
+ /** Placed accessories. Used for the geometry fetch body + catalogCodex/iln; not rendered. */
13
+ plannedPlacesOnGrids: PlannedPlacesOnGrids[] | null;
14
+ /** Server-computed grid + accessory geometry (`POST /articles/grids/all`). */
15
+ accessoryGrids: AllGrids[] | null;
16
+ /** Catalog identity from the `catalogInfo` prop — geometry-fetch fallback when nothing is planned yet. */
17
+ catalogInfo: {
18
+ catalogCodex: string;
19
+ iln?: string;
20
+ } | null;
21
+ setCatalogInfo: (info: {
22
+ catalogCodex: string;
23
+ iln?: string;
24
+ } | null) => void;
25
+ setShelfGridData: (free: FreePlacesOnGrids[] | null, planned: PlannedPlacesOnGrids[] | null) => void;
26
+ /**
27
+ * Fetch grid geometry for the current catalog (cached by catalog+elements+accessories). Pass
28
+ * `extraFree` to also fetch geometry for accessories not in the placement free places (the
29
+ * variant-family targets during a move), so their cells resolve and their bbox proxy can render.
30
+ */
31
+ loadGridGeometry: (extraFree?: FreePlacesOnGrids[]) => Promise<void>;
32
+ }
33
+ /** Identity of a hovered drop target — carries the TARGET element's basket so cross-element moves work. */
34
+ export interface AccessoryMoveTarget {
35
+ /** Basket of the element the target cell belongs to (may differ from the source — cross-element move). */
36
+ parentBasketId: string;
37
+ gridName: string;
38
+ gridIdx: number;
39
+ cellIdx: number;
40
+ /**
41
+ * Article the target cell expects. Differs from the dragged accessory's own article only when the
42
+ * cell belongs to a different variant-family member (size/position swap) — then committing the
43
+ * move also switches the article to this codex. Set by BOTH targeting paths (cursor-snap and
44
+ * box-hover); absent is read as "no switch" by `commitAccessoryMove`.
45
+ */
46
+ articleCodex?: string;
47
+ }
48
+ /**
49
+ * Drag-to-move state for a placed accessory. While `accessoryMove` is non-null the accessory is
50
+ * being dragged: candidate target cells render in the parent shelf, OrbitControls is suspended, and
51
+ * the accessory previews at the hovered target. Commit fires `onAccessoryMove`.
52
+ */
53
+ export interface AccessoryMoveState {
54
+ ref: AccessoryRef;
55
+ /**
56
+ * Raw free-to-move cells across ALL elements (the host's `getFreeToMovePlacesOnGrids` spans
57
+ * elements). Each `FreeGridLayer` resolves the subset for its own element, so drop targets show on
58
+ * every element — enabling moving an accessory from one element to another.
59
+ */
60
+ freePlaces: FreePlacesOnGrids[];
61
+ /** Source element's basket (for the no-op guard when dropped back on the original cell). */
62
+ originBasketId?: string;
63
+ /**
64
+ * The dragged accessory's own articleCodex (all `onAccessoryMoveStart` entries share it). Compared
65
+ * against a target cell's articleCodex to detect a variant-family switch (size/position swap).
66
+ */
67
+ ownArticleCodex?: string;
68
+ /** Currently hovered drop target (the live-preview destination), or null when over none. */
69
+ target: AccessoryMoveTarget | null;
70
+ /** World-space preview position for the accessory's group origin. Null when over no target. */
71
+ targetWorldPos: [number, number, number] | null;
72
+ /**
73
+ * World-space vector from the accessory's ORIGIN cell center to its group origin, captured at
74
+ * drag start: `restingOrigin − originCellCenter`. The live preview places the group origin at
75
+ * `hoveredCellCenter + previewOffset`, i.e. translates the accessory by the pure cell-to-cell
76
+ * delta. This preserves whatever grid offset the resting pose has (dropping back on the origin
77
+ * cell yields zero movement) — no per-accessory half-cell calibration. Null until measured.
78
+ */
79
+ previewOffset: [number, number, number] | null;
80
+ }
81
+ /**
82
+ * A just-committed variant switch, held until the new render script arrives (re-assembly takes
83
+ * ~1s). Keeps the targeted variant's mesh at the drop spot so the accessory doesn't flash back to
84
+ * its old mesh/position in the gap. Cleared on the next `articleVersion` bump.
85
+ */
86
+ export interface CommittedVariant {
87
+ elementKey: string;
88
+ variantCodex: string;
89
+ /** World-space drop position (the element group's snapped origin at release). */
90
+ worldPos: [number, number, number];
91
+ /** The variant's real geo (glb) name + model name, captured so the override can render after the
92
+ * move state is cleared. */
93
+ geo3DName?: string;
94
+ modelName?: string;
95
+ /** The DRAGGED accessory's model name — to look up its bbox for re-centering the variant mesh. */
96
+ draggedModelName?: string;
97
+ }
98
+ export interface AccessoryMoveSlice {
99
+ accessoryMove: AccessoryMoveState | null;
100
+ /** A committed variant switch awaiting the re-assembled scene (see `CommittedVariant`). */
101
+ committedVariant: CommittedVariant | null;
102
+ /** Clear the committed variant (called when the new scene arrives — `articleVersion` change). */
103
+ clearCommittedVariant: () => void;
104
+ /**
105
+ * Begin a move: fetch free-to-move cells (own + variant-family) via `onAccessoryMoveStart`, enter
106
+ * move mode, and load the family variants' grid geometry. Async — resolves to true once the move
107
+ * is active, false if it can't move. (No live drag until it resolves; the accessory is already
108
+ * selected so the press-drag just activates a beat later.)
109
+ */
110
+ startAccessoryMove: (ref: AccessoryRef) => Promise<boolean>;
111
+ /** Set the hovered drop target + its world position (live preview destination). */
112
+ setAccessoryMoveTarget: (target: AccessoryMoveTarget, worldPos: [number, number, number]) => void;
113
+ /** Record the resting-origin↔origin-cell offset measured at drag start (see `previewOffset`). */
114
+ setAccessoryMovePreviewOffset: (offset: [number, number, number]) => void;
115
+ /** Commit the move; fires `onAccessoryMove` with the target (which may be on another element). */
116
+ commitAccessoryMove: () => void;
117
+ /** Abort the move with no change. */
118
+ cancelAccessoryMove: () => void;
119
+ }
120
+ /** Palette drag & drop (HTML5 DnD from the host's accessory palette into the canvas). */
121
+ export interface AccessoryDragState {
122
+ articleCodex: string;
123
+ /** Resolved cell under the drag cursor, or null while off-canvas / out of snap range. */
124
+ targetCell: ResolvedGridCell | null;
125
+ }
126
+ /** A drop released before any cell was resolvable — committed once free places + geometry arrive. */
127
+ export interface PendingAccessoryDrop {
128
+ articleCodex: string;
129
+ clientX: number;
130
+ clientY: number;
131
+ at: number;
132
+ }
133
+ export interface AccessoryDropSlice {
134
+ accessoryDrag: AccessoryDragState | null;
135
+ pendingAccessoryDrop: PendingAccessoryDrop | null;
136
+ setAccessoryDragCodex: (articleCodex: string | null) => void;
137
+ /** Fires `onAccessoryDragOver` on null↔non-null transitions. */
138
+ setAccessoryDragTarget: (cell: ResolvedGridCell | null) => void;
139
+ /** Place at the current drag target via `onAccessoryPlace`; with no target yet, park the drop. */
140
+ commitAccessoryDrop: (clientX: number, clientY: number) => void;
141
+ commitPendingAccessoryDrop: (cell: ResolvedGridCell) => void;
142
+ discardPendingAccessoryDrop: (reason: string) => void;
143
+ }
144
+ export declare const createAccessoryGridSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], AccessoryGridSlice>;
145
+ export declare const createAccessoryMoveSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], AccessoryMoveSlice>;
146
+ export declare const createAccessoryDropSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], AccessoryDropSlice>;
147
+ //# sourceMappingURL=accessory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessory.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/accessory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGtH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKvD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC9C,6FAA6F;IAC7F,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACpD,8EAA8E;IAC9E,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAClC,0GAA0G;IAC1G,WAAW,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,cAAc,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9E,gBAAgB,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACrG;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,2GAA2G;AAC3G,MAAM,WAAW,mBAAmB;IAClC,0GAA0G;IAC1G,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,YAAY,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,4FAA4F;IAC5F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4FAA4F;IAC5F,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,+FAA+F;IAC/F,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;iCAC6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,2FAA2F;IAC3F,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,iGAAiG;IACjG,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,mFAAmF;IACnF,sBAAsB,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAClG,iGAAiG;IACjG,6BAA6B,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC1E,kGAAkG;IAClG,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,qCAAqC;IACrC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrC;AAED,qGAAqG;AACrG,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,gEAAgE;IAChE,sBAAsB,EAAE,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IAChE,kGAAkG;IAClG,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,0BAA0B,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7D,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAwC9H,CAAC;AASH,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAiH9H,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAwD9H,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { RTVStore } from '../types';
3
+ export interface AnalyzerGateSlice {
4
+ /** When true, element click/hover interactions are suppressed (e.g. inspect mode). */
5
+ elementInteractionBlocked: boolean;
6
+ setElementInteractionBlocked: (blocked: boolean) => void;
7
+ /** When set, the outline post-processing targets only this geo group name (e.g. "geo:assetId:0"). */
8
+ outlineGeoTarget: string | null;
9
+ setOutlineGeoTarget: (name: string | null) => void;
10
+ /** When set, a subtle hover outline is shown on this geo group name. */
11
+ outlineHoverTarget: string | null;
12
+ setOutlineHoverTarget: (name: string | null) => void;
13
+ }
14
+ export declare const createAnalyzerGateSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], AnalyzerGateSlice>;
15
+ //# sourceMappingURL=analyzerGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzerGate.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/analyzerGate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,yBAAyB,EAAE,OAAO,CAAC;IACnC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,qGAAqG;IACrG,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAO5H,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { CameraConfig } from '../../types/camera';
3
+ import type { RTVStore } from '../types';
4
+ export type CameraAction = {
5
+ type: 'focus';
6
+ elementName: string;
7
+ geoName?: string;
8
+ } | {
9
+ type: 'reset';
10
+ }
11
+ /**
12
+ * Recompute the initial framing from the current `cameraConfig` and animate
13
+ * to it. Unlike `reset` (which animates back to the *saved* on-load pose),
14
+ * `reframe` reads the live `initialAngle` / `initialZoomPadding3D` /
15
+ * `initialZoomPadding2D` / `initialTargetHeight` values, so analyzer edits
16
+ * to those fields take effect on demand. Also updates the saved-pose refs
17
+ * so subsequent `reset`s honor the new framing.
18
+ */
19
+ | {
20
+ type: 'reframe';
21
+ }
22
+ /**
23
+ * Sticky element focus (the focus engine). Reorients to the element front + per-type elevation;
24
+ * snapshots the pre-focus pose on entry so `unfocus` can fly back. Distinct from the one-shot
25
+ * `focus` framing above, which neither snapshots nor can be exited.
26
+ */
27
+ | {
28
+ type: 'focusElement';
29
+ elementName: string;
30
+ focusElevationDeg?: number;
31
+ frontOn?: boolean;
32
+ paddingScale?: number;
33
+ }
34
+ /**
35
+ * Fly back to the pose saved when focus was first entered. With `frontOnElementName` set (shelf-
36
+ * accessory focus exit), fly instead to the scene overview front-centered on that element — the
37
+ * same azimuth the `frontOn` focus pose used, so the exit only dollies out and never rotates.
38
+ */
39
+ | {
40
+ type: 'unfocus';
41
+ frontOnElementName?: string;
42
+ };
43
+ export interface CameraSlice {
44
+ cameraConfig: CameraConfig;
45
+ /** Queue of imperative camera commands — consumers drain via `drainCameraActions` */
46
+ cameraActionQueue: CameraAction[];
47
+ setCameraConfig: (partial: Partial<CameraConfig>) => void;
48
+ /**
49
+ * When true (e.g. analyzer “development camera”), 3D orbit uses wide clamps and
50
+ * skips collision / floor / target-box / dolly-on-rotate constraint passes.
51
+ */
52
+ cameraDevelopmentMode: boolean;
53
+ setCameraDevelopmentMode: (active: boolean) => void;
54
+ enqueueCameraAction: (action: CameraAction) => void;
55
+ drainCameraActions: () => CameraAction[];
56
+ focusElement: (elementName: string) => void;
57
+ /** Focus camera on a specific geo within an element. `geoName` must match the Three.js group name set on the GeoInstance. */
58
+ focusGeo: (elementName: string, geoName: string) => void;
59
+ /** Focus by numeric element ID — resolves the correct name from both 3D and 2D scenes */
60
+ focusElementById: (elementId: number) => void;
61
+ resetCamera: () => void;
62
+ /** Recompute initial framing from the current camera config and animate to it. */
63
+ reframeWorld: () => void;
64
+ }
65
+ export declare const createCameraSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], CameraSlice>;
66
+ //# sourceMappingURL=camera.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AACnB;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB;;;;GAIG;GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;AACrH;;;;GAIG;GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,qFAAqF;IACrF,iBAAiB,EAAE,YAAY,EAAE,CAAC;IAClC,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC1D;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,mBAAmB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,kBAAkB,EAAE,MAAM,YAAY,EAAE,CAAC;IACzC,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,6HAA6H;IAC7H,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,yFAAyF;IACzF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,kFAAkF;IAClF,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CA2BhH,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { CaptureProgress, ShotBatch, ShotResult } from '../../capture/types';
3
+ import type { ResolvedEnvironmentConfig } from '../../types/environment';
4
+ import type { RTVStore } from '../types';
5
+ /**
6
+ * The COMPLETE set of store fields a capture shot may override, and the only way it may write them
7
+ * — see {@link CaptureSlice._captureApplyOverrides}. Omitted keys are left untouched.
8
+ */
9
+ export interface CaptureOverrides {
10
+ /**
11
+ * Swaps the rendered environment for a shot WITHOUT touching the profile inputs: the next
12
+ * input-driven projection reproduces the same env, and `_captureRestore` puts the batch-start
13
+ * object back with its identity intact so env-keyed subtrees don't rebuild after a batch.
14
+ */
15
+ resolvedEnvironment?: ResolvedEnvironmentConfig;
16
+ viewMode?: '3d' | '2d';
17
+ showDimensionLines?: boolean;
18
+ captureGridOverride?: boolean | null;
19
+ hideUiIcons?: boolean;
20
+ selectedElementName?: string | null;
21
+ hoveredElementName?: string | null;
22
+ }
23
+ /** The pre-batch values `_captureRestore` puts back. Mirrors the capture engine's snapshot. */
24
+ export interface CaptureRestoreState {
25
+ resolvedEnvironment: ResolvedEnvironmentConfig;
26
+ viewMode: '3d' | '2d';
27
+ showDimensionLines: boolean;
28
+ hideUiIcons: boolean;
29
+ selectedElementName: string | null;
30
+ hoveredElementName: string | null;
31
+ }
32
+ export interface CaptureSlice {
33
+ isCapturing: boolean;
34
+ captureProgress: CaptureProgress;
35
+ hiddenElementIds: Set<number>;
36
+ /** When non-null, FloorGrid uses this instead of its normal viewMode/planner logic. */
37
+ captureGridOverride: boolean | null;
38
+ /** @internal When true, useViewModeTransition skips one animated transition. */
39
+ _skipViewModeTransition: boolean;
40
+ setHiddenElementIds: (ids: Set<number>) => void;
41
+ setCaptureGridOverride: (override: boolean | null) => void;
42
+ captureShots: (batch: ShotBatch) => Promise<ShotResult[]>;
43
+ cancelCapture: () => void;
44
+ /** @internal Used by useCaptureEngine to pick up and resolve capture requests. */
45
+ _captureRequest: {
46
+ batch: ShotBatch;
47
+ resolve: (results: ShotResult[]) => void;
48
+ reject: (error: Error) => void;
49
+ } | null;
50
+ /** @internal Capture engine only — the sealed write channel. See {@link CaptureOverrides}. */
51
+ _captureApplyOverrides: (overrides: CaptureOverrides) => void;
52
+ /** @internal Capture engine only. Puts the pre-batch state back and clears the shot-only fields. */
53
+ _captureRestore: (snapshot: CaptureRestoreState) => void;
54
+ /** @internal Capture engine only. Publishes batch progress between shots. */
55
+ _captureSetProgress: (progress: CaptureProgress) => void;
56
+ /** @internal Capture engine only. Ends the batch: clears the in-flight request and the busy flag. */
57
+ _captureFinish: (progress: CaptureProgress) => void;
58
+ }
59
+ export declare const createCaptureSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], CaptureSlice>;
60
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/capture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,uFAAuF;IACvF,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gFAAgF;IAChF,uBAAuB,EAAE,OAAO,CAAC;IACjC,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAChD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kFAAkF;IAClF,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,CAAC;QACjB,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;QACzC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KAChC,GAAG,IAAI,CAAC;IACT,8FAA8F;IAC9F,sBAAsB,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9D,oGAAoG;IACpG,eAAe,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD,6EAA6E;IAC7E,mBAAmB,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IACzD,qGAAqG;IACrG,cAAc,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAiElH,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { CameraConfig } from '../../types/camera';
3
+ import type { PerformanceProfileMode, PerformanceProfiles } from '../../types/environment';
4
+ import type { UIConfig } from '../../types/plannerUi';
5
+ import type { RTVStore } from '../types';
6
+ /**
7
+ * Host capability flags. Set once via `RTVConfig.capabilities`. Treated as
8
+ * immutable for the lifetime of the canvas — flipping mid-session does NOT
9
+ * retro-actively code-split the lazy 3D capsule. See `core/viewMode/` and
10
+ * `docs/VIEW_MODES_2D_3D.md` for the full policy.
11
+ */
12
+ export interface RTVCapabilities {
13
+ /**
14
+ * When false, the host never assembles HQS and the lazy 3D capsule
15
+ * (`Scene3DContent`) is never imported. The 2D-only entry path skips
16
+ * water, sky, backdrop, scene floor, shadows, full PP, and the
17
+ * 2D ↔ 3D camera transition. Default `true`.
18
+ */
19
+ supports3d: boolean;
20
+ }
21
+ export interface RTVConfig {
22
+ archiveBaseUrl: string;
23
+ constructorServiceUrl: string;
24
+ jwt?: string;
25
+ /** Host capability flags; omitted keys take their default. See {@link RTVCapabilities}. */
26
+ capabilities?: Partial<RTVCapabilities>;
27
+ camera?: CameraConfig;
28
+ /**
29
+ * Performance profile bundle (`high` baseline + sparse `medium` / `low`
30
+ * overrides). When provided, the store resolves the active profile via
31
+ * `mergeProfile`. See `DEFAULT_PROFILES` in `utils/profiles.ts` for the
32
+ * in-tree default bundle.
33
+ */
34
+ profiles?: PerformanceProfiles;
35
+ /**
36
+ * Tier selection. `'auto'` (default when `profiles` is set) runs the
37
+ * `detectDeviceTier` helper at startup and lets the runtime adjuster step
38
+ * the tier; `'detect'` runs detection and pins the result; the explicit
39
+ * tiers skip detection.
40
+ */
41
+ profileMode?: PerformanceProfileMode;
42
+ /** Merged into store `uiConfig` when provided */
43
+ uiConfig?: Partial<UIConfig>;
44
+ }
45
+ export interface ConfigSlice {
46
+ config: RTVConfig;
47
+ /** Resolved host capability flags — always concrete, so consumers never see `undefined`. */
48
+ capabilities: RTVCapabilities;
49
+ setConfig: (config: RTVConfig) => void;
50
+ }
51
+ export declare const createConfigSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], ConfigSlice>;
52
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzC;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,4FAA4F;IAC5F,YAAY,EAAE,eAAe,CAAC;IAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CACxC;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAqEhH,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { FootprintPoint } from '../../utils/footprint';
3
+ import type { RTVStore } from '../types';
4
+ /**
5
+ * Article-driven scene-deform channel. `DeckCutoutArticleSync` measures the live article and
6
+ * publishes the derived cutout outline / water volume here; the collar and the water surface read
7
+ * them. Producer and consumers sit in different subtrees, so the store is the link. Both are
8
+ * epsilon-compared on write so an unchanged re-measure doesn't rebuild anything, and neither is
9
+ * persisted — they are re-derived from geometry on every load.
10
+ */
11
+ export interface DeckCutoutSlice {
12
+ /**
13
+ * Shaped cutout outline from a matched footprint rule (`deckCutout.articleRules`) — the collar's
14
+ * inner boundary in floor-local XZ, already offset by the deck margin.
15
+ */
16
+ deckCutoutFootprintOverride: FootprintPoint[] | null;
17
+ setDeckCutoutFootprintOverride: (points: FootprintPoint[] | null) => void;
18
+ /** Article-derived water volume (`deckCutout.waterSync`), used in place of `water.volume`. */
19
+ waterVolumeOverride: {
20
+ center: [number, number, number];
21
+ size: [number, number, number];
22
+ } | null;
23
+ setWaterVolumeOverride: (volume: {
24
+ center: [number, number, number];
25
+ size: [number, number, number];
26
+ } | null) => void;
27
+ }
28
+ export declare const createDeckCutoutSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], DeckCutoutSlice>;
29
+ //# sourceMappingURL=deckCutout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deckCutout.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/deckCutout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,2BAA2B,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IACrD,8BAA8B,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1E,8FAA8F;IAC9F,mBAAmB,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACjG,sBAAsB,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;CACvH;AAED,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,CAgCxH,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { RecursivePartial, ResolvedEnvironmentConfig, SceneMetrics } from '../../types/environment';
3
+ import type { RTVStore } from '../types';
4
+ export interface EnvironmentSlice {
5
+ /**
6
+ * DERIVED — the single projection of the profile inputs (`profiles` +
7
+ * `activeProfileTier`) with {@link runtimeEnvPatch} merged last. Recomputed
8
+ * by every action that changes one of those inputs via
9
+ * `projectResolvedEnvironment`; nothing else writes it (except the capture
10
+ * engine's sealed channels, {@link CaptureSlice._captureApplyOverrides} /
11
+ * {@link CaptureSlice._captureRestore}).
12
+ */
13
+ resolvedEnvironment: ResolvedEnvironmentConfig;
14
+ sceneMetrics: SceneMetrics | null;
15
+ /**
16
+ * Override scene metrics (bounds / center / floorY) read by the shadow-camera
17
+ * fit and camera framing. Normally derived from the product
18
+ * scene in `setScene`; the analyzer's environment GLB is a standalone `<primitive>`
19
+ * outside that tree, so `EnvironmentSceneLoader` publishes its world bounds here on load
20
+ * (and restores the previous value on unload) to keep the shadow frustum fit.
21
+ */
22
+ setSceneMetrics: (metrics: SceneMetrics | null) => void;
23
+ /**
24
+ * Runtime overlay merged on top of the profile projection — the channel for
25
+ * runtime visuals that are NOT config edits (e.g. the analyzer's inspect
26
+ * outlines). Because it is an input to the projection it survives tier
27
+ * switches and profile edits; individual paths are removed again via
28
+ * {@link clearResolvedEnvironmentPatch}.
29
+ */
30
+ runtimeEnvPatch: RecursivePartial<ResolvedEnvironmentConfig> | null;
31
+ /** Merge a runtime patch into the overlay (see {@link runtimeEnvPatch}). */
32
+ patchResolvedEnvironment: (patch: RecursivePartial<ResolvedEnvironmentConfig>) => void;
33
+ /** Remove one dotted path from the runtime overlay — the projected value shows through again. */
34
+ clearResolvedEnvironmentPatch: (path: string) => void;
35
+ /**
36
+ * World-space position corrections applied on top of each element's HQS
37
+ * pose, keyed by element key. Used by scene-anchor drivers (e.g. the
38
+ * analyzer's article sync) to hold an element's bbox edge on a fixed scene
39
+ * line while the article grows from its center (HQS `PosPivot === 'CENTER'`
40
+ * moves both edges on a size change). Writers must only call the setter
41
+ * with actually-changed values — every consumer group re-renders on it.
42
+ */
43
+ elementAnchorOffsets: Record<string, [number, number, number]>;
44
+ setElementAnchorOffsets: (offsets: Record<string, [number, number, number]>) => void;
45
+ }
46
+ export declare const createEnvironmentSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], EnvironmentSlice>;
47
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGzG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD;;;;;;OAMG;IACH,eAAe,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IACpE,4EAA4E;IAC5E,wBAAwB,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,KAAK,IAAI,CAAC;IACvF,iGAAiG;IACjG,6BAA6B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtD;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;CACtF;AAED,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CA0B1H,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { RTVStore } from '../types';
3
+ export interface GLGenerationSlice {
4
+ /**
5
+ * Bumped once per WebGL context restore. Three re-uploads image-backed textures from their
6
+ * `.image` after a restore, but anything whose content lives in a RENDER TARGET is gone for good
7
+ * — nothing re-renders into it. The IBL is exactly that (`PMREMGenerator.fromEquirectangular()`
8
+ * feeding `scene.environment`), so without this the scene comes back lit by a blank environment:
9
+ * black everywhere, while the unlit skydome still looks correct. Three reuses the same
10
+ * `WebGLRenderer` instance across a restore, so no existing effect dep changes on its own — this
11
+ * counter is the signal. Key the render-target owners on it to force them to rebuild.
12
+ */
13
+ glGeneration: number;
14
+ /** Called from the `webglcontextrestored` handler — see {@link GLGenerationSlice.glGeneration}. */
15
+ bumpGLGeneration: () => void;
16
+ }
17
+ export declare const createGLGenerationSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], GLGenerationSlice>;
18
+ //# sourceMappingURL=glGeneration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glGeneration.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/glGeneration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,mGAAmG;IACnG,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,iBAAiB,CAG5H,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+ import '../../testUtils/structuredClonePolyfill';
5
+ //# sourceMappingURL=hostSelection.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostSelection.test.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/hostSelection.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,yCAAyC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import type { RTVStore } from '../types';
3
+ export interface InteractionSlice {
4
+ isDragging: boolean;
5
+ isRotating: boolean;
6
+ /** True while OrbitControls is actively changing the view (drag / touch / wheel zoom). Suppresses element hover. */
7
+ isViewManipulating: boolean;
8
+ interactionTargetName: string | null;
9
+ interactionSetName: string | null;
10
+ interactionElementId: number;
11
+ interactionPosition: [number, number, number] | null;
12
+ lastInteractionPosition: [number, number, number] | null;
13
+ interactionStartPosition: [number, number, number] | null;
14
+ /** Docking-group members (mains) the drag translates together. Includes the grabbed element. */
15
+ interactionGroupMembers: {
16
+ setId: string;
17
+ elementId: number;
18
+ }[];
19
+ /** Names that must visually follow the drag (group siblings + their descendants), excluding the
20
+ * grabbed element and its own descendants. Holds both the 2D (`Element<id>`) and 3D node-name forms. */
21
+ interactionFollowerNames: Set<string>;
22
+ /**
23
+ * Live auto-dock preview during a drag: the rigid transform that snaps the dragged group to its
24
+ * imminent dock, applied on top of the cursor-driven positions. `pivot` (meters, world XZ) is the
25
+ * grabbed element's cursor position; the group orbits it by `deltaRot` (radians, viewer convention)
26
+ * then translates by `deltaPos` (meters). Null when nothing is in snapping range.
27
+ */
28
+ snapPreview: {
29
+ pivot: [number, number];
30
+ deltaPos: [number, number];
31
+ deltaRot: number;
32
+ } | null;
33
+ interactionRotationY: number;
34
+ /** Unsnapped cumulative rotation — used to compute the snap target. */
35
+ interactionRawRotationY: number;
36
+ /** Element's absolute rotation (deg) when rotation started — used for absolute snapping. */
37
+ interactionStartRotationDeg: number;
38
+ interactionPivot: [number, number, number] | null;
39
+ /** Turning point in planner coordinates (cm) sent to updatePlannerTrans during rotation. */
40
+ interactionTurningPoint: {
41
+ x: number;
42
+ z: number;
43
+ } | null;
44
+ setViewManipulating: (active: boolean) => void;
45
+ startDrag: (elementName: string, parentSetName: string, elementId: number) => void;
46
+ updateDrag: (position: [number, number, number]) => void;
47
+ endDrag: () => void;
48
+ startRotate: (elementName: string, parentSetName: string, elementId: number) => void;
49
+ updateRotate: (deltaAngleDeg: number) => void;
50
+ endRotate: () => void;
51
+ }
52
+ export declare const createInteractionSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], InteractionSlice>;
53
+ //# sourceMappingURL=interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../../../src/store/slices/interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKzC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,oHAAoH;IACpH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACrD,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACzD,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1D,gGAAgG;IAChG,uBAAuB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE;6GACyG;IACzG,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC;;;;;OAKG;IACH,WAAW,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9F,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,uBAAuB,EAAE,MAAM,CAAC;IAChC,4FAA4F;IAC5F,2BAA2B,EAAE,MAAM,CAAC;IACpC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAClD,4FAA4F;IAC5F,uBAAuB,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnF,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrF,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AA0CD,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAyS1H,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { StateCreator } from 'zustand';
2
+ import { type DetectedTier, type EnvironmentConfig, type OverrideProfileTier, type PerformanceProfileMode, type PerformanceProfileTier, type PerformanceProfiles, type PerformanceProfilesBundle, type RecursivePartial } from '../../types/environment';
3
+ import { type ClearedOverride } from '../../utils/profiles';
4
+ import type { RTVStore } from '../types';
5
+ /**
6
+ * State + actions for the performance-profile system.
7
+ *
8
+ * The slice owns three pieces of state that have to stay in sync:
9
+ *
10
+ * - `profiles` the source-of-truth profile bundle (high + sparse
11
+ * medium / low overrides).
12
+ * - `profileMode` user-selected mode (`auto` / `detect` run
13
+ * detection, the explicit tiers skip it).
14
+ * - `activeProfileTier` the resolved tier currently in effect — pulled
15
+ * from `detectedTier` when mode is `auto` / `detect`,
16
+ * else equals `profileMode`. Always a playable tier;
17
+ * never `'auto'`, `'detect'` or `'unsupported'`.
18
+ *
19
+ * Every mutation that can change the active tier or the active profile
20
+ * config recomputes `resolvedEnvironment` through `projectResolvedEnvironment`
21
+ * so it stays consistent with the bundle.
22
+ */
23
+ export interface PerformanceProfileSlice {
24
+ profiles: PerformanceProfiles;
25
+ profileMode: PerformanceProfileMode;
26
+ activeProfileTier: PerformanceProfileTier;
27
+ detectedTier: DetectedTier | null;
28
+ /**
29
+ * `false` until a profile bundle has actually been applied — either by the host (`config.profiles` via
30
+ * {@link setConfig}) or by a preset (`setProfilesBundle`). The scene render
31
+ * is gated on this so the viewer never paints the built-in `DEFAULT_PROFILES` baseline first and then
32
+ * remounts the post-processing composer when the real bundle arrives a frame later (that remount
33
+ * throws a WebGL depth/stencil blit error). A timeout fallback in SceneRenderer flips it true so a
34
+ * host that never supplies a bundle still renders.
35
+ */
36
+ profileBundleApplied: boolean;
37
+ /**
38
+ * `true` when device detection returned `unsupported` (WebGL blocked /
39
+ * blocklisted GPU). The entry component skips the canvas entirely in that case.
40
+ */
41
+ unsupported: boolean;
42
+ /** Runtime adjuster state (auto mode only, session-only). Guard fields below. */
43
+ runtimeTier: PerformanceProfileTier | null;
44
+ runtimeSwitchCount: number;
45
+ runtimeHasDemoted: boolean;
46
+ runtimeLastSwitchTs: number;
47
+ setProfileMode: (mode: PerformanceProfileMode) => void;
48
+ setDetectedTier: (detected: DetectedTier) => void;
49
+ /** Step the active tier one rung within its ladder. Guards applied; no-op if rejected. */
50
+ applyRuntimeTierStep: (direction: 'up' | 'down', basis?: PerfStepBasis) => void;
51
+ /**
52
+ * Patch the active profile. The patch is stored verbatim (before
53
+ * `resolveEnvironment` runs normalisation) so the diff panel sees raw
54
+ * user input. When the active profile is `high`, lower-tier overrides at
55
+ * the same paths are cleared and returned to the caller for a toast.
56
+ */
57
+ patchActiveProfile: (patch: RecursivePartial<EnvironmentConfig>) => ClearedOverride[];
58
+ /** Remove a specific override path from one of the override-tier profiles. */
59
+ clearProfileOverrideAtPath: (tier: OverrideProfileTier, path: string) => void;
60
+ /** Replace the entire bundle (used by analyzer Import). */
61
+ setProfilesBundle: (bundle: PerformanceProfilesBundle) => void;
62
+ }
63
+ /** FPS basis behind a runtime tier step — logged on the switch line for diagnosis. */
64
+ export interface PerfStepBasis {
65
+ fps: number;
66
+ lower: number;
67
+ upper: number;
68
+ averages: number[];
69
+ }
70
+ export declare const createPerformanceProfileSlice: StateCreator<RTVStore, [['zustand/subscribeWithSelector', never]], [], PerformanceProfileSlice>;
71
+ //# sourceMappingURL=performanceProfile.d.ts.map