@woosh/meep-engine 2.165.3 → 2.165.5
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/editor/Editor.d.ts +65 -65
- package/editor/SelectionVisualizer.d.ts +19 -19
- package/editor/actions/concrete/ActionUpdateTexture.d.ts +11 -11
- package/editor/actions/concrete/ArrayCopyAction.d.ts +19 -19
- package/editor/actions/concrete/ComponentAddAction.d.ts +14 -14
- package/editor/actions/concrete/ComponentRemoveAction.d.ts +10 -10
- package/editor/actions/concrete/EntityCreateAction.d.ts +17 -17
- package/editor/actions/concrete/EntityRemoveAction.d.ts +10 -10
- package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +46 -46
- package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +37 -37
- package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +22 -22
- package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +18 -18
- package/editor/actions/concrete/SelectionAddAction.d.ts +18 -18
- package/editor/actions/concrete/SelectionClearAction.d.ts +8 -8
- package/editor/actions/concrete/SelectionRemoveAction.d.ts +9 -9
- package/editor/actions/concrete/TransformModifyAction.d.ts +16 -16
- package/editor/actions/concrete/WriteGridValueAction.d.ts +14 -14
- package/editor/ecs/EditorEntity.d.ts +15 -15
- package/editor/ecs/EditorEntitySystem.d.ts +7 -7
- package/editor/ecs/component/FieldDescriptor.d.ts +26 -26
- package/editor/ecs/component/FieldValueAdapter.d.ts +6 -6
- package/editor/ecs/component/TypeEditor.d.ts +24 -24
- package/editor/ecs/component/createFieldEditor.d.ts +8 -8
- package/editor/ecs/component/createObjectEditor.d.ts +13 -13
- package/editor/ecs/component/editors/ColorEditor.d.ts +6 -6
- package/editor/ecs/component/editors/HTMLElementEditor.d.ts +6 -6
- package/editor/ecs/component/editors/ImagePathEditor.d.ts +6 -6
- package/editor/ecs/component/editors/LargeStringEditor.d.ts +15 -15
- package/editor/ecs/component/editors/NumericIntervalEditor.d.ts +6 -6
- package/editor/ecs/component/editors/ObservedBooleanEditor.d.ts +6 -6
- package/editor/ecs/component/editors/ObservedEnumEditor.d.ts +6 -6
- package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts +6 -6
- package/editor/ecs/component/editors/ObservedStringEditor.d.ts +6 -6
- package/editor/ecs/component/editors/Sampler2DEditor.d.ts +6 -6
- package/editor/ecs/component/editors/collection/ListEditor.d.ts +7 -7
- package/editor/ecs/component/editors/common/BitFlagsEditor.d.ts +11 -11
- package/editor/ecs/component/editors/common/EnumEditor.d.ts +7 -7
- package/editor/ecs/component/editors/common/makeV3_editor.d.ts +14 -14
- package/editor/ecs/component/editors/common/noEditor.d.ts +2 -2
- package/editor/ecs/component/editors/ecs/GridObstacleEditor.d.ts +6 -6
- package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts +13 -13
- package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +66 -66
- package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +11 -11
- package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +13 -13
- package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +51 -51
- package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +47 -47
- package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +15 -15
- package/editor/ecs/component/editors/ecs/Trail2DEditor.d.ts +29 -29
- package/editor/ecs/component/editors/ecs/TransformEditor.d.ts +19 -19
- package/editor/ecs/component/editors/ecs/terrain/SplatMappingEditor.d.ts +18 -18
- package/editor/ecs/component/editors/ecs/terrain/TerrainEditor.d.ts +38 -38
- package/editor/ecs/component/editors/ecs/terrain/TerrainLayerEditor.d.ts +15 -15
- package/editor/ecs/component/editors/ecs/terrain/TerrainLayersEditor.d.ts +18 -18
- package/editor/ecs/component/editors/ecs/terrain/TerrainOverlayEditor.d.ts +17 -17
- package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts +5 -5
- package/editor/ecs/component/editors/geom/Vector1Editor.d.ts +6 -6
- package/editor/ecs/component/editors/geom/Vector2Editor.d.ts +5 -5
- package/editor/ecs/component/editors/geom/Vector3Editor.d.ts +5 -5
- package/editor/ecs/component/editors/geom/Vector4Editor.d.ts +5 -5
- package/editor/ecs/component/editors/primitive/ArrayEditor.d.ts +7 -7
- package/editor/ecs/component/editors/primitive/BooleanEditor.d.ts +6 -6
- package/editor/ecs/component/editors/primitive/FunctionEditor.d.ts +6 -6
- package/editor/ecs/component/editors/primitive/NumberEditor.d.ts +7 -7
- package/editor/ecs/component/editors/primitive/ObjectEditor.d.ts +5 -5
- package/editor/ecs/component/editors/primitive/StringEditor.d.ts +6 -6
- package/editor/ecs/component/editors/three/BufferGeometryEditor.d.ts +6 -6
- package/editor/ecs/component/editors/three/MaterialEditor.d.ts +6 -6
- package/editor/ecs/component/editors/three/MeshEditor.d.ts +6 -6
- package/editor/ecs/component/editors/three/TextureEditor.d.ts +6 -6
- package/editor/ecs/component/findNearestRegisteredType.d.ts +7 -7
- package/editor/enableEditor.d.ts +13 -13
- package/editor/library/MeshLibrary.d.ts +12 -12
- package/editor/process/DisableGameUIProcess.d.ts +7 -7
- package/editor/process/EditorProcess.d.ts +18 -18
- package/editor/process/ObstacleGridDisplayProcess.d.ts +12 -12
- package/editor/process/ProcessEngine.d.ts +29 -29
- package/editor/process/SymbolicDisplayProcess.d.ts +18 -18
- package/editor/process/symbolic/ComponentSymbolicDisplay.d.ts +10 -10
- package/editor/process/symbolic/SymbolicDisplayInternalAPI.d.ts +64 -64
- package/editor/process/symbolic/buildThreeJSHelperEntity.d.ts +8 -8
- package/editor/process/symbolic/make3DSymbolicDisplay.d.ts +9 -9
- package/editor/process/symbolic/makeCameraSymbolicDisplay.d.ts +6 -6
- package/editor/process/symbolic/makeGridPositionSymbolDisplay.d.ts +5 -5
- package/editor/process/symbolic/makeHelperBoxGeometry.d.ts +2 -2
- package/editor/process/symbolic/makeHelperSphereGeometry.d.ts +8 -8
- package/editor/process/symbolic/makeLightSymbolicDisplay.d.ts +6 -6
- package/editor/process/symbolic/makeParticleEmitterSymbolicDisplay.d.ts +5 -5
- package/editor/process/symbolic/makePathSymbolicDisplay.d.ts +6 -6
- package/editor/process/symbolic/makePositionedIconDisplaySymbol.d.ts +8 -8
- package/editor/process/symbolic/makeSocketsSymbolicDisplay.d.ts +6 -6
- package/editor/process/symbolic/makeSolidArrowGeometry.d.ts +25 -25
- package/editor/process/symbolic/makeSoundEmitterSymbolicDisplay.d.ts +5 -5
- package/editor/process/symbolic/synchronizeTransform.d.ts +11 -11
- package/editor/tools/GridPaintTool.d.ts +16 -16
- package/editor/tools/SelectionTool.d.ts +26 -26
- package/editor/tools/TopDownCameraControlTool.d.ts +12 -12
- package/editor/tools/engine/Tool.d.ts +63 -63
- package/editor/tools/engine/ToolEngine.d.ts +22 -22
- package/editor/tools/engine/ToolState.d.ts +6 -6
- package/editor/tools/paint/TerrainHeightPaintTool.d.ts +17 -17
- package/editor/tools/paint/TerrainPaintTool.d.ts +30 -30
- package/editor/tools/paint/TerrainTexturePaintTool.d.ts +17 -17
- package/editor/tools/v2/TransformMode.d.ts +6 -6
- package/editor/view/EditorView.d.ts +38 -38
- package/editor/view/ecs/ComponentControlFactory.d.ts +18 -18
- package/editor/view/ecs/ComponentControlView.d.ts +23 -23
- package/editor/view/ecs/EntityEditor.d.ts +29 -29
- package/editor/view/ecs/EntityList.d.ts +21 -21
- package/editor/view/ecs/HierarchicalEntityListView.d.ts +7 -7
- package/editor/view/ecs/components/DatGuiController.d.ts +45 -45
- package/editor/view/ecs/components/GridObstacleController.d.ts +13 -13
- package/editor/view/ecs/components/color/GaugeView.d.ts +12 -12
- package/editor/view/ecs/components/common/AutoCanvasView.d.ts +19 -19
- package/editor/view/ecs/components/common/LineView.d.ts +11 -11
- package/editor/view/ecs/components/common/NumberController.d.ts +17 -17
- package/editor/view/ecs/components/particles/ColorParameterLUTController.d.ts +13 -13
- package/editor/view/makeEntityDecorators.d.ts +5 -5
- package/editor/view/tools/ToolSettingsView.d.ts +10 -10
- package/editor/view/tools/ToolView.d.ts +12 -12
- package/editor/view/v2/SplitView.d.ts +16 -16
- package/package.json +1 -1
- package/samples/generation/grid/GridTags.d.ts +15 -15
- package/samples/generation/grid/MirGridLayers.d.ts +7 -7
- package/samples/generation/rules/matcher_tag_occupied.d.ts +2 -2
- package/samples/generation/rules/matcher_tag_traversable.d.ts +2 -2
- package/samples/generation/rules/matcher_tag_unoccupied.d.ts +2 -2
- package/src/core/geom/3d/sphere/harmonics/sh3_convolve_with_zh.d.ts +21 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_convolve_with_zh.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_convolve_with_zh.js +53 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_ggx_zh.d.ts +18 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_ggx_zh.d.ts.map +1 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_ggx_zh.js +30 -0
- package/src/engine/graphics/ecs/light/LightContext.d.ts +8 -0
- package/src/engine/graphics/ecs/light/LightContext.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/LightContext.js +33 -3
- package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/LightSystem.js +13 -6
- package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts +12 -0
- package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +184 -6
- package/src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.js +381 -362
- package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.d.ts +43 -4
- package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.js +72 -5
- package/src/engine/graphics/sh3/lpg/bake_probe_sh3_resampled.d.ts +37 -0
- package/src/engine/graphics/sh3/lpg/bake_probe_sh3_resampled.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/bake_probe_sh3_resampled.js +298 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.d.ts +18 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.js +142 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts +6 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracer.js +1 -1
- package/src/engine/graphics/shadows/ShadowMapRenderer.d.ts +10 -0
- package/src/engine/graphics/shadows/ShadowMapRenderer.d.ts.map +1 -1
- package/src/engine/graphics/shadows/ShadowMapRenderer.js +83 -10
- package/src/engine/graphics/shadows/testPointShadowMapRendering.d.ts +2 -0
- package/src/engine/graphics/shadows/testPointShadowMapRendering.d.ts.map +1 -0
- package/src/engine/graphics/shadows/testPointShadowMapRendering.js +242 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Automatically tracks size on the screen, including that computed from CSS and - re-renders content when size changes
|
|
3
|
-
* @extends View
|
|
4
|
-
*/
|
|
5
|
-
export class AutoCanvasView {
|
|
6
|
-
constructor({ classList }?: {
|
|
7
|
-
classList?: any[];
|
|
8
|
-
});
|
|
9
|
-
__sizeObserver: DomSizeObserver;
|
|
10
|
-
render(): void;
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param {CanvasRenderingContext2D} ctx
|
|
14
|
-
* @param {number} width
|
|
15
|
-
* @param {number} height
|
|
16
|
-
*/
|
|
17
|
-
draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
18
|
-
}
|
|
19
|
-
import { DomSizeObserver } from "../../../../../src/view/util/DomSizeObserver.js";
|
|
1
|
+
/**
|
|
2
|
+
* Automatically tracks size on the screen, including that computed from CSS and - re-renders content when size changes
|
|
3
|
+
* @extends View
|
|
4
|
+
*/
|
|
5
|
+
export class AutoCanvasView {
|
|
6
|
+
constructor({ classList }?: {
|
|
7
|
+
classList?: any[];
|
|
8
|
+
});
|
|
9
|
+
__sizeObserver: DomSizeObserver;
|
|
10
|
+
render(): void;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param {CanvasRenderingContext2D} ctx
|
|
14
|
+
* @param {number} width
|
|
15
|
+
* @param {number} height
|
|
16
|
+
*/
|
|
17
|
+
draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
18
|
+
}
|
|
19
|
+
import { DomSizeObserver } from "../../../../../src/view/util/DomSizeObserver.js";
|
|
20
20
|
//# sourceMappingURL=AutoCanvasView.d.ts.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @extends {View}
|
|
3
|
-
*/
|
|
4
|
-
export class LineView extends View<HTMLElement> {
|
|
5
|
-
constructor({ elements, classList }: {
|
|
6
|
-
elements?: any[];
|
|
7
|
-
classList?: any[];
|
|
8
|
-
});
|
|
9
|
-
el: HTMLDivElement;
|
|
10
|
-
}
|
|
11
|
-
import View from "../../../../../src/view/View.js";
|
|
1
|
+
/**
|
|
2
|
+
* @extends {View}
|
|
3
|
+
*/
|
|
4
|
+
export class LineView extends View<HTMLElement> {
|
|
5
|
+
constructor({ elements, classList }: {
|
|
6
|
+
elements?: any[];
|
|
7
|
+
classList?: any[];
|
|
8
|
+
});
|
|
9
|
+
el: HTMLDivElement;
|
|
10
|
+
}
|
|
11
|
+
import View from "../../../../../src/view/View.js";
|
|
12
12
|
//# sourceMappingURL=LineView.d.ts.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export class NumberController extends View<HTMLElement> {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {string[]} [classList]
|
|
5
|
-
* @param {number} [value]
|
|
6
|
-
* @param figures
|
|
7
|
-
*/
|
|
8
|
-
constructor({ classList, value, figures }?: string[]);
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @type {Vector1}
|
|
12
|
-
*/
|
|
13
|
-
value: Vector1;
|
|
14
|
-
el: HTMLInputElement;
|
|
15
|
-
}
|
|
16
|
-
import View from "../../../../../src/view/View.js";
|
|
17
|
-
import Vector1 from "../../../../../src/core/geom/Vector1.js";
|
|
1
|
+
export class NumberController extends View<HTMLElement> {
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param {string[]} [classList]
|
|
5
|
+
* @param {number} [value]
|
|
6
|
+
* @param figures
|
|
7
|
+
*/
|
|
8
|
+
constructor({ classList, value, figures }?: string[]);
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @type {Vector1}
|
|
12
|
+
*/
|
|
13
|
+
value: Vector1;
|
|
14
|
+
el: HTMLInputElement;
|
|
15
|
+
}
|
|
16
|
+
import View from "../../../../../src/view/View.js";
|
|
17
|
+
import Vector1 from "../../../../../src/core/geom/Vector1.js";
|
|
18
18
|
//# sourceMappingURL=NumberController.d.ts.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @param {CanvasRenderingContext2D} context
|
|
4
|
-
* @param {number} width
|
|
5
|
-
* @param {number} height
|
|
6
|
-
* @param {number}cellSize
|
|
7
|
-
* @param {string} color1
|
|
8
|
-
* @param {string} color2
|
|
9
|
-
*/
|
|
10
|
-
export function drawCheckers(context: CanvasRenderingContext2D, width: number, height: number, cellSize: number, color1: string, color2: string): void;
|
|
11
|
-
export class ColorParameterLUTController extends GuiControl {
|
|
12
|
-
}
|
|
13
|
-
import GuiControl from "../../../../../src/view/controller/controls/GuiControl.js";
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {CanvasRenderingContext2D} context
|
|
4
|
+
* @param {number} width
|
|
5
|
+
* @param {number} height
|
|
6
|
+
* @param {number}cellSize
|
|
7
|
+
* @param {string} color1
|
|
8
|
+
* @param {string} color2
|
|
9
|
+
*/
|
|
10
|
+
export function drawCheckers(context: CanvasRenderingContext2D, width: number, height: number, cellSize: number, color1: string, color2: string): void;
|
|
11
|
+
export class ColorParameterLUTController extends GuiControl {
|
|
12
|
+
}
|
|
13
|
+
import GuiControl from "../../../../../src/view/controller/controls/GuiControl.js";
|
|
14
14
|
//# sourceMappingURL=ColorParameterLUTController.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* @return {(function(entity:number, ecd:EntityComponentDataset, view:View):void)[]}
|
|
4
|
-
*/
|
|
5
|
-
export function makeEntityDecorators(): ((arg0: entity) => number);
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @return {(function(entity:number, ecd:EntityComponentDataset, view:View):void)[]}
|
|
4
|
+
*/
|
|
5
|
+
export function makeEntityDecorators(): ((arg0: entity) => number);
|
|
6
6
|
//# sourceMappingURL=makeEntityDecorators.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export default ToolSettingsView;
|
|
2
|
-
declare class ToolSettingsView extends View<HTMLElement> {
|
|
3
|
-
constructor(tool: any);
|
|
4
|
-
model: any;
|
|
5
|
-
gui: any;
|
|
6
|
-
el: any;
|
|
7
|
-
setTool(tool: any): void;
|
|
8
|
-
build(): void;
|
|
9
|
-
}
|
|
10
|
-
import View from "../../../src/view/View.js";
|
|
1
|
+
export default ToolSettingsView;
|
|
2
|
+
declare class ToolSettingsView extends View<HTMLElement> {
|
|
3
|
+
constructor(tool: any);
|
|
4
|
+
model: any;
|
|
5
|
+
gui: any;
|
|
6
|
+
el: any;
|
|
7
|
+
setTool(tool: any): void;
|
|
8
|
+
build(): void;
|
|
9
|
+
}
|
|
10
|
+
import View from "../../../src/view/View.js";
|
|
11
11
|
//# sourceMappingURL=ToolSettingsView.d.ts.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export default ToolView;
|
|
2
|
-
declare class ToolView extends View<HTMLElement> {
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @param {Tool} tool
|
|
6
|
-
* @param {Editor} editor
|
|
7
|
-
* @constructor
|
|
8
|
-
*/
|
|
9
|
-
constructor({ tool, editor }: Tool);
|
|
10
|
-
el: Element;
|
|
11
|
-
}
|
|
12
|
-
import View from "../../../src/view/View.js";
|
|
1
|
+
export default ToolView;
|
|
2
|
+
declare class ToolView extends View<HTMLElement> {
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param {Tool} tool
|
|
6
|
+
* @param {Editor} editor
|
|
7
|
+
* @constructor
|
|
8
|
+
*/
|
|
9
|
+
constructor({ tool, editor }: Tool);
|
|
10
|
+
el: Element;
|
|
11
|
+
}
|
|
12
|
+
import View from "../../../src/view/View.js";
|
|
13
13
|
//# sourceMappingURL=ToolView.d.ts.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export class SplitView extends EmptyView {
|
|
2
|
-
static from({ a, b, type, fraction }: {
|
|
3
|
-
a: any;
|
|
4
|
-
b: any;
|
|
5
|
-
type?: string;
|
|
6
|
-
fraction?: number;
|
|
7
|
-
}): SplitView;
|
|
8
|
-
constructor();
|
|
9
|
-
set fraction(arg: any);
|
|
10
|
-
set direction(arg: any);
|
|
11
|
-
set childA(arg: any);
|
|
12
|
-
set childB(arg: any);
|
|
13
|
-
layout(): void;
|
|
14
|
-
#private;
|
|
15
|
-
}
|
|
16
|
-
import EmptyView from "../../../src/view/elements/EmptyView.js";
|
|
1
|
+
export class SplitView extends EmptyView {
|
|
2
|
+
static from({ a, b, type, fraction }: {
|
|
3
|
+
a: any;
|
|
4
|
+
b: any;
|
|
5
|
+
type?: string;
|
|
6
|
+
fraction?: number;
|
|
7
|
+
}): SplitView;
|
|
8
|
+
constructor();
|
|
9
|
+
set fraction(arg: any);
|
|
10
|
+
set direction(arg: any);
|
|
11
|
+
set childA(arg: any);
|
|
12
|
+
set childB(arg: any);
|
|
13
|
+
layout(): void;
|
|
14
|
+
#private;
|
|
15
|
+
}
|
|
16
|
+
import EmptyView from "../../../src/view/elements/EmptyView.js";
|
|
17
17
|
//# sourceMappingURL=SplitView.d.ts.map
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"description": "Pure JavaScript game engine. Fully featured and production ready.",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"author": "Alexander Goldring",
|
|
9
|
-
"version": "2.165.
|
|
9
|
+
"version": "2.165.5",
|
|
10
10
|
"main": "build/meep.module.js",
|
|
11
11
|
"module": "build/meep.module.js",
|
|
12
12
|
"exports": {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tags
|
|
3
|
-
*/
|
|
4
|
-
export type GridTags = number;
|
|
5
|
-
export namespace GridTags {
|
|
6
|
-
let Traversable: number;
|
|
7
|
-
let Enemy: number;
|
|
8
|
-
let Base: number;
|
|
9
|
-
let Treasure: number;
|
|
10
|
-
let StartingPoint: number;
|
|
11
|
-
let Occupied: number;
|
|
12
|
-
let Road: number;
|
|
13
|
-
let PlayArea: number;
|
|
14
|
-
let Objective: number;
|
|
15
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Tags
|
|
3
|
+
*/
|
|
4
|
+
export type GridTags = number;
|
|
5
|
+
export namespace GridTags {
|
|
6
|
+
let Traversable: number;
|
|
7
|
+
let Enemy: number;
|
|
8
|
+
let Base: number;
|
|
9
|
+
let Treasure: number;
|
|
10
|
+
let StartingPoint: number;
|
|
11
|
+
let Occupied: number;
|
|
12
|
+
let Road: number;
|
|
13
|
+
let PlayArea: number;
|
|
14
|
+
let Objective: number;
|
|
15
|
+
}
|
|
16
16
|
//# sourceMappingURL=GridTags.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export namespace MirGridLayers {
|
|
2
|
-
let Tags: string;
|
|
3
|
-
let DistanceFromStart: string;
|
|
4
|
-
let DistanceFromPlayArea: string;
|
|
5
|
-
let Heights: string;
|
|
6
|
-
let Moisture: string;
|
|
7
|
-
}
|
|
1
|
+
export namespace MirGridLayers {
|
|
2
|
+
let Tags: string;
|
|
3
|
+
let DistanceFromStart: string;
|
|
4
|
+
let DistanceFromPlayArea: string;
|
|
5
|
+
let Heights: string;
|
|
6
|
+
let Moisture: string;
|
|
7
|
+
}
|
|
8
8
|
//# sourceMappingURL=MirGridLayers.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const matcher_tag_occupied: CellMatcherLayerBitMaskTest;
|
|
2
|
-
import { CellMatcherLayerBitMaskTest } from "../../../src/generation/rules/CellMatcherLayerBitMaskTest.js";
|
|
1
|
+
export const matcher_tag_occupied: CellMatcherLayerBitMaskTest;
|
|
2
|
+
import { CellMatcherLayerBitMaskTest } from "../../../src/generation/rules/CellMatcherLayerBitMaskTest.js";
|
|
3
3
|
//# sourceMappingURL=matcher_tag_occupied.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const matcher_tag_traversable: CellMatcherLayerBitMaskTest;
|
|
2
|
-
import { CellMatcherLayerBitMaskTest } from "../../../src/generation/rules/CellMatcherLayerBitMaskTest.js";
|
|
1
|
+
export const matcher_tag_traversable: CellMatcherLayerBitMaskTest;
|
|
2
|
+
import { CellMatcherLayerBitMaskTest } from "../../../src/generation/rules/CellMatcherLayerBitMaskTest.js";
|
|
3
3
|
//# sourceMappingURL=matcher_tag_traversable.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export const matcher_tag_unoccupied: CellMatcherNot;
|
|
2
|
-
import { CellMatcherNot } from "../../../src/generation/rules/logic/CellMatcherNot.js";
|
|
1
|
+
export const matcher_tag_unoccupied: CellMatcherNot;
|
|
2
|
+
import { CellMatcherNot } from "../../../src/generation/rules/logic/CellMatcherNot.js";
|
|
3
3
|
//# sourceMappingURL=matcher_tag_unoccupied.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convolve 3-band spherical harmonic coefficients with a zonal harmonic kernel.
|
|
3
|
+
*
|
|
4
|
+
* Convolution with a circularly-symmetric (zonal) kernel is a per-band scale: band 0 is scaled by
|
|
5
|
+
* `zh0`, band 1 by `zh1` and band 2 by `zh2`. The kernel coefficients are expected to already include
|
|
6
|
+
* the `sqrt(4*PI / (2l + 1))` convolution normalization (as e.g. {@link sh3_ggx_zh} does).
|
|
7
|
+
*
|
|
8
|
+
* Layout is coefficient-major with `dimensions` interleaved channels per coefficient, matching
|
|
9
|
+
* {@link sh3_vector_accumulate}. Safe to use in-place (`out === input` with equal offsets).
|
|
10
|
+
*
|
|
11
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
12
|
+
* @param {number} out_offset
|
|
13
|
+
* @param {number[]|Float32Array|Float64Array} input
|
|
14
|
+
* @param {number} input_offset
|
|
15
|
+
* @param {number} zh0 band 0 scale
|
|
16
|
+
* @param {number} zh1 band 1 scale
|
|
17
|
+
* @param {number} zh2 band 2 scale
|
|
18
|
+
* @param {number} dimensions number of interleaved channels per coefficient, e.g. 3 for RGB
|
|
19
|
+
*/
|
|
20
|
+
export function sh3_convolve_with_zh(out: number[] | Float32Array | Float64Array, out_offset: number, input: number[] | Float32Array | Float64Array, input_offset: number, zh0: number, zh1: number, zh2: number, dimensions: number): void;
|
|
21
|
+
//# sourceMappingURL=sh3_convolve_with_zh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sh3_convolve_with_zh.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_convolve_with_zh.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,0CATW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,SACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,gBAClC,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,cACN,MAAM,QAiChB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { assert } from "../../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Convolve 3-band spherical harmonic coefficients with a zonal harmonic kernel.
|
|
5
|
+
*
|
|
6
|
+
* Convolution with a circularly-symmetric (zonal) kernel is a per-band scale: band 0 is scaled by
|
|
7
|
+
* `zh0`, band 1 by `zh1` and band 2 by `zh2`. The kernel coefficients are expected to already include
|
|
8
|
+
* the `sqrt(4*PI / (2l + 1))` convolution normalization (as e.g. {@link sh3_ggx_zh} does).
|
|
9
|
+
*
|
|
10
|
+
* Layout is coefficient-major with `dimensions` interleaved channels per coefficient, matching
|
|
11
|
+
* {@link sh3_vector_accumulate}. Safe to use in-place (`out === input` with equal offsets).
|
|
12
|
+
*
|
|
13
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
14
|
+
* @param {number} out_offset
|
|
15
|
+
* @param {number[]|Float32Array|Float64Array} input
|
|
16
|
+
* @param {number} input_offset
|
|
17
|
+
* @param {number} zh0 band 0 scale
|
|
18
|
+
* @param {number} zh1 band 1 scale
|
|
19
|
+
* @param {number} zh2 band 2 scale
|
|
20
|
+
* @param {number} dimensions number of interleaved channels per coefficient, e.g. 3 for RGB
|
|
21
|
+
*/
|
|
22
|
+
export function sh3_convolve_with_zh(
|
|
23
|
+
out, out_offset,
|
|
24
|
+
input, input_offset,
|
|
25
|
+
zh0, zh1, zh2,
|
|
26
|
+
dimensions
|
|
27
|
+
) {
|
|
28
|
+
assert.isArrayLike(out, 'out');
|
|
29
|
+
assert.isNonNegativeInteger(out_offset, 'out_offset');
|
|
30
|
+
assert.isArrayLike(input, 'input');
|
|
31
|
+
assert.isNonNegativeInteger(input_offset, 'input_offset');
|
|
32
|
+
assert.isNumber(zh0, 'zh0');
|
|
33
|
+
assert.isNumber(zh1, 'zh1');
|
|
34
|
+
assert.isNumber(zh2, 'zh2');
|
|
35
|
+
assert.isNonNegativeInteger(dimensions, 'dimensions');
|
|
36
|
+
|
|
37
|
+
const band_1_end = 4 * dimensions;
|
|
38
|
+
const band_2_end = 9 * dimensions;
|
|
39
|
+
|
|
40
|
+
let i = 0;
|
|
41
|
+
|
|
42
|
+
for (; i < dimensions; i++) {
|
|
43
|
+
out[out_offset + i] = input[input_offset + i] * zh0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
for (; i < band_1_end; i++) {
|
|
47
|
+
out[out_offset + i] = input[input_offset + i] * zh1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
for (; i < band_2_end; i++) {
|
|
51
|
+
out[out_offset + i] = input[input_offset + i] * zh2;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zonal harmonic coefficients approximating a GGX lobe of the given roughness.
|
|
3
|
+
*
|
|
4
|
+
* Convolving a radiance SH with these coefficients (see {@link sh3_convolve_with_zh}) low-passes it with
|
|
5
|
+
* a GGX-shaped cone: band 0 is preserved while bands 1 and 2 are attenuated progressively harder as
|
|
6
|
+
* `alpha` grows. Attenuating the directional bands tapers the SH reconstruction towards its mean,
|
|
7
|
+
* which suppresses ringing (negative lobes / light bleeding) at the cost of directional sharpness.
|
|
8
|
+
*
|
|
9
|
+
* The rational fit is from MJP's SH library.
|
|
10
|
+
*
|
|
11
|
+
* @see https://github.com/TheRealMJP/SHforHLSL/blob/e426058959123063e13d61a62df6217259b72cec/SH.hlsli#L394
|
|
12
|
+
*
|
|
13
|
+
* @param {number[]|Float32Array|Float64Array} out zonal coefficients [l0, l1, l2] are written here
|
|
14
|
+
* @param {number} out_offset
|
|
15
|
+
* @param {number} alpha GGX roughness (perceptual roughness squared) in [0, 1]; the fit is only valid in this range
|
|
16
|
+
*/
|
|
17
|
+
export function sh3_ggx_zh(out: number[] | Float32Array | Float64Array, out_offset: number, alpha: number): void;
|
|
18
|
+
//# sourceMappingURL=sh3_ggx_zh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sh3_ggx_zh.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_ggx_zh.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,gCAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,SACN,MAAM,QAahB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { assert } from "../../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Zonal harmonic coefficients approximating a GGX lobe of the given roughness.
|
|
5
|
+
*
|
|
6
|
+
* Convolving a radiance SH with these coefficients (see {@link sh3_convolve_with_zh}) low-passes it with
|
|
7
|
+
* a GGX-shaped cone: band 0 is preserved while bands 1 and 2 are attenuated progressively harder as
|
|
8
|
+
* `alpha` grows. Attenuating the directional bands tapers the SH reconstruction towards its mean,
|
|
9
|
+
* which suppresses ringing (negative lobes / light bleeding) at the cost of directional sharpness.
|
|
10
|
+
*
|
|
11
|
+
* The rational fit is from MJP's SH library.
|
|
12
|
+
*
|
|
13
|
+
* @see https://github.com/TheRealMJP/SHforHLSL/blob/e426058959123063e13d61a62df6217259b72cec/SH.hlsli#L394
|
|
14
|
+
*
|
|
15
|
+
* @param {number[]|Float32Array|Float64Array} out zonal coefficients [l0, l1, l2] are written here
|
|
16
|
+
* @param {number} out_offset
|
|
17
|
+
* @param {number} alpha GGX roughness (perceptual roughness squared) in [0, 1]; the fit is only valid in this range
|
|
18
|
+
*/
|
|
19
|
+
export function sh3_ggx_zh(out, out_offset, alpha) {
|
|
20
|
+
assert.isArrayLike(out, 'out');
|
|
21
|
+
assert.isNonNegativeInteger(out_offset, 'out_offset');
|
|
22
|
+
assert.isNumber(alpha, 'alpha');
|
|
23
|
+
assert.notNaN(alpha, 'alpha');
|
|
24
|
+
assert.greaterThanOrEqual(alpha, 0, 'alpha');
|
|
25
|
+
assert.lessThanOrEqual(alpha, 1, 'alpha');
|
|
26
|
+
|
|
27
|
+
out[out_offset] = 1;
|
|
28
|
+
out[out_offset + 1] = 1.66711256633276 / (1.65715038133932 + alpha);
|
|
29
|
+
out[out_offset + 2] = 1.56127990596116 / (0.96989757593282 + alpha) - 0.599972342361123;
|
|
30
|
+
}
|
|
@@ -16,6 +16,14 @@ export class LightContext extends SystemEntityContext {
|
|
|
16
16
|
*/
|
|
17
17
|
getTransform(): Transform;
|
|
18
18
|
__rebuild(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Forward+ point lights have no shadow support; a shadow-casting point
|
|
21
|
+
* light falls through to a real three.js light instead
|
|
22
|
+
* @return {boolean}
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
private __use_fp_binding;
|
|
26
|
+
__handleCastShadowChanged(): void;
|
|
19
27
|
__build(): void;
|
|
20
28
|
applySettings(): void;
|
|
21
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightContext.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightContext.js"],"names":[],"mappings":"AAKA;IAEI;;;;OAIG;IACH,kBAAiB;IAEjB;;;OAGG;IACH,kBAEC;IAED;;;OAGG;IACH,0BAEC;IAED,kBAIC;IAED,gBASC;IAED,sBAEC;
|
|
1
|
+
{"version":3,"file":"LightContext.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightContext.js"],"names":[],"mappings":"AAKA;IAEI;;;;OAIG;IACH,kBAAiB;IAEjB;;;OAGG;IACH,kBAEC;IAED;;;OAGG;IACH,0BAEC;IAED,kBAIC;IAED;;;;;OAKG;IACH,yBAMC;IAED,kCAQC;IAED,gBASC;IAED,sBAEC;CAsBJ;oCA/FmC,4CAA4C"}
|
|
@@ -34,8 +34,32 @@ export class LightContext extends SystemEntityContext {
|
|
|
34
34
|
this.__binding.link(this);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Forward+ point lights have no shadow support; a shadow-casting point
|
|
39
|
+
* light falls through to a real three.js light instead
|
|
40
|
+
* @return {boolean}
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
__use_fp_binding() {
|
|
44
|
+
const light = this.getLight();
|
|
45
|
+
|
|
46
|
+
return light.type.getValue() === LightType.POINT
|
|
47
|
+
&& this.system.__use_forward_plus
|
|
48
|
+
&& !light.castShadow.getValue();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
__handleCastShadowChanged() {
|
|
52
|
+
if ((this.__binding instanceof FPLightBinding) === this.__use_fp_binding()) {
|
|
53
|
+
// routing is unchanged; a three.js-bound light reacts to castShadow
|
|
54
|
+
// through its own binding, no rebuild needed
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
this.__rebuild();
|
|
59
|
+
}
|
|
60
|
+
|
|
37
61
|
__build() {
|
|
38
|
-
if (this.
|
|
62
|
+
if (this.__use_fp_binding()) {
|
|
39
63
|
this.__binding = new FPLightBinding();
|
|
40
64
|
} else {
|
|
41
65
|
this.__binding = new ThreeLightBinding();
|
|
@@ -53,12 +77,18 @@ export class LightContext extends SystemEntityContext {
|
|
|
53
77
|
this.__build();
|
|
54
78
|
this.__binding.link(this);
|
|
55
79
|
|
|
56
|
-
this.getLight()
|
|
80
|
+
const light = this.getLight();
|
|
81
|
+
|
|
82
|
+
light.type.onChanged.add(this.__rebuild, this);
|
|
83
|
+
light.castShadow.onChanged.add(this.__handleCastShadowChanged, this);
|
|
57
84
|
}
|
|
58
85
|
|
|
59
86
|
unlink() {
|
|
60
87
|
|
|
61
|
-
this.getLight()
|
|
88
|
+
const light = this.getLight();
|
|
89
|
+
|
|
90
|
+
light.type.onChanged.remove(this.__rebuild, this);
|
|
91
|
+
light.castShadow.onChanged.remove(this.__handleCastShadowChanged, this);
|
|
62
92
|
|
|
63
93
|
this.__binding.unlink(this);
|
|
64
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightSystem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LightSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/light/LightSystem.js"],"names":[],"mappings":"AAoRA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,2DARW,YAAY,SACZ,WAAW,oBACX,MAAM,qCA6EhB;;uBApXsB,qBAAqB;sBAEtB,YAAY;AASlC;IACI;;;;;OAKG;IACH,2CAsFC;IA1EG,kDAAsC;IAGtC,6DAEC;IAGD,eAAoB;IACpB,WAA2B;IAC3B,aAAwB;IAExB;;;;OAIG;IACH,mBAA0B;IAE1B;;;;OAIG;IACH,wBAA2B;IAE3B,gBAAkB;IAElB;;;;OAIG;IACH,kBAAoC;IAGpC;;;;OAIG;IACH,2BAA8B;IAC9B;;;;OAIG;IACH,iBAAoB;IAGpB;;;;OAIG;IACH,4BAAgD;IAqBpD,mCAEC;IAED;;;;OAIG;IACH,uBAHW,MAAM,SACN,MAAM,GAAC,MAAM,GAAC,OAAO,QAkB/B;IAED;;;;OAIG;IACH,4BAHW,KAAK,UACL,MAAM,QAMhB;IAED,2CAOC;IAED,4CASC;IAGD,4CAOC;IAED;;;;;OAKG;IACH,wCA+CC;IAED;;;;;;OAMG;IACH,sCAwBC;CACJ;sCAxQqC,8CAA8C;0BAC1D,qCAAqC;4CAFnB,uDAAuD"}
|
|
@@ -213,12 +213,19 @@ class LightSystem extends AbstractContextSystem {
|
|
|
213
213
|
|
|
214
214
|
l.castShadow = true;
|
|
215
215
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
light
|
|
220
|
-
|
|
221
|
-
|
|
216
|
+
if (light.type.getValue() === LightType.DIRECTION) {
|
|
217
|
+
// the orthographic view-frustum fit only makes sense for
|
|
218
|
+
// directional lights; applying it to the perspective
|
|
219
|
+
// shadow camera of a point/spot light corrupts its
|
|
220
|
+
// projection (those cameras are driven by
|
|
221
|
+
// LightShadow.updateMatrices instead)
|
|
222
|
+
three_update_shadow_camera_extents(
|
|
223
|
+
this.__camera_object,
|
|
224
|
+
l,
|
|
225
|
+
light.maxShadowDistance.getValue(),
|
|
226
|
+
this.__graphics.layers
|
|
227
|
+
);
|
|
228
|
+
}
|
|
222
229
|
|
|
223
230
|
} else {
|
|
224
231
|
|
|
@@ -35,6 +35,18 @@ export class ThreeLightBinding extends LightBinding {
|
|
|
35
35
|
__shadowmap_link(): void;
|
|
36
36
|
__shadowmap_unlink(): void;
|
|
37
37
|
__shadowmap_prepare_view(): void;
|
|
38
|
+
/**
|
|
39
|
+
* A point light shadow renders six cube faces, a single camera frustum
|
|
40
|
+
* would only cull correctly for one of them. Instead, cull by the
|
|
41
|
+
* axis-aligned box bounding the light's sphere of influence: every caster
|
|
42
|
+
* that can shadow any face lies within `distance` of the light. The box is
|
|
43
|
+
* written directly as six inward-facing "frustum" planes and the resulting
|
|
44
|
+
* visible set is shared by all six face renders.
|
|
45
|
+
* @param {CameraView} cameraView
|
|
46
|
+
* @param {THREE.PointLight} light
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
private __shadowmap_prepare_view_point;
|
|
38
50
|
__shadowmap_render(): void;
|
|
39
51
|
applySettings(settings: any): void;
|
|
40
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeLightBinding.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThreeLightBinding.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js"],"names":[],"mappings":"AA2JA;;;;GAIG;AACH,6EAFW,MAAM,QAqBhB;AAED;IAGI;;;;OAIG;IACH,iBAAgB;IAEhB;;;;OAIG;IACH,qBAAoB;IAEpB;;;;OAIG;IACH,qBAA6B;IAG7B,qBAYC;IAED,uBAeC;IAED;;;;OAIG;IACH,yBAEC;IAYD,+BAEC;IAUD,yBAuBC;IAED,2BAmCC;IAED,iCA+BC;IAED;;;;;;;;;;OAUG;IACH,uCA8CC;IAGD,2BAkDC;IA8CD,mCAsCC;CAEJ;6BAxiB4B,oBAAoB"}
|