@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,55 @@
1
+ import { type FootprintPoint } from './polygon2d';
2
+ export interface TraceFootprintOptions {
3
+ /** Raster cell size (m) — the fidelity floor of the trace. Default 0.005. */
4
+ cellSize?: number;
5
+ /** Douglas–Peucker tolerance (m) for the traced contour. Default = cellSize. */
6
+ simplifyTolerance?: number;
7
+ /**
8
+ * Gap (m) the morphological closing bridges — seams between separately
9
+ * modelled rim parts must not split the contour. Kept as a DISTANCE rather
10
+ * than a cell count so raising the resolution doesn't weaken the sealing.
11
+ * Default 0.02.
12
+ */
13
+ closeGap?: number;
14
+ /**
15
+ * Offset (m) applied to the silhouette before its contour is traced —
16
+ * negative shrinks it, positive grows it. Default 0.
17
+ *
18
+ * Done on the RASTER (see {@link offsetMask}) rather than on the finished
19
+ * polygon: a per-vertex miter offset cuts the corner wherever two edges meet
20
+ * at a sharp angle and crosses itself across any concavity narrower than the
21
+ * offset, both of which leave the contour cutting into the shape.
22
+ */
23
+ offset?: number;
24
+ /**
25
+ * Mutable out-parameter the trace fills with what it actually did. Reading it
26
+ * is the only way to tell a clean single-contour trace from one where the
27
+ * offset split the mask and a whole component (a step, a spa end) was
28
+ * dropped, since both return a perfectly valid-looking polygon.
29
+ */
30
+ diagnostics?: TraceDiagnostics;
31
+ }
32
+ /** What a trace did internally — see {@link TraceFootprintOptions.diagnostics}. */
33
+ export interface TraceDiagnostics {
34
+ /** Mask cells set after closing and offsetting. */
35
+ filledCells: number;
36
+ /** Cells added by solidifying the silhouette — large for a ring-shaped projection (a basin rim). */
37
+ enclosedFilled: number;
38
+ /** Closed contours marching squares found. More than one means the shape is in pieces. */
39
+ loops: number;
40
+ /** Area of the contour kept, as a share of ALL contours' area. Below 1 means components were dropped. */
41
+ chosenAreaShare: number;
42
+ /** Contour points before Douglas-Peucker, and after. */
43
+ pointsBeforeSimplify: number;
44
+ pointsAfterSimplify: number;
45
+ }
46
+ /**
47
+ * Trace the outer silhouette of a triangle soup already projected onto the
48
+ * plane: `triangleXZ` holds 6 numbers per triangle (x0 z0 x1 z1 x2 z2). The
49
+ * triangles are rasterized into a binary mask (cell centers + vertices + edge
50
+ * samples, then a 3×3 closing to seal sliver gaps), the mask is contoured with
51
+ * marching squares, and the largest closed loop is simplified. Returns [] when
52
+ * nothing usable comes out (fewer than 3 triangles, degenerate extent).
53
+ */
54
+ export declare function traceFootprintFromTriangles(triangleXZ: ArrayLike<number>, options?: TraceFootprintOptions): FootprintPoint[];
55
+ //# sourceMappingURL=footprintTrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footprintTrace.d.ts","sourceRoot":"","sources":["../../../../../src/utils/footprintTrace.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAc5F,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oGAAoG;IACpG,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,yGAAyG;IACzG,eAAe,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,qBAA0B,GAAG,cAAc,EAAE,CAkJhI"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=footprintTrace.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footprintTrace.test.d.ts","sourceRoot":"","sources":["../../../../../src/utils/footprintTrace.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { Vector3 } from 'three';
2
+ import type { Object3D } from 'three';
3
+ import type { ViewAngle } from '../types/camera';
4
+ interface GeoFrameResult {
5
+ center: Vector3;
6
+ radius: number;
7
+ angle: ViewAngle;
8
+ padding: number;
9
+ }
10
+ /**
11
+ * Frame a geo using a geometry-derived viewing angle. Uses the true bbox
12
+ * center and computes the framing radius from the bbox's vertical and
13
+ * horizontal extent so tall/thin geos are never clipped.
14
+ */
15
+ export declare function frameGeoObject(obj: Object3D, baseAngle: ViewAngle, padding: number, aspect?: number): GeoFrameResult | null;
16
+ export {};
17
+ //# sourceMappingURL=geoViewAngle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geoViewAngle.d.ts","sourceRoot":"","sources":["../../../../../src/utils/geoViewAngle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA8B,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuJjD,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAgB3H"}
@@ -0,0 +1,34 @@
1
+ import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
2
+ import { type GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
3
+ /**
4
+ * Returns a singleton DRACOLoader configured with the Google CDN decoder path.
5
+ *
6
+ * `preload()` starts the decoder (wasm wrapper + wasm) download right here instead of leaving it
7
+ * to the first `decodeDracoFile` call — which only happens once a GLB has finished downloading and
8
+ * parsing, putting a cold CDN round trip in series behind every asset. Kicking it at construction
9
+ * puts that fetch in parallel with the GLB download it is going to decode.
10
+ */
11
+ export declare function getSharedDracoLoader(): DRACOLoader;
12
+ /**
13
+ * Starts the Draco decoder download without needing a GLB URL yet, so it can overlap whatever else
14
+ * the boot is doing. Idempotent — it just builds the shared loader, which preloads.
15
+ */
16
+ export declare function preloadDracoDecoder(): void;
17
+ /**
18
+ * The article-geo GLB cache: one download + Draco decode per URL, shared by
19
+ * BOTH consumers of a geo asset — the boot preload pass (`preloadGeoAssets`)
20
+ * and the render path (`GeoLoader` suspends on the same promise). Callers must
21
+ * treat the loaded scene graph as immutable and shared: clone before
22
+ * mutating/reparenting, never dispose its geometries/materials.
23
+ *
24
+ * A rejected load is evicted so a later attempt retries; in-flight and
25
+ * resolved entries are kept for the lifetime of the page.
26
+ */
27
+ export declare function loadGLTFCached(url: string): Promise<GLTF>;
28
+ /**
29
+ * The cache entry for `url` if there is one (in-flight included), otherwise `undefined`. For
30
+ * warm-up passes that may only act on geos someone else already loaded and must never start a
31
+ * download themselves — see `warmStandardMaterials`.
32
+ */
33
+ export declare function peekGLTFCached(url: string): Promise<GLTF> | undefined;
34
+ //# sourceMappingURL=gltfLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltfLoader.d.ts","sourceRoot":"","sources":["../../../../../src/utils/gltfLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,0CAA0C,CAAC;AASjF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAQlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAMD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAezD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAErE"}
@@ -0,0 +1,17 @@
1
+ import type { AllGrids, FreePlacesOnGrids, PlannedPlacesOnGrids } from '../types/accessoryGrids';
2
+ export interface GridGeometryRequest {
3
+ constructorServiceUrl: string;
4
+ jwt?: string;
5
+ catalogCodex: string;
6
+ iln: string;
7
+ planned: PlannedPlacesOnGrids[];
8
+ freePlaces: FreePlacesOnGrids[];
9
+ }
10
+ /**
11
+ * Fetch the server-computed grid + accessory geometry for one catalog, session-cached and
12
+ * in-flight-deduped. Resolves to `null` when there is nothing to apply — a duplicate request is
13
+ * already running, or the fetch failed (logged, never thrown: missing geometry only means the
14
+ * accessory boxes don't render).
15
+ */
16
+ export declare function fetchGridGeometry(request: GridGeometryRequest): Promise<AllGrids[] | null>;
17
+ //# sourceMappingURL=gridGeometryApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gridGeometryApi.d.ts","sourceRoot":"","sources":["../../../../../src/utils/gridGeometryApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAYjG,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAqBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CA8ChG"}
@@ -0,0 +1,89 @@
1
+ /** Floats per triangle in the soup: (x, z, u, v) per vertex. */
2
+ export declare const UV_TRIANGLE_STRIDE = 12;
3
+ /** One affine UV mapping over XZ: `u = ux·x + uz·z + u0`, likewise for v. */
4
+ export interface AffineUV {
5
+ ux: number;
6
+ uz: number;
7
+ u0: number;
8
+ vx: number;
9
+ vz: number;
10
+ v0: number;
11
+ /**
12
+ * RMS error of the fit expressed along the surface (m) — how far the mapped
13
+ * pattern lands from where the source triangles actually put it. Near zero
14
+ * means the source really is one plane at one density and the mapping can be
15
+ * used wholesale; anything else means it is not, and only the local sampler
16
+ * can continue it faithfully.
17
+ */
18
+ residualMetres: number;
19
+ }
20
+ /**
21
+ * Least-squares fit of ONE affine mapping over every vertex in the soup.
22
+ *
23
+ * Where it fits (a planar unwrap at uniform density), it beats
24
+ * {@link sampleNearestTriangleUV} on generated geometry: the local sampler
25
+ * decides per vertex, so two ends of a generated triangle can land on different
26
+ * source triangles and the interpolation between them blends two mappings —
27
+ * a visible shear, worst on long thin triangles like those a curved outline
28
+ * produces. One mapping for every vertex cannot shear. Check
29
+ * {@link AffineUV.residualMetres} before trusting it.
30
+ */
31
+ export declare function fitAffineUV(triangles: Float32Array, triangleCount: number): AffineUV | null;
32
+ /**
33
+ * Uniform XZ grid over a triangle soup, so a nearest-triangle query touches a
34
+ * handful of cells instead of every triangle. Build it once per surface with
35
+ * {@link buildTriangleGridIndex} and pass it to {@link sampleNearestTriangleUV},
36
+ * which then returns exactly what the linear scan returns — same triangle, same
37
+ * tie-break, same UV.
38
+ */
39
+ export interface TriangleGridIndex {
40
+ /** The soup this index describes; a different count means it is stale and is ignored. */
41
+ triangleCount: number;
42
+ minX: number;
43
+ minZ: number;
44
+ cellSize: number;
45
+ cols: number;
46
+ rows: number;
47
+ /** CSR offsets: cell `c` holds `cellItems[cellStart[c] … cellStart[c + 1])`. */
48
+ cellStart: Int32Array;
49
+ /** Triangle indices per cell, ascending. */
50
+ cellItems: Int32Array;
51
+ /**
52
+ * Triangles no cell can stand in for — scanned on every query. Three kinds:
53
+ * non-finite XZ; zero area, whose inside test reports distance 0 for ANY point
54
+ * and so cannot be pruned by position at all; and triangles spanning more
55
+ * cells than it is worth registering them in.
56
+ */
57
+ extras: Int32Array;
58
+ }
59
+ /**
60
+ * Uniform grid over the soup's XZ bounds, each triangle registered in every cell
61
+ * its bounding box overlaps. Build it once per surface — it depends on the soup
62
+ * alone — and reuse it for every query against that soup.
63
+ *
64
+ * Cell size is the larger of the mean triangle extent and the size that puts
65
+ * about one triangle in a cell: smaller than the triangles themselves only
66
+ * multiplies registrations without narrowing a query, larger leaves too many
67
+ * triangles per cell to skip.
68
+ *
69
+ * Returns null when an index would not pay for itself or could not be trusted —
70
+ * too few triangles, a soup that is one point, or too much of it non-finite. The
71
+ * caller then scans linearly, which is what the index reproduces anyway.
72
+ */
73
+ export declare function buildTriangleGridIndex(triangles: ArrayLike<number>, triangleCount: number): TriangleGridIndex | null;
74
+ /**
75
+ * UV at (x, z) taken from the triangle nearest to it, evaluated through that
76
+ * triangle's own affine mapping. Points outside the triangle EXTRAPOLATE it,
77
+ * which is the point: the sampled position generally lies in the hole beside
78
+ * the surface, and extrapolating its neighbour's plank mapping continues the
79
+ * pattern across the seam.
80
+ *
81
+ * `triangles` holds {@link UV_TRIANGLE_STRIDE} floats per triangle:
82
+ * `x0, z0, u0, v0, x1, z1, u1, v1, x2, z2, u2, v2`. Returns null for an empty
83
+ * soup or when every triangle is degenerate in XZ.
84
+ *
85
+ * Pass the soup's {@link TriangleGridIndex} to skip the linear scan over every
86
+ * triangle; the result is identical either way.
87
+ */
88
+ export declare function sampleNearestTriangleUV(triangles: ArrayLike<number>, triangleCount: number, x: number, z: number, index?: TriangleGridIndex | null): [u: number, v: number] | null;
89
+ //# sourceMappingURL=localUVSampler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localUVSampler.d.ts","sourceRoot":"","sources":["../../../../../src/utils/localUVSampler.ts"],"names":[],"mappings":"AAeA,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAIrC,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA2D3F;AAmED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,SAAS,EAAE,UAAU,CAAC;IACtB,4CAA4C;IAC5C,SAAS,EAAE,UAAU,CAAC;IACtB;;;;;OAKG;IACH,MAAM,EAAE,UAAU,CAAC;CACpB;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CA2GpH;AA2ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,aAAa,EAAE,MAAM,EACrB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAC/B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAwB/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=localUVSampler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localUVSampler.test.d.ts","sourceRoot":"","sources":["../../../../../src/utils/localUVSampler.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { Box3, Object3D, Vector3 } from 'three';
2
+ import type { OverlayAnchor } from '../types/environment';
3
+ /**
4
+ * Tight local-space AABB built from child geometry bounds.
5
+ * Transforms each geometry's bbox directly into the element's local
6
+ * frame — no intermediate world-space AABB that would inflate when
7
+ * the element is rotated.
8
+ */
9
+ export declare function getLocalBoundingBox(object: Object3D): Box3;
10
+ /**
11
+ * Returns a point on the top face of the local-space AABB at the given corner.
12
+ * "top/bottom" maps to the Z axis (top = min.z = back in world, top in plan view).
13
+ * "left/right" maps to the X axis.
14
+ * Y is always bbox.max.y + offset (floating above the element).
15
+ *
16
+ * `inset` pulls the point in from the edges toward the element centre (world units, clamped to the
17
+ * half-extent so it never crosses centre). Used to keep the trash icon off the shared edge where a
18
+ * docked neighbour's posNr badge sits at the same corner.
19
+ */
20
+ export declare function getCornerLocal(bbox: Box3, anchor: OverlayAnchor, inset?: number): Vector3;
21
+ export type SideCenter = 'left' | 'right' | 'top';
22
+ /**
23
+ * Anchor point on one face of the local-space AABB, for 3D chrome that hangs off an element's
24
+ * side. `left`/`right` return the X face centre at mid height; `top` returns the TOP face centre
25
+ * (`max.y`), not a plan-view side. Falls back to `(0, 0.05, 0)` for an empty box.
26
+ */
27
+ export declare function getSideCenterLocal(bbox: Box3, side: SideCenter): Vector3;
28
+ //# sourceMappingURL=overlayGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlayGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/utils/overlayGeometry.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAW,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAgB1D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CA8B1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,SAAI,GAAG,OAAO,CAOpF;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAQxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=overlayGeometry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlayGeometry.test.d.ts","sourceRoot":"","sources":["../../../../../src/utils/overlayGeometry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ /** A point in the ground plane, as `[x, z]`. */
2
+ export type PointXZ = [number, number];
3
+ /** Rotates `(x, z)` about the origin by `angle` radians. */
4
+ export declare function rotateXZ(x: number, z: number, angle: number): PointXZ;
5
+ /**
6
+ * Lands a rotated offset on an origin: `origin + rotateXZ(dx, dz, angle)`.
7
+ *
8
+ * Adds inside the same expression rather than rotating and adding in two steps.
9
+ * Callers that measure a span between results (bounding boxes, dimension values)
10
+ * are sensitive to the rounding of that intermediate, so the two forms are not
11
+ * interchangeable — use {@link rotateXZ} where the rotated offset is wanted on
12
+ * its own.
13
+ */
14
+ export declare function translateRotatedXZ(originX: number, originZ: number, dx: number, dz: number, angle: number): PointXZ;
15
+ /**
16
+ * Orbits `(x, z)` about `(pivotX, pivotZ)` by `angle` radians —
17
+ * `pivot + rotateXZ(point − pivot)`.
18
+ */
19
+ export declare function rotateXZAroundPivot(x: number, z: number, pivotX: number, pivotZ: number, angle: number): PointXZ;
20
+ //# sourceMappingURL=planarTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planarTransform.d.ts","sourceRoot":"","sources":["../../../../../src/utils/planarTransform.ts"],"names":[],"mappings":"AAiBA,gDAAgD;AAChD,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvC,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAInH;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=planarTransform.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planarTransform.test.d.ts","sourceRoot":"","sources":["../../../../../src/utils/planarTransform.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ /** 2D point; axis meaning depends on context (path space: x/y, floor space: x/z). */
2
+ export type FootprintPoint = [number, number];
3
+ /** Shoelace signed area — positive for counter-clockwise winding (y-up convention). */
4
+ export declare function polygonSignedArea(points: readonly FootprintPoint[]): number;
5
+ /** Douglas–Peucker for a closed polygon: split at the point farthest from the start, simplify both halves. */
6
+ export declare function simplifyClosedPolygon(points: readonly FootprintPoint[], tolerance: number): FootprintPoint[];
7
+ /** True when no two non-adjacent edges of the closed polygon cross. O(n²) — fine for outline-sized input. */
8
+ export declare function isSimplePolygon(points: readonly FootprintPoint[]): boolean;
9
+ /** Convex hull (Andrew's monotone chain), counter-clockwise. */
10
+ export declare function convexHull(points: readonly FootprintPoint[]): FootprintPoint[];
11
+ /**
12
+ * Guarantee a polygon a triangulator can use. A self-intersecting outline is
13
+ * NOT rejected by earcut — it silently produces garbage (a stray wedge across
14
+ * the shape), so anything feeding generated geometry has to be checked first.
15
+ *
16
+ * The repair is the convex hull: a pool/article silhouette is convex or nearly
17
+ * so, which makes the hull a close and always-simple stand-in — visibly a
18
+ * little too generous rather than visibly broken. Returns null when even that
19
+ * degenerates.
20
+ */
21
+ export declare function ensureSimplePolygon(points: readonly FootprintPoint[]): {
22
+ points: FootprintPoint[];
23
+ repaired: boolean;
24
+ } | null;
25
+ //# sourceMappingURL=polygon2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon2d.d.ts","sourceRoot":"","sources":["../../../../../src/utils/polygon2d.ts"],"names":[],"mappings":"AAIA,qFAAqF;AACrF,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAI9C,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAQ3E;AA6BD,8GAA8G;AAC9G,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAgB5G;AAeD,6GAA6G;AAC7G,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAe1E;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE,CAe9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG;IAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAa7H"}
@@ -0,0 +1,15 @@
1
+ import type { ResolvedEnvironmentConfig } from '../types/environment';
2
+ /**
3
+ * Starts the two heavy environment downloads — the equirect behind the skydome / IBL and the
4
+ * environment GLB — as soon as the environment is known, instead of when the components that
5
+ * consume them mount.
6
+ *
7
+ * Those components live inside the R3F `<Canvas>`, so without this their fetches queue behind
8
+ * WebGL context creation. The equirect lands in the very cache the consumers read
9
+ * (`utils/equirectCache`), so nothing is fetched twice.
10
+ *
11
+ * Fire-and-forget by design: it starts requests and never blocks or reports. The consumer that
12
+ * actually needs an asset surfaces the failure.
13
+ */
14
+ export declare function preloadEnvironmentAssets(env: ResolvedEnvironmentConfig): void;
15
+ //# sourceMappingURL=preloadEnvironment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preloadEnvironment.d.ts","sourceRoot":"","sources":["../../../../../src/utils/preloadEnvironment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAkCtE;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,yBAAyB,GAAG,IAAI,CAgB7E"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Profile merge / diff / path-manipulation helpers.
3
+ *
4
+ * The performance-profile feature stores one config per tier:
5
+ *
6
+ * - `high` full {@link EnvironmentConfig} baseline (always present).
7
+ * - others? sparse {@link RecursivePartial} override on top of `high`.
8
+ *
9
+ * Each lower tier is computed independently from `high` (the lower tiers do
10
+ * NOT chain through medium). This keeps "diff vs high" unambiguous and easy
11
+ * to display in the analyzer's diff panel.
12
+ *
13
+ * Config leaves may hold {@link TieredAsset} objects; {@link mergeProfile}
14
+ * flattens those to the active tier so downstream consumers receive plain `T`.
15
+ */
16
+ import { type EnvironmentConfig, type OverrideProfileTier, type PerformanceProfiles, type PerformanceProfileTier, type RecursivePartial, type TieredAsset } from '../types/environment';
17
+ /**
18
+ * Collapse a {@link TieredAsset} to its value at the active tier. Fallback
19
+ * chain when a tier bucket is missing (or explicitly `undefined`):
20
+ *
21
+ * - `low` / `mobileLow` → `low` → `medium` → `high`
22
+ * - `medium` / `mobileHigh` → `medium` → `high` → `low`
23
+ * - `high` → `high` → `medium` → `low`
24
+ *
25
+ * Plain scalar / array / non-tiered values pass through unchanged.
26
+ */
27
+ export declare function resolveTieredAsset<T>(value: TieredAsset<T>, tier: PerformanceProfileTier): T;
28
+ /** Step one rung within `tier`'s ladder; `null` at the ends or for unknown tiers. */
29
+ export declare function stepTier(tier: PerformanceProfileTier, direction: 'up' | 'down'): PerformanceProfileTier | null;
30
+ /**
31
+ * Compute the effective {@link EnvironmentConfig} for the active performance
32
+ * tier:
33
+ *
34
+ * 1. Deep-clone {@link PerformanceProfiles.high} (always-present baseline).
35
+ * 2. For any other tier, deep-merge that tier's override partial on top.
36
+ * 3. Walk {@link TIERED_ASSET_PATHS} and flatten any per-tier asset object
37
+ * to its plain value for the active tier.
38
+ *
39
+ * The returned config is safe to pass straight into `resolveEnvironment` —
40
+ * no tier-aware values remain.
41
+ */
42
+ export declare function mergeProfile(profiles: PerformanceProfiles, tier: PerformanceProfileTier): EnvironmentConfig;
43
+ /**
44
+ * Remove the leaf at a dotted `path` inside `obj`. After removal, walks back
45
+ * up and prunes any parent object that's now empty — keeping the override
46
+ * partials minimal (so `diffProfileFromHigh` never reports phantom paths).
47
+ *
48
+ * Returns `true` if a defined value was actually removed. A key explicitly
49
+ * holding `undefined` is pruned but not reported — `mergeProfile` skips
50
+ * undefined leaves, so such a key never acted as an override.
51
+ */
52
+ export declare function clearProfileValueByPath(obj: Record<string, unknown>, path: string): boolean;
53
+ /**
54
+ * Read the leaf value at a dotted `path` inside `obj`. Returns `undefined`
55
+ * if any segment is missing or hits a non-object scalar before the leaf.
56
+ */
57
+ export declare function getValueByPath(obj: Record<string, unknown>, path: string): unknown;
58
+ /** Single override entry surfaced by {@link diffProfileFromHigh}. */
59
+ export interface ProfileOverrideEntry {
60
+ /** Dotted path inside `EnvironmentConfig`. */
61
+ path: string;
62
+ /** Value stored in the override partial. */
63
+ overrideValue: unknown;
64
+ /** Corresponding value in the `high` config (may be `undefined`). */
65
+ highValue: unknown;
66
+ }
67
+ /**
68
+ * Walk every leaf in `override` and report it as a path-keyed override
69
+ * against `high`. Used by the analyzer's diff panel to list "where does
70
+ * this tier differ from high?" and offer per-path reset buttons.
71
+ *
72
+ * Arrays are treated as leaves (we don't diff inside arrays — the override
73
+ * either replaces the whole array or doesn't touch it). Leaves explicitly
74
+ * set to `undefined` are skipped — `mergeProfile` ignores them, so they
75
+ * never act as overrides.
76
+ */
77
+ export declare function diffProfileFromHigh(high: EnvironmentConfig, override: RecursivePartial<EnvironmentConfig> | undefined): ProfileOverrideEntry[];
78
+ /** Per-path entry returned by {@link propagateHighEditAndCollectClearedOverrides}. */
79
+ export interface ClearedOverride {
80
+ tier: OverrideProfileTier;
81
+ path: string;
82
+ }
83
+ /**
84
+ * After a patch lands on the `high` profile, walk every leaf in that patch
85
+ * and remove the same path from the lower-tier override profiles.
86
+ *
87
+ * Rationale: A lower-tier override is a delta from `high`. If `high` itself
88
+ * changes at path P, the lower-tier value at P may no longer carry the
89
+ * meaning the user originally intended ("this is the perf-reduced variant
90
+ * of the old high value"). The least-surprise default is to drop the
91
+ * stale delta and let the lower tier inherit the new high value. The
92
+ * analyzer surfaces the list of cleared paths via a toast so the change is
93
+ * never silent.
94
+ *
95
+ * A leaf only counts as changed when `priorHigh[path]` differs from the
96
+ * (already-merged) `profiles.high[path]` — a patch that merely re-states the
97
+ * current high value must not drop lower-tier deltas. `profiles.high` must
98
+ * already be the *new* (post-merge) baseline by the time this is called.
99
+ *
100
+ * Mutates the lower-tier overrides in place (removing keys and collapsing
101
+ * empty parents); an override left empty is dropped from the bundle
102
+ * entirely so exported JSON never carries phantom `{}` tiers. Returns the
103
+ * list of cleared paths for the toast.
104
+ */
105
+ export declare function propagateHighEditAndCollectClearedOverrides(profiles: PerformanceProfiles, highPatch: RecursivePartial<EnvironmentConfig>, priorHigh: EnvironmentConfig): ClearedOverride[];
106
+ /**
107
+ * Default profile bundle used when the host doesn't pass `profiles` via
108
+ * {@link RTVConfig}. Hosts that want a different baseline (e.g. a planner
109
+ * with shadows-off-by-default on `high`) supply their own bundle; the
110
+ * analyzer can then export it back out as JSON.
111
+ */
112
+ export declare const DEFAULT_PROFILES: PerformanceProfiles;
113
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../../src/utils/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAwC9B;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,GAAG,CAAC,CAS5F;AAgBD,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAO9G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,sBAAsB,GAAG,iBAAiB,CAa3G;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAyB3F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQlF;AAoBD,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAAG,oBAAoB,EAAE,CAmB9I;AAoBD,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,EAC9C,SAAS,EAAE,iBAAiB,GAC3B,eAAe,EAAE,CAuBnB;AAmHD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBAM9B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Unit tests for the performance-profile merge stack in `./profiles`:
3
+ * `mergeProfile`, `resolveTieredAsset`, `diffProfileFromHigh`,
4
+ * `getValueByPath`, `clearProfileValueByPath`,
5
+ * `propagateHighEditAndCollectClearedOverrides` and `stepTier`.
6
+ *
7
+ * These helpers are pure and store-independent, so no module mocking is
8
+ * needed — `./profiles` imports only types plus one const from
9
+ * `../types/environment`, which itself has no runtime imports (unlike
10
+ * `resolveEnvironment`, whose test has to mock `@crystaldesign/diva-core`).
11
+ *
12
+ * A few tests below pin CURRENT behaviour that is deliberate but easy to
13
+ * misread; each is marked `CURRENT BEHAVIOUR` with the reason it is
14
+ * asserted as-is.
15
+ */
16
+ import '../testUtils/structuredClonePolyfill';
17
+ //# sourceMappingURL=profiles.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.test.d.ts","sourceRoot":"","sources":["../../../../../src/utils/profiles.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,sCAAsC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { FootprintPoint } from './polygon2d';
2
+ /**
3
+ * Morphological closing (dilate then erode) with a square kernel of the given
4
+ * radius — bridges seams between separately modelled parts without moving the
5
+ * silhouette.
6
+ *
7
+ * Each of the four passes is a SLIDING-WINDOW box count: the window is updated
8
+ * by one entering and one leaving row/column instead of being re-summed, so
9
+ * the cost is O(cells) independent of radius and every access is sequential.
10
+ * The naive per-cell kernel form (especially its column-strided half) costs an
11
+ * order of magnitude more at a fine raster.
12
+ */
13
+ export declare function closeMask(mask: Uint8Array, nx: number, nz: number, radius: number): void;
14
+ /**
15
+ * Turn the mask into the SOLID region its outer contour encloses: flood the
16
+ * background inward from the (always empty) border and set everything the
17
+ * flood could not reach. Returns how many cells were added.
18
+ */
19
+ export declare function fillEnclosed(mask: Uint8Array, nx: number, nz: number): number;
20
+ /**
21
+ * Single morphological pass — dilate (grow) or erode (shrink) by a square
22
+ * kernel of the given radius. The raster form of a polygon offset: the same
23
+ * operation applied uniformly to every boundary cell, so it can neither miter
24
+ * a corner off nor cross itself across a concavity. The kernel is a square, so
25
+ * the offset is Chebyshev — exact on axis-aligned edges, up to √2 larger on
26
+ * 45° ones.
27
+ */
28
+ export declare function offsetMask(mask: Uint8Array, nx: number, nz: number, radius: number, dilate: boolean): void;
29
+ /** Contour a binary node grid (values at cell centers) into closed loops of edge-midpoint coordinates. */
30
+ export declare function marchingSquaresLoops(mask: Uint8Array, nx: number, nz: number, originX: number, originZ: number, cell: number): FootprintPoint[][];
31
+ //# sourceMappingURL=rasterMask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rasterMask.d.ts","sourceRoot":"","sources":["../../../../../src/utils/rasterMask.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOxF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAI1G;AAiFD,0GAA0G;AAC1G,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,EAAE,CAoDjJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rasterMask.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rasterMask.test.d.ts","sourceRoot":"","sources":["../../../../../src/utils/rasterMask.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { EnvironmentConfig, ResolvedEnvironmentConfig } from '../types/environment';
2
+ import { DEFAULT_ENVIRONMENT } from '../config/environment.config';
3
+ export { DEFAULT_ENVIRONMENT };
4
+ /** Ensure `lighting.sun.direction` matches `azimuth`/`elevation` (canonical for RTV). */
5
+ export declare function syncLightingSunDirectionWithAngles(env: ResolvedEnvironmentConfig): void;
6
+ /**
7
+ * Fill an authored {@link EnvironmentConfig} to the shape every renderer consumes: defaults for
8
+ * everything unset, numbers clamped to their field's range, switchable blocks collapsed to
9
+ * `false | full`.
10
+ *
11
+ * Per-field work belongs in the subsystem descriptors (`ENVIRONMENT_CONFIG`); the only steps left
12
+ * here are the ones that read ACROSS fields — deriving the sun's angles from a legacy `direction`,
13
+ * and re-deriving `direction` from the angles afterwards.
14
+ */
15
+ export declare function resolveEnvironment(config?: EnvironmentConfig): ResolvedEnvironmentConfig;
16
+ //# sourceMappingURL=resolveEnvironment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveEnvironment.d.ts","sourceRoot":"","sources":["../../../../../src/utils/resolveEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAsB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIvF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,yFAAyF;AACzF,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,yBAAyB,GAAG,IAAI,CAIvF;AAeD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,yBAAyB,CAKxF"}
@@ -0,0 +1,35 @@
1
+ import type { AllGrids, AccessoryGridGeo, FreePlacesOnGrids, ResolvedGridCell } from '../types/accessoryGrids';
2
+ /**
3
+ * Resolve the free cells belonging to a single element (matched by scene node name).
4
+ * `elementNodeName` is the Three.js group name (e.g. "Element#SET1E12"); `free.elementId`
5
+ * is the shelf key (e.g. "E12"). Matched by suffix.
6
+ */
7
+ export declare function resolveFreeCellsForElement(freePlaces: FreePlacesOnGrids[] | null, allGrids: AllGrids[] | null, elementNodeName: string): ResolvedGridCell[];
8
+ /**
9
+ * Pick the default cell for an `autoPlaceDrag` auto-placement. Fills TOP-DOWN: the first item lands
10
+ * near the top of the first element/grid that has room (a top clearance of `gapFraction` of the
11
+ * grid's cells), and each subsequent placement sits `gapFraction` of the cells BELOW the previous
12
+ * one — so items stack downward with even spacing. Because each placement consumes its footprint
13
+ * and `freePlacesOnGrids` refreshes, repeated arms walk down the grid and jump to the next
14
+ * element/grid once full. Falls back to gap-less, then to the topmost free cell.
15
+ *
16
+ * Assumes higher `cellIdx` = higher position (standard for vertical shelf grids, `deltaGrid.y > 0`).
17
+ */
18
+ export declare function pickDefaultPlacementCell(cells: ResolvedGridCell[], allGrids: AllGrids[] | null): ResolvedGridCell | null;
19
+ /**
20
+ * The accessory-geometry part of a cell's bbox-CENTER offset (metres), rotated by the grid and
21
+ * sign-calibrated — i.e. `resolveCell`'s offset with the cell step (`cellIdx·deltaGrid`) and grid
22
+ * origin removed. Depends only on the accessory's own geometry (geoPosition, bbox, rulePosition).
23
+ *
24
+ * Reused by the variant mesh swap to re-centre a differently-sized variant on its anchor:
25
+ * recenter = geoLocalOffset(draggedGeo, rotationY) − geoLocalOffset(variantGeo, rotationY)
26
+ * which yields the exact, calibration-consistent shift (no hand-rolled bbox/2 or guessed sign).
27
+ */
28
+ export declare function geoLocalOffset(geo: AccessoryGridGeo, rotationY: number): [number, number, number];
29
+ /**
30
+ * ONLY the ±bbox/2 part of {@link geoLocalOffset} (anchor→bbox-center), WITHOUT the accessory's
31
+ * in-cell placement (`geoPosition`/`rulePosition`) — the placement is variant-specific and is what
32
+ * distinguishes left/right family pairs sharing one cell, so preview math must not cancel it.
33
+ */
34
+ export declare function geoBBoxCenterOffset(geo: AccessoryGridGeo, rotationY: number): [number, number, number];
35
+ //# sourceMappingURL=resolveGridCells.d.ts.map