@3driseai/3drise-viewer 0.1.28 → 0.1.29
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/dist/animationsV2/ClipPlayer.d.ts.map +1 -1
- package/dist/animationsV2/ClipPlayer.js +13 -9
- package/dist/animationsV2/ClipsRuntime.d.ts +44 -3
- package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
- package/dist/animationsV2/ClipsRuntime.js +173 -55
- package/dist/animationsV2/appliers.d.ts.map +1 -1
- package/dist/animationsV2/appliers.js +21 -5
- package/dist/animationsV2/index.d.ts +1 -1
- package/dist/animationsV2/index.d.ts.map +1 -1
- package/dist/animationsV2/normalize.d.ts.map +1 -1
- package/dist/animationsV2/normalize.js +7 -3
- package/dist/animationsV2/sequenceUtils.d.ts +44 -6
- package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
- package/dist/animationsV2/sequenceUtils.js +58 -12
- package/dist/animationsV2/types.d.ts +22 -12
- package/dist/animationsV2/types.d.ts.map +1 -1
- package/dist/api/sceneHandle.d.ts +35 -1
- package/dist/api/sceneHandle.d.ts.map +1 -1
- package/dist/api/sceneHandle.js +88 -17
- package/dist/components/AdvancedGrid.d.ts +1 -5
- package/dist/components/AdvancedGrid.d.ts.map +1 -1
- package/dist/components/AdvancedGrid.js +6 -35
- package/dist/components/AnimatedObject.d.ts.map +1 -1
- package/dist/components/AnimatedObject.js +9 -4
- package/dist/components/ApollonianGrid.d.ts +1 -1
- package/dist/components/ApollonianGrid.d.ts.map +1 -1
- package/dist/components/ApollonianGrid.js +3 -28
- package/dist/components/ChladniGrid.d.ts +1 -1
- package/dist/components/ChladniGrid.d.ts.map +1 -1
- package/dist/components/ChladniGrid.js +6 -35
- package/dist/components/CircuitGrid.d.ts +1 -1
- package/dist/components/CircuitGrid.d.ts.map +1 -1
- package/dist/components/CircuitGrid.js +6 -34
- package/dist/components/ConformalGrid.d.ts +1 -1
- package/dist/components/ConformalGrid.d.ts.map +1 -1
- package/dist/components/ConformalGrid.js +3 -34
- package/dist/components/ContourGrid.d.ts +1 -1
- package/dist/components/ContourGrid.d.ts.map +1 -1
- package/dist/components/ContourGrid.js +6 -34
- package/dist/components/CustomPrimitive.js +1 -1
- package/dist/components/EnvironmentObject.d.ts.map +1 -1
- package/dist/components/EnvironmentObject.js +9 -7
- package/dist/components/FlowNetGrid.d.ts +1 -1
- package/dist/components/FlowNetGrid.d.ts.map +1 -1
- package/dist/components/FlowNetGrid.js +6 -34
- package/dist/components/FractalGrid.d.ts +1 -1
- package/dist/components/FractalGrid.d.ts.map +1 -1
- package/dist/components/FractalGrid.js +6 -37
- package/dist/components/Galaxy.d.ts.map +1 -1
- package/dist/components/Galaxy.js +9 -23
- package/dist/components/GirihGrid.d.ts +1 -1
- package/dist/components/GirihGrid.d.ts.map +1 -1
- package/dist/components/GirihGrid.js +6 -35
- package/dist/components/GravWaveGrid.d.ts +1 -1
- package/dist/components/GravWaveGrid.d.ts.map +1 -1
- package/dist/components/GravWaveGrid.js +6 -35
- package/dist/components/HexGrid.d.ts +1 -5
- package/dist/components/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid.js +6 -36
- package/dist/components/HilbertGrid.d.ts +1 -1
- package/dist/components/HilbertGrid.d.ts.map +1 -1
- package/dist/components/HilbertGrid.js +3 -30
- package/dist/components/HyperbolicGrid.d.ts +1 -1
- package/dist/components/HyperbolicGrid.d.ts.map +1 -1
- package/dist/components/HyperbolicGrid.js +6 -34
- package/dist/components/LandObject.d.ts +9 -0
- package/dist/components/LandObject.d.ts.map +1 -0
- package/dist/components/LandObject.js +15 -0
- package/dist/components/LensingGrid.d.ts +1 -1
- package/dist/components/LensingGrid.d.ts.map +1 -1
- package/dist/components/LensingGrid.js +3 -29
- package/dist/components/LightsManager.d.ts.map +1 -1
- package/dist/components/LightsManager.js +8 -0
- package/dist/components/ModelBoundary.d.ts +2 -0
- package/dist/components/ModelBoundary.d.ts.map +1 -1
- package/dist/components/ModelBoundary.js +3 -0
- package/dist/components/ModelPrimitive.d.ts.map +1 -1
- package/dist/components/ModelPrimitive.js +6 -0
- package/dist/components/MoireGrid.d.ts +1 -1
- package/dist/components/MoireGrid.d.ts.map +1 -1
- package/dist/components/MoireGrid.js +6 -35
- package/dist/components/MoonDisc.d.ts +11 -0
- package/dist/components/MoonDisc.d.ts.map +1 -0
- package/dist/components/MoonDisc.js +128 -0
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +15 -4
- package/dist/components/ObjectsRenderer.d.ts.map +1 -1
- package/dist/components/ObjectsRenderer.js +7 -5
- package/dist/components/OceanBuilder.d.ts.map +1 -1
- package/dist/components/OceanBuilder.js +2 -0
- package/dist/components/ParastichyGrid.d.ts +1 -1
- package/dist/components/ParastichyGrid.d.ts.map +1 -1
- package/dist/components/ParastichyGrid.js +3 -30
- package/dist/components/PhyllotaxisGrid.d.ts +1 -1
- package/dist/components/PhyllotaxisGrid.d.ts.map +1 -1
- package/dist/components/PhyllotaxisGrid.js +3 -32
- package/dist/components/ProjectLoader.d.ts +5 -3
- package/dist/components/ProjectLoader.d.ts.map +1 -1
- package/dist/components/ProjectLoader.js +6 -3
- package/dist/components/QuasiGrid.d.ts +1 -1
- package/dist/components/QuasiGrid.d.ts.map +1 -1
- package/dist/components/QuasiGrid.js +6 -33
- package/dist/components/RadarGrid.d.ts +1 -1
- package/dist/components/RadarGrid.d.ts.map +1 -1
- package/dist/components/RadarGrid.js +6 -34
- package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
- package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
- package/dist/components/ReactionDiffusionGrid.js +6 -35
- package/dist/components/SceneBuilder.d.ts +25 -3
- package/dist/components/SceneBuilder.d.ts.map +1 -1
- package/dist/components/SceneBuilder.js +68 -38
- package/dist/components/SkyController.d.ts +25 -1
- package/dist/components/SkyController.d.ts.map +1 -1
- package/dist/components/SkyController.js +189 -130
- package/dist/components/SkyMesh.d.ts.map +1 -1
- package/dist/components/SkyMesh.js +26 -1
- package/dist/components/SkyStars.d.ts +11 -0
- package/dist/components/SkyStars.d.ts.map +1 -0
- package/dist/components/SkyStars.js +187 -0
- package/dist/components/SkySystem.d.ts +3 -3
- package/dist/components/SkySystem.d.ts.map +1 -1
- package/dist/components/SkySystem.js +8 -2
- package/dist/components/Sun.d.ts +15 -1
- package/dist/components/Sun.d.ts.map +1 -1
- package/dist/components/Sun.js +64 -3
- package/dist/components/SunLight.d.ts +6 -1
- package/dist/components/SunLight.d.ts.map +1 -1
- package/dist/components/SunLight.js +96 -44
- package/dist/components/TerrainBuilder.d.ts.map +1 -1
- package/dist/components/TerrainBuilder.js +2 -0
- package/dist/components/TextGenerator.d.ts +9 -0
- package/dist/components/TextGenerator.d.ts.map +1 -0
- package/dist/components/TextGenerator.js +29 -0
- package/dist/components/TruchetGrid.d.ts +1 -1
- package/dist/components/TruchetGrid.d.ts.map +1 -1
- package/dist/components/TruchetGrid.js +3 -30
- package/dist/components/VoronoiGrid.d.ts +1 -1
- package/dist/components/VoronoiGrid.d.ts.map +1 -1
- package/dist/components/VoronoiGrid.js +6 -33
- package/dist/components/WallpaperGrid.d.ts +1 -1
- package/dist/components/WallpaperGrid.d.ts.map +1 -1
- package/dist/components/WallpaperGrid.js +6 -35
- package/dist/components/environment/Rain.d.ts +15 -0
- package/dist/components/environment/Rain.d.ts.map +1 -0
- package/dist/components/environment/Rain.js +110 -0
- package/dist/components/environment/Rainbow.d.ts +20 -0
- package/dist/components/environment/Rainbow.d.ts.map +1 -0
- package/dist/components/environment/Rainbow.js +974 -0
- package/dist/components/environment/Sandstorm.d.ts +20 -0
- package/dist/components/environment/Sandstorm.d.ts.map +1 -0
- package/dist/components/environment/Sandstorm.js +776 -0
- package/dist/components/environment/Snow.d.ts +20 -0
- package/dist/components/environment/Snow.d.ts.map +1 -0
- package/dist/components/environment/Snow.js +609 -0
- package/dist/components/environment/Thunderstorm.d.ts +20 -0
- package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
- package/dist/components/environment/Thunderstorm.js +731 -0
- package/dist/components/environment/Tornado.d.ts +20 -0
- package/dist/components/environment/Tornado.d.ts.map +1 -0
- package/dist/components/environment/Tornado.js +762 -0
- package/dist/components/environment/index.d.ts +13 -0
- package/dist/components/environment/index.d.ts.map +1 -0
- package/dist/components/environment/index.js +7 -0
- package/dist/components/index.d.ts +10 -10
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +8 -6
- package/dist/components/land/LandPatch.d.ts +15 -0
- package/dist/components/land/LandPatch.d.ts.map +1 -0
- package/dist/components/land/LandPatch.js +170 -0
- package/dist/components/land/index.d.ts +3 -0
- package/dist/components/land/index.d.ts.map +1 -0
- package/dist/components/land/index.js +1 -0
- package/dist/components/space/Earth.d.ts +16 -0
- package/dist/components/space/Earth.d.ts.map +1 -0
- package/dist/components/space/Earth.js +75 -0
- package/dist/components/space/ShootingStar.d.ts +21 -0
- package/dist/components/space/ShootingStar.d.ts.map +1 -0
- package/dist/components/space/ShootingStar.js +101 -0
- package/dist/components/space/ShootingStars.d.ts +16 -0
- package/dist/components/space/ShootingStars.d.ts.map +1 -0
- package/dist/components/space/ShootingStars.js +71 -0
- package/dist/components/space/SolarSystem.d.ts +16 -0
- package/dist/components/space/SolarSystem.d.ts.map +1 -0
- package/dist/components/space/SolarSystem.js +141 -0
- package/dist/components/space/Stars.d.ts +20 -0
- package/dist/components/space/Stars.d.ts.map +1 -0
- package/dist/components/space/Stars.js +160 -0
- package/dist/components/space/index.d.ts +11 -0
- package/dist/components/space/index.d.ts.map +1 -0
- package/dist/components/space/index.js +8 -0
- package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
- package/dist/components/terrain/TerrainSurface.js +27 -3
- package/dist/components/terrain/types.d.ts +5 -1
- package/dist/components/terrain/types.d.ts.map +1 -1
- package/dist/components/text/BurnAwayText.d.ts +15 -0
- package/dist/components/text/BurnAwayText.d.ts.map +1 -0
- package/dist/components/text/BurnAwayText.js +4 -0
- package/dist/components/text/ChalkboardText.d.ts +15 -0
- package/dist/components/text/ChalkboardText.d.ts.map +1 -0
- package/dist/components/text/ChalkboardText.js +4 -0
- package/dist/components/text/ConstellationText.d.ts +15 -0
- package/dist/components/text/ConstellationText.d.ts.map +1 -0
- package/dist/components/text/ConstellationText.js +4 -0
- package/dist/components/text/EmbroideryText.d.ts +15 -0
- package/dist/components/text/EmbroideryText.d.ts.map +1 -0
- package/dist/components/text/EmbroideryText.js +4 -0
- package/dist/components/text/FourierSketchText.d.ts +15 -0
- package/dist/components/text/FourierSketchText.d.ts.map +1 -0
- package/dist/components/text/FourierSketchText.js +4 -0
- package/dist/components/text/FrostGrowthText.d.ts +15 -0
- package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
- package/dist/components/text/FrostGrowthText.js +4 -0
- package/dist/components/text/HandwritingText.d.ts +15 -0
- package/dist/components/text/HandwritingText.d.ts.map +1 -0
- package/dist/components/text/HandwritingText.js +4 -0
- package/dist/components/text/InkBleedText.d.ts +15 -0
- package/dist/components/text/InkBleedText.d.ts.map +1 -0
- package/dist/components/text/InkBleedText.js +4 -0
- package/dist/components/text/LightPaintingText.d.ts +15 -0
- package/dist/components/text/LightPaintingText.d.ts.map +1 -0
- package/dist/components/text/LightPaintingText.js +4 -0
- package/dist/components/text/LiquidMetalText.d.ts +15 -0
- package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
- package/dist/components/text/LiquidMetalText.js +4 -0
- package/dist/components/text/NeonTubeText.d.ts +15 -0
- package/dist/components/text/NeonTubeText.d.ts.map +1 -0
- package/dist/components/text/NeonTubeText.js +4 -0
- package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
- package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
- package/dist/components/text/PlasmaDischargeText.js +4 -0
- package/dist/components/text/TextObjectView.d.ts +12 -0
- package/dist/components/text/TextObjectView.d.ts.map +1 -0
- package/dist/components/text/TextObjectView.js +11 -0
- package/dist/components/text/engine/fieldkit.d.ts +24 -0
- package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
- package/dist/components/text/engine/fieldkit.js +201 -0
- package/dist/components/text/engine/glyphs.d.ts +19 -0
- package/dist/components/text/engine/glyphs.d.ts.map +1 -0
- package/dist/components/text/engine/glyphs.js +269 -0
- package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
- package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
- package/dist/components/text/engine/looks/burnAway.js +593 -0
- package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
- package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
- package/dist/components/text/engine/looks/chalkboard.js +426 -0
- package/dist/components/text/engine/looks/constellation.d.ts +111 -0
- package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
- package/dist/components/text/engine/looks/constellation.js +496 -0
- package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
- package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
- package/dist/components/text/engine/looks/embroidery.js +645 -0
- package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
- package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
- package/dist/components/text/engine/looks/frostGrowth.js +727 -0
- package/dist/components/text/engine/looks/index.d.ts +2 -0
- package/dist/components/text/engine/looks/index.d.ts.map +1 -0
- package/dist/components/text/engine/looks/index.js +48 -0
- package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
- package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
- package/dist/components/text/engine/looks/inkBleed.js +590 -0
- package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
- package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
- package/dist/components/text/engine/looks/lightPainting.js +567 -0
- package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
- package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
- package/dist/components/text/engine/looks/liquidMetal.js +655 -0
- package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
- package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
- package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
- package/dist/components/text/engine/methods.d.ts +19 -0
- package/dist/components/text/engine/methods.d.ts.map +1 -0
- package/dist/components/text/engine/methods.js +126 -0
- package/dist/components/text/engine/playback.d.ts +40 -0
- package/dist/components/text/engine/playback.d.ts.map +1 -0
- package/dist/components/text/engine/playback.js +114 -0
- package/dist/components/text/engine/ribbon.d.ts +58 -0
- package/dist/components/text/engine/ribbon.d.ts.map +1 -0
- package/dist/components/text/engine/ribbon.js +250 -0
- package/dist/components/text/engine/variants.d.ts +159 -0
- package/dist/components/text/engine/variants.d.ts.map +1 -0
- package/dist/components/text/engine/variants.js +378 -0
- package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
- package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
- package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
- package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
- package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
- package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/caveat.outline.js +4 -0
- package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
- package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/caveat.strokes.js +4 -0
- package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
- package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/courgette.outline.js +4 -0
- package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
- package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/courgette.strokes.js +4 -0
- package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
- package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/dancing-script.outline.js +4 -0
- package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
- package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
- package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
- package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
- package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
- package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
- package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
- package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/handlee.outline.js +4 -0
- package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
- package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/handlee.strokes.js +4 -0
- package/dist/components/text/fonts/index.d.ts +5 -0
- package/dist/components/text/fonts/index.d.ts.map +1 -0
- package/dist/components/text/fonts/index.js +44 -0
- package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
- package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/indie-flower.outline.js +4 -0
- package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
- package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
- package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
- package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/kalam.outline.js +4 -0
- package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
- package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/kalam.strokes.js +4 -0
- package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
- package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
- package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
- package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
- package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
- package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/mynerve.outline.js +4 -0
- package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
- package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/mynerve.strokes.js +4 -0
- package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
- package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
- package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
- package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
- package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
- package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/pacifico.outline.js +4 -0
- package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
- package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/pacifico.strokes.js +4 -0
- package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
- package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
- package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
- package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
- package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
- package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/poppins.outline.js +4 -0
- package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
- package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/poppins.strokes.js +4 -0
- package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
- package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/satisfy.outline.js +4 -0
- package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
- package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/satisfy.strokes.js +4 -0
- package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
- package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
- package/dist/components/text/fonts/sriracha.outline.js +4 -0
- package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
- package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
- package/dist/components/text/fonts/sriracha.strokes.js +4 -0
- package/dist/components/text/index.d.ts +27 -0
- package/dist/components/text/index.d.ts.map +1 -0
- package/dist/components/text/index.js +13 -0
- package/dist/components/text/useTextObject.d.ts +21 -0
- package/dist/components/text/useTextObject.d.ts.map +1 -0
- package/dist/components/text/useTextObject.js +118 -0
- package/dist/components/water/OceanSurface.d.ts.map +1 -1
- package/dist/components/water/OceanSurface.js +3 -1
- package/dist/components/water/WaterBody.d.ts.map +1 -1
- package/dist/components/water/WaterBody.js +3 -1
- package/dist/components/water/types.d.ts +5 -1
- package/dist/components/water/types.d.ts.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useCloudSun.d.ts +9 -4
- package/dist/hooks/useCloudSun.d.ts.map +1 -1
- package/dist/hooks/useCloudSun.js +17 -7
- package/dist/hooks/useConfigLive.d.ts +3 -2
- package/dist/hooks/useConfigLive.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.js +4 -10
- package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
- package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
- package/dist/hooks/useEnvironmentProbe.js +47 -8
- package/dist/hooks/useGridSurface.d.ts +3 -10
- package/dist/hooks/useGridSurface.d.ts.map +1 -1
- package/dist/hooks/useGridSurface.js +5 -31
- package/dist/hooks/useInteraction.d.ts.map +1 -1
- package/dist/hooks/useInteraction.js +19 -72
- package/dist/hooks/useLightConfig.d.ts +2 -1
- package/dist/hooks/useLightConfig.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.d.ts +6 -2
- package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.js +37 -2
- package/dist/hooks/useSkyLive.d.ts +23 -0
- package/dist/hooks/useSkyLive.d.ts.map +1 -0
- package/dist/hooks/useSkyLive.js +30 -0
- package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
- package/dist/hooks/useSkyUniforms.js +2 -10
- package/dist/hooks/useTerrainLive.d.ts +3 -1
- package/dist/hooks/useTerrainLive.d.ts.map +1 -1
- package/dist/hooks/useTerrainTextures.d.ts +38 -0
- package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
- package/dist/hooks/useTerrainTextures.js +149 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/operations/catalogue/blastOff.d.ts +3 -0
- package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
- package/dist/operations/catalogue/blastOff.js +118 -0
- package/dist/operations/catalogue/bounce.d.ts +3 -0
- package/dist/operations/catalogue/bounce.d.ts.map +1 -0
- package/dist/operations/catalogue/bounce.js +34 -0
- package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
- package/dist/operations/catalogue/curlSmoke.js +3 -1
- package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
- package/dist/operations/catalogue/dissolve.js +2 -1
- package/dist/operations/catalogue/driftUp.d.ts +3 -0
- package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
- package/dist/operations/catalogue/driftUp.js +57 -0
- package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
- package/dist/operations/catalogue/emberAsh.js +2 -1
- package/dist/operations/catalogue/flip.d.ts.map +1 -1
- package/dist/operations/catalogue/flip.js +19 -9
- package/dist/operations/catalogue/float.d.ts +3 -0
- package/dist/operations/catalogue/float.d.ts.map +1 -0
- package/dist/operations/catalogue/float.js +39 -0
- package/dist/operations/catalogue/flyBy.d.ts +3 -0
- package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
- package/dist/operations/catalogue/flyBy.js +79 -0
- package/dist/operations/catalogue/frost.d.ts.map +1 -1
- package/dist/operations/catalogue/frost.js +10 -3
- package/dist/operations/catalogue/grow.d.ts +3 -0
- package/dist/operations/catalogue/grow.d.ts.map +1 -0
- package/dist/operations/catalogue/grow.js +19 -0
- package/dist/operations/catalogue/hologram.d.ts.map +1 -1
- package/dist/operations/catalogue/hologram.js +11 -5
- package/dist/operations/catalogue/jelly.d.ts.map +1 -1
- package/dist/operations/catalogue/jelly.js +18 -8
- package/dist/operations/catalogue/knockAway.d.ts +3 -0
- package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
- package/dist/operations/catalogue/knockAway.js +74 -0
- package/dist/operations/catalogue/leafFall.d.ts +3 -0
- package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
- package/dist/operations/catalogue/leafFall.js +74 -0
- package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
- package/dist/operations/catalogue/lidarScan.js +4 -1
- package/dist/operations/catalogue/metalize.d.ts.map +1 -1
- package/dist/operations/catalogue/metalize.js +8 -2
- package/dist/operations/catalogue/motionTrail.d.ts +6 -0
- package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
- package/dist/operations/catalogue/motionTrail.js +221 -0
- package/dist/operations/catalogue/petrify.d.ts.map +1 -1
- package/dist/operations/catalogue/petrify.js +9 -3
- package/dist/operations/catalogue/physicalExit.d.ts +55 -0
- package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
- package/dist/operations/catalogue/physicalExit.js +165 -0
- package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
- package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
- package/dist/operations/catalogue/physicalHeld.js +78 -0
- package/dist/operations/catalogue/physicalMix.d.ts +45 -0
- package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
- package/dist/operations/catalogue/physicalMix.js +144 -0
- package/dist/operations/catalogue/pop.d.ts +3 -0
- package/dist/operations/catalogue/pop.d.ts.map +1 -0
- package/dist/operations/catalogue/pop.js +44 -0
- package/dist/operations/catalogue/print3d.d.ts.map +1 -1
- package/dist/operations/catalogue/print3d.js +5 -1
- package/dist/operations/catalogue/pulse.d.ts +3 -0
- package/dist/operations/catalogue/pulse.d.ts.map +1 -0
- package/dist/operations/catalogue/pulse.js +29 -0
- package/dist/operations/catalogue/restPose.d.ts +5 -7
- package/dist/operations/catalogue/restPose.d.ts.map +1 -1
- package/dist/operations/catalogue/restPose.js +18 -48
- package/dist/operations/catalogue/rotate.d.ts +3 -0
- package/dist/operations/catalogue/rotate.d.ts.map +1 -0
- package/dist/operations/catalogue/rotate.js +49 -0
- package/dist/operations/catalogue/shake.d.ts +3 -0
- package/dist/operations/catalogue/shake.d.ts.map +1 -0
- package/dist/operations/catalogue/shake.js +31 -0
- package/dist/operations/catalogue/shatter.d.ts.map +1 -1
- package/dist/operations/catalogue/shatter.js +5 -1
- package/dist/operations/catalogue/slam.d.ts +3 -0
- package/dist/operations/catalogue/slam.d.ts.map +1 -0
- package/dist/operations/catalogue/slam.js +89 -0
- package/dist/operations/catalogue/slingshot.d.ts +3 -0
- package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
- package/dist/operations/catalogue/slingshot.js +88 -0
- package/dist/operations/catalogue/spin.d.ts.map +1 -1
- package/dist/operations/catalogue/spin.js +24 -13
- package/dist/operations/catalogue/sway.d.ts +3 -0
- package/dist/operations/catalogue/sway.d.ts.map +1 -0
- package/dist/operations/catalogue/sway.js +23 -0
- package/dist/operations/catalogue/swirl.d.ts.map +1 -1
- package/dist/operations/catalogue/swirl.js +6 -5
- package/dist/operations/catalogue/trailCore.d.ts +89 -0
- package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
- package/dist/operations/catalogue/trailCore.js +190 -0
- package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
- package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
- package/dist/operations/catalogue/trailGhosts.js +179 -0
- package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
- package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
- package/dist/operations/catalogue/trailStampStyles.js +479 -0
- package/dist/operations/catalogue/trailStamps.d.ts +57 -0
- package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
- package/dist/operations/catalogue/trailStamps.js +349 -0
- package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
- package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
- package/dist/operations/catalogue/trailStreaks.js +147 -0
- package/dist/operations/catalogue/transitionField.d.ts +30 -0
- package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
- package/dist/operations/catalogue/transitionField.js +21 -0
- package/dist/operations/catalogue/turnAway.d.ts +3 -0
- package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
- package/dist/operations/catalogue/turnAway.js +54 -0
- package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
- package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
- package/dist/operations/catalogue/vortexDrain.js +68 -0
- package/dist/operations/catalogue/warp.d.ts +3 -0
- package/dist/operations/catalogue/warp.d.ts.map +1 -0
- package/dist/operations/catalogue/warp.js +73 -0
- package/dist/operations/catalogue/whoosh.d.ts +3 -0
- package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
- package/dist/operations/catalogue/whoosh.js +84 -0
- package/dist/operations/catalogue/wobble.d.ts +3 -0
- package/dist/operations/catalogue/wobble.d.ts.map +1 -0
- package/dist/operations/catalogue/wobble.js +23 -0
- package/dist/operations/clipPreview.d.ts +3 -0
- package/dist/operations/clipPreview.d.ts.map +1 -0
- package/dist/operations/clipPreview.js +20 -0
- package/dist/operations/groupFanout.d.ts +96 -0
- package/dist/operations/groupFanout.d.ts.map +1 -0
- package/dist/operations/groupFanout.js +365 -0
- package/dist/operations/groups.d.ts +20 -0
- package/dist/operations/groups.d.ts.map +1 -0
- package/dist/operations/groups.js +66 -0
- package/dist/operations/index.d.ts +5 -2
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +5 -2
- package/dist/operations/objectEffects.d.ts +161 -6
- package/dist/operations/objectEffects.d.ts.map +1 -1
- package/dist/operations/objectEffects.js +1091 -17
- package/dist/operations/registry.d.ts.map +1 -1
- package/dist/operations/registry.js +24 -2
- package/dist/operations/runtime.d.ts +57 -2
- package/dist/operations/runtime.d.ts.map +1 -1
- package/dist/operations/runtime.js +161 -18
- package/dist/operations/types.d.ts +60 -3
- package/dist/operations/types.d.ts.map +1 -1
- package/dist/operations/types.js +5 -1
- package/dist/operations/useObjectEffectLayers.d.ts +2 -2
- package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
- package/dist/operations/useObjectEffectLayers.js +31 -10
- package/dist/operations/usePresentedVisibility.d.ts +10 -0
- package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
- package/dist/operations/usePresentedVisibility.js +53 -0
- package/dist/presets/terrainBiomes.d.ts +67 -0
- package/dist/presets/terrainBiomes.d.ts.map +1 -0
- package/dist/presets/terrainBiomes.js +294 -0
- package/dist/presets/terrainPresets.d.ts +6 -0
- package/dist/presets/terrainPresets.d.ts.map +1 -1
- package/dist/presets/terrainPresets.js +26 -38
- package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
- package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
- package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
- package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
- package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
- package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
- package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
- package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
- package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
- package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
- package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
- package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
- package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
- package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
- package/dist/shaders/terrain/TerrainMaterial.js +107 -8
- package/dist/triggers/engine.d.ts +44 -0
- package/dist/triggers/engine.d.ts.map +1 -0
- package/dist/triggers/engine.js +165 -0
- package/dist/triggers/hosts/actions.d.ts +8 -0
- package/dist/triggers/hosts/actions.d.ts.map +1 -0
- package/dist/triggers/hosts/actions.js +22 -0
- package/dist/triggers/hosts/interactions.d.ts +6 -0
- package/dist/triggers/hosts/interactions.d.ts.map +1 -0
- package/dist/triggers/hosts/interactions.js +4 -0
- package/dist/triggers/hosts/timelineCues.d.ts +2 -0
- package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
- package/dist/triggers/hosts/timelineCues.js +22 -0
- package/dist/triggers/index.d.ts +13 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +9 -0
- package/dist/triggers/kinds/action.d.ts +2 -0
- package/dist/triggers/kinds/action.d.ts.map +1 -0
- package/dist/triggers/kinds/action.js +31 -0
- package/dist/triggers/kinds/animations.d.ts +2 -0
- package/dist/triggers/kinds/animations.d.ts.map +1 -0
- package/dist/triggers/kinds/animations.js +75 -0
- package/dist/triggers/kinds/effects.d.ts +2 -0
- package/dist/triggers/kinds/effects.d.ts.map +1 -0
- package/dist/triggers/kinds/effects.js +27 -0
- package/dist/triggers/kinds/index.d.ts +4 -0
- package/dist/triggers/kinds/index.d.ts.map +1 -0
- package/dist/triggers/kinds/index.js +4 -0
- package/dist/triggers/log.d.ts +21 -0
- package/dist/triggers/log.d.ts.map +1 -0
- package/dist/triggers/log.js +43 -0
- package/dist/triggers/readiness.d.ts +40 -0
- package/dist/triggers/readiness.d.ts.map +1 -0
- package/dist/triggers/readiness.js +158 -0
- package/dist/triggers/registry.d.ts +41 -0
- package/dist/triggers/registry.d.ts.map +1 -0
- package/dist/triggers/registry.js +7 -0
- package/dist/types/gridConfigs.d.ts +18 -23
- package/dist/types/gridConfigs.d.ts.map +1 -1
- package/dist/ui/UiAnchorUpdater.d.ts +10 -0
- package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
- package/dist/ui/UiAnchorUpdater.js +111 -0
- package/dist/ui/UiLayers.d.ts +20 -0
- package/dist/ui/UiLayers.d.ts.map +1 -0
- package/dist/ui/UiLayers.js +57 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +6 -0
- package/dist/ui/uiAnchors.d.ts +21 -0
- package/dist/ui/uiAnchors.d.ts.map +1 -0
- package/dist/ui/uiAnchors.js +22 -0
- package/dist/ui/uiBaseStyles.d.ts +2 -0
- package/dist/ui/uiBaseStyles.d.ts.map +1 -0
- package/dist/ui/uiBaseStyles.js +100 -0
- package/dist/ui/uiBinder.d.ts +30 -0
- package/dist/ui/uiBinder.d.ts.map +1 -0
- package/dist/ui/uiBinder.js +344 -0
- package/dist/utils/configAnimations.d.ts.map +1 -1
- package/dist/utils/configAnimations.js +5 -1
- package/dist/utils/gridConfig.d.ts +1 -1
- package/dist/utils/gridConfig.d.ts.map +1 -1
- package/dist/utils/gridConfig.js +1 -1
- package/dist/utils/landPatch.d.ts +33 -0
- package/dist/utils/landPatch.d.ts.map +1 -0
- package/dist/utils/landPatch.js +114 -0
- package/dist/utils/renderedSky.d.ts +32 -0
- package/dist/utils/renderedSky.d.ts.map +1 -0
- package/dist/utils/renderedSky.js +57 -0
- package/dist/utils/skyMoon.d.ts +35 -0
- package/dist/utils/skyMoon.d.ts.map +1 -0
- package/dist/utils/skyMoon.js +41 -0
- package/dist/utils/terrainHeight.d.ts +4 -0
- package/dist/utils/terrainHeight.d.ts.map +1 -0
- package/dist/utils/terrainHeight.js +150 -0
- package/dist/utils/terrainTextureResolver.d.ts +18 -0
- package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
- package/dist/utils/terrainTextureResolver.js +17 -0
- package/dist/utils/terrainUniforms.d.ts +17 -0
- package/dist/utils/terrainUniforms.d.ts.map +1 -1
- package/dist/utils/terrainUniforms.js +84 -0
- package/dist/utils/textureArrays.d.ts +29 -0
- package/dist/utils/textureArrays.d.ts.map +1 -0
- package/dist/utils/textureArrays.js +140 -0
- package/package.json +2 -2
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Presented visibility — what the renderer is told about an object's `visible`.
|
|
2
|
+
//
|
|
3
|
+
// An object's effects can follow its visibility (its effect clip's `visible`): shown → they
|
|
4
|
+
// play in, hidden → they play out. Both ends need the renderers to wait:
|
|
5
|
+
// hide the object must stay drawn until the effects have played out
|
|
6
|
+
// show the object must stay undrawn until the effects are ready (compiled, their
|
|
7
|
+
// start state on) — a frost that paints the object in must never be preceded
|
|
8
|
+
// by a frame of the plain object
|
|
9
|
+
// So a change of `visible` on such an object is HELD here: the renderers keep seeing
|
|
10
|
+
// the old value until the object's effects controller says it is done, then get the
|
|
11
|
+
// real one. The controller switches the group itself at the exact moment (see
|
|
12
|
+
// ObjectEffectsController.setVisible); this hook keeps React's value out of its way
|
|
13
|
+
// and brings it in line afterwards.
|
|
14
|
+
//
|
|
15
|
+
// One choke point: ObjectNode runs every scene object's settings through this
|
|
16
|
+
// right after the action patches, so every renderer below sees the same value —
|
|
17
|
+
// and every route to visibility (the tree eye, the controller, an action patch, a
|
|
18
|
+
// sequence cue, the agent) plays the effects.
|
|
19
|
+
import { useEffect, useMemo, useReducer, useRef } from 'react';
|
|
20
|
+
import { findById, objectEffectClipOf } from '@3driseai/3drise-core';
|
|
21
|
+
import { clipFollowsVisibility, setObjectEffectsVisible } from './objectEffects.js';
|
|
22
|
+
export function usePresentedVisibility(object) {
|
|
23
|
+
const id = object?.id;
|
|
24
|
+
const visible = object?.meshSettings?.visible !== false;
|
|
25
|
+
const follows = clipFollowsVisibility(objectEffectClipOf(object));
|
|
26
|
+
const [, rerender] = useReducer((n) => n + 1, 0);
|
|
27
|
+
/** What the renderers are told. Decided while rendering, so a held change never leaks for a frame. */
|
|
28
|
+
const presented = useRef(visible);
|
|
29
|
+
if (!follows)
|
|
30
|
+
presented.current = visible; // nothing to play: straight through
|
|
31
|
+
const told = useRef(visible);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (told.current === visible)
|
|
34
|
+
return; // only a change plays anything (not the first mount)
|
|
35
|
+
told.current = visible;
|
|
36
|
+
const root = id ? findById(id) : null;
|
|
37
|
+
const run = setObjectEffectsVisible(root, visible);
|
|
38
|
+
let alive = true;
|
|
39
|
+
const release = () => {
|
|
40
|
+
if (!alive || presented.current === visible)
|
|
41
|
+
return;
|
|
42
|
+
presented.current = visible;
|
|
43
|
+
rerender();
|
|
44
|
+
};
|
|
45
|
+
if (run)
|
|
46
|
+
void run.then(release, release);
|
|
47
|
+
else
|
|
48
|
+
release();
|
|
49
|
+
return () => { alive = false; }; // changed again meanwhile: the newer change decides
|
|
50
|
+
}, [visible, id]);
|
|
51
|
+
const shown = presented.current;
|
|
52
|
+
return useMemo(() => (object && shown !== visible ? { ...object, meshSettings: { ...object.meshSettings, visible: shown } } : object), [object, shown, visible]);
|
|
53
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type TerrainConfig, type TerrainSurfaceConfig, type TerrainTexturesPatch } from '@3driseai/3drise-core';
|
|
2
|
+
import { type TerrainPreset } from './terrainPresets';
|
|
3
|
+
/**
|
|
4
|
+
* Terrain biomes — the GROUND, separate from the shape.
|
|
5
|
+
*
|
|
6
|
+
* A terrain is two independent choices: a shape (presets/terrainPresets — the
|
|
7
|
+
* landform) and a biome (this file — what the ground is made of). Any shape can
|
|
8
|
+
* wear any biome, so 20 shapes x 11 biomes are 220 looks from two clicks, and
|
|
9
|
+
* neither choice needs the user to know what a splat layer is.
|
|
10
|
+
*
|
|
11
|
+
* A biome owns: the four texture sets (with tile size, tint, brightness), the
|
|
12
|
+
* flat colours an untextured layer falls back to, the snow line, macro variation
|
|
13
|
+
* and the surface's roughness / specular. It does NOT own the slope at which rock
|
|
14
|
+
* shows: that depends on how steep the shape is, so it stays with the shape.
|
|
15
|
+
*
|
|
16
|
+
* Exposure is automatic: each textured layer is brought to the luminance of the
|
|
17
|
+
* biome's colour for that layer (lowColor … peakColor), keeping the scan's own hue
|
|
18
|
+
* and detail. So the colours below are the biome's tuned brightness per layer, and
|
|
19
|
+
* `brightness` on a layer is only for nudging on top of that.
|
|
20
|
+
*/
|
|
21
|
+
export interface TerrainBiome {
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
/** Gallery grouping: 'temperate' | 'cold' | 'arid' | 'volcanic' — or a new one. */
|
|
25
|
+
category: string;
|
|
26
|
+
tags: string[];
|
|
27
|
+
/** The ground's look: biome-owned config fields (see BIOME_KEYS) + textures. */
|
|
28
|
+
settings: Pick<Partial<TerrainSurfaceConfig>, (typeof BIOME_KEYS)[number]> & {
|
|
29
|
+
textures: TerrainTexturesPatch;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** The config fields a biome sets. Everything else belongs to the shape. */
|
|
33
|
+
export declare const BIOME_KEYS: readonly ["peakLevel", "peakBlend", "peakSlopeFalloff", "macroVariation", "macroSize", "roughness", "specular", "lowColor", "midColor", "rockColor", "peakColor"];
|
|
34
|
+
export declare const terrainBiomes: TerrainBiome[];
|
|
35
|
+
export declare function getTerrainBiomeByName(name: string): TerrainBiome | undefined;
|
|
36
|
+
/** The biome's config fields, textures included (complete, layer by layer). */
|
|
37
|
+
export declare function terrainBiomeFields(biome: TerrainBiome): Partial<TerrainConfig>;
|
|
38
|
+
/**
|
|
39
|
+
* Change the landform, keep the ground. The shape's form, slope-rock thresholds,
|
|
40
|
+
* detail and lighting replace the current ones; the biome fields and the textures
|
|
41
|
+
* stay as they are. Ruggedness and Rock & snow go back to "as designed".
|
|
42
|
+
*/
|
|
43
|
+
export declare function applyTerrainShape(config: TerrainConfig, name: string): TerrainConfig | null;
|
|
44
|
+
/**
|
|
45
|
+
* Change the ground, keep the landform. Textures are replaced whole (a biome is a
|
|
46
|
+
* set of four that belong together); the slope-rock thresholds go back to the
|
|
47
|
+
* shape's, the snow line to the biome's — Rock & snow back to "as designed".
|
|
48
|
+
*/
|
|
49
|
+
export declare function applyTerrainBiome(config: TerrainConfig, name: string): TerrainConfig | null;
|
|
50
|
+
/** A preset = its shape + the biome it was designed with. */
|
|
51
|
+
export declare function applyTerrainPreset(config: TerrainConfig, name: string): TerrainConfig | null;
|
|
52
|
+
/**
|
|
53
|
+
* Ruggedness, 0..1. 0.5 is the shape as designed; up sharpens ridges, roughens the
|
|
54
|
+
* fractal and erodes less; down rounds everything off. One slider for the three
|
|
55
|
+
* numbers that together read as "rugged".
|
|
56
|
+
*/
|
|
57
|
+
export declare function terrainRuggednessPatch(config: TerrainConfig, r: number): Partial<TerrainConfig>;
|
|
58
|
+
/**
|
|
59
|
+
* Rock & snow, 0..1. 0.5 is shape and biome as designed; up lets rock show on
|
|
60
|
+
* gentler slopes and brings the snow line down, down does the opposite.
|
|
61
|
+
*/
|
|
62
|
+
export declare function terrainCoveragePatch(config: TerrainConfig, c: number): Partial<TerrainConfig>;
|
|
63
|
+
/** The keys the Basic tab's derived sliders write, for the live path. */
|
|
64
|
+
export declare const RUGGEDNESS_KEYS: readonly ["gain", "ridgeSharpness", "erosion"];
|
|
65
|
+
export declare const COVERAGE_KEYS: readonly ["slopeRockStart", "slopeRockEnd", "peakLevel"];
|
|
66
|
+
export type { TerrainPreset };
|
|
67
|
+
//# sourceMappingURL=terrainBiomes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terrainBiomes.d.ts","sourceRoot":"","sources":["../../src/presets/terrainBiomes.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9E;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gFAAgF;IAChF,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG;QAAE,QAAQ,EAAE,oBAAoB,CAAA;KAAE,CAAC;CACnH;AAED,4EAA4E;AAC5E,eAAO,MAAM,UAAU,mKAIb,CAAC;AAgCX,eAAO,MAAM,aAAa,EAAE,YAAY,EAqIvC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG5E;AAYD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAG9E;AAcD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsB3F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAc3F;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAM5F;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAS/F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAW7F;AAED,yEAAyE;AACzE,eAAO,MAAM,eAAe,gDAAiD,CAAC;AAC9E,eAAO,MAAM,aAAa,0DAA2D,CAAC;AAEtF,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { TERRAIN_DEFAULTS, emptyTerrainTextures, mergeTerrainTextures, } from '@3driseai/3drise-core';
|
|
2
|
+
import { getTerrainPresetByName } from './terrainPresets.js';
|
|
3
|
+
/** The config fields a biome sets. Everything else belongs to the shape. */
|
|
4
|
+
export const BIOME_KEYS = [
|
|
5
|
+
'peakLevel', 'peakBlend', 'peakSlopeFalloff',
|
|
6
|
+
'macroVariation', 'macroSize', 'roughness', 'specular',
|
|
7
|
+
'lowColor', 'midColor', 'rockColor', 'peakColor',
|
|
8
|
+
];
|
|
9
|
+
/** Metres per tile by surface kind, from the set's name. A grass scan covers
|
|
10
|
+
* about two metres, a cliff scan five to ten. */
|
|
11
|
+
function tileFor(set) {
|
|
12
|
+
if (/^(Grass|Moss|ScatteredLeaves)/.test(set))
|
|
13
|
+
return 2.5;
|
|
14
|
+
if (/^Gravel/.test(set))
|
|
15
|
+
return 3;
|
|
16
|
+
if (/^Ground/.test(set))
|
|
17
|
+
return 3.5;
|
|
18
|
+
if (/^Snow/.test(set))
|
|
19
|
+
return 4;
|
|
20
|
+
return 7; // Rock, Rocks, Granite, Travertine
|
|
21
|
+
}
|
|
22
|
+
/** Four layers: low and mid ground by height, rock by slope, peak at the top. */
|
|
23
|
+
function T(low, mid, rock, peak) {
|
|
24
|
+
const one = (spec) => {
|
|
25
|
+
const o = typeof spec === 'string' ? { set: spec } : spec;
|
|
26
|
+
return {
|
|
27
|
+
set: o.set,
|
|
28
|
+
tileSize: o.tileSize ?? tileFor(o.set),
|
|
29
|
+
tint: o.tint ?? '#ffffff',
|
|
30
|
+
brightness: o.brightness ?? 1,
|
|
31
|
+
normalStrength: 1,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
return { low: one(low), mid: one(mid), rock: one(rock), peak: one(peak) };
|
|
35
|
+
}
|
|
36
|
+
/** Straw, for grass scans in a dry biome — there is no dry-grass scan. */
|
|
37
|
+
const DRY = '#f0a840';
|
|
38
|
+
export const terrainBiomes = [
|
|
39
|
+
{
|
|
40
|
+
name: 'Green hills',
|
|
41
|
+
category: 'temperate',
|
|
42
|
+
description: 'Lush grass on the low ground and the tops, brown rock where it gets steep.',
|
|
43
|
+
tags: ['grass', 'green', 'pastoral'],
|
|
44
|
+
settings: {
|
|
45
|
+
textures: T('Grass008', 'Grass001', 'Rock061', 'Grass001'),
|
|
46
|
+
lowColor: '#3f5326', midColor: '#5b6b3c', rockColor: '#7a7266', peakColor: '#93a06a',
|
|
47
|
+
peakLevel: 0.9, peakBlend: 0.2, peakSlopeFalloff: 1.4,
|
|
48
|
+
macroVariation: 0.3, macroSize: 1400, roughness: 0.9, specular: 0.03,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Alpine meadow',
|
|
53
|
+
category: 'temperate',
|
|
54
|
+
description: 'Meadow in the valleys, scree above it, grey granite faces and a snow line.',
|
|
55
|
+
tags: ['alpine', 'snow', 'granite', 'meadow'],
|
|
56
|
+
settings: {
|
|
57
|
+
textures: T('Grass001', 'Gravel040', 'Granite002A', 'Snow014'),
|
|
58
|
+
lowColor: '#3c4a33', midColor: '#5b5a44', rockColor: '#6d6659', peakColor: '#f2f5fa',
|
|
59
|
+
peakLevel: 0.68, peakBlend: 0.1, peakSlopeFalloff: 1.6,
|
|
60
|
+
macroVariation: 0.25, macroSize: 2400, roughness: 0.82, specular: 0.06,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Snowfields',
|
|
65
|
+
category: 'cold',
|
|
66
|
+
description: 'Winter: snow everywhere it can lie, dark rock only on the faces too steep to hold it.',
|
|
67
|
+
tags: ['snow', 'winter', 'white', 'cold'],
|
|
68
|
+
settings: {
|
|
69
|
+
textures: T('Snow015', 'Snow012', 'Rocks011', 'Snow014'),
|
|
70
|
+
lowColor: '#dfe5ec', midColor: '#c9d1db', rockColor: '#5f5d58', peakColor: '#f4f7fb',
|
|
71
|
+
peakLevel: 0.3, peakBlend: 0.2, peakSlopeFalloff: 1.2,
|
|
72
|
+
macroVariation: 0.15, macroSize: 2000, roughness: 0.6, specular: 0.12,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'Desert sand',
|
|
77
|
+
category: 'arid',
|
|
78
|
+
description: 'Warm dune sand, paler on the crests, dry packed earth where the slopes break.',
|
|
79
|
+
tags: ['sand', 'desert', 'dunes', 'warm'],
|
|
80
|
+
settings: {
|
|
81
|
+
textures: T('Ground097', 'Ground093C', 'Ground105', 'Ground092A'),
|
|
82
|
+
lowColor: '#b08a53', midColor: '#dcb87e', rockColor: '#9c7a4c', peakColor: '#f4e2bc',
|
|
83
|
+
peakLevel: 0.7, peakBlend: 0.24, peakSlopeFalloff: 0.6,
|
|
84
|
+
macroVariation: 0.14, macroSize: 3600, roughness: 0.55, specular: 0.16,
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: 'Red rock',
|
|
89
|
+
category: 'arid',
|
|
90
|
+
description: 'Red desert country: dry floors, iron-red sand and banded red cliffs.',
|
|
91
|
+
tags: ['red', 'canyon', 'sandstone', 'desert'],
|
|
92
|
+
settings: {
|
|
93
|
+
textures: T({ set: 'Ground105', tint: '#f0a080' }, { set: 'Ground097', tint: '#f0a27a' }, 'Rock029', { set: 'Ground105', tint: '#f0a080' }),
|
|
94
|
+
lowColor: '#7a4a30', midColor: '#a4643c', rockColor: '#c07a4a', peakColor: '#d9a877',
|
|
95
|
+
peakLevel: 0.85, peakBlend: 0.1, peakSlopeFalloff: 0.9,
|
|
96
|
+
macroVariation: 0.26, macroSize: 1800, roughness: 0.86, specular: 0.05,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'Volcanic',
|
|
101
|
+
category: 'volcanic',
|
|
102
|
+
description: 'Black gravel and basalt cliffs, a dusting of snow on the summits.',
|
|
103
|
+
tags: ['volcanic', 'black', 'basalt', 'ash'],
|
|
104
|
+
settings: {
|
|
105
|
+
textures: T('Gravel024', 'Rocks022', 'Rock031', 'Snow012'),
|
|
106
|
+
lowColor: '#2a2622', midColor: '#3a342e', rockColor: '#4a423a', peakColor: '#d8d4cc',
|
|
107
|
+
peakLevel: 0.86, peakBlend: 0.06, peakSlopeFalloff: 2.2,
|
|
108
|
+
macroVariation: 0.34, macroSize: 1800, roughness: 0.94, specular: 0.02,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'Tundra',
|
|
113
|
+
category: 'cold',
|
|
114
|
+
description: 'Frozen low ground: snow in the hollows, moss on the rises, gravel on the tops.',
|
|
115
|
+
tags: ['tundra', 'arctic', 'moss', 'cold'],
|
|
116
|
+
settings: {
|
|
117
|
+
textures: T('Snow015', { set: 'Moss002', tint: '#c8b48c' }, 'Rocks011', 'Gravel040'),
|
|
118
|
+
lowColor: '#8e9299', midColor: '#6d6f66', rockColor: '#5f5d58', peakColor: '#eaf0f6',
|
|
119
|
+
peakLevel: 0.82, peakBlend: 0.15, peakSlopeFalloff: 1.4,
|
|
120
|
+
macroVariation: 0.3, macroSize: 1400, roughness: 0.85, specular: 0.05,
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: 'Forest floor',
|
|
125
|
+
category: 'temperate',
|
|
126
|
+
description: 'Leaf litter and damp ground under a canopy, mossy rock on the steep banks.',
|
|
127
|
+
tags: ['forest', 'leaves', 'moss', 'damp'],
|
|
128
|
+
settings: {
|
|
129
|
+
textures: T('ScatteredLeaves009', 'Ground037', 'Rocks025', 'Moss002'),
|
|
130
|
+
lowColor: '#4a3f2a', midColor: '#4f5530', rockColor: '#5e5a4c', peakColor: '#5b6a34',
|
|
131
|
+
peakLevel: 0.9, peakBlend: 0.2, peakSlopeFalloff: 1.4,
|
|
132
|
+
macroVariation: 0.35, macroSize: 900, roughness: 0.9, specular: 0.04,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'Moorland',
|
|
137
|
+
category: 'temperate',
|
|
138
|
+
description: 'Peat and moss over rough ground, pale granite breaking through on the tops.',
|
|
139
|
+
tags: ['moor', 'heather', 'peat', 'granite'],
|
|
140
|
+
settings: {
|
|
141
|
+
textures: T('Ground037', 'Moss002', 'Rocks025', 'Granite002A'),
|
|
142
|
+
lowColor: '#3a3626', midColor: '#4f4630', rockColor: '#6b6455', peakColor: '#6e6444',
|
|
143
|
+
peakLevel: 0.85, peakBlend: 0.2, peakSlopeFalloff: 1.4,
|
|
144
|
+
macroVariation: 0.4, macroSize: 1200, roughness: 0.92, specular: 0.03,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: 'Dry grassland',
|
|
149
|
+
category: 'arid',
|
|
150
|
+
description: 'Steppe and savanna: straw-coloured grass on dry earth, grey rock outcrops.',
|
|
151
|
+
tags: ['dry', 'steppe', 'savanna', 'grass'],
|
|
152
|
+
settings: {
|
|
153
|
+
textures: T('Ground105', { set: 'Grass008', tint: DRY }, 'Rocks011', { set: 'Grass008', tint: DRY }),
|
|
154
|
+
lowColor: '#6b6836', midColor: '#8a8047', rockColor: '#7a7266', peakColor: '#a89a63',
|
|
155
|
+
peakLevel: 0.85, peakBlend: 0.2, peakSlopeFalloff: 1.4,
|
|
156
|
+
macroVariation: 0.3, macroSize: 2000, roughness: 0.9, specular: 0.03,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: 'Salt flat',
|
|
161
|
+
category: 'arid',
|
|
162
|
+
description: 'A bright crust of salt and fine white sand, dry earth on the few slopes.',
|
|
163
|
+
tags: ['salt', 'white', 'flat', 'playa'],
|
|
164
|
+
settings: {
|
|
165
|
+
textures: T('Ground092A', 'Ground092A', 'Ground105', 'Ground092A'),
|
|
166
|
+
lowColor: '#cfc9bc', midColor: '#e8e4da', rockColor: '#9c8f7c', peakColor: '#f8f6f1',
|
|
167
|
+
peakLevel: 0.9, peakBlend: 0.2, peakSlopeFalloff: 0.6,
|
|
168
|
+
macroVariation: 0.12, macroSize: 3000, roughness: 0.7, specular: 0.08,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
];
|
|
172
|
+
export function getTerrainBiomeByName(name) {
|
|
173
|
+
const n = name.trim().toLowerCase();
|
|
174
|
+
return terrainBiomes.find((b) => b.name.toLowerCase() === n);
|
|
175
|
+
}
|
|
176
|
+
// =============================================================================
|
|
177
|
+
// Applying shapes and biomes — shared by the panel and the agent
|
|
178
|
+
// =============================================================================
|
|
179
|
+
function pick(o, keys) {
|
|
180
|
+
const out = {};
|
|
181
|
+
for (const k of keys)
|
|
182
|
+
if (o[k] !== undefined)
|
|
183
|
+
out[k] = o[k];
|
|
184
|
+
return out;
|
|
185
|
+
}
|
|
186
|
+
/** The biome's config fields, textures included (complete, layer by layer). */
|
|
187
|
+
export function terrainBiomeFields(biome) {
|
|
188
|
+
const { textures, ...rest } = biome.settings;
|
|
189
|
+
return { ...rest, textures: mergeTerrainTextures(emptyTerrainTextures(), textures) };
|
|
190
|
+
}
|
|
191
|
+
/** The numbers a shape stands on: its type's defaults with its own patch over them. */
|
|
192
|
+
function shapeBase(config) {
|
|
193
|
+
const shape = config.shape ? getTerrainPresetByName(config.shape) : undefined;
|
|
194
|
+
const type = shape?.terrainType ?? config.terrainType;
|
|
195
|
+
return { ...TERRAIN_DEFAULTS[type], ...(shape?.settings ?? {}) };
|
|
196
|
+
}
|
|
197
|
+
function biomeBase(config) {
|
|
198
|
+
const biome = config.biome ? getTerrainBiomeByName(config.biome) : undefined;
|
|
199
|
+
return biome ? pick(biome.settings, BIOME_KEYS) : TERRAIN_DEFAULTS[config.terrainType];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Change the landform, keep the ground. The shape's form, slope-rock thresholds,
|
|
203
|
+
* detail and lighting replace the current ones; the biome fields and the textures
|
|
204
|
+
* stay as they are. Ruggedness and Rock & snow go back to "as designed".
|
|
205
|
+
*/
|
|
206
|
+
export function applyTerrainShape(config, name) {
|
|
207
|
+
const shape = getTerrainPresetByName(name);
|
|
208
|
+
if (!shape)
|
|
209
|
+
return null;
|
|
210
|
+
const biome = config.biome ? getTerrainBiomeByName(config.biome) : undefined;
|
|
211
|
+
const look = biome ? pick(biome.settings, BIOME_KEYS) : pick(config, BIOME_KEYS);
|
|
212
|
+
return {
|
|
213
|
+
...TERRAIN_DEFAULTS[shape.terrainType],
|
|
214
|
+
...shape.settings,
|
|
215
|
+
...look,
|
|
216
|
+
textures: config.textures,
|
|
217
|
+
textureDistance: config.textureDistance,
|
|
218
|
+
textureHeightBlend: config.textureHeightBlend,
|
|
219
|
+
enabled: config.enabled,
|
|
220
|
+
seaLevel: config.seaLevel,
|
|
221
|
+
type: 'terrain',
|
|
222
|
+
terrainType: shape.terrainType,
|
|
223
|
+
shape: shape.name,
|
|
224
|
+
biome: config.biome,
|
|
225
|
+
preset: config.biome === shape.biome ? shape.name : '',
|
|
226
|
+
ruggedness: 0.5,
|
|
227
|
+
coverage: 0.5,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Change the ground, keep the landform. Textures are replaced whole (a biome is a
|
|
232
|
+
* set of four that belong together); the slope-rock thresholds go back to the
|
|
233
|
+
* shape's, the snow line to the biome's — Rock & snow back to "as designed".
|
|
234
|
+
*/
|
|
235
|
+
export function applyTerrainBiome(config, name) {
|
|
236
|
+
const biome = getTerrainBiomeByName(name);
|
|
237
|
+
if (!biome)
|
|
238
|
+
return null;
|
|
239
|
+
const base = shapeBase(config);
|
|
240
|
+
const shape = config.shape ? getTerrainPresetByName(config.shape) : undefined;
|
|
241
|
+
return {
|
|
242
|
+
...config,
|
|
243
|
+
...terrainBiomeFields(biome),
|
|
244
|
+
slopeRockStart: base.slopeRockStart,
|
|
245
|
+
slopeRockEnd: base.slopeRockEnd,
|
|
246
|
+
biome: biome.name,
|
|
247
|
+
preset: shape && shape.biome === biome.name ? shape.name : '',
|
|
248
|
+
coverage: 0.5,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/** A preset = its shape + the biome it was designed with. */
|
|
252
|
+
export function applyTerrainPreset(config, name) {
|
|
253
|
+
const shape = getTerrainPresetByName(name);
|
|
254
|
+
if (!shape)
|
|
255
|
+
return null;
|
|
256
|
+
const withBiome = applyTerrainBiome({ ...config, shape: shape.name }, shape.biome) ?? config;
|
|
257
|
+
const out = applyTerrainShape(withBiome, shape.name);
|
|
258
|
+
return out ? { ...out, preset: shape.name } : null;
|
|
259
|
+
}
|
|
260
|
+
const clamp = (v, lo, hi) => Math.min(hi, Math.max(lo, v));
|
|
261
|
+
/**
|
|
262
|
+
* Ruggedness, 0..1. 0.5 is the shape as designed; up sharpens ridges, roughens the
|
|
263
|
+
* fractal and erodes less; down rounds everything off. One slider for the three
|
|
264
|
+
* numbers that together read as "rugged".
|
|
265
|
+
*/
|
|
266
|
+
export function terrainRuggednessPatch(config, r) {
|
|
267
|
+
const base = shapeBase(config);
|
|
268
|
+
const d = clamp(r, 0, 1) - 0.5;
|
|
269
|
+
return {
|
|
270
|
+
ruggedness: clamp(r, 0, 1),
|
|
271
|
+
gain: clamp(base.gain + d * 0.16, 0.3, 0.68),
|
|
272
|
+
ridgeSharpness: clamp(base.ridgeSharpness + d * 0.7, 0, 1),
|
|
273
|
+
erosion: clamp(base.erosion - d * 0.6, 0, 1),
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Rock & snow, 0..1. 0.5 is shape and biome as designed; up lets rock show on
|
|
278
|
+
* gentler slopes and brings the snow line down, down does the opposite.
|
|
279
|
+
*/
|
|
280
|
+
export function terrainCoveragePatch(config, c) {
|
|
281
|
+
const shape = shapeBase(config);
|
|
282
|
+
const biome = biomeBase(config);
|
|
283
|
+
const d = clamp(c, 0, 1) - 0.5;
|
|
284
|
+
const start = clamp((shape.slopeRockStart ?? 0.35) - d * 0.5, 0.02, 0.95);
|
|
285
|
+
return {
|
|
286
|
+
coverage: clamp(c, 0, 1),
|
|
287
|
+
slopeRockStart: start,
|
|
288
|
+
slopeRockEnd: clamp((shape.slopeRockEnd ?? 0.62) - d * 0.5, start + 0.05, 1),
|
|
289
|
+
peakLevel: clamp((biome.peakLevel ?? 0.62) - d * 0.8, 0, 1),
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
/** The keys the Basic tab's derived sliders write, for the live path. */
|
|
293
|
+
export const RUGGEDNESS_KEYS = ['gain', 'ridgeSharpness', 'erosion'];
|
|
294
|
+
export const COVERAGE_KEYS = ['slopeRockStart', 'slopeRockEnd', 'peakLevel'];
|
|
@@ -19,7 +19,13 @@ export interface TerrainPreset {
|
|
|
19
19
|
terrainType: TerrainType;
|
|
20
20
|
description: string;
|
|
21
21
|
tags: string[];
|
|
22
|
+
/** The SHAPE: the numbers that make the landform — form, slope-rock
|
|
23
|
+
* thresholds, detail, lighting. Never the ground's look; that is a biome
|
|
24
|
+
* (presets/terrainBiomes), so any shape can wear any ground. */
|
|
22
25
|
settings: Partial<TerrainSurfaceConfig>;
|
|
26
|
+
/** The biome this shape was designed with. Picking the PRESET applies both;
|
|
27
|
+
* picking it as a shape keeps whatever ground is on. */
|
|
28
|
+
biome: string;
|
|
23
29
|
}
|
|
24
30
|
export declare const terrainPresets: TerrainPreset[];
|
|
25
31
|
export declare function getTerrainPresetsForType(type: TerrainType): TerrainPreset[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terrainPresets.d.ts","sourceRoot":"","sources":["../../src/presets/terrainPresets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"terrainPresets.d.ts","sourceRoot":"","sources":["../../src/presets/terrainPresets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;qEAEiE;IACjE,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC;6DACyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACjB;AAoRD,eAAO,MAAM,cAAc,EAAE,aAAa,EAKzC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAE3E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE9E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAG1E"}
|