@3driseai/3drise-viewer 0.1.26 → 0.1.28
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 +3 -0
- package/dist/animationsV2/ClipPlayer.d.ts.map +1 -1
- package/dist/animationsV2/ClipPlayer.js +67 -8
- package/dist/animationsV2/ClipsRuntime.d.ts +39 -0
- package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
- package/dist/animationsV2/ClipsRuntime.js +245 -14
- package/dist/animationsV2/appliers.d.ts +5 -0
- package/dist/animationsV2/appliers.d.ts.map +1 -1
- package/dist/animationsV2/appliers.js +25 -7
- 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 +18 -7
- package/dist/animationsV2/sequenceUtils.d.ts +42 -1
- package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
- package/dist/animationsV2/sequenceUtils.js +103 -3
- package/dist/animationsV2/types.d.ts +20 -0
- package/dist/animationsV2/types.d.ts.map +1 -1
- package/dist/components/AdvancedGrid.d.ts +8 -2
- package/dist/components/AdvancedGrid.d.ts.map +1 -1
- package/dist/components/AdvancedGrid.js +31 -14
- package/dist/components/AnimatedObject.d.ts.map +1 -1
- package/dist/components/AnimatedObject.js +7 -5
- package/dist/components/ApollonianGrid.d.ts +25 -0
- package/dist/components/ApollonianGrid.d.ts.map +1 -0
- package/dist/components/ApollonianGrid.js +80 -0
- package/dist/components/Bubbles.d.ts +7 -1
- package/dist/components/Bubbles.d.ts.map +1 -1
- package/dist/components/Bubbles.js +42 -22
- package/dist/components/ChladniGrid.d.ts +8 -4
- package/dist/components/ChladniGrid.d.ts.map +1 -1
- package/dist/components/ChladniGrid.js +31 -13
- package/dist/components/CircuitGrid.d.ts +8 -11
- package/dist/components/CircuitGrid.d.ts.map +1 -1
- package/dist/components/CircuitGrid.js +31 -13
- package/dist/components/CloudsGenerator.d.ts +1 -1
- package/dist/components/CloudsGenerator.js +1 -1
- package/dist/components/ConformalGrid.d.ts +25 -0
- package/dist/components/ConformalGrid.d.ts.map +1 -0
- package/dist/components/ConformalGrid.js +97 -0
- package/dist/components/ContourGrid.d.ts +8 -14
- package/dist/components/ContourGrid.d.ts.map +1 -1
- package/dist/components/ContourGrid.js +31 -13
- package/dist/components/EffectsGenerator.d.ts +7 -1
- package/dist/components/EffectsGenerator.d.ts.map +1 -1
- package/dist/components/EffectsGenerator.js +39 -38
- package/dist/components/EnvironmentManager.d.ts +4 -4
- package/dist/components/EnvironmentManager.d.ts.map +1 -1
- package/dist/components/FlowNetGrid.d.ts +8 -4
- package/dist/components/FlowNetGrid.d.ts.map +1 -1
- package/dist/components/FlowNetGrid.js +31 -13
- package/dist/components/FractalGrid.d.ts +8 -12
- package/dist/components/FractalGrid.d.ts.map +1 -1
- package/dist/components/FractalGrid.js +31 -13
- package/dist/components/GirihGrid.d.ts +8 -1
- package/dist/components/GirihGrid.d.ts.map +1 -1
- package/dist/components/GirihGrid.js +31 -13
- package/dist/components/Glyphs.d.ts +7 -1
- package/dist/components/Glyphs.d.ts.map +1 -1
- package/dist/components/Glyphs.js +40 -34
- package/dist/components/GravWaveGrid.d.ts +8 -1
- package/dist/components/GravWaveGrid.d.ts.map +1 -1
- package/dist/components/GravWaveGrid.js +31 -13
- package/dist/components/GridsGenerator.d.ts +9 -3
- package/dist/components/GridsGenerator.d.ts.map +1 -1
- package/dist/components/GridsGenerator.js +41 -18
- package/dist/components/HexGrid.d.ts +8 -10
- package/dist/components/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid.js +31 -13
- package/dist/components/HilbertGrid.d.ts +25 -0
- package/dist/components/HilbertGrid.d.ts.map +1 -0
- package/dist/components/HilbertGrid.js +93 -0
- package/dist/components/HyperbolicGrid.d.ts +8 -4
- package/dist/components/HyperbolicGrid.d.ts.map +1 -1
- package/dist/components/HyperbolicGrid.js +31 -13
- package/dist/components/LandscapeBuilder.d.ts +1 -1
- package/dist/components/LandscapeBuilder.d.ts.map +1 -1
- package/dist/components/LandscapeBuilder.js +1 -1
- package/dist/components/LandscapeObject.d.ts +1 -1
- package/dist/components/LandscapeObject.d.ts.map +1 -1
- package/dist/components/LandscapeObject.js +1 -1
- package/dist/components/LensingGrid.d.ts +25 -0
- package/dist/components/LensingGrid.d.ts.map +1 -0
- package/dist/components/LensingGrid.js +81 -0
- package/dist/components/MoireGrid.d.ts +8 -12
- package/dist/components/MoireGrid.d.ts.map +1 -1
- package/dist/components/MoireGrid.js +31 -13
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +2 -2
- package/dist/components/ObjectsRenderer.d.ts.map +1 -1
- package/dist/components/ObjectsRenderer.js +37 -3
- package/dist/components/OceanBuilder.d.ts +1 -1
- package/dist/components/OceanBuilder.js +1 -1
- package/dist/components/ParastichyGrid.d.ts +25 -0
- package/dist/components/ParastichyGrid.d.ts.map +1 -0
- package/dist/components/ParastichyGrid.js +82 -0
- package/dist/components/ParticlesGenerator.d.ts.map +1 -1
- package/dist/components/ParticlesGenerator.js +6 -0
- package/dist/components/PhyllotaxisGrid.d.ts +25 -0
- package/dist/components/PhyllotaxisGrid.d.ts.map +1 -0
- package/dist/components/PhyllotaxisGrid.js +95 -0
- package/dist/components/QuasiGrid.d.ts +8 -11
- package/dist/components/QuasiGrid.d.ts.map +1 -1
- package/dist/components/QuasiGrid.js +31 -13
- package/dist/components/RadarGrid.d.ts +8 -13
- package/dist/components/RadarGrid.d.ts.map +1 -1
- package/dist/components/RadarGrid.js +31 -13
- package/dist/components/ReactionDiffusionGrid.d.ts +8 -1
- package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
- package/dist/components/ReactionDiffusionGrid.js +33 -139
- package/dist/components/SceneBuilder.js +1 -1
- package/dist/components/SkySystem.d.ts +1 -1
- package/dist/components/SparklesBurst.d.ts +7 -1
- package/dist/components/SparklesBurst.d.ts.map +1 -1
- package/dist/components/SparklesBurst.js +31 -28
- package/dist/components/TerrainBuilder.d.ts +1 -1
- package/dist/components/TerrainBuilder.d.ts.map +1 -1
- package/dist/components/TerrainBuilder.js +1 -1
- package/dist/components/TruchetGrid.d.ts +25 -0
- package/dist/components/TruchetGrid.d.ts.map +1 -0
- package/dist/components/TruchetGrid.js +82 -0
- package/dist/components/VoronoiGrid.d.ts +8 -10
- package/dist/components/VoronoiGrid.d.ts.map +1 -1
- package/dist/components/VoronoiGrid.js +31 -13
- package/dist/components/WallpaperGrid.d.ts +8 -1
- package/dist/components/WallpaperGrid.d.ts.map +1 -1
- package/dist/components/WallpaperGrid.js +33 -210
- package/dist/components/effects/AuraEffect.d.ts +8 -3
- package/dist/components/effects/AuraEffect.d.ts.map +1 -1
- package/dist/components/effects/AuraEffect.js +49 -24
- package/dist/components/effects/AuroraEffect.d.ts +8 -3
- package/dist/components/effects/AuroraEffect.d.ts.map +1 -1
- package/dist/components/effects/AuroraEffect.js +45 -25
- package/dist/components/effects/BlackHoleEffect.d.ts +8 -3
- package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -1
- package/dist/components/effects/BlackHoleEffect.js +42 -21
- package/dist/components/effects/ConstellationEffect.d.ts +8 -3
- package/dist/components/effects/ConstellationEffect.d.ts.map +1 -1
- package/dist/components/effects/ConstellationEffect.js +49 -23
- package/dist/components/effects/DandelionSeedsEffect.d.ts +7 -2
- package/dist/components/effects/DandelionSeedsEffect.d.ts.map +1 -1
- package/dist/components/effects/DandelionSeedsEffect.js +19 -9
- package/dist/components/effects/DataStreamEffect.d.ts +8 -3
- package/dist/components/effects/DataStreamEffect.d.ts.map +1 -1
- package/dist/components/effects/DataStreamEffect.js +54 -26
- package/dist/components/effects/DnaHelixEffect.d.ts +8 -3
- package/dist/components/effects/DnaHelixEffect.d.ts.map +1 -1
- package/dist/components/effects/DnaHelixEffect.js +62 -30
- package/dist/components/effects/FallingLeavesEffect.d.ts +7 -2
- package/dist/components/effects/FallingLeavesEffect.d.ts.map +1 -1
- package/dist/components/effects/FallingLeavesEffect.js +19 -9
- package/dist/components/effects/FieldLinesEffect.d.ts +8 -3
- package/dist/components/effects/FieldLinesEffect.d.ts.map +1 -1
- package/dist/components/effects/FieldLinesEffect.js +30 -20
- package/dist/components/effects/Fire.d.ts +8 -3
- package/dist/components/effects/Fire.d.ts.map +1 -1
- package/dist/components/effects/Fire.js +47 -10
- package/dist/components/effects/FireflySwarmEffect.d.ts +7 -2
- package/dist/components/effects/FireflySwarmEffect.d.ts.map +1 -1
- package/dist/components/effects/FireflySwarmEffect.js +19 -9
- package/dist/components/effects/Flares.d.ts +10 -3
- package/dist/components/effects/Flares.d.ts.map +1 -1
- package/dist/components/effects/Flares.js +53 -56
- package/dist/components/effects/ForcefieldEffect.d.ts +8 -3
- package/dist/components/effects/ForcefieldEffect.d.ts.map +1 -1
- package/dist/components/effects/ForcefieldEffect.js +52 -33
- package/dist/components/effects/GalaxyEffect.d.ts +7 -2
- package/dist/components/effects/GalaxyEffect.d.ts.map +1 -1
- package/dist/components/effects/GalaxyEffect.js +19 -9
- package/dist/components/effects/HarmonicShellEffect.d.ts +8 -3
- package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -1
- package/dist/components/effects/HarmonicShellEffect.js +30 -22
- package/dist/components/effects/HologramEffect.d.ts +8 -3
- package/dist/components/effects/HologramEffect.d.ts.map +1 -1
- package/dist/components/effects/HologramEffect.js +52 -23
- package/dist/components/effects/IceCrystalsEffect.d.ts +8 -3
- package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -1
- package/dist/components/effects/IceCrystalsEffect.js +36 -21
- package/dist/components/effects/IceHaloEffect.d.ts +7 -2
- package/dist/components/effects/IceHaloEffect.d.ts.map +1 -1
- package/dist/components/effects/IceHaloEffect.js +19 -9
- package/dist/components/effects/LichtenbergEffect.d.ts +7 -2
- package/dist/components/effects/LichtenbergEffect.d.ts.map +1 -1
- package/dist/components/effects/LichtenbergEffect.js +19 -9
- package/dist/components/effects/LightningEffect.d.ts +8 -3
- package/dist/components/effects/LightningEffect.d.ts.map +1 -1
- package/dist/components/effects/LightningEffect.js +54 -32
- package/dist/components/effects/MoleculesEffect.d.ts +8 -3
- package/dist/components/effects/MoleculesEffect.d.ts.map +1 -1
- package/dist/components/effects/MoleculesEffect.js +31 -21
- package/dist/components/effects/MurmurationEffect.d.ts +7 -2
- package/dist/components/effects/MurmurationEffect.d.ts.map +1 -1
- package/dist/components/effects/MurmurationEffect.js +19 -9
- package/dist/components/effects/NeuralNetworkEffect.d.ts +8 -3
- package/dist/components/effects/NeuralNetworkEffect.d.ts.map +1 -1
- package/dist/components/effects/NeuralNetworkEffect.js +66 -33
- package/dist/components/effects/OrbEffect.d.ts +8 -3
- package/dist/components/effects/OrbEffect.d.ts.map +1 -1
- package/dist/components/effects/OrbEffect.js +89 -42
- package/dist/components/effects/PlanetaryRingsEffect.d.ts +7 -2
- package/dist/components/effects/PlanetaryRingsEffect.d.ts.map +1 -1
- package/dist/components/effects/PlanetaryRingsEffect.js +19 -9
- package/dist/components/effects/PortalEffect.d.ts +8 -3
- package/dist/components/effects/PortalEffect.d.ts.map +1 -1
- package/dist/components/effects/PortalEffect.js +41 -25
- package/dist/components/effects/ShockwaveEffect.d.ts +7 -2
- package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -1
- package/dist/components/effects/ShockwaveEffect.js +19 -9
- package/dist/components/effects/SmokePlumeEffect.d.ts +8 -3
- package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -1
- package/dist/components/effects/SmokePlumeEffect.js +30 -20
- package/dist/components/effects/SmokeRibbon.d.ts +8 -2
- package/dist/components/effects/SmokeRibbon.d.ts.map +1 -1
- package/dist/components/effects/SmokeRibbon.js +34 -24
- package/dist/components/effects/SmokeRingEffect.d.ts +8 -3
- package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -1
- package/dist/components/effects/SmokeRingEffect.js +33 -21
- package/dist/components/effects/StrangeAttractorEffect.d.ts +8 -3
- package/dist/components/effects/StrangeAttractorEffect.d.ts.map +1 -1
- package/dist/components/effects/StrangeAttractorEffect.js +30 -20
- package/dist/components/effects/VolumetricFogEffect.d.ts +8 -3
- package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -1
- package/dist/components/effects/VolumetricFogEffect.js +38 -20
- package/dist/components/effects/WaterCausticsEffect.d.ts +7 -2
- package/dist/components/effects/WaterCausticsEffect.d.ts.map +1 -1
- package/dist/components/effects/WaterCausticsEffect.js +19 -9
- package/dist/components/effects/index.d.ts +0 -1
- package/dist/components/effects/index.d.ts.map +1 -1
- package/dist/components/effects/index.js +0 -1
- package/dist/components/index.d.ts +14 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -1
- package/dist/components/landscape/LandscapeMesh.js +1 -1
- package/dist/components/landscape/types.d.ts +1 -1
- package/dist/components/landscape/types.d.ts.map +1 -1
- package/dist/components/particles/MagneticBottleParticles.d.ts +17 -0
- package/dist/components/particles/MagneticBottleParticles.d.ts.map +1 -0
- package/dist/components/particles/MagneticBottleParticles.js +618 -0
- package/dist/components/particles/ShapeBurstParticles.d.ts +17 -0
- package/dist/components/particles/ShapeBurstParticles.d.ts.map +1 -0
- package/dist/components/particles/ShapeBurstParticles.js +588 -0
- package/dist/components/particles/ShapeFlowParticles.d.ts +17 -0
- package/dist/components/particles/ShapeFlowParticles.d.ts.map +1 -0
- package/dist/components/particles/ShapeFlowParticles.js +755 -0
- package/dist/components/particles/index.d.ts +6 -0
- package/dist/components/particles/index.d.ts.map +1 -1
- package/dist/components/particles/index.js +3 -0
- package/dist/components/terrain/types.d.ts +1 -1
- package/dist/components/terrain/types.d.ts.map +1 -1
- package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +1 -1
- package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
- package/dist/components/volumetricClouds/types.d.ts +1 -1
- package/dist/components/volumetricClouds/types.d.ts.map +1 -1
- package/dist/components/water/types.d.ts +1 -1
- package/dist/components/water/types.d.ts.map +1 -1
- 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/useConfigDriver.d.ts +22 -0
- package/dist/hooks/useConfigDriver.d.ts.map +1 -0
- package/dist/hooks/useConfigDriver.js +43 -0
- package/dist/hooks/useConfigLive.d.ts +1 -1
- package/dist/hooks/useConfigLive.d.ts.map +1 -1
- package/dist/hooks/useLandscapeMaps.d.ts +1 -1
- package/dist/hooks/useLandscapeMaps.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.d.ts +1 -1
- package/dist/hooks/useThunder.d.ts +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/interactions/index.d.ts +2 -1
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/interactions/index.js +1 -1
- package/dist/interactions/runner.d.ts +18 -3
- package/dist/interactions/runner.d.ts.map +1 -1
- package/dist/interactions/runner.js +25 -2
- package/dist/operations/catalogue/curlSmoke.d.ts +3 -0
- package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -0
- package/dist/operations/catalogue/curlSmoke.js +178 -0
- package/dist/operations/catalogue/displayImage.d.ts.map +1 -1
- package/dist/operations/catalogue/displayImage.js +1 -0
- package/dist/operations/catalogue/dissolve.d.ts +3 -0
- package/dist/operations/catalogue/dissolve.d.ts.map +1 -0
- package/dist/operations/catalogue/dissolve.js +57 -0
- package/dist/operations/catalogue/emberAsh.d.ts +3 -0
- package/dist/operations/catalogue/emberAsh.d.ts.map +1 -0
- package/dist/operations/catalogue/emberAsh.js +171 -0
- package/dist/operations/catalogue/fade.d.ts.map +1 -1
- package/dist/operations/catalogue/fade.js +1 -0
- package/dist/operations/catalogue/flip.d.ts +3 -0
- package/dist/operations/catalogue/flip.d.ts.map +1 -0
- package/dist/operations/catalogue/flip.js +69 -0
- package/dist/operations/catalogue/flock.d.ts +3 -0
- package/dist/operations/catalogue/flock.d.ts.map +1 -0
- package/dist/operations/catalogue/flock.js +163 -0
- package/dist/operations/catalogue/focus.d.ts.map +1 -1
- package/dist/operations/catalogue/focus.js +1 -0
- package/dist/operations/catalogue/frame.d.ts +3 -0
- package/dist/operations/catalogue/frame.d.ts.map +1 -0
- package/dist/operations/catalogue/frame.js +44 -0
- package/dist/operations/catalogue/frost.d.ts +3 -0
- package/dist/operations/catalogue/frost.d.ts.map +1 -0
- package/dist/operations/catalogue/frost.js +111 -0
- package/dist/operations/catalogue/fxInstances.d.ts +21 -0
- package/dist/operations/catalogue/fxInstances.d.ts.map +1 -0
- package/dist/operations/catalogue/fxInstances.js +47 -0
- package/dist/operations/catalogue/fxPoints.d.ts +22 -0
- package/dist/operations/catalogue/fxPoints.d.ts.map +1 -0
- package/dist/operations/catalogue/fxPoints.js +70 -0
- package/dist/operations/catalogue/glow.d.ts.map +1 -1
- package/dist/operations/catalogue/glow.js +2 -1
- package/dist/operations/catalogue/heatCracks.d.ts +3 -0
- package/dist/operations/catalogue/heatCracks.d.ts.map +1 -0
- package/dist/operations/catalogue/heatCracks.js +134 -0
- package/dist/operations/catalogue/hologram.d.ts +3 -0
- package/dist/operations/catalogue/hologram.d.ts.map +1 -0
- package/dist/operations/catalogue/hologram.js +118 -0
- package/dist/operations/catalogue/inkBloom.d.ts +3 -0
- package/dist/operations/catalogue/inkBloom.d.ts.map +1 -0
- package/dist/operations/catalogue/inkBloom.js +156 -0
- package/dist/operations/catalogue/ivy.d.ts +13 -0
- package/dist/operations/catalogue/ivy.d.ts.map +1 -0
- package/dist/operations/catalogue/ivy.js +469 -0
- package/dist/operations/catalogue/jelly.d.ts +3 -0
- package/dist/operations/catalogue/jelly.d.ts.map +1 -0
- package/dist/operations/catalogue/jelly.js +50 -0
- package/dist/operations/catalogue/kintsugi.d.ts +3 -0
- package/dist/operations/catalogue/kintsugi.d.ts.map +1 -0
- package/dist/operations/catalogue/kintsugi.js +173 -0
- package/dist/operations/catalogue/lidarScan.d.ts +3 -0
- package/dist/operations/catalogue/lidarScan.d.ts.map +1 -0
- package/dist/operations/catalogue/lidarScan.js +240 -0
- package/dist/operations/catalogue/liquidMetal.d.ts +3 -0
- package/dist/operations/catalogue/liquidMetal.d.ts.map +1 -0
- package/dist/operations/catalogue/liquidMetal.js +122 -0
- package/dist/operations/catalogue/metalize.d.ts +3 -0
- package/dist/operations/catalogue/metalize.d.ts.map +1 -0
- package/dist/operations/catalogue/metalize.js +135 -0
- package/dist/operations/catalogue/moveToFront.d.ts.map +1 -1
- package/dist/operations/catalogue/moveToFront.js +1 -0
- package/dist/operations/catalogue/orbit.d.ts +3 -0
- package/dist/operations/catalogue/orbit.d.ts.map +1 -0
- package/dist/operations/catalogue/orbit.js +29 -0
- package/dist/operations/catalogue/particleSwarm.d.ts +3 -0
- package/dist/operations/catalogue/particleSwarm.d.ts.map +1 -0
- package/dist/operations/catalogue/particleSwarm.js +138 -0
- package/dist/operations/catalogue/petalPeel.d.ts +3 -0
- package/dist/operations/catalogue/petalPeel.d.ts.map +1 -0
- package/dist/operations/catalogue/petalPeel.js +137 -0
- package/dist/operations/catalogue/petrify.d.ts +3 -0
- package/dist/operations/catalogue/petrify.d.ts.map +1 -0
- package/dist/operations/catalogue/petrify.js +94 -0
- package/dist/operations/catalogue/portal.d.ts +3 -0
- package/dist/operations/catalogue/portal.d.ts.map +1 -0
- package/dist/operations/catalogue/portal.js +224 -0
- package/dist/operations/catalogue/print3d.d.ts +3 -0
- package/dist/operations/catalogue/print3d.d.ts.map +1 -0
- package/dist/operations/catalogue/print3d.js +275 -0
- package/dist/operations/catalogue/rainBeads.d.ts +3 -0
- package/dist/operations/catalogue/rainBeads.d.ts.map +1 -0
- package/dist/operations/catalogue/rainBeads.js +223 -0
- package/dist/operations/catalogue/restPose.d.ts +21 -0
- package/dist/operations/catalogue/restPose.d.ts.map +1 -0
- package/dist/operations/catalogue/restPose.js +55 -0
- package/dist/operations/catalogue/rimLight.d.ts +3 -0
- package/dist/operations/catalogue/rimLight.d.ts.map +1 -0
- package/dist/operations/catalogue/rimLight.js +72 -0
- package/dist/operations/catalogue/sandErosion.d.ts +3 -0
- package/dist/operations/catalogue/sandErosion.d.ts.map +1 -0
- package/dist/operations/catalogue/sandErosion.js +167 -0
- package/dist/operations/catalogue/shaderLayers.d.ts +74 -0
- package/dist/operations/catalogue/shaderLayers.d.ts.map +1 -0
- package/dist/operations/catalogue/shaderLayers.js +322 -0
- package/dist/operations/catalogue/shatter.d.ts +3 -0
- package/dist/operations/catalogue/shatter.d.ts.map +1 -0
- package/dist/operations/catalogue/shatter.js +267 -0
- package/dist/operations/catalogue/silkDrape.d.ts +3 -0
- package/dist/operations/catalogue/silkDrape.d.ts.map +1 -0
- package/dist/operations/catalogue/silkDrape.js +340 -0
- package/dist/operations/catalogue/spin.d.ts +3 -0
- package/dist/operations/catalogue/spin.d.ts.map +1 -0
- package/dist/operations/catalogue/spin.js +42 -0
- package/dist/operations/catalogue/surfaceSample.d.ts +17 -0
- package/dist/operations/catalogue/surfaceSample.d.ts.map +1 -0
- package/dist/operations/catalogue/surfaceSample.js +187 -0
- package/dist/operations/catalogue/swirl.d.ts +3 -0
- package/dist/operations/catalogue/swirl.d.ts.map +1 -0
- package/dist/operations/catalogue/swirl.js +69 -0
- package/dist/operations/catalogue/teleport.d.ts +3 -0
- package/dist/operations/catalogue/teleport.d.ts.map +1 -0
- package/dist/operations/catalogue/teleport.js +213 -0
- package/dist/operations/catalogue/transitionField.d.ts +124 -0
- package/dist/operations/catalogue/transitionField.d.ts.map +1 -0
- package/dist/operations/catalogue/transitionField.js +278 -0
- package/dist/operations/catalogue/unweave.d.ts +3 -0
- package/dist/operations/catalogue/unweave.d.ts.map +1 -0
- package/dist/operations/catalogue/unweave.js +233 -0
- package/dist/operations/catalogue/visibility.d.ts.map +1 -1
- package/dist/operations/catalogue/visibility.js +1 -0
- package/dist/operations/catalogue/voxelize.d.ts +3 -0
- package/dist/operations/catalogue/voxelize.d.ts.map +1 -0
- package/dist/operations/catalogue/voxelize.js +148 -0
- package/dist/operations/catalogue/warmup.d.ts +22 -0
- package/dist/operations/catalogue/warmup.d.ts.map +1 -0
- package/dist/operations/catalogue/warmup.js +106 -0
- package/dist/operations/catalogue/zoom.d.ts.map +1 -1
- package/dist/operations/catalogue/zoom.js +1 -0
- package/dist/operations/index.d.ts +4 -2
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +4 -2
- package/dist/operations/objectEffects.d.ts +46 -0
- package/dist/operations/objectEffects.d.ts.map +1 -0
- package/dist/operations/objectEffects.js +136 -0
- package/dist/operations/registry.d.ts +7 -2
- package/dist/operations/registry.d.ts.map +1 -1
- package/dist/operations/registry.js +45 -3
- package/dist/operations/runtime.d.ts +40 -2
- package/dist/operations/runtime.d.ts.map +1 -1
- package/dist/operations/runtime.js +164 -8
- package/dist/operations/types.d.ts +29 -3
- package/dist/operations/types.d.ts.map +1 -1
- package/dist/operations/types.js +6 -0
- package/dist/operations/useObjectEffectLayers.d.ts +4 -0
- package/dist/operations/useObjectEffectLayers.d.ts.map +1 -0
- package/dist/operations/useObjectEffectLayers.js +42 -0
- package/dist/operations/useOperationsRuntime.d.ts.map +1 -1
- package/dist/operations/useOperationsRuntime.js +42 -4
- package/dist/presets/landscapePresets.d.ts +1 -1
- package/dist/presets/landscapePresets.d.ts.map +1 -1
- package/dist/presets/landscapePresets.js +1 -1
- package/dist/presets/landscapeTypes.d.ts +1 -1
- package/dist/presets/landscapeTypes.d.ts.map +1 -1
- package/dist/presets/landscapeTypes.js +1 -1
- package/dist/presets/oceanSurfacePresets.d.ts +1 -1
- package/dist/presets/terrainPresets.d.ts +1 -1
- package/dist/presets/terrainPresets.d.ts.map +1 -1
- package/dist/presets/volumetricCloudPresets.d.ts +1 -1
- package/dist/types/cloudConfigs.d.ts +2 -309
- package/dist/types/cloudConfigs.d.ts.map +1 -1
- package/dist/types/cloudConfigs.js +2 -339
- package/dist/types/gridConfigs.d.ts +103 -0
- package/dist/types/gridConfigs.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -9
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/landscapeConfigs.d.ts +2 -217
- package/dist/types/landscapeConfigs.d.ts.map +1 -1
- package/dist/types/landscapeConfigs.js +2 -256
- package/dist/types/oceanConfigs.d.ts +2 -289
- package/dist/types/oceanConfigs.d.ts.map +1 -1
- package/dist/types/oceanConfigs.js +2 -380
- package/dist/types/terrainConfigs.d.ts +2 -250
- package/dist/types/terrainConfigs.d.ts.map +1 -1
- package/dist/types/terrainConfigs.js +2 -292
- package/dist/utils/cloudUniforms.d.ts +1 -1
- package/dist/utils/configAnimations.d.ts +6 -0
- package/dist/utils/configAnimations.d.ts.map +1 -1
- package/dist/utils/configAnimations.js +14 -0
- package/dist/utils/gridConfig.d.ts +19 -0
- package/dist/utils/gridConfig.d.ts.map +1 -0
- package/dist/utils/gridConfig.js +52 -0
- package/dist/utils/handleCloudsAnimations.d.ts +1 -1
- package/dist/utils/handleCloudsAnimations.js +1 -1
- package/dist/utils/hasHoverAnimation.d.ts.map +1 -1
- package/dist/utils/hasHoverAnimation.js +0 -2
- package/dist/utils/landscapeUniforms.d.ts +1 -1
- package/dist/utils/landscapeUniforms.d.ts.map +1 -1
- package/dist/utils/oceanUniforms.d.ts +1 -1
- package/dist/utils/particleShape.d.ts +33 -0
- package/dist/utils/particleShape.d.ts.map +1 -0
- package/dist/utils/particleShape.js +207 -0
- package/dist/utils/particleTrails.d.ts.map +1 -1
- package/dist/utils/particleTrails.js +29 -14
- package/dist/utils/terrainUniforms.d.ts +1 -1
- package/dist/utils/terrainUniforms.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
4
4
|
import GridHelper from "./GridHelper.js";
|
|
5
|
-
import
|
|
5
|
+
import AdvancedGrid from "./AdvancedGrid.js";
|
|
6
6
|
import CircuitGrid from "./CircuitGrid.js";
|
|
7
7
|
import ContourGrid from "./ContourGrid.js";
|
|
8
8
|
import FractalGrid from "./FractalGrid.js";
|
|
@@ -18,48 +18,71 @@ import GravWaveGrid from "./GravWaveGrid.js";
|
|
|
18
18
|
import GirihGrid from "./GirihGrid.js";
|
|
19
19
|
import WallpaperGrid from "./WallpaperGrid.js";
|
|
20
20
|
import ReactionDiffusionGrid from "./ReactionDiffusionGrid.js";
|
|
21
|
-
|
|
21
|
+
import LensingGrid from "./LensingGrid.js";
|
|
22
|
+
import ConformalGrid from "./ConformalGrid.js";
|
|
23
|
+
import TruchetGrid from "./TruchetGrid.js";
|
|
24
|
+
import PhyllotaxisGrid from "./PhyllotaxisGrid.js";
|
|
25
|
+
import ParastichyGrid from "./ParastichyGrid.js";
|
|
26
|
+
import ApollonianGrid from "./ApollonianGrid.js";
|
|
27
|
+
import HilbertGrid from "./HilbertGrid.js";
|
|
28
|
+
const GridGenerator = ({ config, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) => {
|
|
22
29
|
// The other branches render components that report themselves; the
|
|
23
30
|
// native <gridHelper> is a plain three object, so this component holds its
|
|
24
31
|
// ref and reports on its behalf. The ref stays null on the other branches,
|
|
25
32
|
// which the hook treats as nothing to report.
|
|
26
33
|
const nativeGridRef = useRef(null);
|
|
27
34
|
useObjectReady(nativeGridRef, config, onObjectReady, onObjectDispose);
|
|
35
|
+
// Grids on the config pattern (listed in GRIDS_ANIMATABLE) take the domain drivers.
|
|
36
|
+
const driven = { id, keyframes, mouseMove };
|
|
28
37
|
switch (config.type) {
|
|
29
38
|
case "basic":
|
|
30
39
|
return _jsx(GridHelper, { ...config, side: 2, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
31
40
|
case "advancedGrid":
|
|
32
|
-
return _jsx(
|
|
41
|
+
return _jsx(AdvancedGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
33
42
|
case "hexGrid":
|
|
34
|
-
return _jsx(HexGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
43
|
+
return _jsx(HexGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
35
44
|
case "circuitGrid":
|
|
36
|
-
return _jsx(CircuitGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
45
|
+
return _jsx(CircuitGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
37
46
|
case "voronoiGrid":
|
|
38
|
-
return _jsx(VoronoiGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
47
|
+
return _jsx(VoronoiGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
39
48
|
case "radarGrid":
|
|
40
|
-
return _jsx(RadarGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
49
|
+
return _jsx(RadarGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
41
50
|
case "moireGrid":
|
|
42
|
-
return _jsx(MoireGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
51
|
+
return _jsx(MoireGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
43
52
|
case "fractalGrid":
|
|
44
|
-
return _jsx(FractalGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
53
|
+
return _jsx(FractalGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
45
54
|
case "contourGrid":
|
|
46
|
-
return _jsx(ContourGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
55
|
+
return _jsx(ContourGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
47
56
|
case "quasiGrid":
|
|
48
|
-
return _jsx(QuasiGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
57
|
+
return _jsx(QuasiGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
49
58
|
case "flowNetGrid":
|
|
50
|
-
return _jsx(FlowNetGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
59
|
+
return _jsx(FlowNetGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
51
60
|
case "chladniGrid":
|
|
52
|
-
return _jsx(ChladniGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
61
|
+
return _jsx(ChladniGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
53
62
|
case "hyperbolicGrid":
|
|
54
|
-
return _jsx(HyperbolicGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
63
|
+
return _jsx(HyperbolicGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
55
64
|
case "gravWaveGrid":
|
|
56
|
-
return _jsx(GravWaveGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
65
|
+
return _jsx(GravWaveGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
57
66
|
case "girihGrid":
|
|
58
|
-
return _jsx(GirihGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
67
|
+
return _jsx(GirihGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
59
68
|
case "wallpaperGrid":
|
|
60
|
-
return _jsx(WallpaperGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
69
|
+
return _jsx(WallpaperGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
61
70
|
case "reactionDiffusionGrid":
|
|
62
|
-
return _jsx(ReactionDiffusionGrid, { config: config, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
71
|
+
return _jsx(ReactionDiffusionGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
72
|
+
case "lensingGrid":
|
|
73
|
+
return _jsx(LensingGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
74
|
+
case "conformalGrid":
|
|
75
|
+
return _jsx(ConformalGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
76
|
+
case "truchetGrid":
|
|
77
|
+
return _jsx(TruchetGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
78
|
+
case "phyllotaxisGrid":
|
|
79
|
+
return _jsx(PhyllotaxisGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
80
|
+
case "parastichyGrid":
|
|
81
|
+
return _jsx(ParastichyGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
82
|
+
case "apollonianGrid":
|
|
83
|
+
return _jsx(ApollonianGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
84
|
+
case "hilbertGrid":
|
|
85
|
+
return _jsx(HilbertGrid, { config: config, ...driven, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose });
|
|
63
86
|
default:
|
|
64
87
|
return _jsx("gridHelper", { ...config, ref: nativeGridRef });
|
|
65
88
|
}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { ThreeElements } from '@react-three/fiber';
|
|
2
2
|
import type { ObjectReadyProps } from '../types/objectReady';
|
|
3
3
|
import type { HexGridConfig } from '../types/gridConfigs';
|
|
4
|
+
import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
|
|
4
5
|
export interface HexGridProps extends ObjectReadyProps {
|
|
5
6
|
config?: HexGridConfig;
|
|
6
7
|
groupProps?: ThreeElements['group'];
|
|
8
|
+
/** Scene object id: the live-edit handle is found by it. */
|
|
9
|
+
id?: string;
|
|
10
|
+
/** Keyframes on this grid's config knobs (animations.grid.animations). */
|
|
11
|
+
keyframes?: AnimationOptions[];
|
|
12
|
+
/** Pointer bindings on this grid's config knobs (mouseMove.grid). */
|
|
13
|
+
mouseMove?: MouseMoveDomain;
|
|
7
14
|
}
|
|
8
15
|
/**
|
|
9
16
|
* HexGridConfig — the single source of truth for a honeycomb grid instance.
|
|
@@ -11,15 +18,6 @@ export interface HexGridProps extends ObjectReadyProps {
|
|
|
11
18
|
* any preset/serialisation layer, matching `defaultMyGridConfig`.
|
|
12
19
|
*/
|
|
13
20
|
export declare const defaultHexGridConfig: HexGridConfig;
|
|
14
|
-
|
|
15
|
-
* A honeycomb grid on a shader plane.
|
|
16
|
-
*
|
|
17
|
-
* Same knobs as `AdvancedGrid` — `lineMode` / `cellMode` run 0..4 through
|
|
18
|
-
* static, ripple, flow, scan and pulse — applied to a hex lattice instead of a
|
|
19
|
-
* square one, so ripples propagate as hexagons rather than circles. With
|
|
20
|
-
* `displace > 0` and `plateau` on, every hex lifts to its own height and the
|
|
21
|
-
* surface breaks into plates.
|
|
22
|
-
*/
|
|
23
|
-
export declare function HexGrid({ config, groupProps, onObjectReady, onObjectDispose }: HexGridProps): import("react").JSX.Element;
|
|
21
|
+
export declare function HexGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: HexGridProps): import("react").JSX.Element;
|
|
24
22
|
export default HexGrid;
|
|
25
23
|
//# sourceMappingURL=HexGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HexGrid.d.ts","sourceRoot":"","sources":["../../src/components/HexGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"HexGrid.d.ts","sourceRoot":"","sources":["../../src/components/HexGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IAClD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAKD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA0BlC,CAAC;AAoBF,wBAAgB,OAAO,CAAC,EAAE,MAA6B,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,YAAY,+BA+C5I;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo, useRef } from 'react';
|
|
2
|
+
import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
5
5
|
import { useGridSurface } from '../hooks/useGridSurface.js';
|
|
6
|
-
import {
|
|
6
|
+
import { useConfigDriver } from '../hooks/useConfigDriver.js';
|
|
7
|
+
import { withConfigDefaults } from '../utils/configAnimations.js';
|
|
8
|
+
import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
|
|
9
|
+
import { HexGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
|
|
7
10
|
// Side-effect import registers <hexGridMaterial> via extend() in HexGridMaterial.ts.
|
|
8
11
|
void HexGridMaterial;
|
|
9
12
|
/**
|
|
@@ -47,26 +50,41 @@ export const defaultHexGridConfig = {
|
|
|
47
50
|
* `displace > 0` and `plateau` on, every hex lifts to its own height and the
|
|
48
51
|
* surface breaks into plates.
|
|
49
52
|
*/
|
|
50
|
-
|
|
53
|
+
/** This grid's own uniforms (u_<key>), pushed by applyGridConfig beside the shared surface knobs. */
|
|
54
|
+
const VARIANT = [];
|
|
55
|
+
/** Computed uniforms (clamps, enum indices, booleans as 0/1). */
|
|
56
|
+
const DERIVE = { plateau: (c) => c.plateau ? 1 : 0 };
|
|
57
|
+
/** Knobs that rebuild the plane or pick a mode: they change on commit, never through the live path. */
|
|
58
|
+
const STRUCTURAL = [...GRID_STRUCTURAL, 'plateau'];
|
|
59
|
+
/** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
|
|
60
|
+
const ANIMATABLE = new Set((GRIDS_ANIMATABLE.hexGrid ?? []).map((p) => p.value));
|
|
61
|
+
export function HexGrid({ config = defaultHexGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
|
|
51
62
|
const matRef = useRef(null);
|
|
52
63
|
const rootRef = useRef(null);
|
|
53
64
|
const meshRef = useRef(null);
|
|
54
65
|
useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
|
|
55
|
-
|
|
66
|
+
// The committed config over this grid's defaults: every knob has a value to render
|
|
67
|
+
// and for a keyframe or pointer binding to start from.
|
|
68
|
+
const base = useMemo(() => withConfigDefaults(defaultHexGridConfig, config), [config]);
|
|
69
|
+
const { cellSize, size, segments, flat, displace, followMouse, reveal, revealDuration } = base;
|
|
56
70
|
// Plateaus need a dense mesh: the vertical walls between hexes are only as
|
|
57
71
|
// crisp as the tessellation that has to fake them.
|
|
58
72
|
const segs = segments ?? (displace > 0
|
|
59
73
|
? Math.min(512, Math.max(96, Math.ceil(size / Math.max(cellSize, 1e-4)) * 4))
|
|
60
74
|
: 1);
|
|
61
|
-
const fade = fadeDistance ?? size * 0.5;
|
|
62
|
-
const colors = useMemo(() => ({
|
|
63
|
-
line: new THREE.Color(lineColor),
|
|
64
|
-
section: new THREE.Color(sectionColor),
|
|
65
|
-
cell: new THREE.Color(cellColor),
|
|
66
|
-
glow: new THREE.Color(glowColor),
|
|
67
|
-
bg: new THREE.Color(bgColor),
|
|
68
|
-
}), [lineColor, sectionColor, cellColor, glowColor, bgColor]);
|
|
69
75
|
useGridSurface(matRef, meshRef, { followMouse, reveal, revealDuration });
|
|
70
|
-
|
|
76
|
+
// One push point for every uniform the config owns: the committed config when the
|
|
77
|
+
// material mounts or the config commits, the merged one while anything overrides it.
|
|
78
|
+
const baseRef = useRef(base);
|
|
79
|
+
baseRef.current = base;
|
|
80
|
+
const setMaterial = useCallback((m) => {
|
|
81
|
+
matRef.current = m;
|
|
82
|
+
if (m)
|
|
83
|
+
applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
|
|
84
|
+
}, []);
|
|
85
|
+
useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
|
|
86
|
+
const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
|
|
87
|
+
useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
|
|
88
|
+
return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: flat ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("hexGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, HexGridMaterial.key)] }) }));
|
|
71
89
|
}
|
|
72
90
|
export default HexGrid;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ThreeElements } from '@react-three/fiber';
|
|
2
|
+
import type { ObjectReadyProps } from '../types/objectReady';
|
|
3
|
+
import type { HilbertGridConfig } from '../types/gridConfigs';
|
|
4
|
+
import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
|
|
5
|
+
export interface HilbertGridProps extends ObjectReadyProps {
|
|
6
|
+
config?: HilbertGridConfig;
|
|
7
|
+
groupProps?: ThreeElements['group'];
|
|
8
|
+
/** Scene object id: the live-edit handle is found by it. */
|
|
9
|
+
id?: string;
|
|
10
|
+
/** Keyframes on this grid's config knobs (animations.grid.animations). */
|
|
11
|
+
keyframes?: AnimationOptions[];
|
|
12
|
+
/** Pointer bindings on this grid's config knobs (mouseMove.grid). */
|
|
13
|
+
mouseMove?: MouseMoveDomain;
|
|
14
|
+
}
|
|
15
|
+
/** HilbertGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
|
|
16
|
+
export declare const defaultHilbertGridConfig: HilbertGridConfig;
|
|
17
|
+
/**
|
|
18
|
+
* A closed Moore curve — four Hilbert curves joined into one loop — threads every cell once while keeping neighbours on the line neighbours on the plane. Signals with exponential trails circulate along it; the accent is the same curve one level coarser.
|
|
19
|
+
*
|
|
20
|
+
* The grid always lies flat: any other orientation, and any movement of the
|
|
21
|
+
* whole, is the parent object's transform. Only what happens inside it animates.
|
|
22
|
+
*/
|
|
23
|
+
export declare function HilbertGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: HilbertGridProps): import("react").JSX.Element;
|
|
24
|
+
export default HilbertGrid;
|
|
25
|
+
//# sourceMappingURL=HilbertGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HilbertGrid.d.ts","sourceRoot":"","sources":["../../src/components/HilbertGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAKD,8FAA8F;AAC9F,eAAO,MAAM,wBAAwB,EAAE,iBA2BtC,CAAC;AAWF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAiC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,+BAsDxJ;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { useFrame } from '@react-three/fiber';
|
|
5
|
+
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
6
|
+
import { useGridSurface } from '../hooks/useGridSurface.js';
|
|
7
|
+
import { useConfigDriver } from '../hooks/useConfigDriver.js';
|
|
8
|
+
import { withConfigDefaults } from '../utils/configAnimations.js';
|
|
9
|
+
import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
|
|
10
|
+
import { HilbertGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
|
|
11
|
+
// Side-effect import registers <hilbertGridMaterial> via extend().
|
|
12
|
+
void HilbertGridMaterial;
|
|
13
|
+
/** HilbertGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
|
|
14
|
+
export const defaultHilbertGridConfig = {
|
|
15
|
+
cellSize: 0.8,
|
|
16
|
+
size: 50,
|
|
17
|
+
segments: undefined,
|
|
18
|
+
lineMode: 0,
|
|
19
|
+
cellMode: 0,
|
|
20
|
+
lineWidth: 1.2,
|
|
21
|
+
sectionSize: 8,
|
|
22
|
+
sectionWidth: 3,
|
|
23
|
+
animSpeed: 1,
|
|
24
|
+
animScale: 0.5,
|
|
25
|
+
animIntensity: 0.6,
|
|
26
|
+
fadeDistance: undefined,
|
|
27
|
+
fadeStrength: 0.7,
|
|
28
|
+
displace: 0,
|
|
29
|
+
order: 6,
|
|
30
|
+
signals: 12,
|
|
31
|
+
trail: 40,
|
|
32
|
+
signalSpeed: 10,
|
|
33
|
+
lineColor: '#2a8a5c',
|
|
34
|
+
sectionColor: '#1d4d37',
|
|
35
|
+
cellColor: '#082016',
|
|
36
|
+
glowColor: '#5dffb0',
|
|
37
|
+
bgColor: '#020805',
|
|
38
|
+
bgOpacity: 0,
|
|
39
|
+
reveal: 1,
|
|
40
|
+
revealDuration: 0,
|
|
41
|
+
};
|
|
42
|
+
/** This grid's own uniforms (u_<key>), pushed by applyGridConfig beside the shared surface knobs. */
|
|
43
|
+
const VARIANT = ['order', 'signals', 'trail', 'signalSpeed'];
|
|
44
|
+
/** No computed uniforms: every knob maps straight to its u_<key>. */
|
|
45
|
+
const DERIVE = {};
|
|
46
|
+
/** Knobs that reshape the plane or pick a mode: they change on commit, never through the live path. */
|
|
47
|
+
const STRUCTURAL = [...GRID_STRUCTURAL, 'order', 'signals'];
|
|
48
|
+
/** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
|
|
49
|
+
const ANIMATABLE = new Set((GRIDS_ANIMATABLE.hilbertGrid ?? []).map((p) => p.value));
|
|
50
|
+
/**
|
|
51
|
+
* A closed Moore curve — four Hilbert curves joined into one loop — threads every cell once while keeping neighbours on the line neighbours on the plane. Signals with exponential trails circulate along it; the accent is the same curve one level coarser.
|
|
52
|
+
*
|
|
53
|
+
* The grid always lies flat: any other orientation, and any movement of the
|
|
54
|
+
* whole, is the parent object's transform. Only what happens inside it animates.
|
|
55
|
+
*/
|
|
56
|
+
export function HilbertGrid({ config = defaultHilbertGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
|
|
57
|
+
const matRef = useRef(null);
|
|
58
|
+
const rootRef = useRef(null);
|
|
59
|
+
const meshRef = useRef(null);
|
|
60
|
+
useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
|
|
61
|
+
// The committed config over this grid's defaults: every knob has a value to render
|
|
62
|
+
// and for a keyframe or pointer binding to start from.
|
|
63
|
+
const base = useMemo(() => withConfigDefaults(defaultHilbertGridConfig, config), [config]);
|
|
64
|
+
const { cellSize, size, segments, displace, reveal, revealDuration } = base;
|
|
65
|
+
const segs = segments ?? (displace > 0
|
|
66
|
+
? Math.min(256, Math.max(64, Math.ceil(size / Math.max(cellSize, 1e-4)) * 2))
|
|
67
|
+
: 1);
|
|
68
|
+
useGridSurface(matRef, meshRef, { reveal, revealDuration });
|
|
69
|
+
// One push point for every uniform the config owns: the committed config when the
|
|
70
|
+
// material mounts or the config commits, the merged one while anything overrides it.
|
|
71
|
+
const baseRef = useRef(base);
|
|
72
|
+
baseRef.current = base;
|
|
73
|
+
const setMaterial = useCallback((m) => {
|
|
74
|
+
matRef.current = m;
|
|
75
|
+
if (m)
|
|
76
|
+
applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
|
|
77
|
+
}, []);
|
|
78
|
+
useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
|
|
79
|
+
const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
|
|
80
|
+
useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
|
|
81
|
+
// Rate knobs are integrated here, never multiplied by time in the shader, so a
|
|
82
|
+
// keyframed or pointer-driven rate changes the speed without making the pattern
|
|
83
|
+
// jump. The knob is read from the material, i.e. the merged (driven) value.
|
|
84
|
+
useFrame((_, delta) => {
|
|
85
|
+
const u = matRef.current?.uniforms;
|
|
86
|
+
if (!u)
|
|
87
|
+
return;
|
|
88
|
+
const dt = Math.min(delta, 0.1) * u.u_animSpeed.value;
|
|
89
|
+
u.u_signalPhase.value += dt * u.u_signalSpeed.value;
|
|
90
|
+
});
|
|
91
|
+
return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: [-Math.PI / 2, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("hilbertGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, HilbertGridMaterial.key)] }) }));
|
|
92
|
+
}
|
|
93
|
+
export default HilbertGrid;
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import type { ThreeElements } from '@react-three/fiber';
|
|
2
2
|
import type { ObjectReadyProps } from '../types/objectReady';
|
|
3
3
|
import type { HyperbolicGridConfig } from '../types/gridConfigs';
|
|
4
|
+
import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
|
|
4
5
|
export interface HyperbolicGridProps extends ObjectReadyProps {
|
|
5
6
|
config?: HyperbolicGridConfig;
|
|
6
7
|
groupProps?: ThreeElements['group'];
|
|
8
|
+
/** Scene object id: the live-edit handle is found by it. */
|
|
9
|
+
id?: string;
|
|
10
|
+
/** Keyframes on this grid's config knobs (animations.grid.animations). */
|
|
11
|
+
keyframes?: AnimationOptions[];
|
|
12
|
+
/** Pointer bindings on this grid's config knobs (mouseMove.grid). */
|
|
13
|
+
mouseMove?: MouseMoveDomain;
|
|
7
14
|
}
|
|
8
15
|
/** HyperbolicGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
|
|
9
16
|
export declare const defaultHyperbolicGridConfig: HyperbolicGridConfig;
|
|
10
|
-
|
|
11
|
-
* An Escher-style {p,q} tiling of the Poincare disk. A slow Mobius translation glides the tiling through itself, and the tiles shrink without end toward the rim.
|
|
12
|
-
*/
|
|
13
|
-
export declare function HyperbolicGrid({ config, groupProps, onObjectReady, onObjectDispose }: HyperbolicGridProps): import("react").JSX.Element;
|
|
17
|
+
export declare function HyperbolicGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: HyperbolicGridProps): import("react").JSX.Element;
|
|
14
18
|
export default HyperbolicGrid;
|
|
15
19
|
//# sourceMappingURL=HyperbolicGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperbolicGrid.d.ts","sourceRoot":"","sources":["../../src/components/HyperbolicGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperbolicGrid.d.ts","sourceRoot":"","sources":["../../src/components/HyperbolicGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAKD,iGAAiG;AACjG,eAAO,MAAM,2BAA2B,EAAE,oBA4BzC,CAAC;AAcF,wBAAgB,cAAc,CAAC,EAAE,MAAoC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,mBAAmB,+BA4CjK;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo, useRef } from 'react';
|
|
2
|
+
import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
5
5
|
import { useGridSurface } from '../hooks/useGridSurface.js';
|
|
6
|
-
import {
|
|
6
|
+
import { useConfigDriver } from '../hooks/useConfigDriver.js';
|
|
7
|
+
import { withConfigDefaults } from '../utils/configAnimations.js';
|
|
8
|
+
import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
|
|
9
|
+
import { HyperbolicGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
|
|
7
10
|
// Side-effect import registers <hyperbolicGridMaterial> via extend().
|
|
8
11
|
void HyperbolicGridMaterial;
|
|
9
12
|
/** HyperbolicGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
|
|
@@ -39,23 +42,38 @@ export const defaultHyperbolicGridConfig = {
|
|
|
39
42
|
/**
|
|
40
43
|
* An Escher-style {p,q} tiling of the Poincare disk. A slow Mobius translation glides the tiling through itself, and the tiles shrink without end toward the rim.
|
|
41
44
|
*/
|
|
42
|
-
|
|
45
|
+
/** This grid's own uniforms (u_<key>), pushed by applyGridConfig beside the shared surface knobs. */
|
|
46
|
+
const VARIANT = ['sides', 'valence', 'drift'];
|
|
47
|
+
/** No computed uniforms: every knob maps straight to its u_<key>. */
|
|
48
|
+
const DERIVE = {};
|
|
49
|
+
/** Knobs that rebuild the plane or pick a mode: they change on commit, never through the live path. */
|
|
50
|
+
const STRUCTURAL = [...GRID_STRUCTURAL, 'sides', 'valence'];
|
|
51
|
+
/** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
|
|
52
|
+
const ANIMATABLE = new Set((GRIDS_ANIMATABLE.hyperbolicGrid ?? []).map((p) => p.value));
|
|
53
|
+
export function HyperbolicGrid({ config = defaultHyperbolicGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
|
|
43
54
|
const matRef = useRef(null);
|
|
44
55
|
const rootRef = useRef(null);
|
|
45
56
|
const meshRef = useRef(null);
|
|
46
57
|
useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
|
|
47
|
-
|
|
58
|
+
// The committed config over this grid's defaults: every knob has a value to render
|
|
59
|
+
// and for a keyframe or pointer binding to start from.
|
|
60
|
+
const base = useMemo(() => withConfigDefaults(defaultHyperbolicGridConfig, config), [config]);
|
|
61
|
+
const { cellSize, size, segments, flat, displace, followMouse, reveal, revealDuration } = base;
|
|
48
62
|
// the ripple is fine-grained relative to the disk
|
|
49
63
|
const segs = segments ?? (displace > 0 ? Math.min(512, Math.max(96, Math.ceil(size / Math.max(cellSize, 1e-4)) * 64)) : 1);
|
|
50
|
-
const fade = fadeDistance ?? size * 0.5;
|
|
51
|
-
const colors = useMemo(() => ({
|
|
52
|
-
line: new THREE.Color(lineColor),
|
|
53
|
-
section: new THREE.Color(sectionColor),
|
|
54
|
-
cell: new THREE.Color(cellColor),
|
|
55
|
-
glow: new THREE.Color(glowColor),
|
|
56
|
-
bg: new THREE.Color(bgColor),
|
|
57
|
-
}), [lineColor, sectionColor, cellColor, glowColor, bgColor]);
|
|
58
64
|
useGridSurface(matRef, meshRef, { followMouse, reveal, revealDuration });
|
|
59
|
-
|
|
65
|
+
// One push point for every uniform the config owns: the committed config when the
|
|
66
|
+
// material mounts or the config commits, the merged one while anything overrides it.
|
|
67
|
+
const baseRef = useRef(base);
|
|
68
|
+
baseRef.current = base;
|
|
69
|
+
const setMaterial = useCallback((m) => {
|
|
70
|
+
matRef.current = m;
|
|
71
|
+
if (m)
|
|
72
|
+
applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
|
|
73
|
+
}, []);
|
|
74
|
+
useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
|
|
75
|
+
const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
|
|
76
|
+
useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
|
|
77
|
+
return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: flat ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("hyperbolicGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, HyperbolicGridMaterial.key)] }) }));
|
|
60
78
|
}
|
|
61
79
|
export default HyperbolicGrid;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ObjectReadyProps } from '../types/objectReady';
|
|
3
|
-
import type { LandscapeSettings } from '
|
|
3
|
+
import type { LandscapeSettings } from '@3driseai/3drise-core';
|
|
4
4
|
export interface LandscapeBuilderProps extends ObjectReadyProps {
|
|
5
5
|
/** Accepts a partial or older-shaped blob. A blob with no `heightMap`
|
|
6
6
|
* normalises to nothing — a landscape without one is not a landscape, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LandscapeBuilder.d.ts","sourceRoot":"","sources":["../../src/components/LandscapeBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LandscapeBuilder.d.ts","sourceRoot":"","sources":["../../src/components/LandscapeBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAI9D,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC3D;;8EAE0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAA;CAC/C;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAqBrD,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { normalizeLandscape, normalizeLandscapeQuality } from '
|
|
3
|
+
import { normalizeLandscape, normalizeLandscapeQuality } from '@3driseai/3drise-core';
|
|
4
4
|
import LandscapeMesh from './landscape/LandscapeMesh.js';
|
|
5
5
|
/**
|
|
6
6
|
* The world ground.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ObjectReadyProps } from '../types/objectReady';
|
|
3
|
-
import type { LandscapeSettings } from '
|
|
3
|
+
import type { LandscapeSettings } from '@3driseai/3drise-core';
|
|
4
4
|
export interface LandscapeObjectProps extends ObjectReadyProps {
|
|
5
5
|
settings: Partial<LandscapeSettings> & {
|
|
6
6
|
id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LandscapeObject.d.ts","sourceRoot":"","sources":["../../src/components/LandscapeObject.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LandscapeObject.d.ts","sourceRoot":"","sources":["../../src/components/LandscapeObject.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAI9D,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzD;AAED;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqBnD,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { normalizeLandscape, normalizeLandscapeQuality } from '
|
|
3
|
+
import { normalizeLandscape, normalizeLandscapeQuality } from '@3driseai/3drise-core';
|
|
4
4
|
import LandscapeMesh from './landscape/LandscapeMesh.js';
|
|
5
5
|
/**
|
|
6
6
|
* A placed landscape — a floating island, a diorama, a game tile, a table-top
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ThreeElements } from '@react-three/fiber';
|
|
2
|
+
import type { ObjectReadyProps } from '../types/objectReady';
|
|
3
|
+
import type { LensingGridConfig } from '../types/gridConfigs';
|
|
4
|
+
import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
|
|
5
|
+
export interface LensingGridProps extends ObjectReadyProps {
|
|
6
|
+
config?: LensingGridConfig;
|
|
7
|
+
groupProps?: ThreeElements['group'];
|
|
8
|
+
/** Scene object id: the live-edit handle is found by it. */
|
|
9
|
+
id?: string;
|
|
10
|
+
/** Keyframes on this grid's config knobs (animations.grid.animations). */
|
|
11
|
+
keyframes?: AnimationOptions[];
|
|
12
|
+
/** Pointer bindings on this grid's config knobs (mouseMove.grid). */
|
|
13
|
+
mouseMove?: MouseMoveDomain;
|
|
14
|
+
}
|
|
15
|
+
/** LensingGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
|
|
16
|
+
export declare const defaultLensingGridConfig: LensingGridConfig;
|
|
17
|
+
/**
|
|
18
|
+
* A square lattice seen through a point-mass gravitational lens: the thin-lens equation bends it into an Einstein ring, an inverted inner image and a dark shadow at the core.
|
|
19
|
+
*
|
|
20
|
+
* The grid always lies flat: any other orientation, and any movement of the
|
|
21
|
+
* whole, is the parent object's transform. Only what happens inside it animates.
|
|
22
|
+
*/
|
|
23
|
+
export declare function LensingGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: LensingGridProps): import("react").JSX.Element;
|
|
24
|
+
export default LensingGrid;
|
|
25
|
+
//# sourceMappingURL=LensingGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LensingGrid.d.ts","sourceRoot":"","sources":["../../src/components/LensingGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAKD,8FAA8F;AAC9F,eAAO,MAAM,wBAAwB,EAAE,iBA0BtC,CAAC;AAWF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAiC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,+BA4CxJ;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { useObjectReady } from '../hooks/useObjectReady.js';
|
|
5
|
+
import { useGridSurface } from '../hooks/useGridSurface.js';
|
|
6
|
+
import { useConfigDriver } from '../hooks/useConfigDriver.js';
|
|
7
|
+
import { withConfigDefaults } from '../utils/configAnimations.js';
|
|
8
|
+
import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
|
|
9
|
+
import { LensingGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
|
|
10
|
+
// Side-effect import registers <lensingGridMaterial> via extend().
|
|
11
|
+
void LensingGridMaterial;
|
|
12
|
+
/** LensingGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
|
|
13
|
+
export const defaultLensingGridConfig = {
|
|
14
|
+
cellSize: 2,
|
|
15
|
+
size: 50,
|
|
16
|
+
segments: undefined,
|
|
17
|
+
lineMode: 1,
|
|
18
|
+
cellMode: 2,
|
|
19
|
+
lineWidth: 1.1,
|
|
20
|
+
sectionSize: 5,
|
|
21
|
+
sectionWidth: 1.8,
|
|
22
|
+
animSpeed: 1,
|
|
23
|
+
animScale: 0.6,
|
|
24
|
+
animIntensity: 0.6,
|
|
25
|
+
fadeDistance: undefined,
|
|
26
|
+
fadeStrength: 0.7,
|
|
27
|
+
displace: 0,
|
|
28
|
+
mass: 4,
|
|
29
|
+
orbit: 0,
|
|
30
|
+
ringGlow: 0.8,
|
|
31
|
+
lineColor: '#2b4f80',
|
|
32
|
+
sectionColor: '#9fd0ff',
|
|
33
|
+
cellColor: '#0b1a33',
|
|
34
|
+
glowColor: '#ffcf8a',
|
|
35
|
+
bgColor: '#02040a',
|
|
36
|
+
bgOpacity: 0,
|
|
37
|
+
reveal: 1,
|
|
38
|
+
revealDuration: 0,
|
|
39
|
+
};
|
|
40
|
+
/** This grid's own uniforms (u_<key>), pushed by applyGridConfig beside the shared surface knobs. */
|
|
41
|
+
const VARIANT = ['mass', 'orbit', 'ringGlow'];
|
|
42
|
+
/** No computed uniforms: every knob maps straight to its u_<key>. */
|
|
43
|
+
const DERIVE = {};
|
|
44
|
+
/** Knobs that reshape the plane or pick a mode: they change on commit, never through the live path. */
|
|
45
|
+
const STRUCTURAL = [...GRID_STRUCTURAL];
|
|
46
|
+
/** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
|
|
47
|
+
const ANIMATABLE = new Set((GRIDS_ANIMATABLE.lensingGrid ?? []).map((p) => p.value));
|
|
48
|
+
/**
|
|
49
|
+
* A square lattice seen through a point-mass gravitational lens: the thin-lens equation bends it into an Einstein ring, an inverted inner image and a dark shadow at the core.
|
|
50
|
+
*
|
|
51
|
+
* The grid always lies flat: any other orientation, and any movement of the
|
|
52
|
+
* whole, is the parent object's transform. Only what happens inside it animates.
|
|
53
|
+
*/
|
|
54
|
+
export function LensingGrid({ config = defaultLensingGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
|
|
55
|
+
const matRef = useRef(null);
|
|
56
|
+
const rootRef = useRef(null);
|
|
57
|
+
const meshRef = useRef(null);
|
|
58
|
+
useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
|
|
59
|
+
// The committed config over this grid's defaults: every knob has a value to render
|
|
60
|
+
// and for a keyframe or pointer binding to start from.
|
|
61
|
+
const base = useMemo(() => withConfigDefaults(defaultLensingGridConfig, config), [config]);
|
|
62
|
+
const { cellSize, size, segments, displace, reveal, revealDuration } = base;
|
|
63
|
+
const segs = segments ?? (displace > 0
|
|
64
|
+
? Math.min(256, Math.max(64, Math.ceil(size / Math.max(cellSize, 1e-4)) * 2))
|
|
65
|
+
: 1);
|
|
66
|
+
useGridSurface(matRef, meshRef, { reveal, revealDuration });
|
|
67
|
+
// One push point for every uniform the config owns: the committed config when the
|
|
68
|
+
// material mounts or the config commits, the merged one while anything overrides it.
|
|
69
|
+
const baseRef = useRef(base);
|
|
70
|
+
baseRef.current = base;
|
|
71
|
+
const setMaterial = useCallback((m) => {
|
|
72
|
+
matRef.current = m;
|
|
73
|
+
if (m)
|
|
74
|
+
applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
|
|
75
|
+
}, []);
|
|
76
|
+
useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
|
|
77
|
+
const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
|
|
78
|
+
useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
|
|
79
|
+
return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: [-Math.PI / 2, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("lensingGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, LensingGridMaterial.key)] }) }));
|
|
80
|
+
}
|
|
81
|
+
export default LensingGrid;
|