@aura3d/rendering 1.5.2 → 2.0.0
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/README.md +8 -2
- package/dist/ArchitecturalLighting.d.ts +35 -0
- package/dist/ArchitecturalLighting.d.ts.map +1 -0
- package/dist/ArchitecturalLighting.js +162 -0
- package/dist/ArchitecturalLighting.js.map +1 -0
- package/dist/ArchitecturalMaterialCatalog.d.ts +1 -1
- package/dist/ArchitecturalMaterialCatalog.d.ts.map +1 -1
- package/dist/ArchitecturalMaterialCatalog.js +1 -1
- package/dist/ArchitecturalMaterialCatalog.js.map +1 -1
- package/dist/ArchitecturalMeasurement.d.ts +27 -0
- package/dist/ArchitecturalMeasurement.d.ts.map +1 -0
- package/dist/ArchitecturalMeasurement.js +112 -0
- package/dist/ArchitecturalMeasurement.js.map +1 -0
- package/dist/CanonicalProductScene.d.ts +13 -0
- package/dist/CanonicalProductScene.d.ts.map +1 -0
- package/dist/CanonicalProductScene.js +78 -0
- package/dist/CanonicalProductScene.js.map +1 -0
- package/dist/CascadedShadowMaps.d.ts +1 -1
- package/dist/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/CascadedShadowMaps.js +1 -1
- package/dist/CascadedShadowMaps.js.map +1 -1
- package/dist/DepthPass.d.ts +1 -1
- package/dist/DepthPass.d.ts.map +1 -1
- package/dist/DepthPass.js +2 -2
- package/dist/DepthPass.js.map +1 -1
- package/dist/EnvironmentBackgroundPass.d.ts +1 -1
- package/dist/EnvironmentBackgroundPass.d.ts.map +1 -1
- package/dist/EnvironmentBackgroundPass.js +2 -2
- package/dist/EnvironmentBackgroundPass.js.map +1 -1
- package/dist/EnvironmentPlatform.js +2 -2
- package/dist/EnvironmentPlatform.js.map +1 -1
- package/dist/ForwardPass.d.ts +1 -1
- package/dist/ForwardPass.d.ts.map +1 -1
- package/dist/ForwardPass.js +24 -10
- package/dist/ForwardPass.js.map +1 -1
- package/dist/Geometry.d.ts +2 -0
- package/dist/Geometry.d.ts.map +1 -1
- package/dist/Geometry.js +15 -0
- package/dist/Geometry.js.map +1 -1
- package/dist/InstancedPBRMaterial.js +1 -1
- package/dist/InstancedPBRMaterial.js.map +1 -1
- package/dist/InstancedUnlitMaterial.js +1 -1
- package/dist/InstancedUnlitMaterial.js.map +1 -1
- package/dist/Material.js +2 -2
- package/dist/Material.js.map +1 -1
- package/dist/MaterialBinding.js +4 -4
- package/dist/MaterialBinding.js.map +1 -1
- package/dist/MaterialInstance.js +2 -2
- package/dist/MaterialInstance.js.map +1 -1
- package/dist/MorphUnlitMaterial.js +1 -1
- package/dist/MorphUnlitMaterial.js.map +1 -1
- package/dist/NormalMappedPBRMaterial.js +1 -1
- package/dist/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/OceanSurface.d.ts +62 -0
- package/dist/OceanSurface.d.ts.map +1 -0
- package/dist/OceanSurface.js +240 -0
- package/dist/OceanSurface.js.map +1 -0
- package/dist/PBRMaterial.d.ts.map +1 -1
- package/dist/PBRMaterial.js +3 -3
- package/dist/PBRMaterial.js.map +1 -1
- package/dist/PortableShaderMaterial.d.ts +60 -0
- package/dist/PortableShaderMaterial.d.ts.map +1 -0
- package/dist/PortableShaderMaterial.js +223 -0
- package/dist/PortableShaderMaterial.js.map +1 -0
- package/dist/PostProcessPass.d.ts.map +1 -1
- package/dist/PostProcessPass.js +30 -6
- package/dist/PostProcessPass.js.map +1 -1
- package/dist/ProceduralTexture.d.ts +27 -0
- package/dist/ProceduralTexture.d.ts.map +1 -0
- package/dist/ProceduralTexture.js +336 -0
- package/dist/ProceduralTexture.js.map +1 -0
- package/dist/ProductTurntable.d.ts +96 -0
- package/dist/ProductTurntable.d.ts.map +1 -0
- package/dist/ProductTurntable.js +639 -0
- package/dist/ProductTurntable.js.map +1 -0
- package/dist/RenderDevice.d.ts +30 -0
- package/dist/RenderDevice.d.ts.map +1 -1
- package/dist/RenderDevice.js.map +1 -1
- package/dist/Renderer.d.ts +3 -2
- package/dist/Renderer.d.ts.map +1 -1
- package/dist/Renderer.js +23 -9
- package/dist/Renderer.js.map +1 -1
- package/dist/RendererPostprocessPlan.js +4 -4
- package/dist/RendererPostprocessPlan.js.map +1 -1
- package/dist/ScreenSpaceLineMaterial.js +1 -1
- package/dist/ScreenSpaceLineMaterial.js.map +1 -1
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +81 -19
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts +2 -78
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +127 -793
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShaderLibraryCore.d.ts +100 -0
- package/dist/ShaderLibraryCore.d.ts.map +1 -0
- package/dist/ShaderLibraryCore.js +800 -0
- package/dist/ShaderLibraryCore.js.map +1 -0
- package/dist/ShaderModule.d.ts +1 -1
- package/dist/ShaderModule.d.ts.map +1 -1
- package/dist/ShaderModule.js +4 -2
- package/dist/ShaderModule.js.map +1 -1
- package/dist/ShadowPass.d.ts +1 -1
- package/dist/ShadowPass.d.ts.map +1 -1
- package/dist/ShadowPass.js +6 -4
- package/dist/ShadowPass.js.map +1 -1
- package/dist/SkinnedLitMaterial.js +1 -1
- package/dist/SkinnedLitMaterial.js.map +1 -1
- package/dist/SkinnedUnlitMaterial.js +1 -1
- package/dist/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/SpaceEnvironment.d.ts +54 -0
- package/dist/SpaceEnvironment.d.ts.map +1 -0
- package/dist/SpaceEnvironment.js +116 -0
- package/dist/SpaceEnvironment.js.map +1 -0
- package/dist/TerrainHeightfield.d.ts +60 -0
- package/dist/TerrainHeightfield.d.ts.map +1 -0
- package/dist/TerrainHeightfield.js +239 -0
- package/dist/TerrainHeightfield.js.map +1 -0
- package/dist/TextureBinding.d.ts +14 -0
- package/dist/TextureBinding.d.ts.map +1 -1
- package/dist/TextureBinding.js +17 -0
- package/dist/TextureBinding.js.map +1 -1
- package/dist/TexturedPBRMaterial.js +1 -1
- package/dist/TexturedPBRMaterial.js.map +1 -1
- package/dist/TexturedUnlitMaterial.js +1 -1
- package/dist/TexturedUnlitMaterial.js.map +1 -1
- package/dist/UnlitMaterial.js +1 -1
- package/dist/UnlitMaterial.js.map +1 -1
- package/dist/VegetationFixtures.d.ts +1 -1
- package/dist/VegetationFixtures.d.ts.map +1 -1
- package/dist/VegetationFixtures.js +1 -1
- package/dist/VegetationFixtures.js.map +1 -1
- package/dist/VegetationScatter.d.ts +68 -0
- package/dist/VegetationScatter.d.ts.map +1 -0
- package/dist/VegetationScatter.js +241 -0
- package/dist/VegetationScatter.js.map +1 -0
- package/dist/VoxelWorld.d.ts +51 -0
- package/dist/VoxelWorld.d.ts.map +1 -0
- package/dist/VoxelWorld.js +183 -0
- package/dist/VoxelWorld.js.map +1 -0
- package/dist/Weather.d.ts +44 -0
- package/dist/Weather.d.ts.map +1 -0
- package/dist/Weather.js +140 -0
- package/dist/Weather.js.map +1 -0
- package/dist/WebGL2Device.d.ts +22 -0
- package/dist/WebGL2Device.d.ts.map +1 -1
- package/dist/WebGL2Device.js +134 -23
- package/dist/WebGL2Device.js.map +1 -1
- package/dist/WebGPUDevice.d.ts +19 -2
- package/dist/WebGPUDevice.d.ts.map +1 -1
- package/dist/WebGPUDevice.js +188 -9
- package/dist/WebGPUDevice.js.map +1 -1
- package/dist/index.d.ts +25 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -19
- package/dist/index.js.map +1 -1
- package/dist/lean/LeanProductRenderer.d.ts +29 -0
- package/dist/lean/LeanProductRenderer.d.ts.map +1 -0
- package/dist/lean/LeanProductRenderer.js +38 -0
- package/dist/lean/LeanProductRenderer.js.map +1 -0
- package/dist/lean/LeanProductionRenderer.d.ts +38 -0
- package/dist/lean/LeanProductionRenderer.d.ts.map +1 -0
- package/dist/lean/LeanProductionRenderer.js +88 -0
- package/dist/lean/LeanProductionRenderer.js.map +1 -0
- package/dist/lean-runtime.d.ts +18 -0
- package/dist/lean-runtime.d.ts.map +1 -0
- package/dist/lean-runtime.js +13 -0
- package/dist/lean-runtime.js.map +1 -0
- package/dist/postprocess/EffectComposer.d.ts.map +1 -1
- package/dist/postprocess/EffectComposer.js +1 -3
- package/dist/postprocess/EffectComposer.js.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/production-runtime/PBRHDRPipeline.js +5 -1
- package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.d.ts +9 -0
- package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +5 -0
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionRuntimeRenderer.js +53 -5
- package/dist/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +10 -0
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGL2Renderer.js +21 -2
- package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js +4 -1
- package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/webgpu-device-entry.d.ts +25 -0
- package/dist/webgpu-device-entry.d.ts.map +1 -0
- package/dist/webgpu-device-entry.js +24 -0
- package/dist/webgpu-device-entry.js.map +1 -0
- package/dist/webgpu.d.ts +25 -0
- package/dist/webgpu.d.ts.map +1 -0
- package/dist/webgpu.js +24 -0
- package/dist/webgpu.js.map +1 -0
- package/package.json +11 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VegetationFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/VegetationFixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,yBAAyB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"VegetationFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/VegetationFixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sampleTerrainHeightfield } from "./
|
|
1
|
+
import { sampleTerrainHeightfield } from "./TerrainHeightfield.js";
|
|
2
2
|
export function sampleVegetationFixture(options) {
|
|
3
3
|
const terrain = options.terrain;
|
|
4
4
|
const seed = options.seed ?? terrain.seed ^ 0x6eed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VegetationFixtures.js","sourceRoot":"","sources":["../../../../packages/rendering/src/VegetationFixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAkC,MAAM,mBAAmB,CAAC;AAyE7F,MAAM,UAAU,uBAAuB,CAAC,OAAiC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YACpF,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACpG,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACtE,MAAM,GAAG,GAAyB,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YACrG,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC5F,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7E,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,GAAG;gBACH,WAAW,EAAE,IAAI,CAAC,CAAC;gBACnB,WAAW,EAAE,IAAI,CAAC,CAAC;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACpF,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC5F,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1H,MAAM,OAAO,GAAG,8BAA8B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO;QACL,EAAE,EAAE,+CAA+C;QACnD,MAAM,EAAE,yCAAyC;QACjD,IAAI;QACJ,aAAa,EAAE,SAAS,CAAC,MAAM;QAC/B,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAC9C,YAAY;QACZ,gBAAgB;QAChB,SAAS;QACT,UAAU;QACV,UAAU;QACV,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/C,SAAS;QACT,OAAO;QACP,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;QAC7C,aAAa,EAAE,yXAAyX;KACzY,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,SAA+C,EAAE,IAAY;IACnG,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC5G,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7I,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzI,MAAM,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO;QACL,MAAM,EAAE,sCAAsC;QAC9C,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,kBAAkB;QACxB,UAAU;QACV,qBAAqB,EAAE,SAAS,CAAC,MAAM;QACvC,kBAAkB,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM;QACvE,0BAA0B,EAAE,QAAQ,CAAC,MAAM;QAC3C,cAAc;QACd,QAAQ;QACR,IAAI,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC9C,QAAQ;QACR,aAAa,EAAE,+QAA+Q;KAC/R,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,SAAiB,EAAE,UAAkB;IACvE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC/D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,QAAmC,EAAE,IAAY;IAChG,MAAM,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAyF,EAAE,CAAC;IACvG,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACjL,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YAC1C,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACjD,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACzB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;YAAE,IAAI,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC9J,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChH,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,QAAgB,EAAE,IAAY;IAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5D,OAAO;QACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,SAA+C,EAAE,WAAmB;IAC1F,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,QAAmD;IACjG,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7I,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC;YACxB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC;IACrB,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC;IACtB,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,KAAa;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,sBAAsB,KAAK,kBAAkB,CAAC,CAAC;IACjG,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"VegetationFixtures.js","sourceRoot":"","sources":["../../../../packages/rendering/src/VegetationFixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAkC,MAAM,sBAAsB,CAAC;AAyEhG,MAAM,UAAU,uBAAuB,CAAC,OAAiC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YACpF,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACpG,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACtE,MAAM,GAAG,GAAyB,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YACrG,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC5F,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7E,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,GAAG;gBACH,WAAW,EAAE,IAAI,CAAC,CAAC;gBACnB,WAAW,EAAE,IAAI,CAAC,CAAC;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACpF,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC5F,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1H,MAAM,OAAO,GAAG,8BAA8B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO;QACL,EAAE,EAAE,+CAA+C;QACnD,MAAM,EAAE,yCAAyC;QACjD,IAAI;QACJ,aAAa,EAAE,SAAS,CAAC,MAAM;QAC/B,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAC9C,YAAY;QACZ,gBAAgB;QAChB,SAAS;QACT,UAAU;QACV,UAAU;QACV,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/C,SAAS;QACT,OAAO;QACP,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;QAC7C,aAAa,EAAE,yXAAyX;KACzY,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,SAA+C,EAAE,IAAY;IACnG,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC5G,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7I,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzI,MAAM,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO;QACL,MAAM,EAAE,sCAAsC;QAC9C,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,kBAAkB;QACxB,UAAU;QACV,qBAAqB,EAAE,SAAS,CAAC,MAAM;QACvC,kBAAkB,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM;QACvE,0BAA0B,EAAE,QAAQ,CAAC,MAAM;QAC3C,cAAc;QACd,QAAQ;QACR,IAAI,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC9C,QAAQ;QACR,aAAa,EAAE,+QAA+Q;KAC/R,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,SAAiB,EAAE,UAAkB;IACvE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC/D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,QAAmC,EAAE,IAAY;IAChG,MAAM,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAyF,EAAE,CAAC;IACvG,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACjL,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YAC1C,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACjD,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACzB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAM,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;YAAE,IAAI,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC9J,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChH,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,QAAgB,EAAE,IAAY;IAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5D,OAAO;QACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,SAA+C,EAAE,WAAmB;IAC1F,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,QAAmD;IACjG,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7I,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC;YACxB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC;IACrB,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC;IACtB,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,KAAa;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,sBAAsB,KAAK,kBAAkB,CAAC,CAAC;IACjG,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type TerrainHeightfieldFixture } from "./TerrainHeightfield";
|
|
2
|
+
export type VegetationFixtureLayer = "tree" | "grass" | "shrub";
|
|
3
|
+
export type VegetationFixtureLod = "mesh" | "impostor" | "culled";
|
|
4
|
+
export interface VegetationFixtureOptions {
|
|
5
|
+
readonly terrain: TerrainHeightfieldFixture;
|
|
6
|
+
readonly seed?: number;
|
|
7
|
+
readonly cameraX?: number;
|
|
8
|
+
readonly elapsedSeconds?: number;
|
|
9
|
+
readonly maxInstances?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface VegetationFixtureInstance {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly layer: VegetationFixtureLayer;
|
|
14
|
+
readonly x: number;
|
|
15
|
+
readonly y: number;
|
|
16
|
+
readonly z: number;
|
|
17
|
+
readonly scale: number;
|
|
18
|
+
readonly rotation: number;
|
|
19
|
+
readonly distanceToCamera: number;
|
|
20
|
+
readonly lod: VegetationFixtureLod;
|
|
21
|
+
readonly windOffsetX: number;
|
|
22
|
+
readonly windOffsetZ: number;
|
|
23
|
+
}
|
|
24
|
+
export interface VegetationLSystemBranchSegment {
|
|
25
|
+
readonly instanceId: string;
|
|
26
|
+
readonly startX: number;
|
|
27
|
+
readonly startY: number;
|
|
28
|
+
readonly startZ: number;
|
|
29
|
+
readonly endX: number;
|
|
30
|
+
readonly endY: number;
|
|
31
|
+
readonly endZ: number;
|
|
32
|
+
readonly width: number;
|
|
33
|
+
readonly depth: number;
|
|
34
|
+
}
|
|
35
|
+
export interface VegetationLSystemFixture {
|
|
36
|
+
readonly source: "origin-master-lsystem-turtle-adapted";
|
|
37
|
+
readonly axiom: "F";
|
|
38
|
+
readonly rule: "F -> F[+F][-F]!F";
|
|
39
|
+
readonly iterations: number;
|
|
40
|
+
readonly generatedSymbolLength: number;
|
|
41
|
+
readonly branchSegmentCount: number;
|
|
42
|
+
readonly renderedBranchSegmentCount: number;
|
|
43
|
+
readonly branchTipCount: number;
|
|
44
|
+
readonly maxDepth: number;
|
|
45
|
+
readonly hash: string;
|
|
46
|
+
readonly segments: readonly VegetationLSystemBranchSegment[];
|
|
47
|
+
readonly claimBoundary: string;
|
|
48
|
+
}
|
|
49
|
+
export interface VegetationFixtureSample {
|
|
50
|
+
readonly id: "external-parity-old-branch-vegetation-fixture";
|
|
51
|
+
readonly source: "origin-master-vegetation-system-adapted";
|
|
52
|
+
readonly seed: number;
|
|
53
|
+
readonly instanceCount: number;
|
|
54
|
+
readonly visibleCount: number;
|
|
55
|
+
readonly culledCount: number;
|
|
56
|
+
readonly meshLodCount: number;
|
|
57
|
+
readonly impostorLodCount: number;
|
|
58
|
+
readonly treeCount: number;
|
|
59
|
+
readonly grassCount: number;
|
|
60
|
+
readonly shrubCount: number;
|
|
61
|
+
readonly maxWindOffset: number;
|
|
62
|
+
readonly instances: readonly VegetationFixtureInstance[];
|
|
63
|
+
readonly lsystem: VegetationLSystemFixture;
|
|
64
|
+
readonly hash: string;
|
|
65
|
+
readonly claimBoundary: string;
|
|
66
|
+
}
|
|
67
|
+
export declare function sampleVegetationFixture(options: VegetationFixtureOptions): VegetationFixtureSample;
|
|
68
|
+
//# sourceMappingURL=VegetationScatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VegetationScatter.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/VegetationScatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { sampleTerrainHeightfield } from "./TerrainHeightfield.js";
|
|
2
|
+
export function sampleVegetationFixture(options) {
|
|
3
|
+
const terrain = options.terrain;
|
|
4
|
+
const seed = options.seed ?? terrain.seed ^ 0x6eed;
|
|
5
|
+
if (!Number.isInteger(seed)) {
|
|
6
|
+
throw new RangeError("Vegetation fixture seed must be an integer.");
|
|
7
|
+
}
|
|
8
|
+
const cameraX = finite(options.cameraX ?? 0, "cameraX");
|
|
9
|
+
const elapsedSeconds = Math.max(0, finite(options.elapsedSeconds ?? 0, "elapsedSeconds"));
|
|
10
|
+
const maxInstances = Math.max(1, Math.min(512, Math.floor(options.maxInstances ?? 96)));
|
|
11
|
+
const instances = [];
|
|
12
|
+
const step = Math.max(2, Math.floor(Math.sqrt((terrain.width * terrain.height) / maxInstances)));
|
|
13
|
+
for (let y = 1; y < terrain.height - 1 && instances.length < maxInstances; y += step) {
|
|
14
|
+
for (let x = 1; x < terrain.width - 1 && instances.length < maxInstances; x += step) {
|
|
15
|
+
const sample = sampleTerrainHeightfield(terrain, x / (terrain.width - 1), y / (terrain.height - 1));
|
|
16
|
+
const placement = placementFor(sample.biome, seed + x * 17 + y * 31);
|
|
17
|
+
if (!placement)
|
|
18
|
+
continue;
|
|
19
|
+
const worldX = (x / (terrain.width - 1) - 0.5) * 5.2;
|
|
20
|
+
const worldZ = (y / (terrain.height - 1) - 0.5) * 1.1;
|
|
21
|
+
const distance = Math.abs(worldX - cameraX) + Math.abs(worldZ) * 0.35;
|
|
22
|
+
const lod = distance > 1.18 ? "culled" : distance > 0.62 ? "impostor" : "mesh";
|
|
23
|
+
const wind = windDisplacement(worldX, worldZ, elapsedSeconds, placement.windResponse, seed);
|
|
24
|
+
instances.push({
|
|
25
|
+
id: `veg-${x}-${y}`,
|
|
26
|
+
layer: placement.layer,
|
|
27
|
+
x: Number(worldX.toFixed(4)),
|
|
28
|
+
y: Number((sample.height * 0.7 - 0.53).toFixed(4)),
|
|
29
|
+
z: Number(worldZ.toFixed(4)),
|
|
30
|
+
scale: placement.scale,
|
|
31
|
+
rotation: Number((seeded01(seed + x * 101 + y * 7) * Math.PI * 2).toFixed(4)),
|
|
32
|
+
distanceToCamera: Number(distance.toFixed(4)),
|
|
33
|
+
lod,
|
|
34
|
+
windOffsetX: wind.x,
|
|
35
|
+
windOffsetZ: wind.z
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const visible = instances.filter((instance) => instance.lod !== "culled");
|
|
40
|
+
const meshLodCount = instances.filter((instance) => instance.lod === "mesh").length;
|
|
41
|
+
const impostorLodCount = instances.filter((instance) => instance.lod === "impostor").length;
|
|
42
|
+
const treeCount = instances.filter((instance) => instance.layer === "tree").length;
|
|
43
|
+
const grassCount = instances.filter((instance) => instance.layer === "grass").length;
|
|
44
|
+
const shrubCount = instances.filter((instance) => instance.layer === "shrub").length;
|
|
45
|
+
const maxWindOffset = Math.max(0, ...instances.map((instance) => Math.hypot(instance.windOffsetX, instance.windOffsetZ)));
|
|
46
|
+
const lsystem = createVegetationLSystemFixture(instances, seed);
|
|
47
|
+
return {
|
|
48
|
+
id: "external-parity-old-branch-vegetation-fixture",
|
|
49
|
+
source: "origin-master-vegetation-system-adapted",
|
|
50
|
+
seed,
|
|
51
|
+
instanceCount: instances.length,
|
|
52
|
+
visibleCount: visible.length,
|
|
53
|
+
culledCount: instances.length - visible.length,
|
|
54
|
+
meshLodCount,
|
|
55
|
+
impostorLodCount,
|
|
56
|
+
treeCount,
|
|
57
|
+
grassCount,
|
|
58
|
+
shrubCount,
|
|
59
|
+
maxWindOffset: Number(maxWindOffset.toFixed(5)),
|
|
60
|
+
instances,
|
|
61
|
+
lsystem,
|
|
62
|
+
hash: hashVegetation(instances, lsystem.hash),
|
|
63
|
+
claimBoundary: "Deterministic biome-aware vegetation placement, LOD selection, culling, wind-displacement telemetry, and bounded L-system branch/tip telemetry adapted from the old vegetation and L-system systems; this is bounded fixture evidence, not instanced vegetation rendering, billboards, collision, seasonal growth, procedural mesh generation, or production terrain vegetation parity."
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function createVegetationLSystemFixture(instances, seed) {
|
|
67
|
+
const iterations = 3;
|
|
68
|
+
const generated = generateDOL("F", "F[+F][-F]!F", iterations);
|
|
69
|
+
const visibleTrees = instances.filter((instance) => instance.layer === "tree" && instance.lod !== "culled");
|
|
70
|
+
const visibleVegetation = instances.filter((instance) => instance.lod !== "culled");
|
|
71
|
+
const treeFallback = instances.filter((instance) => instance.layer === "tree");
|
|
72
|
+
const branchSources = (visibleTrees.length > 0 ? visibleTrees : visibleVegetation.length > 0 ? visibleVegetation : treeFallback).slice(0, 8);
|
|
73
|
+
const segments = branchSources.flatMap((instance, index) => interpretTreeLSystem(generated, instance, seed + index * 971)).slice(0, 160);
|
|
74
|
+
const branchTipCount = countBranchTips(generated) * branchSources.length;
|
|
75
|
+
const maxDepth = segments.reduce((max, segment) => Math.max(max, segment.depth), 0);
|
|
76
|
+
return {
|
|
77
|
+
source: "origin-master-lsystem-turtle-adapted",
|
|
78
|
+
axiom: "F",
|
|
79
|
+
rule: "F -> F[+F][-F]!F",
|
|
80
|
+
iterations,
|
|
81
|
+
generatedSymbolLength: generated.length,
|
|
82
|
+
branchSegmentCount: countDrawCommands(generated) * branchSources.length,
|
|
83
|
+
renderedBranchSegmentCount: segments.length,
|
|
84
|
+
branchTipCount,
|
|
85
|
+
maxDepth,
|
|
86
|
+
hash: hashLSystemSegments(generated, segments),
|
|
87
|
+
segments,
|
|
88
|
+
claimBoundary: "D0L grammar expansion and turtle-style branch interpretation adapted from the old L-system code as deterministic vegetation evidence only; this does not claim production procedural tree meshes, botanical simulation, growth, collision, or Unity/Unreal vegetation parity."
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function generateDOL(axiom, successor, iterations) {
|
|
92
|
+
let current = axiom;
|
|
93
|
+
for (let iteration = 0; iteration < iterations; iteration += 1) {
|
|
94
|
+
let next = "";
|
|
95
|
+
for (const symbol of current) {
|
|
96
|
+
next += symbol === "F" ? successor : symbol;
|
|
97
|
+
}
|
|
98
|
+
current = next.length > 4_096 ? next.slice(0, 4_096) : next;
|
|
99
|
+
}
|
|
100
|
+
return current;
|
|
101
|
+
}
|
|
102
|
+
function interpretTreeLSystem(generated, instance, seed) {
|
|
103
|
+
const angle = 0.45 + seeded01(seed ^ 0x512) * 0.22;
|
|
104
|
+
const step = instance.scale * (instance.lod === "impostor" ? 0.72 : 1);
|
|
105
|
+
const stack = [];
|
|
106
|
+
const state = { x: instance.x + instance.windOffsetX, y: instance.y, z: instance.z + instance.windOffsetZ, heading: Math.PI / 2, width: Math.max(0.006, step * 0.28), depth: 0 };
|
|
107
|
+
const segments = [];
|
|
108
|
+
for (const symbol of generated) {
|
|
109
|
+
if (symbol === "F") {
|
|
110
|
+
const startX = state.x;
|
|
111
|
+
const startY = state.y;
|
|
112
|
+
const startZ = state.z;
|
|
113
|
+
state.x += Math.cos(state.heading) * step;
|
|
114
|
+
state.y += Math.sin(state.heading) * step * 1.45;
|
|
115
|
+
state.z += Math.sin(state.heading * 0.73 + seed * 0.001) * step * 0.22;
|
|
116
|
+
segments.push({
|
|
117
|
+
instanceId: instance.id,
|
|
118
|
+
startX: Number(startX.toFixed(4)),
|
|
119
|
+
startY: Number(startY.toFixed(4)),
|
|
120
|
+
startZ: Number(startZ.toFixed(4)),
|
|
121
|
+
endX: Number(state.x.toFixed(4)),
|
|
122
|
+
endY: Number(state.y.toFixed(4)),
|
|
123
|
+
endZ: Number(state.z.toFixed(4)),
|
|
124
|
+
width: Number(state.width.toFixed(5)),
|
|
125
|
+
depth: state.depth
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
else if (symbol === "+") {
|
|
129
|
+
state.heading += angle;
|
|
130
|
+
}
|
|
131
|
+
else if (symbol === "-") {
|
|
132
|
+
state.heading -= angle;
|
|
133
|
+
}
|
|
134
|
+
else if (symbol === "[") {
|
|
135
|
+
stack.push({ ...state });
|
|
136
|
+
state.depth += 1;
|
|
137
|
+
state.width *= 0.72;
|
|
138
|
+
}
|
|
139
|
+
else if (symbol === "]") {
|
|
140
|
+
const popped = stack.pop();
|
|
141
|
+
if (popped) {
|
|
142
|
+
state.x = popped.x;
|
|
143
|
+
state.y = popped.y;
|
|
144
|
+
state.z = popped.z;
|
|
145
|
+
state.heading = popped.heading;
|
|
146
|
+
state.width = popped.width;
|
|
147
|
+
state.depth = popped.depth;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else if (symbol === "!") {
|
|
151
|
+
state.width *= 0.78;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return segments;
|
|
155
|
+
}
|
|
156
|
+
function countDrawCommands(value) {
|
|
157
|
+
let count = 0;
|
|
158
|
+
for (const symbol of value) {
|
|
159
|
+
if (symbol === "F")
|
|
160
|
+
count += 1;
|
|
161
|
+
}
|
|
162
|
+
return count;
|
|
163
|
+
}
|
|
164
|
+
function countBranchTips(value) {
|
|
165
|
+
let tips = 0;
|
|
166
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
167
|
+
if (value[index] === "F" && value[index + 1] !== "[")
|
|
168
|
+
tips += 1;
|
|
169
|
+
}
|
|
170
|
+
return tips;
|
|
171
|
+
}
|
|
172
|
+
function placementFor(biome, seed) {
|
|
173
|
+
const roll = seeded01(seed);
|
|
174
|
+
if (biome === "forest") {
|
|
175
|
+
return roll < 0.72 ? { layer: "tree", scale: 0.09 + seeded01(seed ^ 0x51) * 0.08, windResponse: 0.45 } : { layer: "shrub", scale: 0.05, windResponse: 0.7 };
|
|
176
|
+
}
|
|
177
|
+
if (biome === "grassland") {
|
|
178
|
+
return roll < 0.62 ? { layer: "grass", scale: 0.035 + seeded01(seed ^ 0x22) * 0.025, windResponse: 1 } : null;
|
|
179
|
+
}
|
|
180
|
+
if (biome === "beach") {
|
|
181
|
+
return roll < 0.2 ? { layer: "grass", scale: 0.03, windResponse: 0.9 } : null;
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
function windDisplacement(x, z, time, response, seed) {
|
|
186
|
+
const gust = Math.sin(time * 1.8 + x * 2.1 + z * 1.3 + seeded01(seed) * Math.PI * 2);
|
|
187
|
+
const turbulence = Math.sin(time * 3.2 + x * 4.4 - z * 2.7);
|
|
188
|
+
return {
|
|
189
|
+
x: Number(((gust * 0.018 + turbulence * 0.006) * response).toFixed(5)),
|
|
190
|
+
z: Number((Math.cos(time * 1.3 + z * 3.1) * 0.01 * response).toFixed(5))
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
function hashVegetation(instances, lsystemHash) {
|
|
194
|
+
let hash = 0x811c9dc5;
|
|
195
|
+
for (const char of lsystemHash) {
|
|
196
|
+
hash ^= char.charCodeAt(0);
|
|
197
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
198
|
+
}
|
|
199
|
+
for (const instance of instances) {
|
|
200
|
+
for (const value of [instance.x, instance.y, instance.z, instance.scale, instance.windOffsetX, instance.windOffsetZ]) {
|
|
201
|
+
const scaled = Math.round(value * 10_000);
|
|
202
|
+
hash ^= scaled & 0xff;
|
|
203
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
204
|
+
hash ^= (scaled >>> 8) & 0xff;
|
|
205
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
206
|
+
}
|
|
207
|
+
hash ^= instance.layer.charCodeAt(0);
|
|
208
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
209
|
+
hash ^= instance.lod.charCodeAt(0);
|
|
210
|
+
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
211
|
+
}
|
|
212
|
+
return hash.toString(16).padStart(8, "0");
|
|
213
|
+
}
|
|
214
|
+
function hashLSystemSegments(generated, segments) {
|
|
215
|
+
let hash = 0x9e3779b9;
|
|
216
|
+
for (const symbol of generated) {
|
|
217
|
+
hash ^= symbol.charCodeAt(0);
|
|
218
|
+
hash = Math.imul(hash, 0x85ebca6b) >>> 0;
|
|
219
|
+
}
|
|
220
|
+
for (const segment of segments) {
|
|
221
|
+
for (const value of [segment.startX, segment.startY, segment.startZ, segment.endX, segment.endY, segment.endZ, segment.width, segment.depth]) {
|
|
222
|
+
const scaled = Math.round(value * 10_000);
|
|
223
|
+
hash ^= scaled & 0xffff;
|
|
224
|
+
hash = Math.imul(hash, 0xc2b2ae35) >>> 0;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return hash.toString(16).padStart(8, "0");
|
|
228
|
+
}
|
|
229
|
+
function seeded01(seed) {
|
|
230
|
+
let value = seed >>> 0;
|
|
231
|
+
value ^= value << 13;
|
|
232
|
+
value ^= value >>> 17;
|
|
233
|
+
value ^= value << 5;
|
|
234
|
+
return ((value >>> 0) % 10_000) / 10_000;
|
|
235
|
+
}
|
|
236
|
+
function finite(value, label) {
|
|
237
|
+
if (!Number.isFinite(value))
|
|
238
|
+
throw new RangeError(`Vegetation fixture ${label} must be finite.`);
|
|
239
|
+
return value;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=VegetationScatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VegetationScatter.js","sourceRoot":"","sources":["../../../../packages/rendering/src/VegetationScatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export type VoxelBlockType = "air" | "stone" | "dirt" | "grass" | "sand" | "water" | "wood" | "leaves" | "glass" | "coal-ore" | "iron-ore" | "gold-ore" | "diamond-ore" | "bedrock" | "cobblestone" | "planks" | "brick" | "snow" | "ice" | "lava";
|
|
2
|
+
export type VoxelLod = "near" | "mid" | "far" | "culled";
|
|
3
|
+
export interface VoxelWorldOptions {
|
|
4
|
+
readonly seed?: number;
|
|
5
|
+
readonly chunkSize?: number;
|
|
6
|
+
readonly viewDistance?: number;
|
|
7
|
+
readonly cameraChunkX?: number;
|
|
8
|
+
readonly cameraChunkZ?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface VoxelBlockDescriptor {
|
|
11
|
+
readonly type: VoxelBlockType;
|
|
12
|
+
readonly color: readonly [number, number, number, number];
|
|
13
|
+
readonly hardness: number;
|
|
14
|
+
readonly toolRequired: string | null;
|
|
15
|
+
readonly drops: VoxelBlockType | null;
|
|
16
|
+
readonly sound: string;
|
|
17
|
+
readonly animated: boolean;
|
|
18
|
+
readonly lightLevel: number;
|
|
19
|
+
readonly transparent: boolean;
|
|
20
|
+
readonly solid: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface VoxelVisibleBlock {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly type: VoxelBlockType;
|
|
25
|
+
readonly x: number;
|
|
26
|
+
readonly y: number;
|
|
27
|
+
readonly z: number;
|
|
28
|
+
readonly lod: VoxelLod;
|
|
29
|
+
}
|
|
30
|
+
export interface VoxelWorldState {
|
|
31
|
+
readonly seed: number;
|
|
32
|
+
readonly chunkSize: number;
|
|
33
|
+
readonly viewDistance: number;
|
|
34
|
+
readonly registry: readonly VoxelBlockDescriptor[];
|
|
35
|
+
readonly blockTypeCount: number;
|
|
36
|
+
readonly solidBlockTypes: number;
|
|
37
|
+
readonly transparentBlockTypes: number;
|
|
38
|
+
readonly animatedBlockTypes: number;
|
|
39
|
+
readonly emittingBlockTypes: number;
|
|
40
|
+
readonly chunkQueueSize: number;
|
|
41
|
+
readonly generatingChunks: number;
|
|
42
|
+
readonly meshingChunks: number;
|
|
43
|
+
readonly lodCounts: Record<VoxelLod, number>;
|
|
44
|
+
readonly blockCounts: Partial<Record<VoxelBlockType, number>>;
|
|
45
|
+
readonly visibleBlocks: readonly VoxelVisibleBlock[];
|
|
46
|
+
readonly visibleFaceEstimate: number;
|
|
47
|
+
readonly memoryBytes: number;
|
|
48
|
+
readonly hash: string;
|
|
49
|
+
}
|
|
50
|
+
export declare function createVoxelWorld(options?: VoxelWorldOptions): VoxelWorldState;
|
|
51
|
+
//# sourceMappingURL=VoxelWorld.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VoxelWorld.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/VoxelWorld.ts"],"names":[],"mappings":"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"}
|