@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.
- package/build/esm/DeckCutoutSubsystem-76dfe828.js +2536 -0
- package/build/esm/SunLensflare-e4ab3f81.js +483 -0
- package/build/esm/WaterSurface-93383fdf.js +2041 -0
- package/build/esm/index-920dd901.js +23273 -0
- package/build/esm/index.js +32 -0
- package/build/types/real-time-viewer-next/src/RealTimeRendererNext.d.ts +58 -0
- package/build/types/real-time-viewer-next/src/RealTimeRendererNext.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/analyzerComponents.d.ts +23 -0
- package/build/types/real-time-viewer-next/src/analyzerComponents.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/analyzerStageContext.d.ts +9 -0
- package/build/types/real-time-viewer-next/src/analyzerStageContext.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/capture/applyShot.d.ts +8 -0
- package/build/types/real-time-viewer-next/src/capture/applyShot.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/capture/blob.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/capture/blob.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/capture/materialMute.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/capture/materialMute.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/capture/shotState.d.ts +24 -0
- package/build/types/real-time-viewer-next/src/capture/shotState.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/capture/types.d.ts +80 -0
- package/build/types/real-time-viewer-next/src/capture/types.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/capture/useCaptureEngine.d.ts +7 -0
- package/build/types/real-time-viewer-next/src/capture/useCaptureEngine.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/config/descriptor.d.ts +156 -0
- package/build/types/real-time-viewer-next/src/config/descriptor.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/config/descriptor.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/config/descriptor.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/config/environment.config.d.ts +511 -0
- package/build/types/real-time-viewer-next/src/config/environment.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/config/environment.config.test.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/config/environment.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/BBoxPreloader.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/core/BBoxPreloader.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/FloorGrid.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/FloorGrid.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/GeoBBoxReporter.d.ts +10 -0
- package/build/types/real-time-viewer-next/src/core/GeoBBoxReporter.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/GeoInstance.d.ts +13 -0
- package/build/types/real-time-viewer-next/src/core/GeoInstance.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/PaletteDragPreview.d.ts +19 -0
- package/build/types/real-time-viewer-next/src/core/PaletteDragPreview.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/PerfLog.d.ts +38 -0
- package/build/types/real-time-viewer-next/src/core/PerfLog.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/PlannerGrid.d.ts +83 -0
- package/build/types/real-time-viewer-next/src/core/PlannerGrid.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/R3FAssetBoundary.d.ts +31 -0
- package/build/types/real-time-viewer-next/src/core/R3FAssetBoundary.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/RTVErrorBoundary.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/core/RTVErrorBoundary.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/SceneRenderer.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/SceneRenderer.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/SceneTree.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/core/SceneTree.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/VariantMeshOverride.d.ts +62 -0
- package/build/types/real-time-viewer-next/src/core/VariantMeshOverride.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/CameraController.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/camera/CameraController.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/cameraAnimationEngine.d.ts +69 -0
- package/build/types/real-time-viewer-next/src/core/camera/cameraAnimationEngine.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/cameraPoseBook.d.ts +24 -0
- package/build/types/real-time-viewer-next/src/core/camera/cameraPoseBook.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/controlsLock.d.ts +25 -0
- package/build/types/real-time-viewer-next/src/core/camera/controlsLock.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.d.ts +38 -0
- package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/camera/sectorLimits.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useAutoFrame.d.ts +29 -0
- package/build/types/real-time-viewer-next/src/core/camera/useAutoFrame.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useAutoRotate.d.ts +8 -0
- package/build/types/real-time-viewer-next/src/core/camera/useAutoRotate.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraActions.d.ts +13 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraActions.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraAnimation.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraAnimation.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraConstraints.d.ts +25 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraConstraints.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraSmoothing.d.ts +57 -0
- package/build/types/real-time-viewer-next/src/core/camera/useCameraSmoothing.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useMaterialFade.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/core/camera/useMaterialFade.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/camera/useViewModeTransition.d.ts +19 -0
- package/build/types/real-time-viewer-next/src/core/camera/useViewModeTransition.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLine2D.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLine2D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines2D.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines2D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines3D.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/DimensionLines3D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionGeometry.d.ts +34 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionGeometry.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders2D.d.ts +82 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders2D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders3D.d.ts +76 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLineBuilders3D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.d.ts +25 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/dimensionLines.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/index.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/index.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/useDimensionFade.d.ts +12 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/useDimensionFade.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/useLabelScale.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/useLabelScale.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/utils.d.ts +26 -0
- package/build/types/real-time-viewer-next/src/core/dimension-lines/utils.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentDome.d.ts +14 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentDome.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSceneLoader.d.ts +14 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSceneLoader.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSources.d.ts +33 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSources.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSunLensflare.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/environment/EnvironmentSunLensflare.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/LightingRig.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/core/environment/LightingRig.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/PlainGround.d.ts +21 -0
- package/build/types/real-time-viewer-next/src/core/environment/PlainGround.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/RuntimePerfAdjuster.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/core/environment/RuntimePerfAdjuster.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/SceneEnvironment.d.ts +19 -0
- package/build/types/real-time-viewer-next/src/core/environment/SceneEnvironment.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/SkydomeBackground.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/core/environment/SkydomeBackground.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/SunLensflare.d.ts +29 -0
- package/build/types/real-time-viewer-next/src/core/environment/SunLensflare.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/SunLensflareLazy.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/core/environment/SunLensflareLazy.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.d.ts +24 -0
- package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/adaptive.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutArticleSync.d.ts +22 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutArticleSync.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutCollar.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutCollar.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutLazy.d.ts +10 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutLazy.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutSubsystem.d.ts +9 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/DeckCutoutSubsystem.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.d.ts +40 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/anchorElements.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.d.ts +62 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/articleFootprint.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.d.ts +25 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/buildCollarGeometry.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/collectDeckTriangles.d.ts +86 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/collectDeckTriangles.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/deriveWaterVolume.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.d.ts +49 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureArticle.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureDiagnostics.d.ts +20 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/measureDiagnostics.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/useCollarTextures.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/core/environment/deckCutout/useCollarTextures.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/dome.config.d.ts +191 -0
- package/build/types/real-time-viewer-next/src/core/environment/dome.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/dome.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/dome.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/ground.config.d.ts +130 -0
- package/build/types/real-time-viewer-next/src/core/environment/ground.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/ground.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/ground.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/lighting.config.d.ts +297 -0
- package/build/types/real-time-viewer-next/src/core/environment/lighting.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/lighting.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/lighting.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/scene.config.d.ts +440 -0
- package/build/types/real-time-viewer-next/src/core/environment/scene.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/scene.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/environment/scene.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/useEnvironmentMap.d.ts +19 -0
- package/build/types/real-time-viewer-next/src/core/environment/useEnvironmentMap.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/environment/useStudioLightEffects.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/core/environment/useStudioLightEffects.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/frameOrder.d.ts +91 -0
- package/build/types/real-time-viewer-next/src/core/frameOrder.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/handles.d.ts +35 -0
- package/build/types/real-time-viewer-next/src/core/handles.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/AccessoryDropController.d.ts +9 -0
- package/build/types/real-time-viewer-next/src/core/interaction/AccessoryDropController.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/AccessoryFollowController.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/core/interaction/AccessoryFollowController.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/DragController.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/interaction/DragController.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlay.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlay.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlayIcons.d.ts +18 -0
- package/build/types/real-time-viewer-next/src/core/interaction/ElementOverlayIcons.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/FreeGridLayer.d.ts +10 -0
- package/build/types/real-time-viewer-next/src/core/interaction/FreeGridLayer.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/InteractionGuides.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/core/interaction/InteractionGuides.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/accessoryCellTargeting.d.ts +31 -0
- package/build/types/real-time-viewer-next/src/core/interaction/accessoryCellTargeting.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/selection.config.d.ts +65 -0
- package/build/types/real-time-viewer-next/src/core/interaction/selection.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/selection.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/interaction/selection.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/useAccessoryMoveDrag.d.ts +21 -0
- package/build/types/real-time-viewer-next/src/core/interaction/useAccessoryMoveDrag.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/interaction/useElementInteraction.d.ts +35 -0
- package/build/types/real-time-viewer-next/src/core/interaction/useElementInteraction.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/lazySubsystems.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/core/lazySubsystems.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/MaterialContext.d.ts +23 -0
- package/build/types/real-time-viewer-next/src/core/materials/MaterialContext.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/MaterialManager.d.ts +4 -0
- package/build/types/real-time-viewer-next/src/core/materials/MaterialManager.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/apply.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/core/materials/apply.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/caches.d.ts +44 -0
- package/build/types/real-time-viewer-next/src/core/materials/caches.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/factory.d.ts +37 -0
- package/build/types/real-time-viewer-next/src/core/materials/factory.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/materials.config.d.ts +13 -0
- package/build/types/real-time-viewer-next/src/core/materials/materials.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/materials.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/materials/materials.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/textureCache.d.ts +26 -0
- package/build/types/real-time-viewer-next/src/core/materials/textureCache.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/materials/types.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/core/materials/types.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/meshBVH.d.ts +22 -0
- package/build/types/real-time-viewer-next/src/core/meshBVH.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/meshBVH.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/meshBVH.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingDynamicEffects.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingDynamicEffects.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingStack.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/PostProcessingStack.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/applyRendererToneMapping.d.ts +10 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/applyRendererToneMapping.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/index.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/index.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.d.ts +453 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/postprocessing/postProcessing.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/renderer.config.d.ts +55 -0
- package/build/types/real-time-viewer-next/src/core/renderer.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/renderer.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/renderer.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/SceneShadowSystem.d.ts +18 -0
- package/build/types/real-time-viewer-next/src/core/shadows/SceneShadowSystem.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/SunShadow.d.ts +29 -0
- package/build/types/real-time-viewer-next/src/core/shadows/SunShadow.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/index.d.ts +4 -0
- package/build/types/real-time-viewer-next/src/core/shadows/index.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.d.ts +20 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadowMapSize.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadowRegistry.d.ts +24 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadowRegistry.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.d.ts +75 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/shadows/shadows.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/useShadowDirty.d.ts +14 -0
- package/build/types/real-time-viewer-next/src/core/shadows/useShadowDirty.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/useShadowFlags.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/core/shadows/useShadowFlags.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/shadows/useShadowRebake.d.ts +14 -0
- package/build/types/real-time-viewer-next/src/core/shadows/useShadowRebake.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/useFrameloopVisibility.d.ts +37 -0
- package/build/types/real-time-viewer-next/src/core/useFrameloopVisibility.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/view2d/DockingPoints2D.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/core/view2d/DockingPoints2D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/view2d/Element2DPlane.d.ts +18 -0
- package/build/types/real-time-viewer-next/src/core/view2d/Element2DPlane.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/view2d/ElementAnnotation2D.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/core/view2d/ElementAnnotation2D.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/view2d/Scene2DOverlay.d.ts +10 -0
- package/build/types/real-time-viewer-next/src/core/view2d/Scene2DOverlay.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/ViewModeRuntimeContext.d.ts +20 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/ViewModeRuntimeContext.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/index.d.ts +4 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/index.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.d.ts +9 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/selectViewModeRuntime.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/types.d.ts +67 -0
- package/build/types/real-time-viewer-next/src/core/viewMode/types.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/CausticReceiver.d.ts +49 -0
- package/build/types/real-time-viewer-next/src/core/water/CausticReceiver.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/CausticsTexture.d.ts +48 -0
- package/build/types/real-time-viewer-next/src/core/water/CausticsTexture.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/Heightfield.d.ts +88 -0
- package/build/types/real-time-viewer-next/src/core/water/Heightfield.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/PoolHeightMap.d.ts +36 -0
- package/build/types/real-time-viewer-next/src/core/water/PoolHeightMap.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.d.ts +73 -0
- package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/water/RefractionCapture.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/SceneCapture.d.ts +66 -0
- package/build/types/real-time-viewer-next/src/core/water/SceneCapture.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/WaterSurface.d.ts +8 -0
- package/build/types/real-time-viewer-next/src/core/water/WaterSurface.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceLazy.d.ts +10 -0
- package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceLazy.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceRenderer.d.ts +71 -0
- package/build/types/real-time-viewer-next/src/core/water/WaterSurfaceRenderer.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/useCausticReceivers.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/core/water/useCausticReceivers.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/useWaterPointer.d.ts +13 -0
- package/build/types/real-time-viewer-next/src/core/water/useWaterPointer.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.d.ts +44 -0
- package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/water/useWaveSimulation.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/water.config.d.ts +90 -0
- package/build/types/real-time-viewer-next/src/core/water/water.config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/water.config.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/core/water/water.config.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/waterDebug.d.ts +14 -0
- package/build/types/real-time-viewer-next/src/core/water/waterDebug.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/waterShaders.d.ts +9 -0
- package/build/types/real-time-viewer-next/src/core/water/waterShaders.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/waterSurfaceMaterial.d.ts +21 -0
- package/build/types/real-time-viewer-next/src/core/water/waterSurfaceMaterial.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/core/water/waterUniforms.d.ts +51 -0
- package/build/types/real-time-viewer-next/src/core/water/waterUniforms.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/hooks/useAssembledScene.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/hooks/useAssembledScene.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/hooks/useHostPropsSync.d.ts +20 -0
- package/build/types/real-time-viewer-next/src/hooks/useHostPropsSync.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/index.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/index.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/internals.d.ts +61 -0
- package/build/types/real-time-viewer-next/src/internals.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/loadingGates.d.ts +34 -0
- package/build/types/real-time-viewer-next/src/loadingGates.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/parser/parseRenderScript.d.ts +51 -0
- package/build/types/real-time-viewer-next/src/parser/parseRenderScript.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/parser/types.d.ts +58 -0
- package/build/types/real-time-viewer-next/src/parser/types.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/presets/mergePresetBundle.d.ts +33 -0
- package/build/types/real-time-viewer-next/src/presets/mergePresetBundle.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/presets/polyfaser-planner.d.ts +4 -0
- package/build/types/real-time-viewer-next/src/presets/polyfaser-planner.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/presets/polyfaser-pool.d.ts +4 -0
- package/build/types/real-time-viewer-next/src/presets/polyfaser-pool.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/presets/polyfaserPlannerOverride.d.ts +9 -0
- package/build/types/real-time-viewer-next/src/presets/polyfaserPlannerOverride.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/presets/villa-cliff.d.ts +4 -0
- package/build/types/real-time-viewer-next/src/presets/villa-cliff.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/publicApi.d.ts +35 -0
- package/build/types/real-time-viewer-next/src/publicApi.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/publicPath.d.ts +1 -0
- package/build/types/real-time-viewer-next/src/publicPath.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/index.d.ts +18 -0
- package/build/types/real-time-viewer-next/src/store/index.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/shared.d.ts +25 -0
- package/build/types/real-time-viewer-next/src/store/shared.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/accessory.d.ts +147 -0
- package/build/types/real-time-viewer-next/src/store/slices/accessory.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/analyzerGate.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/store/slices/analyzerGate.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/camera.d.ts +66 -0
- package/build/types/real-time-viewer-next/src/store/slices/camera.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/capture.d.ts +60 -0
- package/build/types/real-time-viewer-next/src/store/slices/capture.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/config.d.ts +52 -0
- package/build/types/real-time-viewer-next/src/store/slices/config.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/deckCutout.d.ts +29 -0
- package/build/types/real-time-viewer-next/src/store/slices/deckCutout.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/environment.d.ts +47 -0
- package/build/types/real-time-viewer-next/src/store/slices/environment.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/glGeneration.d.ts +18 -0
- package/build/types/real-time-viewer-next/src/store/slices/glGeneration.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/hostSelection.test.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/store/slices/hostSelection.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/interaction.d.ts +53 -0
- package/build/types/real-time-viewer-next/src/store/slices/interaction.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/performanceProfile.d.ts +71 -0
- package/build/types/real-time-viewer-next/src/store/slices/performanceProfile.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/plannerUi.d.ts +46 -0
- package/build/types/real-time-viewer-next/src/store/slices/plannerUi.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/scene.d.ts +26 -0
- package/build/types/real-time-viewer-next/src/store/slices/scene.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.d.ts +75 -0
- package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.test.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/store/slices/sceneLoad.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/selection.d.ts +66 -0
- package/build/types/real-time-viewer-next/src/store/slices/selection.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/versions.d.ts +34 -0
- package/build/types/real-time-viewer-next/src/store/slices/versions.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/slices/viewMode.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/store/slices/viewMode.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/store/types.d.ts +96 -0
- package/build/types/real-time-viewer-next/src/store/types.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/testUtils/deepDiff.d.ts +26 -0
- package/build/types/real-time-viewer-next/src/testUtils/deepDiff.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/testUtils/deepDiff.test.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/testUtils/deepDiff.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/testUtils/divaCoreMock.d.ts +47 -0
- package/build/types/real-time-viewer-next/src/testUtils/divaCoreMock.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/testUtils/resolvedConfigSnapshots.d.ts +36 -0
- package/build/types/real-time-viewer-next/src/testUtils/resolvedConfigSnapshots.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/testUtils/structuredClonePolyfill.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/testUtils/structuredClonePolyfill.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/types/accessoryGrids.d.ts +134 -0
- package/build/types/real-time-viewer-next/src/types/accessoryGrids.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/types/camera.d.ts +288 -0
- package/build/types/real-time-viewer-next/src/types/camera.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/types/environment.d.ts +146 -0
- package/build/types/real-time-viewer-next/src/types/environment.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/types/plannerUi.d.ts +68 -0
- package/build/types/real-time-viewer-next/src/types/plannerUi.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/types/scene2d.d.ts +168 -0
- package/build/types/real-time-viewer-next/src/types/scene2d.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/bootPhase.d.ts +75 -0
- package/build/types/real-time-viewer-next/src/utils/bootPhase.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/bootPhase.test.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/utils/bootPhase.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/camera.d.ts +8 -0
- package/build/types/real-time-viewer-next/src/utils/camera.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/cameraFraming.d.ts +47 -0
- package/build/types/real-time-viewer-next/src/utils/cameraFraming.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/collisionTargets.d.ts +34 -0
- package/build/types/real-time-viewer-next/src/utils/collisionTargets.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/collisionTargets.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/collisionTargets.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/cursorStack.d.ts +21 -0
- package/build/types/real-time-viewer-next/src/utils/cursorStack.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.d.ts +24 -0
- package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.test.d.ts +5 -0
- package/build/types/real-time-viewer-next/src/utils/detectDeviceTier.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/dockingGroups.d.ts +7 -0
- package/build/types/real-time-viewer-next/src/utils/dockingGroups.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/elementIds.d.ts +27 -0
- package/build/types/real-time-viewer-next/src/utils/elementIds.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/equirectCache.d.ts +45 -0
- package/build/types/real-time-viewer-next/src/utils/equirectCache.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/equirectUrl.d.ts +22 -0
- package/build/types/real-time-viewer-next/src/utils/equirectUrl.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/equirectUrl.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/equirectUrl.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/footprint.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/utils/footprint.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/footprint.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/footprint.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/footprintTrace.d.ts +55 -0
- package/build/types/real-time-viewer-next/src/utils/footprintTrace.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/footprintTrace.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/footprintTrace.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/geoViewAngle.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/utils/geoViewAngle.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/gltfLoader.d.ts +34 -0
- package/build/types/real-time-viewer-next/src/utils/gltfLoader.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/gridGeometryApi.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/utils/gridGeometryApi.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/localUVSampler.d.ts +89 -0
- package/build/types/real-time-viewer-next/src/utils/localUVSampler.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/localUVSampler.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/localUVSampler.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/overlayGeometry.d.ts +28 -0
- package/build/types/real-time-viewer-next/src/utils/overlayGeometry.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/overlayGeometry.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/overlayGeometry.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/planarTransform.d.ts +20 -0
- package/build/types/real-time-viewer-next/src/utils/planarTransform.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/planarTransform.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/planarTransform.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/polygon2d.d.ts +25 -0
- package/build/types/real-time-viewer-next/src/utils/polygon2d.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/preloadEnvironment.d.ts +15 -0
- package/build/types/real-time-viewer-next/src/utils/preloadEnvironment.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/profiles.d.ts +113 -0
- package/build/types/real-time-viewer-next/src/utils/profiles.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/profiles.test.d.ts +17 -0
- package/build/types/real-time-viewer-next/src/utils/profiles.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/rasterMask.d.ts +31 -0
- package/build/types/real-time-viewer-next/src/utils/rasterMask.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/rasterMask.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/rasterMask.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/resolveEnvironment.d.ts +16 -0
- package/build/types/real-time-viewer-next/src/utils/resolveEnvironment.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/resolveGridCells.d.ts +35 -0
- package/build/types/real-time-viewer-next/src/utils/resolveGridCells.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/scene.d.ts +3 -0
- package/build/types/real-time-viewer-next/src/utils/scene.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/screenProjection.d.ts +42 -0
- package/build/types/real-time-viewer-next/src/utils/screenProjection.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/screenProjection.test.d.ts +2 -0
- package/build/types/real-time-viewer-next/src/utils/screenProjection.test.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/selectionScopeNames.d.ts +6 -0
- package/build/types/real-time-viewer-next/src/utils/selectionScopeNames.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/selectionScopeScene.d.ts +8 -0
- package/build/types/real-time-viewer-next/src/utils/selectionScopeScene.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/smoothDamp.d.ts +19 -0
- package/build/types/real-time-viewer-next/src/utils/smoothDamp.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/sunAngles.d.ts +29 -0
- package/build/types/real-time-viewer-next/src/utils/sunAngles.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/suspense.d.ts +11 -0
- package/build/types/real-time-viewer-next/src/utils/suspense.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/whiteRoomPreset.d.ts +48 -0
- package/build/types/real-time-viewer-next/src/utils/whiteRoomPreset.d.ts.map +1 -0
- package/build/types/real-time-viewer-next/src/utils/withRenderTarget.d.ts +48 -0
- package/build/types/real-time-viewer-next/src/utils/withRenderTarget.d.ts.map +1 -0
- package/build/umd/114.real-time-viewer-next.umd.min.js +2 -0
- package/build/umd/114.real-time-viewer-next.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/699.real-time-viewer-next.umd.min.js +2 -0
- package/build/umd/699.real-time-viewer-next.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/964.real-time-viewer-next.umd.min.js +2 -0
- package/build/umd/964.real-time-viewer-next.umd.min.js.LICENSE.txt +1 -0
- package/build/umd/real-time-viewer-next.umd.min.js +2 -0
- package/build/umd/real-time-viewer-next.umd.min.js.LICENSE.txt +117 -0
- package/build/umd/report.html +38 -0
- package/package.json +31 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Texture, Vector3, WebGLRenderer } from 'three';
|
|
2
|
+
export interface CausticsTextureOptions {
|
|
3
|
+
/** Output texture resolution (square). Demo uses 1024. */
|
|
4
|
+
size?: number;
|
|
5
|
+
/**
|
|
6
|
+
* Plane subdivision count along the LONGER pool axis. Demo uses 200 on a
|
|
7
|
+
* unit-square pool; we keep ~200 segments/2m and let the shorter axis
|
|
8
|
+
* scale down proportionally with a floor of 32 so degenerate aspect
|
|
9
|
+
* ratios don't produce a 1-segment strip.
|
|
10
|
+
*/
|
|
11
|
+
detail?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Pool half-extents in WORLD METERS (halfX, depth, halfZ). The caustic
|
|
14
|
+
* plane is built as `2*halfX × 2*halfZ` so `position.xy` in the shader is
|
|
15
|
+
* the world XZ of a water-surface point and the heightfield sampling
|
|
16
|
+
* formula stays consistent with everything else.
|
|
17
|
+
*/
|
|
18
|
+
poolHalf?: Vector3;
|
|
19
|
+
}
|
|
20
|
+
export declare class CausticsTexture {
|
|
21
|
+
readonly size: number;
|
|
22
|
+
readonly poolHalf: Vector3;
|
|
23
|
+
private rt;
|
|
24
|
+
private scene;
|
|
25
|
+
private camera;
|
|
26
|
+
private quad;
|
|
27
|
+
private material;
|
|
28
|
+
constructor(opts?: CausticsTextureOptions);
|
|
29
|
+
/** Output texture handle. Bind this where the demo bound `causticTex`. */
|
|
30
|
+
get texture(): Texture;
|
|
31
|
+
/**
|
|
32
|
+
* Render the caustics for the current heightfield + light. Should
|
|
33
|
+
* be called once per frame, after `Heightfield.updateNormals()` so the
|
|
34
|
+
* normals sampled here are in sync with the displaced surface.
|
|
35
|
+
*
|
|
36
|
+
* Inputs are read from the uniform setters below — pass updates BEFORE
|
|
37
|
+
* calling render().
|
|
38
|
+
*/
|
|
39
|
+
render(renderer: WebGLRenderer): void;
|
|
40
|
+
setHeightfield(tex: Texture | null): void;
|
|
41
|
+
setLight(x: number, y: number, z: number): void;
|
|
42
|
+
/** MOD #4 — caustic intensity multiplier (replaces demo's `info.ba *= 0.5`). */
|
|
43
|
+
setIntensity(intensity: number): void;
|
|
44
|
+
/** MOD #7 — bind (or clear) the receiving-geometry height map. */
|
|
45
|
+
setHeightMap(tex: Texture | null): void;
|
|
46
|
+
dispose(): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=CausticsTexture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CausticsTexture.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/CausticsTexture.ts"],"names":[],"mappings":"AAkBA,OAAO,EAOL,OAAO,EAEP,OAAO,EACP,aAAa,EAEd,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,QAAQ,CAAiB;gBAErB,IAAI,GAAE,sBAA2B;IA0D7C,0EAA0E;IAC1E,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAOrC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAIxC,gFAAgF;IAChF,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,kEAAkE;IAClE,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKhC,OAAO;CAKR"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Vector2, WebGLRenderer } from 'three';
|
|
2
|
+
export interface HeightfieldOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Heightfield X-axis resolution (texels). When omitted, falls back to 256.
|
|
5
|
+
* The wave kernel propagates 1 texel per simulation step, so the X-axis
|
|
6
|
+
* wave speed in world meters is `(2·poolHalf.x / sizeX) m/step`. Sizing
|
|
7
|
+
* `sizeX / sizeY` proportional to `poolHalf.x / poolHalf.y` gives
|
|
8
|
+
* isotropic wave propagation in world space.
|
|
9
|
+
*/
|
|
10
|
+
sizeX?: number;
|
|
11
|
+
/** Heightfield Y-axis (= world Z) resolution. Defaults to `sizeX`. */
|
|
12
|
+
sizeY?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Pool half-extents in WORLD METERS, used by the drop kernel to measure
|
|
15
|
+
* horizontal distances in real meters (so a drop stays circular in world
|
|
16
|
+
* space on rectangular pools).
|
|
17
|
+
* Defaults to (1, 1) which reproduces the demo's unit-cube behaviour.
|
|
18
|
+
*/
|
|
19
|
+
poolHalf?: Vector2;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* GPU heightfield with a ping-pong pair of float render targets. Constructed
|
|
23
|
+
* without a renderer; the per-frame calls take one.
|
|
24
|
+
*
|
|
25
|
+
* Rectangular pools need no kernel change: all three shaders sample through
|
|
26
|
+
* the `coord` varying (UV ∈ [0,1]²) and `delta` (per-axis texel size), both of
|
|
27
|
+
* which work unchanged on non-square textures. The only physically-relevant
|
|
28
|
+
* difference is the drop falloff math — see MOD #A1 in this file.
|
|
29
|
+
*/
|
|
30
|
+
export declare class Heightfield {
|
|
31
|
+
readonly sizeX: number;
|
|
32
|
+
readonly sizeY: number;
|
|
33
|
+
readonly delta: Vector2;
|
|
34
|
+
readonly poolHalf: Vector2;
|
|
35
|
+
private rtA;
|
|
36
|
+
private rtB;
|
|
37
|
+
private scene;
|
|
38
|
+
private camera;
|
|
39
|
+
private quad;
|
|
40
|
+
private dropMat;
|
|
41
|
+
private updateMat;
|
|
42
|
+
private normalMat;
|
|
43
|
+
private clearedOnce;
|
|
44
|
+
constructor(opts?: HeightfieldOptions);
|
|
45
|
+
/**
|
|
46
|
+
* Read-only handle of the front-buffer (the one that holds the latest simulation
|
|
47
|
+
* state). Sample this texture from the surface and caustics shaders.
|
|
48
|
+
*/
|
|
49
|
+
get currentTexture(): import("three").Texture;
|
|
50
|
+
/**
|
|
51
|
+
* Clear both ping-pong RTs to (0,0,0,0) on the first frame so neither buffer
|
|
52
|
+
* starts with garbage. Stability bug guard: skipping this gives the kernel
|
|
53
|
+
* uninitialized data and the wave amplitude blows up.
|
|
54
|
+
*/
|
|
55
|
+
private ensureCleared;
|
|
56
|
+
/**
|
|
57
|
+
* One ping-pong step: draw the quad into the back buffer, then swap.
|
|
58
|
+
*
|
|
59
|
+
* Deliberately not a `withRenderTarget` pass — it touches no clear/tone-mapping
|
|
60
|
+
* state and unbinds to the default framebuffer rather than restoring whatever
|
|
61
|
+
* was bound. Callers run it from the water frame stage, where nothing is bound.
|
|
62
|
+
*/
|
|
63
|
+
private renderPass;
|
|
64
|
+
/**
|
|
65
|
+
* Add a drop. Center is in pool-normalized [-1, 1] coordinates so the same
|
|
66
|
+
* call site works across pool sizes. `radius` is in WORLD METERS — see the
|
|
67
|
+
* MOD #A1 comment above DROP_FRAGMENT — so a 0.2 m drop has the same
|
|
68
|
+
* physical size on a 4×4 pool and a 2×10 pool. Strength is unitless
|
|
69
|
+
* (height delta applied at the drop centre).
|
|
70
|
+
*/
|
|
71
|
+
addDrop(renderer: WebGLRenderer, center: Vector2, radius?: number, strength?: number): void;
|
|
72
|
+
/** Advance the wave simulation one substep. */
|
|
73
|
+
step(renderer: WebGLRenderer): void;
|
|
74
|
+
/**
|
|
75
|
+
* Per-substep damping coefficient applied to the velocity channel after
|
|
76
|
+
* each `step()`. With more substeps per second (e.g. when the host
|
|
77
|
+
* component auto-scales substep count for higher-resolution
|
|
78
|
+
* heightfields) this value must be closer to 1.0 to keep amplitude
|
|
79
|
+
* decay constant in real time. The host component computes this as
|
|
80
|
+
* `damping = (perSecondDamping) ^ (1 / substepsPerSecond)`
|
|
81
|
+
* and pushes it every frame.
|
|
82
|
+
*/
|
|
83
|
+
setDamping(value: number): void;
|
|
84
|
+
/** Recompute surface normals into channels (b, a). */
|
|
85
|
+
updateNormals(renderer: WebGLRenderer): void;
|
|
86
|
+
dispose(): void;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=Heightfield.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heightfield.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/Heightfield.ts"],"names":[],"mappings":"AAoBA,OAAO,EAUL,OAAO,EACP,aAAa,EAEd,MAAM,OAAO,CAAC;AAqHf,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,IAAI,CAAO;IAEnB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,GAAE,kBAAuB;IA2EzC;;;OAGG;IACH,IAAI,cAAc,4BAEjB;IAED;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAYrB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,QAAQ,SAAO;IAS/E,+CAA+C;IAC/C,IAAI,CAAC,QAAQ,EAAE,aAAa;IAM5B;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM;IAIxB,sDAAsD;IACtD,aAAa,CAAC,QAAQ,EAAE,aAAa;IAMrC,OAAO;CAQR"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Scene, Texture, Vector3, WebGLRenderer } from 'three';
|
|
2
|
+
import type { Object3D } from 'three';
|
|
3
|
+
export declare class PoolHeightMap {
|
|
4
|
+
private rt;
|
|
5
|
+
private overrideMaterial;
|
|
6
|
+
private camera;
|
|
7
|
+
private lastCenter;
|
|
8
|
+
private lastHalf;
|
|
9
|
+
private lastGeometryVersion;
|
|
10
|
+
private age;
|
|
11
|
+
constructor();
|
|
12
|
+
/** Output texture handle — stable reference across re-renders. */
|
|
13
|
+
get texture(): Texture;
|
|
14
|
+
/**
|
|
15
|
+
* Fit the top-down camera to the volume. The axis mapping must reproduce
|
|
16
|
+
* the read formula `uv = local.xz / (2 * poolHalf.xz) + 0.5`: with
|
|
17
|
+
* `up = (0, 0, -1)` camera-right is world +X, and the swapped
|
|
18
|
+
* `top`/`bottom` flip NDC y back to world +Z. Depth increases downward,
|
|
19
|
+
* so the topmost surface wins the depth test.
|
|
20
|
+
*/
|
|
21
|
+
private updateCamera;
|
|
22
|
+
/**
|
|
23
|
+
* Re-render the height map when it is stale, otherwise do nothing.
|
|
24
|
+
* Call once per frame BEFORE `CausticsTexture.render` so the caustics
|
|
25
|
+
* pass never samples a blank first-frame target.
|
|
26
|
+
*
|
|
27
|
+
* @param volumeCenter World-space water-volume center (surface Y).
|
|
28
|
+
* @param poolHalf (halfX, depth, halfZ) in world meters.
|
|
29
|
+
* @param geometryVersion Article + decor version sum — a change forces a render.
|
|
30
|
+
* @param excluded Subtrees hidden for the pass (the water group).
|
|
31
|
+
* @returns true when a render actually happened.
|
|
32
|
+
*/
|
|
33
|
+
renderIfNeeded(renderer: WebGLRenderer, scene: Scene, volumeCenter: Vector3, poolHalf: Vector3, geometryVersion: number, excluded: Array<Object3D | null>): boolean;
|
|
34
|
+
dispose(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=PoolHeightMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoolHeightMap.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/PoolHeightMap.ts"],"names":[],"mappings":"AAgBA,OAAO,EAQL,KAAK,EAEL,OAAO,EACP,OAAO,EAEP,aAAa,EACd,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,OAAO,CAAC;AA0DhD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,GAAG,CAA2B;;IA+BtC,kEAAkE;IAClE,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAepB;;;;;;;;;;OAUG;IACH,cAAc,CACZ,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAC/B,OAAO;IAqFV,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Box3, Matrix4, Vector3, Vector4 } from 'three';
|
|
2
|
+
import type { Camera, Mesh, Scene, ShaderMaterial, Texture, WebGLRenderer } from 'three';
|
|
3
|
+
export interface RefractionCaptureFrame {
|
|
4
|
+
renderer: WebGLRenderer;
|
|
5
|
+
scene: Scene;
|
|
6
|
+
camera: Camera;
|
|
7
|
+
/** Water surface material — receives the capture texture + resolution. */
|
|
8
|
+
material: ShaderMaterial;
|
|
9
|
+
/** Excluded from the pass so the water doesn't refract itself. */
|
|
10
|
+
surfaceMesh: Mesh | null;
|
|
11
|
+
/** World-space center of the water surface. */
|
|
12
|
+
volumeCenter: Vector3;
|
|
13
|
+
/** Pool half-extents in world meters: (halfX, depth, halfZ). */
|
|
14
|
+
poolHalf: Vector3;
|
|
15
|
+
/** R3F canvas size in CSS pixels. */
|
|
16
|
+
cssWidth: number;
|
|
17
|
+
cssHeight: number;
|
|
18
|
+
/** Bumped whenever the captured scene content changes. */
|
|
19
|
+
geometryVersion: number;
|
|
20
|
+
/** True while transforms mutate per frame without bumping a version. */
|
|
21
|
+
sceneMutating: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Capture-throttle decision. A reallocated target is blank, so it can't wait
|
|
25
|
+
* out an interval — the surface would sample the cleared texture and flash
|
|
26
|
+
* the refraction fallback colour.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isCaptureDue(framesSinceCapture: number, dirty: boolean, targetResized: boolean): boolean;
|
|
29
|
+
export declare class RefractionCapture {
|
|
30
|
+
private readonly capture;
|
|
31
|
+
/**
|
|
32
|
+
* Six planes installed on the renderer ONLY during the capture pass, so
|
|
33
|
+
* EVERY fragment outside the water volume — above water, below the pool
|
|
34
|
+
* floor, beside the pool — is discarded and the surface shader can detect
|
|
35
|
+
* the resulting alpha=0 pixels as capture misses.
|
|
36
|
+
*
|
|
37
|
+
* Three.js keeps a point P iff `dot(normal, P) + constant >= 0`, so every
|
|
38
|
+
* plane here points INWARD. Allocated once and mutated per frame;
|
|
39
|
+
* SceneCapture saves and restores `renderer.clippingPlanes` so they never
|
|
40
|
+
* leak into the main R3F render.
|
|
41
|
+
*/
|
|
42
|
+
private readonly clipPlanes;
|
|
43
|
+
/**
|
|
44
|
+
* Frames since the last capture, and the state that capture was taken with.
|
|
45
|
+
* Together they answer "is the texture we already have still a correct
|
|
46
|
+
* picture of the scene?". Starts due so the first frame captures.
|
|
47
|
+
*/
|
|
48
|
+
private framesSinceCapture;
|
|
49
|
+
private readonly capturedViewProj;
|
|
50
|
+
private readonly capturedBox;
|
|
51
|
+
private capturedGeometryVersion;
|
|
52
|
+
get texture(): Texture;
|
|
53
|
+
/**
|
|
54
|
+
* Publish the refraction uniforms and re-render the capture if it is stale
|
|
55
|
+
* and the water is on screen. Call once per frame from the water frame
|
|
56
|
+
* stage, after the heightfield/caustics passes and before the composite.
|
|
57
|
+
*/
|
|
58
|
+
update(frame: RefractionCaptureFrame): void;
|
|
59
|
+
dispose(): void;
|
|
60
|
+
}
|
|
61
|
+
/** Element-wise matrix compare with a tolerance. */
|
|
62
|
+
export declare function matricesApproxEqual(a: Matrix4, b: Matrix4, epsilon: number): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Fit `box`'s screen-space extent into `out` (render-target pixels, GL
|
|
65
|
+
* bottom-left origin), padded by `marginUV` in each axis to cover the camera
|
|
66
|
+
* motion between two captures.
|
|
67
|
+
*
|
|
68
|
+
* Returns false when the box straddles the camera plane — a corner with
|
|
69
|
+
* w <= 0 projects to garbage, so the caller must fall back to capturing the
|
|
70
|
+
* full target rather than trusting a bogus rect.
|
|
71
|
+
*/
|
|
72
|
+
export declare function fitScissorToBox(box: Box3, viewProj: Matrix4, width: number, height: number, marginUV: number, out: Vector4): boolean;
|
|
73
|
+
//# sourceMappingURL=RefractionCapture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefractionCapture.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/RefractionCapture.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,IAAI,EAAW,OAAO,EAAkB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAwEzF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,EAAE,cAAc,CAAC;IACzB,kEAAkE;IAClE,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,QAAQ,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAExG;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;IAEF;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,uBAAuB,CAAM;IAErC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAiG3C,OAAO,IAAI,IAAI;CAGhB;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAOpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CA8BpI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefractionCapture.test.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/RefractionCapture.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Box3, RGBAFormat, Scene, Texture, WebGLRenderer } from 'three';
|
|
2
|
+
import type { Camera, Object3D, Plane, Vector4 } from 'three';
|
|
3
|
+
export interface SceneCaptureOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Texture format. RGBA on the renderer's default linear working space — the
|
|
6
|
+
* capture is sampled back into a fragment shader that mixes it with other
|
|
7
|
+
* linear-space colours.
|
|
8
|
+
*/
|
|
9
|
+
format?: typeof RGBAFormat;
|
|
10
|
+
}
|
|
11
|
+
export declare class SceneCapture {
|
|
12
|
+
private rt;
|
|
13
|
+
/** Drawing-buffer pixel width currently allocated for the RT. */
|
|
14
|
+
width: number;
|
|
15
|
+
/** Drawing-buffer pixel height currently allocated for the RT. */
|
|
16
|
+
height: number;
|
|
17
|
+
constructor(opts?: SceneCaptureOptions);
|
|
18
|
+
/**
|
|
19
|
+
* Output texture handle. Stable reference across frames — the
|
|
20
|
+
* WebGLRenderTarget keeps the same `.texture` even after we render into
|
|
21
|
+
* it, so consumers can assign this once and stop worrying about
|
|
22
|
+
* per-frame refreshes (unlike the heightfield ping-pong).
|
|
23
|
+
*/
|
|
24
|
+
get texture(): Texture;
|
|
25
|
+
/**
|
|
26
|
+
* Resize the render target if `(w, h, pr, scale)` differs from the
|
|
27
|
+
* currently allocated extent. Pass DRAWING-BUFFER pixels (CSS pixels *
|
|
28
|
+
* pixelRatio). The host typically gets this from `useThree(s => s.size)`
|
|
29
|
+
* and `renderer.getPixelRatio()`.
|
|
30
|
+
*
|
|
31
|
+
* `resolutionScale` renders the capture BELOW the canvas resolution.
|
|
32
|
+
* Consumers sample it with a normalized UV, so a smaller target costs
|
|
33
|
+
* nothing but sharpness — and refraction is a blur, so half-res is
|
|
34
|
+
* effectively free while cutting fill and bandwidth by 4x.
|
|
35
|
+
*
|
|
36
|
+
* Returns true when the target was actually reallocated. Its contents
|
|
37
|
+
* are gone at that point, so a consumer that skips captures on idle
|
|
38
|
+
* frames must treat this as "must re-capture now".
|
|
39
|
+
*/
|
|
40
|
+
resizeIfNeeded(cssWidth: number, cssHeight: number, pixelRatio: number, resolutionScale?: number): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Render `scene` to the offscreen target with `excluded` meshes
|
|
43
|
+
* temporarily hidden. Renderer state is taken over and put back via
|
|
44
|
+
* {@link withRenderTarget} so the main R3F render is undisturbed.
|
|
45
|
+
*
|
|
46
|
+
* `excluded` is typically `[surfaceMeshRef.current]` so the water
|
|
47
|
+
* surface excludes itself from the captured scene (otherwise we'd
|
|
48
|
+
* refract through the water and see... the same water).
|
|
49
|
+
*
|
|
50
|
+
* `scissor` (in RENDER-TARGET pixels, GL bottom-left origin) restricts
|
|
51
|
+
* the pass to the screen region the consumer can actually sample. The
|
|
52
|
+
* full target is still cleared first, so everything outside the rect
|
|
53
|
+
* stays at alpha 0 and reads as a miss — exactly like a clipped pixel.
|
|
54
|
+
*
|
|
55
|
+
* `cullBox` (world space) hides every Mesh whose world bounds miss the
|
|
56
|
+
* box for the duration of the pass. The clip planes already discard
|
|
57
|
+
* out-of-volume FRAGMENTS, but each mesh still costs a draw call and its
|
|
58
|
+
* full vertex work — for a pool inside a large scene this skips almost
|
|
59
|
+
* all of it. Caveat: an InstancedMesh is tested by its BASE geometry
|
|
60
|
+
* bounds, so instanced content meant to appear underwater would be
|
|
61
|
+
* over-culled (none exists today).
|
|
62
|
+
*/
|
|
63
|
+
render(renderer: WebGLRenderer, scene: Scene, camera: Camera, excluded: Array<Object3D | null>, clippingPlanes?: Plane[], scissor?: Vector4 | null, cullBox?: Box3 | null): void;
|
|
64
|
+
dispose(): void;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=SceneCapture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneCapture.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/SceneCapture.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAA8C,UAAU,EAAE,KAAK,EAAE,OAAO,EAAqB,aAAa,EAAE,MAAM,OAAO,CAAC;AACvI,OAAO,KAAK,EAAE,MAAM,EAAQ,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMpE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,UAAU,CAAC;CAC5B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAoB;IAC9B,iEAAiE;IACjE,KAAK,SAAK;IACV,kEAAkE;IAClE,MAAM,SAAK;gBAEC,IAAI,GAAE,mBAAwB;IA2B1C;;;;;OAKG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,SAAI,GAAG,OAAO;IAUrG;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CACJ,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,EAChC,cAAc,CAAC,EAAE,KAAK,EAAE,EACxB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,EACxB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GACpB,IAAI;IAsHP,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The scene's water surface: scene basins are plain geometry, so the surface
|
|
4
|
+
* is placed standalone at `water.volume` (or the article-derived override).
|
|
5
|
+
* Mounted by `SceneRenderer` on `water.enabled`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function WaterSurface(): React.JSX.Element;
|
|
8
|
+
//# sourceMappingURL=WaterSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaterSurface.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/WaterSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC;;;;GAIG;AACH,wBAAgB,YAAY,sBAsC3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Starts the water chunk download. Called from `preloadLazySubsystems` as soon as the resolved
|
|
4
|
+
* config says water is coming — long before the mount — so the request overlaps the scene's
|
|
5
|
+
* GLB / HDR downloads and Suspense usually resolves on the first render.
|
|
6
|
+
*/
|
|
7
|
+
export declare function preloadWaterSurface(): void;
|
|
8
|
+
/** `WaterSurface` behind its chunk boundary — same (prop-less) surface as the component itself. */
|
|
9
|
+
export declare function WaterSurfaceLazy(): React.JSX.Element;
|
|
10
|
+
//# sourceMappingURL=WaterSurfaceLazy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaterSurfaceLazy.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/WaterSurfaceLazy.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAsB9C;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAKD,mGAAmG;AACnG,wBAAgB,gBAAgB,sBAM/B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type CausticDebugMode } from './waterDebug';
|
|
3
|
+
export interface WaterSurfaceRendererProps {
|
|
4
|
+
/** World-space center of the WATER SURFACE; the floor sits `volumeSize[1]` below it. */
|
|
5
|
+
position: [number, number, number];
|
|
6
|
+
/** AABB extent in world meters: [width, depth, length]. Depth is surface-to-floor. */
|
|
7
|
+
volumeSize: [number, number, number];
|
|
8
|
+
/** Sun direction in WORLD space (already normalized). */
|
|
9
|
+
sunDirection: [number, number, number];
|
|
10
|
+
/** Pool wall flat color — replaces the demo's `tiles` sampler. */
|
|
11
|
+
wallColor: string;
|
|
12
|
+
/** Sky horizon / zenith colors used by the procedural sky stub. */
|
|
13
|
+
skyHorizonColor: string;
|
|
14
|
+
skyZenithColor: string;
|
|
15
|
+
/**
|
|
16
|
+
* Heightfield resolution along the LONGER pool axis; the shorter axis gets
|
|
17
|
+
* fewer texels in proportion so wave propagation is isotropic in world space.
|
|
18
|
+
*/
|
|
19
|
+
heightfieldSize: number;
|
|
20
|
+
/** Resolution of the caustic render target, per side. */
|
|
21
|
+
causticTextureSize: number;
|
|
22
|
+
/**
|
|
23
|
+
* Wave speed as **substeps at 60 fps** (the historical per-frame meaning, so
|
|
24
|
+
* existing tunings carry over); the sim converts it to a per-second rate.
|
|
25
|
+
*
|
|
26
|
+
* There is NO resolution compensation: world speed is
|
|
27
|
+
* `substeps × 60 × (2 × poolHalf.x / heightfieldSize)`, so a smaller
|
|
28
|
+
* heightfield means bigger cells and faster waves.
|
|
29
|
+
*/
|
|
30
|
+
substeps: number;
|
|
31
|
+
/** Period (seconds) for ambient auto-drops. 0 disables them. */
|
|
32
|
+
ambientDropPeriod: number;
|
|
33
|
+
/** Multiplier on pointer-driven (hover + press) drop strength. */
|
|
34
|
+
pointerStrength: number;
|
|
35
|
+
/** Multiplier on the wave-normal contribution driving the caustic pattern. */
|
|
36
|
+
causticIntensity: number;
|
|
37
|
+
/** Water clarity / transparency (0–1). */
|
|
38
|
+
waterClarity: number;
|
|
39
|
+
/**
|
|
40
|
+
* True samples a per-frame scene capture for refracted colour (real geo
|
|
41
|
+
* through the water); false uses the demo's in-shader AABB raytrace and
|
|
42
|
+
* runs no capture pass at all.
|
|
43
|
+
*/
|
|
44
|
+
useScreenSpaceRefraction: boolean;
|
|
45
|
+
/** Colour the surface shader falls back to on a capture miss. Hex string. */
|
|
46
|
+
refractionFallbackColor: string;
|
|
47
|
+
/** Grazing-angle reflection ceiling for the Schlick fresnel approximation. */
|
|
48
|
+
fresnelMax: number;
|
|
49
|
+
/** Debug visualization mode for the caustic receivers / surface shader. */
|
|
50
|
+
causticDebugMode: CausticDebugMode;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Drop the demo's self-contained pool world into the scene at the configured
|
|
54
|
+
* AABB. EVERY internal coordinate is in WORLD METERS in the pool's local
|
|
55
|
+
* frame (origin at the water-surface centre, +Y up):
|
|
56
|
+
*
|
|
57
|
+
* xz ∈ [-poolHalf.x, +poolHalf.x] × [-poolHalf.z, +poolHalf.z] (pool footprint)
|
|
58
|
+
* y ∈ [-poolHalf.y, +2 * poolHalf.y] (floor → sky ceiling)
|
|
59
|
+
*
|
|
60
|
+
* The parent `<group>` carries ONLY a `position` (no scale) so non-cubic pools
|
|
61
|
+
* don't introduce anisotropic stretching to the inside-the-pool view (wall
|
|
62
|
+
* caustics, etc.); the shaders get a `uPoolHalf` uniform so their internal
|
|
63
|
+
* math (intersectCube, caustic projection, wall detection, rim shadow) runs in
|
|
64
|
+
* the same world-meter frame.
|
|
65
|
+
*
|
|
66
|
+
* The above-water surface is rendered; the pool interior is ray-traced inside
|
|
67
|
+
* the surface shader. The underwater pass is intentionally skipped (the camera
|
|
68
|
+
* never goes below the water in the host scene).
|
|
69
|
+
*/
|
|
70
|
+
export declare function WaterSurfaceRenderer({ position, volumeSize, sunDirection, wallColor, skyHorizonColor, skyZenithColor, heightfieldSize, causticTextureSize, substeps, ambientDropPeriod, pointerStrength, causticIntensity, waterClarity, useScreenSpaceRefraction, refractionFallbackColor, fresnelMax, causticDebugMode, }: WaterSurfaceRendererProps): React.JSX.Element;
|
|
71
|
+
//# sourceMappingURL=WaterSurfaceRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaterSurfaceRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/WaterSurfaceRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAS1D,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI9E,MAAM,WAAW,yBAAyB;IACxC,wFAAwF;IACxF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,sFAAsF;IACtF,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,yDAAyD;IACzD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,SAAS,EACT,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,UAAU,EACV,gBAAgB,GACjB,EAAE,yBAAyB,qBAwN3B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Object3D } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Swap every standard-like material under `root` for a caustic-receiver
|
|
4
|
+
* clone and keep the clones' uniforms current each frame.
|
|
5
|
+
*
|
|
6
|
+
* @param root Subtree to patch. Re-patched whenever the reference changes.
|
|
7
|
+
* @param enabled When false the subtree keeps its original materials, so a
|
|
8
|
+
* scene without water pays nothing.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useCausticReceivers(root: Object3D | null | undefined, enabled: boolean): void;
|
|
11
|
+
//# sourceMappingURL=useCausticReceivers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCausticReceivers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/useCausticReceivers.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAetF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA4D7F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Vector2 } from 'three';
|
|
2
|
+
import type { ThreeEvent } from '@react-three/fiber';
|
|
3
|
+
export interface WaterPointerHandlers {
|
|
4
|
+
onPointerMove(event: ThreeEvent<PointerEvent>): void;
|
|
5
|
+
onPointerDown(event: ThreeEvent<PointerEvent>): void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* `queueDrop` receives pool-normalized `[-1, +1]` centers. The raycast plane
|
|
9
|
+
* is rotated -π/2 about X, so its local +Y aligns with world -Z: the v
|
|
10
|
+
* coordinate is flipped to put the drop under the cursor.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useWaterPointer(queueDrop: (center: Vector2, radius: number, strength: number) => void, pointerStrength: number): WaterPointerHandlers;
|
|
13
|
+
//# sourceMappingURL=useWaterPointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWaterPointer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/useWaterPointer.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IACrD,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;CACtD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACtE,eAAe,EAAE,MAAM,GACtB,oBAAoB,CAoBtB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Vector2, Vector3 } from 'three';
|
|
2
|
+
import type { Texture } from 'three';
|
|
3
|
+
/**
|
|
4
|
+
* Fractional fixed-step accumulator. `take` turns a frame delta into a whole
|
|
5
|
+
* number of substeps at the requested per-second rate and carries the
|
|
6
|
+
* remainder, so the rate is exact on average and wave speed is INDEPENDENT
|
|
7
|
+
* of rendered fps — a 30 fps frame runs twice the substeps of a 60 fps one.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SubstepAccumulator {
|
|
10
|
+
private leftover;
|
|
11
|
+
take(substepsPerSecond: number, delta: number): number;
|
|
12
|
+
reset(): void;
|
|
13
|
+
}
|
|
14
|
+
export interface WaveSimulationOptions {
|
|
15
|
+
/** Pool half-extents in world meters: (halfX, depth, halfZ). */
|
|
16
|
+
poolHalf: Vector3;
|
|
17
|
+
/** Heightfield texel count along the LONGER pool axis. */
|
|
18
|
+
heightfieldSize: number;
|
|
19
|
+
/** Caustic render-target resolution per side. */
|
|
20
|
+
causticTextureSize: number;
|
|
21
|
+
/** Substeps per frame at 60 fps, converted here to a per-second rate. */
|
|
22
|
+
substeps: number;
|
|
23
|
+
/** Seconds between ambient auto-drops; 0 disables them. */
|
|
24
|
+
ambientDropPeriod: number;
|
|
25
|
+
}
|
|
26
|
+
export interface WaveSimulation {
|
|
27
|
+
/** Queue a disturbance, flushed into the heightfield on the next `advance`. */
|
|
28
|
+
queueDrop(center: Vector2, radius: number, strength: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* Run this frame's drops, the fixed-step wave integration and the normal
|
|
31
|
+
* pass. Returns false while the GPU resources are being (re)built — the
|
|
32
|
+
* caller must skip the rest of its water frame then.
|
|
33
|
+
*/
|
|
34
|
+
advance(delta: number): boolean;
|
|
35
|
+
/** Bind the receiving-geometry height map consumed by the caustic pass. */
|
|
36
|
+
setHeightMap(texture: Texture | null): void;
|
|
37
|
+
/** Render the caustic pattern for this frame's waves and light direction. */
|
|
38
|
+
renderCaustics(light: Vector3, intensity: number): void;
|
|
39
|
+
/** Heightfield front buffer — a DIFFERENT texture most frames (ping-pong). */
|
|
40
|
+
readonly heightTexture: Texture | null;
|
|
41
|
+
readonly causticTexture: Texture | null;
|
|
42
|
+
}
|
|
43
|
+
export declare function useWaveSimulation({ poolHalf, heightfieldSize, causticTextureSize, substeps, ambientDropPeriod, }: WaveSimulationOptions): WaveSimulation;
|
|
44
|
+
//# sourceMappingURL=useWaveSimulation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWaveSimulation.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/useWaveSimulation.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AA+BrC;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAK;IAErB,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAOtD,KAAK,IAAI,IAAI;CAGd;AAED,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,GAClB,EAAE,qBAAqB,GAAG,cAAc,CAgIxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWaveSimulation.test.d.ts","sourceRoot":"","sources":["../../../../../../src/core/water/useWaveSimulation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type ConfigInput, type ConfigResolved } from '../../config/descriptor';
|
|
2
|
+
/**
|
|
3
|
+
* Water subsystem config — the single source for its types, defaults, clamps, round-trip and
|
|
4
|
+
* analyzer inputs (see `config/descriptor.ts`).
|
|
5
|
+
*
|
|
6
|
+
* The implementation is a verbatim port of evanw/webgl-water: the demo's pool (5-face cube +
|
|
7
|
+
* surface + caustics) dropped into an AABB at `volume`. All GLSL runs in pool-normalized `[-1, 1]`
|
|
8
|
+
* space; the volume size/center define the world-meter mapping.
|
|
9
|
+
*/
|
|
10
|
+
export declare const WATER_CONFIG: import("../../config/descriptor").GroupDescriptor<{
|
|
11
|
+
/** Mounts the standalone `<WaterSurface>` over `volume`. */
|
|
12
|
+
enabled: import("../../config/descriptor").BooleanField;
|
|
13
|
+
/**
|
|
14
|
+
* Pool AABB. `center` is the world position of the WATER SURFACE center (the demo's normalized
|
|
15
|
+
* origin); `size` is `[width, depth, length]` in metres — depth runs from the surface down to
|
|
16
|
+
* the floor.
|
|
17
|
+
*/
|
|
18
|
+
volume: import("../../config/descriptor").GroupDescriptor<{
|
|
19
|
+
center: import("../../config/descriptor").TupleField<[number, number, number]>;
|
|
20
|
+
size: import("../../config/descriptor").TupleField<[number, number, number]>;
|
|
21
|
+
}>;
|
|
22
|
+
/** Pool wall flat color — replaces the demo's tile texture (`uWallColor`). */
|
|
23
|
+
wallColor: import("../../config/descriptor").ColorField;
|
|
24
|
+
/** Procedural sky colors sampled by the surface's upward reflection branch. */
|
|
25
|
+
skyHorizonColor: import("../../config/descriptor").ColorField;
|
|
26
|
+
skyZenithColor: import("../../config/descriptor").ColorField;
|
|
27
|
+
/** Seconds between ambient auto-drops on the heightfield; `0` = no ambient drops (pointer still works). */
|
|
28
|
+
ambientDropPeriod: import("../../config/descriptor").NumberField;
|
|
29
|
+
/** Multiplier on pointer-driven drops (hover and click); the demo's tuned strengths are baked in. */
|
|
30
|
+
pointerStrength: import("../../config/descriptor").NumberField;
|
|
31
|
+
/**
|
|
32
|
+
* Heightfield simulation texture size per side (`size²` pixels per pass × 3 passes per frame).
|
|
33
|
+
* Wave speed in world metres per second is resolution-independent; only wave sharpness changes.
|
|
34
|
+
* Discrete options because every change recreates the render targets.
|
|
35
|
+
*/
|
|
36
|
+
heightfieldSize: import("../../config/descriptor").NumberField;
|
|
37
|
+
/**
|
|
38
|
+
* Caustic texture size per side — the OUTPUT texture holding the broken-sunlight pattern.
|
|
39
|
+
* Independent of `heightfieldSize`: the source-side plane subdivision stays constant.
|
|
40
|
+
*/
|
|
41
|
+
causticTextureSize: import("../../config/descriptor").NumberField;
|
|
42
|
+
/**
|
|
43
|
+
* Multiplier on the wave-normal contribution driving the caustic pattern (the demo's hard-coded
|
|
44
|
+
* `info.ba *= 0.5`). Lower mutes residual-ripple noise; `0` turns caustics off.
|
|
45
|
+
*/
|
|
46
|
+
causticIntensity: import("../../config/descriptor").NumberField;
|
|
47
|
+
/** Wave-speed multiplier; `2` ≈ 4 s to cross a 4 m pool, `~4` matches the demo's pace. */
|
|
48
|
+
waveSpeed: import("../../config/descriptor").NumberField;
|
|
49
|
+
/**
|
|
50
|
+
* 0 = deep blue-green pool (strong Fresnel, tint, depth darkening); 1 = crystal clear. Also
|
|
51
|
+
* drives the fresnel floor and the underwater AO divide in `getWallColor`.
|
|
52
|
+
*/
|
|
53
|
+
waterClarity: import("../../config/descriptor").NumberField;
|
|
54
|
+
/**
|
|
55
|
+
* Master switch for the caustic-receiver patch: every scene mesh gets its material cloned and
|
|
56
|
+
* patched to receive the caustic pattern (geo outside the pool AABB is masked to zero by the
|
|
57
|
+
* shader). Off restores the original materials — a cheap A/B of the cost.
|
|
58
|
+
*/
|
|
59
|
+
causticReceivers: import("../../config/descriptor").BooleanField;
|
|
60
|
+
/**
|
|
61
|
+
* Caustic-receiver visualization: `overlay` adds strong magenta on top of the PBR result,
|
|
62
|
+
* `isolate` shows only the caustic pattern, `mask` paints R/G/B diagnostics (inside AABB / below
|
|
63
|
+
* water / caustic hit); `landing` / `heightmap` paint on the water surface (SSR mode).
|
|
64
|
+
*/
|
|
65
|
+
causticDebugMode: import("../../config/descriptor").EnumField<"off" | "mask" | "overlay" | "isolate" | "landing" | "heightmap">;
|
|
66
|
+
/**
|
|
67
|
+
* Dedicated caustic-light direction (degrees, same convention as `lighting.sun`). `false`
|
|
68
|
+
* follows `lighting.sun`; override when the scene sun cannot drive usable caustics (grazing
|
|
69
|
+
* sunset disc) or to steer the underwater rim shadow independently.
|
|
70
|
+
*/
|
|
71
|
+
causticSun: import("../../config/descriptor").ToggleDescriptor<{
|
|
72
|
+
azimuth: import("../../config/descriptor").NumberField;
|
|
73
|
+
elevation: import("../../config/descriptor").NumberField;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* `false` uses the demo's in-shader AABB raytrace (stable, no black wave crests); `true` samples
|
|
77
|
+
* a per-frame SceneCapture texture so real pool geo shows through.
|
|
78
|
+
*/
|
|
79
|
+
useScreenSpaceRefraction: import("../../config/descriptor").BooleanField;
|
|
80
|
+
/**
|
|
81
|
+
* Fill color where the SSR sample lands on a clipped/empty capture pixel — without it those
|
|
82
|
+
* fragments render pure black (`0 * waterColor`).
|
|
83
|
+
*/
|
|
84
|
+
refractionFallbackColor: import("../../config/descriptor").ColorField;
|
|
85
|
+
/** Grazing-angle ceiling of the Schlick fresnel curve; `1` is physical, lower softens crest highlights. */
|
|
86
|
+
fresnelMax: import("../../config/descriptor").NumberField;
|
|
87
|
+
}>;
|
|
88
|
+
export type WaterConfig = ConfigInput<typeof WATER_CONFIG>;
|
|
89
|
+
export type ResolvedWaterConfig = ConfigResolved<typeof WATER_CONFIG>;
|
|
90
|
+
//# sourceMappingURL=water.config.d.ts.map
|