@3driseai/3drise-viewer 0.1.42 → 0.1.44
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/ClipsRuntime.d.ts +16 -1
- package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
- package/dist/animationsV2/ClipsRuntime.js +144 -25
- package/dist/animationsV2/appliers.d.ts +9 -0
- package/dist/animationsV2/appliers.d.ts.map +1 -1
- package/dist/animationsV2/appliers.js +62 -2
- package/dist/animationsV2/clipUtils.d.ts +30 -0
- package/dist/animationsV2/clipUtils.d.ts.map +1 -1
- package/dist/animationsV2/clipUtils.js +163 -17
- package/dist/animationsV2/elementSettings.d.ts +5 -0
- package/dist/animationsV2/elementSettings.d.ts.map +1 -1
- package/dist/animationsV2/elementSettings.js +6 -3
- package/dist/animationsV2/sequenceUtils.js +4 -4
- package/dist/animationsV2/types.d.ts +23 -0
- package/dist/animationsV2/types.d.ts.map +1 -1
- package/dist/api/sceneHandle.js +2 -2
- package/dist/components/CreatedObject.d.ts +3 -0
- package/dist/components/CreatedObject.d.ts.map +1 -1
- package/dist/components/CreatedObject.js +6 -2
- package/dist/components/CustomPrimitive.d.ts.map +1 -1
- package/dist/components/CustomPrimitive.js +1 -10
- package/dist/components/EnvironmentManager.d.ts.map +1 -1
- package/dist/components/EnvironmentManager.js +11 -5
- package/dist/components/GeometryShape.d.ts +5 -2
- package/dist/components/GeometryShape.d.ts.map +1 -1
- package/dist/components/GeometryShape.js +71 -10
- package/dist/components/LandObject.d.ts.map +1 -1
- package/dist/components/LandObject.js +1 -1
- package/dist/components/LayoutInstances.d.ts +2 -1
- package/dist/components/LayoutInstances.d.ts.map +1 -1
- package/dist/components/LayoutInstances.js +39 -6
- package/dist/components/LightObject.d.ts.map +1 -1
- package/dist/components/LightObject.js +3 -0
- package/dist/components/ObjectNode.d.ts.map +1 -1
- package/dist/components/ObjectNode.js +62 -13
- package/dist/components/OceanBuilder.d.ts +2 -0
- package/dist/components/OceanBuilder.d.ts.map +1 -1
- package/dist/components/OceanBuilder.js +2 -1
- package/dist/components/RenderEffects.d.ts +8 -0
- package/dist/components/RenderEffects.d.ts.map +1 -0
- package/dist/components/RenderEffects.js +120 -0
- package/dist/components/SceneBuilder.d.ts.map +1 -1
- package/dist/components/SceneBuilder.js +18 -9
- package/dist/components/SportsObject.d.ts +9 -0
- package/dist/components/SportsObject.d.ts.map +1 -0
- package/dist/components/SportsObject.js +20 -0
- package/dist/components/UrbanObject.d.ts +9 -0
- package/dist/components/UrbanObject.d.ts.map +1 -0
- package/dist/components/UrbanObject.js +28 -0
- package/dist/components/VegetationObject.d.ts +9 -0
- package/dist/components/VegetationObject.d.ts.map +1 -0
- package/dist/components/VegetationObject.js +26 -0
- package/dist/components/WaterObject.d.ts +15 -0
- package/dist/components/WaterObject.d.ts.map +1 -0
- package/dist/components/WaterObject.js +29 -0
- package/dist/components/index.d.ts +7 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +6 -1
- package/dist/components/land/LandPatch.d.ts +3 -1
- package/dist/components/land/LandPatch.d.ts.map +1 -1
- package/dist/components/land/LandPatch.js +80 -7
- package/dist/components/layout/InstancedLayout.d.ts +19 -0
- package/dist/components/layout/InstancedLayout.d.ts.map +1 -0
- package/dist/components/layout/InstancedLayout.js +154 -0
- package/dist/components/layout/LayoutGrounds.d.ts +19 -0
- package/dist/components/layout/LayoutGrounds.d.ts.map +1 -0
- package/dist/components/layout/LayoutGrounds.js +104 -0
- package/dist/components/layout/LinkProxies.d.ts +5 -0
- package/dist/components/layout/LinkProxies.d.ts.map +1 -0
- package/dist/components/layout/LinkProxies.js +51 -0
- package/dist/components/layout/LinkedSource.d.ts +14 -0
- package/dist/components/layout/LinkedSource.d.ts.map +1 -0
- package/dist/components/layout/LinkedSource.js +129 -0
- package/dist/components/projector/Projector.d.ts +14 -0
- package/dist/components/projector/Projector.d.ts.map +1 -0
- package/dist/components/projector/Projector.js +44 -0
- package/dist/components/projector/index.d.ts +4 -0
- package/dist/components/projector/index.d.ts.map +1 -0
- package/dist/components/projector/index.js +2 -0
- package/dist/components/projector/projectorCore.d.ts +19 -0
- package/dist/components/projector/projectorCore.d.ts.map +1 -0
- package/dist/components/projector/projectorCore.js +545 -0
- package/dist/components/sports/SportsBall.d.ts +9 -0
- package/dist/components/sports/SportsBall.d.ts.map +1 -0
- package/dist/components/sports/SportsBall.js +23 -0
- package/dist/components/sports/SportsCourt.d.ts +9 -0
- package/dist/components/sports/SportsCourt.d.ts.map +1 -0
- package/dist/components/sports/SportsCourt.js +23 -0
- package/dist/components/sports/SportsEquipment.d.ts +9 -0
- package/dist/components/sports/SportsEquipment.d.ts.map +1 -0
- package/dist/components/sports/SportsEquipment.js +23 -0
- package/dist/components/sports/SportsGoal.d.ts +9 -0
- package/dist/components/sports/SportsGoal.d.ts.map +1 -0
- package/dist/components/sports/SportsGoal.js +23 -0
- package/dist/components/sports/core/ball.d.ts +166 -0
- package/dist/components/sports/core/ball.d.ts.map +1 -0
- package/dist/components/sports/core/ball.js +402 -0
- package/dist/components/sports/core/court.d.ts +442 -0
- package/dist/components/sports/core/court.d.ts.map +1 -0
- package/dist/components/sports/core/court.js +658 -0
- package/dist/components/sports/core/equipment.d.ts +103 -0
- package/dist/components/sports/core/equipment.d.ts.map +1 -0
- package/dist/components/sports/core/equipment.js +403 -0
- package/dist/components/sports/core/goal.d.ts +98 -0
- package/dist/components/sports/core/goal.d.ts.map +1 -0
- package/dist/components/sports/core/goal.js +44 -0
- package/dist/components/sports/index.d.ts +11 -0
- package/dist/components/sports/index.d.ts.map +1 -0
- package/dist/components/sports/index.js +8 -0
- package/dist/components/sports/sportsCore.d.ts +195 -0
- package/dist/components/sports/sportsCore.d.ts.map +1 -0
- package/dist/components/sports/sportsCore.js +758 -0
- package/dist/components/sports/useSportsInstance.d.ts +35 -0
- package/dist/components/sports/useSportsInstance.d.ts.map +1 -0
- package/dist/components/sports/useSportsInstance.js +47 -0
- package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
- package/dist/components/terrain/TerrainSurface.js +14 -0
- package/dist/components/urban/UrbanBlock.d.ts +9 -0
- package/dist/components/urban/UrbanBlock.d.ts.map +1 -0
- package/dist/components/urban/UrbanBlock.js +23 -0
- package/dist/components/urban/UrbanBuilding.d.ts +9 -0
- package/dist/components/urban/UrbanBuilding.d.ts.map +1 -0
- package/dist/components/urban/UrbanBuilding.js +23 -0
- package/dist/components/urban/UrbanJunction.d.ts +9 -0
- package/dist/components/urban/UrbanJunction.d.ts.map +1 -0
- package/dist/components/urban/UrbanJunction.js +23 -0
- package/dist/components/urban/UrbanPark.d.ts +9 -0
- package/dist/components/urban/UrbanPark.d.ts.map +1 -0
- package/dist/components/urban/UrbanPark.js +23 -0
- package/dist/components/urban/UrbanParkingLot.d.ts +9 -0
- package/dist/components/urban/UrbanParkingLot.d.ts.map +1 -0
- package/dist/components/urban/UrbanParkingLot.js +23 -0
- package/dist/components/urban/UrbanPlaza.d.ts +9 -0
- package/dist/components/urban/UrbanPlaza.d.ts.map +1 -0
- package/dist/components/urban/UrbanPlaza.js +23 -0
- package/dist/components/urban/UrbanRoad.d.ts +9 -0
- package/dist/components/urban/UrbanRoad.d.ts.map +1 -0
- package/dist/components/urban/UrbanRoad.js +23 -0
- package/dist/components/urban/UrbanSignage.d.ts +9 -0
- package/dist/components/urban/UrbanSignage.d.ts.map +1 -0
- package/dist/components/urban/UrbanSignage.js +23 -0
- package/dist/components/urban/UrbanSkyline.d.ts +9 -0
- package/dist/components/urban/UrbanSkyline.d.ts.map +1 -0
- package/dist/components/urban/UrbanSkyline.js +23 -0
- package/dist/components/urban/UrbanStreetFurniture.d.ts +9 -0
- package/dist/components/urban/UrbanStreetFurniture.d.ts.map +1 -0
- package/dist/components/urban/UrbanStreetFurniture.js +23 -0
- package/dist/components/urban/UrbanStreetGrid.d.ts +9 -0
- package/dist/components/urban/UrbanStreetGrid.d.ts.map +1 -0
- package/dist/components/urban/UrbanStreetGrid.js +34 -0
- package/dist/components/urban/UrbanTraffic.d.ts +9 -0
- package/dist/components/urban/UrbanTraffic.d.ts.map +1 -0
- package/dist/components/urban/UrbanTraffic.js +23 -0
- package/dist/components/urban/core/block.d.ts +119 -0
- package/dist/components/urban/core/block.d.ts.map +1 -0
- package/dist/components/urban/core/block.js +266 -0
- package/dist/components/urban/core/building.d.ts +128 -0
- package/dist/components/urban/core/building.d.ts.map +1 -0
- package/dist/components/urban/core/building.js +741 -0
- package/dist/components/urban/core/junction.d.ts +152 -0
- package/dist/components/urban/core/junction.d.ts.map +1 -0
- package/dist/components/urban/core/junction.js +617 -0
- package/dist/components/urban/core/park.d.ts +67 -0
- package/dist/components/urban/core/park.d.ts.map +1 -0
- package/dist/components/urban/core/park.js +176 -0
- package/dist/components/urban/core/parkingLot.d.ts +82 -0
- package/dist/components/urban/core/parkingLot.d.ts.map +1 -0
- package/dist/components/urban/core/parkingLot.js +284 -0
- package/dist/components/urban/core/plaza.d.ts +24 -0
- package/dist/components/urban/core/plaza.d.ts.map +1 -0
- package/dist/components/urban/core/plaza.js +243 -0
- package/dist/components/urban/core/road.d.ts +113 -0
- package/dist/components/urban/core/road.d.ts.map +1 -0
- package/dist/components/urban/core/road.js +347 -0
- package/dist/components/urban/core/signage.d.ts +83 -0
- package/dist/components/urban/core/signage.d.ts.map +1 -0
- package/dist/components/urban/core/signage.js +209 -0
- package/dist/components/urban/core/skyline.d.ts +100 -0
- package/dist/components/urban/core/skyline.d.ts.map +1 -0
- package/dist/components/urban/core/skyline.js +89 -0
- package/dist/components/urban/core/streetFurniture.d.ts +75 -0
- package/dist/components/urban/core/streetFurniture.d.ts.map +1 -0
- package/dist/components/urban/core/streetFurniture.js +193 -0
- package/dist/components/urban/core/streetGrid.d.ts +134 -0
- package/dist/components/urban/core/streetGrid.d.ts.map +1 -0
- package/dist/components/urban/core/streetGrid.js +422 -0
- package/dist/components/urban/core/traffic.d.ts +125 -0
- package/dist/components/urban/core/traffic.d.ts.map +1 -0
- package/dist/components/urban/core/traffic.js +305 -0
- package/dist/components/urban/index.d.ts +29 -0
- package/dist/components/urban/index.d.ts.map +1 -0
- package/dist/components/urban/index.js +16 -0
- package/dist/components/urban/textureSetResolver.d.ts +8 -0
- package/dist/components/urban/textureSetResolver.d.ts.map +1 -0
- package/dist/components/urban/textureSetResolver.js +16 -0
- package/dist/components/urban/urbanCore.d.ts +262 -0
- package/dist/components/urban/urbanCore.d.ts.map +1 -0
- package/dist/components/urban/urbanCore.js +928 -0
- package/dist/components/urban/useUrbanInstance.d.ts +53 -0
- package/dist/components/urban/useUrbanInstance.d.ts.map +1 -0
- package/dist/components/urban/useUrbanInstance.js +100 -0
- package/dist/components/vegetation/VegetationBush.d.ts +9 -0
- package/dist/components/vegetation/VegetationBush.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationBush.js +23 -0
- package/dist/components/vegetation/VegetationCrops.d.ts +9 -0
- package/dist/components/vegetation/VegetationCrops.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationCrops.js +23 -0
- package/dist/components/vegetation/VegetationFlowers.d.ts +9 -0
- package/dist/components/vegetation/VegetationFlowers.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationFlowers.js +23 -0
- package/dist/components/vegetation/VegetationForest.d.ts +9 -0
- package/dist/components/vegetation/VegetationForest.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationForest.js +23 -0
- package/dist/components/vegetation/VegetationFruit.d.ts +9 -0
- package/dist/components/vegetation/VegetationFruit.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationFruit.js +23 -0
- package/dist/components/vegetation/VegetationGrass.d.ts +9 -0
- package/dist/components/vegetation/VegetationGrass.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationGrass.js +23 -0
- package/dist/components/vegetation/VegetationHedge.d.ts +9 -0
- package/dist/components/vegetation/VegetationHedge.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationHedge.js +23 -0
- package/dist/components/vegetation/VegetationIvy.d.ts +9 -0
- package/dist/components/vegetation/VegetationIvy.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationIvy.js +23 -0
- package/dist/components/vegetation/VegetationTree.d.ts +9 -0
- package/dist/components/vegetation/VegetationTree.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationTree.js +23 -0
- package/dist/components/vegetation/VegetationVegetable.d.ts +9 -0
- package/dist/components/vegetation/VegetationVegetable.d.ts.map +1 -0
- package/dist/components/vegetation/VegetationVegetable.js +23 -0
- package/dist/components/vegetation/core/bush.d.ts +1256 -0
- package/dist/components/vegetation/core/bush.d.ts.map +1 -0
- package/dist/components/vegetation/core/bush.js +376 -0
- package/dist/components/vegetation/core/crops.d.ts +1033 -0
- package/dist/components/vegetation/core/crops.d.ts.map +1 -0
- package/dist/components/vegetation/core/crops.js +378 -0
- package/dist/components/vegetation/core/flowers.d.ts +648 -0
- package/dist/components/vegetation/core/flowers.d.ts.map +1 -0
- package/dist/components/vegetation/core/flowers.js +225 -0
- package/dist/components/vegetation/core/forest.d.ts +138 -0
- package/dist/components/vegetation/core/forest.d.ts.map +1 -0
- package/dist/components/vegetation/core/forest.js +310 -0
- package/dist/components/vegetation/core/fruit.d.ts +99 -0
- package/dist/components/vegetation/core/fruit.d.ts.map +1 -0
- package/dist/components/vegetation/core/fruit.js +77 -0
- package/dist/components/vegetation/core/grass.d.ts +103 -0
- package/dist/components/vegetation/core/grass.d.ts.map +1 -0
- package/dist/components/vegetation/core/grass.js +102 -0
- package/dist/components/vegetation/core/hedge.d.ts +193 -0
- package/dist/components/vegetation/core/hedge.d.ts.map +1 -0
- package/dist/components/vegetation/core/hedge.js +243 -0
- package/dist/components/vegetation/core/ivy.d.ts +213 -0
- package/dist/components/vegetation/core/ivy.d.ts.map +1 -0
- package/dist/components/vegetation/core/ivy.js +173 -0
- package/dist/components/vegetation/core/tree.d.ts +1117 -0
- package/dist/components/vegetation/core/tree.d.ts.map +1 -0
- package/dist/components/vegetation/core/tree.js +408 -0
- package/dist/components/vegetation/core/vegetable.d.ts +99 -0
- package/dist/components/vegetation/core/vegetable.d.ts.map +1 -0
- package/dist/components/vegetation/core/vegetable.js +76 -0
- package/dist/components/vegetation/index.d.ts +23 -0
- package/dist/components/vegetation/index.d.ts.map +1 -0
- package/dist/components/vegetation/index.js +14 -0
- package/dist/components/vegetation/produceCore.d.ts +929 -0
- package/dist/components/vegetation/produceCore.d.ts.map +1 -0
- package/dist/components/vegetation/produceCore.js +723 -0
- package/dist/components/vegetation/useVegetationInstance.d.ts +39 -0
- package/dist/components/vegetation/useVegetationInstance.d.ts.map +1 -0
- package/dist/components/vegetation/useVegetationInstance.js +45 -0
- package/dist/components/vegetation/vegetationCore.d.ts +412 -0
- package/dist/components/vegetation/vegetationCore.d.ts.map +1 -0
- package/dist/components/vegetation/vegetationCore.js +1728 -0
- package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +5 -0
- package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
- package/dist/components/volumetricClouds/VolumetricCloudsPass.js +39 -13
- package/dist/components/water/OceanSurface.d.ts.map +1 -1
- package/dist/components/water/OceanSurface.js +3 -2
- package/dist/components/water/WaterBody.d.ts.map +1 -1
- package/dist/components/water/WaterBody.js +31 -10
- package/dist/components/water/WaterFountain.d.ts +9 -0
- package/dist/components/water/WaterFountain.d.ts.map +1 -0
- package/dist/components/water/WaterFountain.js +24 -0
- package/dist/components/water/WaterStream.d.ts +9 -0
- package/dist/components/water/WaterStream.d.ts.map +1 -0
- package/dist/components/water/WaterStream.js +24 -0
- package/dist/components/water/WaterWaterfall.d.ts +9 -0
- package/dist/components/water/WaterWaterfall.d.ts.map +1 -0
- package/dist/components/water/WaterWaterfall.js +24 -0
- package/dist/components/water/core/fountain.d.ts +70 -0
- package/dist/components/water/core/fountain.d.ts.map +1 -0
- package/dist/components/water/core/fountain.js +619 -0
- package/dist/components/water/core/stream.d.ts +72 -0
- package/dist/components/water/core/stream.d.ts.map +1 -0
- package/dist/components/water/core/stream.js +167 -0
- package/dist/components/water/core/waterfall.d.ts +78 -0
- package/dist/components/water/core/waterfall.d.ts.map +1 -0
- package/dist/components/water/core/waterfall.js +325 -0
- package/dist/components/water/index.d.ts +8 -0
- package/dist/components/water/index.d.ts.map +1 -1
- package/dist/components/water/index.js +7 -0
- package/dist/components/water/types.d.ts +3 -0
- package/dist/components/water/types.d.ts.map +1 -1
- package/dist/components/water/useWaterInstance.d.ts +43 -0
- package/dist/components/water/useWaterInstance.d.ts.map +1 -0
- package/dist/components/water/useWaterInstance.js +89 -0
- package/dist/components/water/waterCore.d.ts +179 -0
- package/dist/components/water/waterCore.d.ts.map +1 -0
- package/dist/components/water/waterCore.js +516 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +9 -1
- package/dist/hooks/index.d.ts +7 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -2
- package/dist/hooks/useActionPatch.d.ts +23 -0
- package/dist/hooks/useActionPatch.d.ts.map +1 -0
- package/dist/hooks/useActionPatch.js +38 -0
- package/dist/hooks/useCloudSun.d.ts.map +1 -1
- package/dist/hooks/useCloudSun.js +3 -2
- package/dist/hooks/useCommittedInstance.d.ts +6 -0
- package/dist/hooks/useCommittedInstance.d.ts.map +1 -0
- package/dist/hooks/useCommittedInstance.js +42 -0
- package/dist/hooks/useConfigLive.d.ts +1 -1
- package/dist/hooks/useConfigLive.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
- package/dist/hooks/useContinuousEffects.js +36 -20
- package/dist/hooks/useGridLayout.d.ts +7 -0
- package/dist/hooks/useGridLayout.d.ts.map +1 -0
- package/dist/hooks/useGridLayout.js +10 -0
- package/dist/hooks/useInteractionEffects.d.ts.map +1 -1
- package/dist/hooks/useInteractionEffects.js +48 -9
- package/dist/hooks/useLightLive.d.ts.map +1 -1
- package/dist/hooks/useLightLive.js +2 -0
- package/dist/hooks/useLinkStatus.d.ts +7 -0
- package/dist/hooks/useLinkStatus.d.ts.map +1 -0
- package/dist/hooks/useLinkStatus.js +20 -0
- package/dist/hooks/useMaterialApplication.d.ts +6 -1
- package/dist/hooks/useMaterialApplication.d.ts.map +1 -1
- package/dist/hooks/useMaterialApplication.js +7 -2
- package/dist/hooks/useOceanMaterial.d.ts +11 -1
- package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
- package/dist/hooks/useOceanMaterial.js +185 -27
- package/dist/hooks/usePathAnimation.d.ts +8 -0
- package/dist/hooks/usePathAnimation.d.ts.map +1 -1
- package/dist/hooks/usePathAnimation.js +140 -59
- package/dist/hooks/useResolvedLayout.d.ts +10 -0
- package/dist/hooks/useResolvedLayout.d.ts.map +1 -0
- package/dist/hooks/useResolvedLayout.js +17 -0
- package/dist/hooks/useTimeLighting.d.ts +36 -0
- package/dist/hooks/useTimeLighting.d.ts.map +1 -0
- package/dist/hooks/useTimeLighting.js +67 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/operations/catalogue/shaderLayers.d.ts.map +1 -1
- package/dist/operations/catalogue/shaderLayers.js +26 -3
- package/dist/render/renderLive.d.ts +11 -0
- package/dist/render/renderLive.d.ts.map +1 -0
- package/dist/render/renderLive.js +57 -0
- 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 +35 -5
- package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +12 -0
- package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
- package/dist/shaders/ocean/OceanSurfaceMaterial.js +55 -7
- package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
- package/dist/shaders/terrain/TerrainMaterial.js +28 -0
- package/dist/triggers/kinds/change.js +1 -1
- package/dist/utils/composerHostedPass.d.ts +74 -0
- package/dist/utils/composerHostedPass.d.ts.map +1 -0
- package/dist/utils/composerHostedPass.js +63 -0
- package/dist/utils/geometryScript.d.ts +17 -0
- package/dist/utils/geometryScript.d.ts.map +1 -0
- package/dist/utils/geometryScript.js +92 -0
- package/dist/utils/geometryScript.worker.d.ts +2 -0
- package/dist/utils/geometryScript.worker.d.ts.map +1 -0
- package/dist/utils/geometryScript.worker.js +42 -0
- package/dist/utils/groundRegistry.d.ts +11 -0
- package/dist/utils/groundRegistry.d.ts.map +1 -0
- package/dist/utils/groundRegistry.js +39 -0
- package/dist/utils/instancingSupport.d.ts +9 -0
- package/dist/utils/instancingSupport.d.ts.map +1 -0
- package/dist/utils/instancingSupport.js +13 -0
- package/dist/utils/landPatch.d.ts +26 -5
- package/dist/utils/landPatch.d.ts.map +1 -1
- package/dist/utils/landPatch.js +124 -9
- package/dist/utils/layoutPlacement.d.ts +30 -0
- package/dist/utils/layoutPlacement.d.ts.map +1 -0
- package/dist/utils/layoutPlacement.js +113 -0
- package/dist/utils/linkRegistry.d.ts +15 -0
- package/dist/utils/linkRegistry.d.ts.map +1 -0
- package/dist/utils/linkRegistry.js +11 -0
- package/dist/utils/shapes.d.ts +28 -2
- package/dist/utils/shapes.d.ts.map +1 -1
- package/dist/utils/shapes.js +32 -3
- package/dist/utils/sharedParts.d.ts +61 -0
- package/dist/utils/sharedParts.d.ts.map +1 -0
- package/dist/utils/sharedParts.js +268 -0
- package/dist/utils/svgAsset.d.ts +6 -0
- package/dist/utils/svgAsset.d.ts.map +1 -0
- package/dist/utils/svgAsset.js +46 -0
- package/dist/utils/waterLight.d.ts +29 -0
- package/dist/utils/waterLight.d.ts.map +1 -0
- package/dist/utils/waterLight.js +67 -0
- package/dist/utils/waterReflection.d.ts +185 -0
- package/dist/utils/waterReflection.d.ts.map +1 -0
- package/dist/utils/waterReflection.js +616 -0
- package/package.json +6 -4
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useCallback, useMemo, useSyncExternalStore } from 'react';
|
|
2
|
+
import { SceneActions, patchTimeSettings, patchSunShadows, patchSunMultipliers } from '@3driseai/3drise-core';
|
|
3
|
+
const noopUnsubscribe = () => { };
|
|
4
|
+
/**
|
|
5
|
+
* The applied action patch for one action address, or undefined.
|
|
6
|
+
*
|
|
7
|
+
* For the keyed views ('render', 'time'): their patch is not laid over one
|
|
8
|
+
* settings object but split across several (post-processing, sky.sunSystem, the
|
|
9
|
+
* HDR block, time settings), so each renderer reads the patch and lays its own
|
|
10
|
+
* part over its own settings (patchPostProcessing, patchHdr, patchSunShadows,
|
|
11
|
+
* patchTimeSettings, patchSunMultipliers). Subscribes to that one address only.
|
|
12
|
+
* For everything else use useRuntimeSettings.
|
|
13
|
+
*/
|
|
14
|
+
export function useActionPatch(state) {
|
|
15
|
+
const subscribe = useCallback((listener) => (state ? SceneActions.subscribe(state, listener) : noopUnsubscribe), [state]);
|
|
16
|
+
const getSnapshot = useCallback(() => SceneActions.getPatch(state), [state]);
|
|
17
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
18
|
+
}
|
|
19
|
+
export default useActionPatch;
|
|
20
|
+
/** Time settings with an applied 'time' action laid over them (`t` itself when none). */
|
|
21
|
+
export function useRuntimeTime(t) {
|
|
22
|
+
const patch = useActionPatch('time');
|
|
23
|
+
return useMemo(() => patchTimeSettings(t, patch), [t, patch]);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* sky settings whose sunSystem carries the applied 'render' (shadows) and 'time'
|
|
27
|
+
* (sun / moon multipliers) actions. Same object when neither touches it.
|
|
28
|
+
*/
|
|
29
|
+
export function useRuntimeSunSystem(sky) {
|
|
30
|
+
const renderPatch = useActionPatch('render');
|
|
31
|
+
const timePatch = useActionPatch('time');
|
|
32
|
+
return useMemo(() => {
|
|
33
|
+
if (!sky?.sunSystem)
|
|
34
|
+
return sky;
|
|
35
|
+
const sunSystem = patchSunMultipliers(patchSunShadows(sky.sunSystem, renderPatch), timePatch);
|
|
36
|
+
return sunSystem === sky.sunSystem ? sky : { ...sky, sunSystem };
|
|
37
|
+
}, [sky, renderPatch, timePatch]);
|
|
38
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCloudSun.d.ts","sourceRoot":"","sources":["../../src/hooks/useCloudSun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,kFAAkF;IAClF,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,sDAAsD;IACtD,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CA2BlI;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,IAAI,aAAa,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"useCloudSun.d.ts","sourceRoot":"","sources":["../../src/hooks/useCloudSun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,kFAAkF;IAClF,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,sDAAsD;IACtD,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAaD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CA2BlI;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,IAAI,aAAa,CAAA;CAAE,CAoD/G;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -74,8 +74,9 @@ export function useCloudSun(options = {}) {
|
|
|
74
74
|
else if (rendered) {
|
|
75
75
|
dir = scratch.copy(rendered.sunDirection);
|
|
76
76
|
}
|
|
77
|
-
else if (timeSettings?.enabled) {
|
|
78
|
-
// Same source SunLight reads, so the two can never disagree.
|
|
77
|
+
else if (timeSettings?.enabled || (!timeSettings && skySystemManager.isEnabled())) {
|
|
78
|
+
// Same source SunLight reads, so the two can never disagree. A caller without timeSettings
|
|
79
|
+
// (environment, land and urban objects) still follows the clock while the sun rig is on.
|
|
79
80
|
const sunDirection = skySystemManager.getState()?.sunDirection;
|
|
80
81
|
dir = sunDirection
|
|
81
82
|
? scratch.copy(sunDirection).normalize()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCommittedInstance.d.ts","sourceRoot":"","sources":["../../src/hooks/useCommittedInstance.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAExE,MAAM,WAAW,UAAU;IAAG,OAAO,IAAI,IAAI,CAAA;CAAE;AAE/C,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,CAkBpG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// useCommittedInstance — a disposable three.js instance owned by a component
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// For families whose core builds plain three.js (urban, sports…): build(…) -> { dispose() }.
|
|
6
|
+
// The instance is built in a useMemo and disposed only when it is really gone:
|
|
7
|
+
//
|
|
8
|
+
// - React StrictMode (dev) calls a memo factory twice on mount and keeps one result. Every
|
|
9
|
+
// build is listed, and the first effect disposes the ones that were not committed — an
|
|
10
|
+
// uncommitted build would leak its geometry and, worse, its registered lamps (ghost lamps).
|
|
11
|
+
// - StrictMode also runs an effect's cleanup right after mount and mounts again with the same
|
|
12
|
+
// memoised instance. An eager dispose there empties the instance (unregisters its lamps,
|
|
13
|
+
// empties its group) while it stays on screen. The cleanup is deferred one tick and skipped
|
|
14
|
+
// when the same instance is mounted again.
|
|
15
|
+
// - When deps change (a structural rebuild that builds a new instance), the previous one is
|
|
16
|
+
// disposed as soon as the new one commits.
|
|
17
|
+
//
|
|
18
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
19
|
+
export function useCommittedInstance(factory, deps) {
|
|
20
|
+
const built = useRef([]);
|
|
21
|
+
const live = useRef(null);
|
|
22
|
+
const instance = useMemo(() => { const inst = factory(); built.current.push(inst); return inst; }, deps); // eslint-disable-line react-hooks/exhaustive-deps
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
live.current = instance;
|
|
25
|
+
// the uncommitted StrictMode twin, or the instance this one replaced
|
|
26
|
+
built.current = built.current.filter((inst) => { if (inst === instance)
|
|
27
|
+
return true; inst.dispose(); return false; });
|
|
28
|
+
return () => {
|
|
29
|
+
live.current = null;
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
if (live.current === instance)
|
|
32
|
+
return; // StrictMode remount of the same instance
|
|
33
|
+
const k = built.current.indexOf(instance);
|
|
34
|
+
if (k >= 0) {
|
|
35
|
+
built.current.splice(k, 1);
|
|
36
|
+
instance.dispose();
|
|
37
|
+
}
|
|
38
|
+
}, 0);
|
|
39
|
+
};
|
|
40
|
+
}, [instance]);
|
|
41
|
+
return instance;
|
|
42
|
+
}
|
|
@@ -30,7 +30,7 @@ export declare const CONFIG_LIVE_KEY = "__configLive";
|
|
|
30
30
|
/** Objects too: a land object's texture layers drag live as one `textures` record. */
|
|
31
31
|
export type ConfigLiveValue = number | string | boolean | object;
|
|
32
32
|
/** Generative families that support live config editing. */
|
|
33
|
-
export type ConfigLiveFamily = 'particles' | 'effects' | 'grids' | 'lights' | 'environment' | 'space' | 'land' | 'text' | 'image' | 'gallery';
|
|
33
|
+
export type ConfigLiveFamily = 'particles' | 'effects' | 'grids' | 'lights' | 'environment' | 'space' | 'land' | 'text' | 'image' | 'gallery' | 'urban' | 'vegetation' | 'sports' | 'water';
|
|
34
34
|
export interface ConfigLiveHandle {
|
|
35
35
|
id: string;
|
|
36
36
|
family: ConfigLiveFamily;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfigLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfigLive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oFAAoF;AACpF,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,sFAAsF;AACtF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useConfigLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfigLive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oFAAoF;AACpF,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,sFAAsF;AACtF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5L,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CAClD;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAQhE;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAYpG;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EACnC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,IAAI,GAC5D,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CA8BnD;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContinuousEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useContinuousEffects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,2BAA2B;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACvC,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC9D;AAGD,eAAO,MAAM,oBAAoB,GAEjC,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,2BAAgC,EAAE,eAAe,cAAc,KAAG,
|
|
1
|
+
{"version":3,"file":"useContinuousEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useContinuousEffects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,2BAA2B;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACvC,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC9D;AAGD,eAAO,MAAM,oBAAoB,GAEjC,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,2BAAgC,EAAE,eAAe,cAAc,KAAG,0BA+JxH,CAAC;AACF,eAAe,oBAAoB,CAAC"}
|
|
@@ -11,7 +11,7 @@ objectSettings, options = {}, objectSource) => {
|
|
|
11
11
|
const { enabled = true, animateMaterial = true, hovered = false } = options;
|
|
12
12
|
// const { object } = ref || {};
|
|
13
13
|
// Path animation hook for animations with pathId
|
|
14
|
-
const { startPathAnimation, updatePathAnimation, isAnimating: isPathAnimating, stopPathAnimation, } = usePathAnimation();
|
|
14
|
+
const { startPathAnimation, updatePathAnimation, isAnimating: isPathAnimating, stopPathAnimation, setPathOptions, } = usePathAnimation();
|
|
15
15
|
const activePathIdRef = useRef(null);
|
|
16
16
|
const effectStateRef = useRef(null);
|
|
17
17
|
// Cache children with materials to avoid traverse() every frame
|
|
@@ -50,33 +50,43 @@ objectSettings, options = {}, objectSource) => {
|
|
|
50
50
|
// Done lazily inside the frame loop instead of in an effect: the ref only
|
|
51
51
|
// attaches after render, so an effect keyed on the object would miss the
|
|
52
52
|
// first (and often the only) chance to see it. See the swap check below.
|
|
53
|
+
// The path animation the settings ask for. Started from the frame loop, not here: on load the
|
|
54
|
+
// object's ref attaches after render and the path may reach the registry after the object
|
|
55
|
+
// (project assets), so the start is retried each frame until both are there.
|
|
56
|
+
const wantedPathRef = useRef(null);
|
|
53
57
|
useEffect(() => {
|
|
54
|
-
const object = resolveObject3D(objectSource);
|
|
55
|
-
if (!enabled || !object)
|
|
56
|
-
return;
|
|
57
|
-
// Path animations come from transform.animations
|
|
58
58
|
const animations = objectSettings?.animations?.transform?.animations || [];
|
|
59
|
-
const pathAnimation = animations.find(anim => anim.pathId && anim.active);
|
|
60
|
-
if (pathAnimation?.pathId) {
|
|
61
|
-
|
|
62
|
-
if (activePathIdRef.current
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
ease: pathAnimation.ease,
|
|
66
|
-
loop: pathAnimation.loop,
|
|
67
|
-
yoyo: pathAnimation.yoyo,
|
|
68
|
-
applyRotation: pathAnimation.applyRotation,
|
|
69
|
-
offset: pathAnimation.offset,
|
|
70
|
-
keepOriginalTransform: pathAnimation.keepOriginalTransform,
|
|
71
|
-
});
|
|
59
|
+
const pathAnimation = enabled ? animations.find(anim => anim.pathId && anim.active) : undefined;
|
|
60
|
+
if (!pathAnimation?.pathId) {
|
|
61
|
+
wantedPathRef.current = null;
|
|
62
|
+
if (activePathIdRef.current) {
|
|
63
|
+
stopPathAnimation();
|
|
64
|
+
activePathIdRef.current = null;
|
|
72
65
|
}
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const options = {
|
|
69
|
+
ease: pathAnimation.ease,
|
|
70
|
+
loop: pathAnimation.loop,
|
|
71
|
+
yoyo: pathAnimation.yoyo,
|
|
72
|
+
applyRotation: pathAnimation.applyRotation,
|
|
73
|
+
offset: pathAnimation.offset,
|
|
74
|
+
reverse: pathAnimation.reverse,
|
|
75
|
+
delay: (pathAnimation.delay ?? 0) / 1000,
|
|
76
|
+
restRotation: objectSettings?.meshSettings?.rotation,
|
|
77
|
+
keepOriginalTransform: pathAnimation.keepOriginalTransform,
|
|
78
|
+
};
|
|
79
|
+
wantedPathRef.current = { pathId: pathAnimation.pathId, duration: pathAnimation.duration / 1000, options };
|
|
80
|
+
if (activePathIdRef.current === pathAnimation.pathId) {
|
|
81
|
+
// same path, settings edited (offset, rotation, loop…): apply them to the running animation
|
|
82
|
+
setPathOptions({ ease: options.ease, loop: options.loop, yoyo: options.yoyo, applyRotation: options.applyRotation, offset: options.offset, reverse: options.reverse, restRotation: options.restRotation });
|
|
73
83
|
}
|
|
74
84
|
else if (activePathIdRef.current) {
|
|
75
|
-
//
|
|
85
|
+
// another path: the frame loop starts it
|
|
76
86
|
stopPathAnimation();
|
|
77
87
|
activePathIdRef.current = null;
|
|
78
88
|
}
|
|
79
|
-
}, [enabled, objectSettings?.animations?.transform?.animations,
|
|
89
|
+
}, [enabled, objectSettings?.animations?.transform?.animations, objectSettings?.meshSettings?.rotation, startPathAnimation, stopPathAnimation, setPathOptions]);
|
|
80
90
|
useFrame((state, delta) => {
|
|
81
91
|
const object = resolveObject3D(objectSource);
|
|
82
92
|
if (!enabled || !object || !objectSettings) {
|
|
@@ -103,6 +113,12 @@ objectSettings, options = {}, objectSource) => {
|
|
|
103
113
|
const time = state.clock.getElapsedTime();
|
|
104
114
|
const mouse = state.pointer;
|
|
105
115
|
const currentTime = Date.now();
|
|
116
|
+
// Start the wanted path animation once its path is in the registry (retried until it is)
|
|
117
|
+
const wanted = wantedPathRef.current;
|
|
118
|
+
if (wanted && activePathIdRef.current !== wanted.pathId
|
|
119
|
+
&& startPathAnimation(wanted.pathId, wanted.duration, wanted.options)) {
|
|
120
|
+
activePathIdRef.current = wanted.pathId;
|
|
121
|
+
}
|
|
106
122
|
// Update path animation if active
|
|
107
123
|
const pathIsActive = isPathAnimating();
|
|
108
124
|
if (pathIsActive) {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type GridLayout } from '@3driseai/3drise-core';
|
|
2
|
+
/**
|
|
3
|
+
* The grid a reference names ('preset:<id>' or a saved grid's asset id — core gridLayoutRefs), kept
|
|
4
|
+
* current: null until a saved grid is registered (load order), and its new version after an edit.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useGridLayout(ref: string | null | undefined): GridLayout | null;
|
|
7
|
+
//# sourceMappingURL=useGridLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGridLayout.d.ts","sourceRoot":"","sources":["../../src/hooks/useGridLayout.ts"],"names":[],"mappings":"AACA,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAErH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAG/E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useMemo, useSyncExternalStore } from 'react';
|
|
2
|
+
import { resolveGridLayout, subscribeGridLayouts, gridLayoutsVersion } from '@3driseai/3drise-core';
|
|
3
|
+
/**
|
|
4
|
+
* The grid a reference names ('preset:<id>' or a saved grid's asset id — core gridLayoutRefs), kept
|
|
5
|
+
* current: null until a saved grid is registered (load order), and its new version after an edit.
|
|
6
|
+
*/
|
|
7
|
+
export function useGridLayout(ref) {
|
|
8
|
+
const version = useSyncExternalStore(subscribeGridLayouts, gridLayoutsVersion, gridLayoutsVersion);
|
|
9
|
+
return useMemo(() => resolveGridLayout(ref), [ref, version]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInteractionEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useInteractionEffects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInteractionEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useInteractionEffects.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,uBAAuB,CAAC;AAEtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,MAAM,WAAW,4BAA4B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;CAC3C;AA4DD,eAAO,MAAM,YAAY,GAAI,gBAAgB,qBAAqB,GAAG,IAAI,EAAE,UAAS,4BAAiC,EAAE,eAAe,cAAc,KAAG,2BA8CtJ,CAAC;AACF,eAAe,YAAY,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
1
2
|
import { useFrame } from "@react-three/fiber";
|
|
2
|
-
import { detectAnimatableDomain, handleEdgesMouseMove, handleMaterialMouseMove, handleTransformMouseMove, } from '@3driseai/3drise-core';
|
|
3
|
+
import { AnimationTargetState, PointerHistory, detectAnimatableDomain, handleEdgesMouseMove, handleMaterialMouseMove, handleMaterialMouseMoveTargets, handleTransformMouseMove, handleTransformMouseMoveTargets, isTargetedMouseMove, targetRootKind, } from '@3driseai/3drise-core';
|
|
3
4
|
import { resolveObject3D } from "../utils/resolveObject3D.js";
|
|
4
5
|
// =============================================================================
|
|
5
6
|
// FLAT-SHAPE BACK COMPAT
|
|
@@ -51,21 +52,59 @@ function resolveDomains(settings) {
|
|
|
51
52
|
// =============================================================================
|
|
52
53
|
// useMouseMove
|
|
53
54
|
// =============================================================================
|
|
55
|
+
/** Rows on a group / model split by scope: self rows keep the old whole-object path. */
|
|
56
|
+
function splitByScope(object, properties) {
|
|
57
|
+
const self = [];
|
|
58
|
+
const targeted = [];
|
|
59
|
+
for (const p of properties)
|
|
60
|
+
(isTargetedMouseMove(object, p) ? targeted : self).push(p);
|
|
61
|
+
return { self, targeted };
|
|
62
|
+
}
|
|
54
63
|
export const useMouseMove = (objectSettings, options = {}, objectSource) => {
|
|
55
64
|
const { enabled = true, animateMaterial = true } = options;
|
|
65
|
+
// Each / Targets rows (groups, models): rest values + putting parts back, and the
|
|
66
|
+
// pointer's recent path for the follow-lag stagger.
|
|
67
|
+
const targetsRef = useRef(null);
|
|
68
|
+
const historyRef = useRef(null);
|
|
69
|
+
useEffect(() => () => { targetsRef.current?.dispose(); targetsRef.current = null; }, []);
|
|
56
70
|
useFrame((state) => {
|
|
57
71
|
const object = resolveObject3D(objectSource);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
const domains = enabled && object && objectSettings ? resolveDomains(objectSettings) : null;
|
|
73
|
+
if (!object || !objectSettings || !domains?.enabled) {
|
|
74
|
+
if (targetsRef.current) {
|
|
75
|
+
targetsRef.current.dispose();
|
|
76
|
+
targetsRef.current = null;
|
|
77
|
+
}
|
|
62
78
|
return;
|
|
79
|
+
}
|
|
63
80
|
const pointer = state.pointer;
|
|
64
|
-
|
|
65
|
-
|
|
81
|
+
const transformOn = !!(domains.transform?.enabled && domains.transform.properties?.length);
|
|
82
|
+
const materialOn = !!(animateMaterial && domains.material?.enabled && domains.material.properties?.length);
|
|
83
|
+
const scoped = !!targetRootKind(object);
|
|
84
|
+
if (scoped && targetsRef.current?.object !== object) {
|
|
85
|
+
targetsRef.current?.dispose();
|
|
86
|
+
targetsRef.current = new AnimationTargetState(object);
|
|
87
|
+
}
|
|
88
|
+
const targets = scoped ? targetsRef.current : null;
|
|
89
|
+
const transformRows = transformOn ? (targets ? splitByScope(object, domains.transform.properties) : { self: domains.transform.properties, targeted: [] }) : null;
|
|
90
|
+
const materialRows = materialOn ? (targets ? splitByScope(object, domains.material.properties) : { self: domains.material.properties, targeted: [] }) : null;
|
|
91
|
+
if (transformRows?.self.length) {
|
|
92
|
+
handleTransformMouseMove({ object, meshSettings: objectSettings.meshSettings }, transformRows.self, pointer);
|
|
93
|
+
}
|
|
94
|
+
if (materialRows?.self.length) {
|
|
95
|
+
handleMaterialMouseMove({ object, materialSettings: objectSettings.materialSettings }, materialRows.self, pointer);
|
|
66
96
|
}
|
|
67
|
-
if (
|
|
68
|
-
|
|
97
|
+
if (targets) {
|
|
98
|
+
const now = state.clock.getElapsedTime();
|
|
99
|
+
const history = historyRef.current ?? (historyRef.current = new PointerHistory());
|
|
100
|
+
history.push(now, pointer.x, pointer.y);
|
|
101
|
+
targets.beginFrame();
|
|
102
|
+
if (transformRows?.targeted.length)
|
|
103
|
+
handleTransformMouseMoveTargets(targets, transformRows.targeted, history, now);
|
|
104
|
+
if (materialRows?.targeted.length)
|
|
105
|
+
handleMaterialMouseMoveTargets(targets, materialRows.targeted, history, now);
|
|
106
|
+
// Parts a row stopped driving (removed, switched off, scope changed) go back to rest.
|
|
107
|
+
targets.endFrame();
|
|
69
108
|
}
|
|
70
109
|
if (domains.edges?.enabled && domains.edges.properties?.length) {
|
|
71
110
|
handleEdgesMouseMove({ object, edgesMaterialSettings: objectSettings.edgesSettings?.materialSettings }, domains.edges.properties, pointer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLightLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useLightLive.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"useLightLive.d.ts","sourceRoot":"","sources":["../../src/hooks/useLightLive.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAiB7C,CAAC;AAKF,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAyB1H;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EACnC,QAAQ,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,EACjC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAMnD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -12,6 +12,8 @@ export const LIGHT_STRUCTURAL = [
|
|
|
12
12
|
// candle: the wax and wick are rebuilt, and the flame mode swaps meshes.
|
|
13
13
|
'body', 'waxColor', 'flameMode', 'smoke',
|
|
14
14
|
'height', 'radius', 'melt', 'flameHeight', 'flameWidth',
|
|
15
|
+
// projector: the lamp swaps the lens shader and the bank and pool mask are rebuilt ('rows' is above).
|
|
16
|
+
'lamp', 'columns', 'aspect', 'edgeSoftness',
|
|
15
17
|
'shadow.enabled', 'shadow.mapSize', 'shadow.cameraNear', 'shadow.cameraFar',
|
|
16
18
|
'shadow.cameraLeft', 'shadow.cameraRight', 'shadow.cameraTop', 'shadow.cameraBottom',
|
|
17
19
|
'shadow.cameraFov', 'shadow.focus',
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A linked instance's view of its source (linkRegistry): 'shared' (the source draws it),
|
|
3
|
+
* 'fallback' (the source cannot share — render its look on your own) or 'pending' (the
|
|
4
|
+
* source has not drawn yet). Re-renders only when the status changes.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useLinkStatus(sourceId: string | null): 'shared' | 'fallback' | 'pending';
|
|
7
|
+
//# sourceMappingURL=useLinkStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLinkStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useLinkStatus.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAQxF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useRef, useState } from 'react';
|
|
2
|
+
import { useFrame } from '@react-three/fiber';
|
|
3
|
+
import { linkState } from '../utils/linkRegistry.js';
|
|
4
|
+
/**
|
|
5
|
+
* A linked instance's view of its source (linkRegistry): 'shared' (the source draws it),
|
|
6
|
+
* 'fallback' (the source cannot share — render its look on your own) or 'pending' (the
|
|
7
|
+
* source has not drawn yet). Re-renders only when the status changes.
|
|
8
|
+
*/
|
|
9
|
+
export function useLinkStatus(sourceId) {
|
|
10
|
+
const [status, setStatus] = useState('pending');
|
|
11
|
+
const last = useRef(status);
|
|
12
|
+
useFrame(() => {
|
|
13
|
+
const next = sourceId ? linkState(sourceId)?.status ?? 'pending' : 'pending';
|
|
14
|
+
if (next !== last.current) {
|
|
15
|
+
last.current = next;
|
|
16
|
+
setStatus(next);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return status;
|
|
20
|
+
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { MaterialSettings } from '@3driseai/3drise-core';
|
|
2
2
|
import type { Object3DSource } from "../utils/resolveObject3D";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* `rebuildKey`: changes when the object's meshes are rebuilt without a material change
|
|
5
|
+
* (a layout switched on / off, copies added, a variant mix changed): the new meshes
|
|
6
|
+
* mount with their default material, so the material is applied again.
|
|
7
|
+
*/
|
|
8
|
+
export declare const useMaterialApplication: (source: Object3DSource, materialSettings: MaterialSettings, shouldApply3driseMaterial?: boolean, onApplied?: () => void, rebuildKey?: string) => void;
|
|
4
9
|
//# sourceMappingURL=useMaterialApplication.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMaterialApplication.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialApplication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,EAAE,kBAAkB,gBAAgB,EAAE,4BAA4B,OAAO,EAAE,YAAY,MAAM,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"useMaterialApplication.d.ts","sourceRoot":"","sources":["../../src/hooks/useMaterialApplication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,EAAE,kBAAkB,gBAAgB,EAAE,4BAA4B,OAAO,EAAE,YAAY,MAAM,IAAI,EAAE,aAAa,MAAM,KAAG,IAyIrL,CAAC"}
|
|
@@ -8,7 +8,12 @@
|
|
|
8
8
|
import { useEffect, useRef } from 'react';
|
|
9
9
|
import { createAndApplyMaterial, MATERIAL_INSTANCE_KEY, MaterialRegistryAPI, ObjectManager, resolveTextures, traverseSkippingEdgesAndEffects } from '@3driseai/3drise-core';
|
|
10
10
|
import { resolveObject3D } from "../utils/resolveObject3D.js";
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* `rebuildKey`: changes when the object's meshes are rebuilt without a material change
|
|
13
|
+
* (a layout switched on / off, copies added, a variant mix changed): the new meshes
|
|
14
|
+
* mount with their default material, so the material is applied again.
|
|
15
|
+
*/
|
|
16
|
+
export const useMaterialApplication = (source, materialSettings, shouldApply3driseMaterial, onApplied, rebuildKey) => {
|
|
12
17
|
// Track all material instances we've created so we can release them on change/unmount
|
|
13
18
|
// const { getTypeByName } = useObjectTypes();
|
|
14
19
|
const activeInstancesRef = useRef([]);
|
|
@@ -34,7 +39,7 @@ export const useMaterialApplication = (source, materialSettings, shouldApply3dri
|
|
|
34
39
|
return () => {
|
|
35
40
|
releaseActiveInstances();
|
|
36
41
|
};
|
|
37
|
-
}, [materialSettings, source]);
|
|
42
|
+
}, [materialSettings, source, rebuildKey]);
|
|
38
43
|
// Unmount-only cleanup: dispose everything once the mesh leaves the scene.
|
|
39
44
|
useEffect(() => {
|
|
40
45
|
return () => {
|
|
@@ -35,13 +35,23 @@ export interface UseOceanMaterialOptions {
|
|
|
35
35
|
* merged in — where a host does its own per-frame work (snapping the
|
|
36
36
|
* clipmap to the camera, say) with the config it is actually rendering. */
|
|
37
37
|
onFrame?(config: OceanConfig, quality: OceanQualityConfig, state: RootState): void;
|
|
38
|
+
/** The world ocean: wins the reflection election outright when it asks for
|
|
39
|
+
* planar, and its plane is at seaLevel under the camera. A placed body's
|
|
40
|
+
* plane is its root. */
|
|
41
|
+
world?: boolean;
|
|
38
42
|
}
|
|
39
43
|
export interface OceanMaterialHandle {
|
|
40
44
|
material: OceanSurfaceMaterial;
|
|
41
45
|
/** Attach to the host's root group: it carries the scene id and the live
|
|
42
46
|
* handle a controller reaches through `findById`. */
|
|
43
47
|
rootRef: React.RefObject<THREE.Group | null>;
|
|
48
|
+
/** Attach to the host's mesh(es). Runs the one planar reflection pass when
|
|
49
|
+
* this surface won the election this frame — from onBeforeRender, never a
|
|
50
|
+
* positive-priority useFrame (the cloud pass owns the render loop). */
|
|
51
|
+
onBeforeRender: (renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera) => void;
|
|
52
|
+
/** A placed body's mesh: closes the visibility query opened in onBeforeRender. */
|
|
53
|
+
onAfterRender: () => void;
|
|
44
54
|
}
|
|
45
|
-
export declare function useOceanMaterial({ id, config, quality, skySettings, timeSettings, sunIntensity, animations, mouseMove, terrain, onFrame, }: UseOceanMaterialOptions): OceanMaterialHandle;
|
|
55
|
+
export declare function useOceanMaterial({ id, config, quality, skySettings, timeSettings, sunIntensity, animations, mouseMove, terrain, onFrame, world, }: UseOceanMaterialOptions): OceanMaterialHandle;
|
|
46
56
|
export default useOceanMaterial;
|
|
47
57
|
//# sourceMappingURL=useOceanMaterial.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOceanMaterial.d.ts","sourceRoot":"","sources":["../../src/hooks/useOceanMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"useOceanMaterial.d.ts","sourceRoot":"","sources":["../../src/hooks/useOceanMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAiB7E,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AASrI;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;yDAEqD;IACrD,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B;;gFAE4E;IAC5E,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACnF;;6BAEyB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;0DACsD;IACtD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC7C;;4EAEwE;IACxE,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;IAClG,kFAAkF;IAClF,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,EAAE,EACF,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAgB,EAChB,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAa,GAChB,EAAE,uBAAuB,GAAG,mBAAmB,CA6Q/C;AAED,eAAe,gBAAgB,CAAC"}
|