@aura3d/controls 1.4.5 → 1.5.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/dist/ControlState.d.ts +1 -1
- package/dist/ControlState.d.ts.map +1 -1
- package/dist/DragControls.d.ts +21 -1
- package/dist/DragControls.d.ts.map +1 -1
- package/dist/DragControls.js +24 -2
- package/dist/DragControls.js.map +1 -1
- package/dist/FirstPersonControls.d.ts +10 -1
- package/dist/FirstPersonControls.d.ts.map +1 -1
- package/dist/FirstPersonControls.js +18 -2
- package/dist/FirstPersonControls.js.map +1 -1
- package/dist/FlyControls.d.ts +42 -0
- package/dist/FlyControls.d.ts.map +1 -1
- package/dist/FlyControls.js +106 -3
- package/dist/FlyControls.js.map +1 -1
- package/dist/MapControls.d.ts +13 -0
- package/dist/MapControls.d.ts.map +1 -1
- package/dist/MapControls.js +40 -2
- package/dist/MapControls.js.map +1 -1
- package/dist/OrbitControls.d.ts +54 -0
- package/dist/OrbitControls.d.ts.map +1 -1
- package/dist/OrbitControls.js +133 -0
- package/dist/OrbitControls.js.map +1 -1
- package/dist/PointerLockControls.d.ts +12 -5
- package/dist/PointerLockControls.d.ts.map +1 -1
- package/dist/PointerLockControls.js +30 -11
- package/dist/PointerLockControls.js.map +1 -1
- package/dist/SelectionManager.d.ts +22 -1
- package/dist/SelectionManager.d.ts.map +1 -1
- package/dist/SelectionManager.js +64 -6
- package/dist/SelectionManager.js.map +1 -1
- package/dist/TransformControls.d.ts +135 -1
- package/dist/TransformControls.d.ts.map +1 -1
- package/dist/TransformControls.js +534 -10
- package/dist/TransformControls.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/ControlState.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export interface ThreeCompatControlState {
|
|
|
8
8
|
readonly position: ControlVector3;
|
|
9
9
|
readonly rotation: ControlVector3;
|
|
10
10
|
readonly zoom: number;
|
|
11
|
-
|
|
11
|
+
enabled: boolean;
|
|
12
12
|
}
|
|
13
13
|
export declare function createDefaultControlState(): ThreeCompatControlState;
|
|
14
14
|
//# sourceMappingURL=ControlState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlState.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/ControlState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"ControlState.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/ControlState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,yBAAyB,IAAI,uBAAuB,CAQnE"}
|
package/dist/DragControls.d.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ControlObject3DLike, Vector3Like } from "./NativeControlTypes";
|
|
2
|
+
import { TransformControls } from "./TransformControls";
|
|
3
|
+
export interface DragControlsDeprecation {
|
|
4
|
+
readonly status: "deprecated";
|
|
5
|
+
readonly replacement: "@aura3d/input InteractionSystem + @aura3d/editor-runtime transform commands";
|
|
6
|
+
readonly limitation: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const DRAG_CONTROLS_DEPRECATION: DragControlsDeprecation;
|
|
9
|
+
export interface DragControlsOptions {
|
|
10
|
+
readonly transforms?: TransformControls;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A compatibility shim that delegates explicit translation deltas to the real
|
|
14
|
+
* command-backed `TransformControls`.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated This is not a browser/Three.js DragControls implementation. Use
|
|
17
|
+
* `InteractionSystem` from `@aura3d/input` for drag lifecycle events and
|
|
18
|
+
* `TransformControls` for recorded object mutation.
|
|
19
|
+
*/
|
|
2
20
|
export declare class DragControls {
|
|
3
21
|
dragging: ControlObject3DLike | null;
|
|
22
|
+
readonly transforms: TransformControls;
|
|
23
|
+
constructor(options?: DragControlsOptions);
|
|
4
24
|
start(object: ControlObject3DLike): void;
|
|
5
25
|
drag(delta: Vector3Like): void;
|
|
6
26
|
end(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/DragControls.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DragControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/DragControls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,6EAA6E,CAAC;IACpG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,yBAAyB,EAAE,uBAItC,CAAC;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAC5C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBAE3B,OAAO,GAAE,mBAAwB;IAI7C,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAMxC,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAK9B,GAAG,IAAI,IAAI;CAIZ"}
|
package/dist/DragControls.js
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TransformControls } from "./TransformControls.js";
|
|
2
|
+
export const DRAG_CONTROLS_DEPRECATION = Object.freeze({
|
|
3
|
+
status: "deprecated",
|
|
4
|
+
replacement: "@aura3d/input InteractionSystem + @aura3d/editor-runtime transform commands",
|
|
5
|
+
limitation: "The compatibility class applies explicit world-space deltas; it does not bind DOM events, raycast draggable objects, or implement Three.js DragControls."
|
|
6
|
+
});
|
|
7
|
+
/**
|
|
8
|
+
* A compatibility shim that delegates explicit translation deltas to the real
|
|
9
|
+
* command-backed `TransformControls`.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated This is not a browser/Three.js DragControls implementation. Use
|
|
12
|
+
* `InteractionSystem` from `@aura3d/input` for drag lifecycle events and
|
|
13
|
+
* `TransformControls` for recorded object mutation.
|
|
14
|
+
*/
|
|
2
15
|
export class DragControls {
|
|
3
16
|
dragging = null;
|
|
17
|
+
transforms;
|
|
18
|
+
constructor(options = {}) {
|
|
19
|
+
this.transforms = options.transforms ?? new TransformControls();
|
|
20
|
+
}
|
|
4
21
|
start(object) {
|
|
5
22
|
this.dragging = object;
|
|
23
|
+
this.transforms.attach(object);
|
|
24
|
+
this.transforms.setMode("translate");
|
|
6
25
|
}
|
|
7
26
|
drag(delta) {
|
|
8
|
-
|
|
27
|
+
if (!this.dragging)
|
|
28
|
+
return;
|
|
29
|
+
this.transforms.apply(delta);
|
|
9
30
|
}
|
|
10
31
|
end() {
|
|
11
32
|
this.dragging = null;
|
|
33
|
+
this.transforms.detach();
|
|
12
34
|
}
|
|
13
35
|
}
|
|
14
36
|
//# sourceMappingURL=DragControls.js.map
|
package/dist/DragControls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/DragControls.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DragControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/DragControls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQxD,MAAM,CAAC,MAAM,yBAAyB,GAA4B,MAAM,CAAC,MAAM,CAAC;IAC9E,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,6EAA6E;IAC1F,UAAU,EAAE,0JAA0J;CACvK,CAAC,CAAC;AAMH;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACvB,QAAQ,GAA+B,IAAI,CAAC;IACnC,UAAU,CAAoB;IAEvC,YAAY,UAA+B,EAAE;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,iBAAiB,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAA2B;QAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type FirstPersonControlsOptions } from "@aura3d/input";
|
|
2
|
+
import { FlyControls, type FlyCameraLike } from "./FlyControls";
|
|
3
|
+
export type { FirstPersonControlsOptions };
|
|
4
|
+
/**
|
|
5
|
+
* First-person navigation delegated to `@aura3d/input`.
|
|
6
|
+
*
|
|
7
|
+
* `look()` accepts angular deltas for compatibility; `applyInput()` accepts
|
|
8
|
+
* raw input snapshots and uses the configured input-engine look speed.
|
|
9
|
+
*/
|
|
2
10
|
export declare class FirstPersonControls extends FlyControls {
|
|
11
|
+
constructor(camera?: FlyCameraLike, options?: FirstPersonControlsOptions);
|
|
3
12
|
look(deltaX: number, deltaY: number): void;
|
|
4
13
|
}
|
|
5
14
|
//# sourceMappingURL=FirstPersonControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirstPersonControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/FirstPersonControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"FirstPersonControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/FirstPersonControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhE,YAAY,EAAE,0BAA0B,EAAE,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,GAAE,0BAA+B;IAc5E,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAG3C"}
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
+
import { FirstPersonControls as InputFirstPersonControls } from "@aura3d/input";
|
|
1
2
|
import { FlyControls } from "./FlyControls.js";
|
|
3
|
+
/**
|
|
4
|
+
* First-person navigation delegated to `@aura3d/input`.
|
|
5
|
+
*
|
|
6
|
+
* `look()` accepts angular deltas for compatibility; `applyInput()` accepts
|
|
7
|
+
* raw input snapshots and uses the configured input-engine look speed.
|
|
8
|
+
*/
|
|
2
9
|
export class FirstPersonControls extends FlyControls {
|
|
10
|
+
constructor(camera, options = {}) {
|
|
11
|
+
super(camera, {
|
|
12
|
+
movementSpeed: options.moveSpeed,
|
|
13
|
+
lookSpeed: options.lookSpeed
|
|
14
|
+
});
|
|
15
|
+
this.replaceDelegate(new InputFirstPersonControls(this.controlledCamera, {
|
|
16
|
+
...options,
|
|
17
|
+
moveSpeed: 1
|
|
18
|
+
}), options.lookSpeed ?? 0.002);
|
|
19
|
+
}
|
|
3
20
|
look(deltaX, deltaY) {
|
|
4
|
-
this.
|
|
5
|
-
this.state.rotation.x += deltaY;
|
|
21
|
+
this.lookByRadians(deltaX, deltaY, 0);
|
|
6
22
|
}
|
|
7
23
|
}
|
|
8
24
|
//# sourceMappingURL=FirstPersonControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirstPersonControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/FirstPersonControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"FirstPersonControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/FirstPersonControls.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,IAAI,wBAAwB,EAEhD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAC;AAIhE;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,YAAY,MAAsB,EAAE,UAAsC,EAAE;QAC1E,KAAK,CAAC,MAAM,EAAE;YACZ,aAAa,EAAE,OAAO,CAAC,SAAS;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAClB,IAAI,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAClD,GAAG,OAAO;YACV,SAAS,EAAE,CAAC;SACb,CAAC,EACF,OAAO,CAAC,SAAS,IAAI,KAAK,CAC3B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAc;QACjC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACF"}
|
package/dist/FlyControls.d.ts
CHANGED
|
@@ -1,8 +1,50 @@
|
|
|
1
|
+
import { InputSnapshot, type EditorFlyControlsOptions } from "@aura3d/input";
|
|
1
2
|
import { type ThreeCompatControlState } from "./ControlState";
|
|
3
|
+
import type { Vector3Like } from "./NativeControlTypes";
|
|
4
|
+
export interface FlyCameraLike {
|
|
5
|
+
readonly position: Vector3Like;
|
|
6
|
+
readonly rotation?: Vector3Like;
|
|
7
|
+
}
|
|
8
|
+
export interface FlyControlsOptions extends Omit<EditorFlyControlsOptions, "baseSpeed"> {
|
|
9
|
+
/**
|
|
10
|
+
* World units per second. The delegated input engine is normalized to one
|
|
11
|
+
* unit per second so this remains mutable for compatibility.
|
|
12
|
+
*/
|
|
13
|
+
readonly movementSpeed?: number;
|
|
14
|
+
}
|
|
15
|
+
interface FlyControlsDelegate {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
update(snapshot: InputSnapshot, deltaSeconds: number): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Fly navigation backed by `@aura3d/input`'s real editor-fly implementation.
|
|
22
|
+
*
|
|
23
|
+
* Supplying a camera mutates that camera. The no-argument compatibility form
|
|
24
|
+
* uses `state.position`/`state.rotation` as a small in-memory camera, so it
|
|
25
|
+
* still exercises the same yaw-relative movement and pitch-clamping engine
|
|
26
|
+
* rather than duplicating the camera math path.
|
|
27
|
+
*/
|
|
2
28
|
export declare class FlyControls {
|
|
3
29
|
readonly state: ThreeCompatControlState;
|
|
4
30
|
movementSpeed: number;
|
|
31
|
+
protected readonly controlledCamera: FlyCameraLike;
|
|
32
|
+
protected pointerLookSpeed: number;
|
|
33
|
+
private delegate;
|
|
34
|
+
constructor(camera?: FlyCameraLike, options?: FlyControlsOptions);
|
|
35
|
+
/** True for every instance: even the no-camera form owns a delegated state camera. */
|
|
36
|
+
get isDelegated(): true;
|
|
37
|
+
get enabled(): boolean;
|
|
38
|
+
set enabled(value: boolean);
|
|
39
|
+
applyInput(snapshot: InputSnapshot, deltaSeconds: number): void;
|
|
5
40
|
moveForward(distance: number): void;
|
|
6
41
|
strafe(distance: number): void;
|
|
42
|
+
lift(distance: number): void;
|
|
43
|
+
dispose(): void;
|
|
44
|
+
protected replaceDelegate(delegate: FlyControlsDelegate, pointerLookSpeed: number): void;
|
|
45
|
+
protected lookByRadians(deltaYaw: number, deltaPitch: number, button: number): void;
|
|
46
|
+
private updateDelegate;
|
|
47
|
+
private syncState;
|
|
7
48
|
}
|
|
49
|
+
export {};
|
|
8
50
|
//# sourceMappingURL=FlyControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlyControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/FlyControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"FlyControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/FlyControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC;IACrF;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAA+B;IACtE,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACnD,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB;IAepE,sFAAsF;IACtF,IAAI,WAAW,IAAI,IAAI,CAEtB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAGzB;IAED,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI/D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYnC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU9B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU5B,OAAO,IAAI,IAAI;IAKf,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAQxF,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBnF,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,SAAS;CAKlB"}
|
package/dist/FlyControls.js
CHANGED
|
@@ -1,12 +1,115 @@
|
|
|
1
|
+
import { EditorFlyControls as InputFlyControls, InputSnapshot } from "@aura3d/input";
|
|
1
2
|
import { createDefaultControlState } from "./ControlState.js";
|
|
3
|
+
/**
|
|
4
|
+
* Fly navigation backed by `@aura3d/input`'s real editor-fly implementation.
|
|
5
|
+
*
|
|
6
|
+
* Supplying a camera mutates that camera. The no-argument compatibility form
|
|
7
|
+
* uses `state.position`/`state.rotation` as a small in-memory camera, so it
|
|
8
|
+
* still exercises the same yaw-relative movement and pitch-clamping engine
|
|
9
|
+
* rather than duplicating the camera math path.
|
|
10
|
+
*/
|
|
2
11
|
export class FlyControls {
|
|
3
12
|
state = createDefaultControlState();
|
|
4
|
-
movementSpeed
|
|
13
|
+
movementSpeed;
|
|
14
|
+
controlledCamera;
|
|
15
|
+
pointerLookSpeed;
|
|
16
|
+
delegate;
|
|
17
|
+
constructor(camera, options = {}) {
|
|
18
|
+
this.movementSpeed = options.movementSpeed ?? 1;
|
|
19
|
+
this.pointerLookSpeed = options.lookSpeed ?? 0.0025;
|
|
20
|
+
this.controlledCamera = camera ?? {
|
|
21
|
+
position: this.state.position,
|
|
22
|
+
rotation: this.state.rotation
|
|
23
|
+
};
|
|
24
|
+
this.delegate = new InputFlyControls(this.controlledCamera, {
|
|
25
|
+
baseSpeed: 1,
|
|
26
|
+
fastMultiplier: options.fastMultiplier,
|
|
27
|
+
lookSpeed: options.lookSpeed
|
|
28
|
+
});
|
|
29
|
+
this.syncState();
|
|
30
|
+
}
|
|
31
|
+
/** True for every instance: even the no-camera form owns a delegated state camera. */
|
|
32
|
+
get isDelegated() {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
get enabled() {
|
|
36
|
+
return this.state.enabled;
|
|
37
|
+
}
|
|
38
|
+
set enabled(value) {
|
|
39
|
+
this.state.enabled = value;
|
|
40
|
+
this.delegate.enabled = value;
|
|
41
|
+
}
|
|
42
|
+
applyInput(snapshot, deltaSeconds) {
|
|
43
|
+
this.updateDelegate(snapshot, deltaSeconds * this.movementSpeed);
|
|
44
|
+
}
|
|
5
45
|
moveForward(distance) {
|
|
6
|
-
|
|
46
|
+
assertFinite(distance, "forward distance");
|
|
47
|
+
const movement = distance * this.movementSpeed;
|
|
48
|
+
if (movement === 0)
|
|
49
|
+
return;
|
|
50
|
+
// The input engine's +Z convention is opposite the historical
|
|
51
|
+
// moveForward helper, so KeyS preserves that helper's -Z contract.
|
|
52
|
+
this.updateDelegate(keySnapshot(movement > 0 ? "KeyS" : "KeyW"), Math.abs(movement));
|
|
7
53
|
}
|
|
8
54
|
strafe(distance) {
|
|
9
|
-
|
|
55
|
+
assertFinite(distance, "strafe distance");
|
|
56
|
+
const movement = distance * this.movementSpeed;
|
|
57
|
+
if (movement === 0)
|
|
58
|
+
return;
|
|
59
|
+
this.updateDelegate(keySnapshot(movement > 0 ? "KeyD" : "KeyA"), Math.abs(movement));
|
|
60
|
+
}
|
|
61
|
+
lift(distance) {
|
|
62
|
+
assertFinite(distance, "lift distance");
|
|
63
|
+
const movement = distance * this.movementSpeed;
|
|
64
|
+
if (movement === 0)
|
|
65
|
+
return;
|
|
66
|
+
this.updateDelegate(keySnapshot(movement > 0 ? "KeyE" : "KeyQ"), Math.abs(movement));
|
|
67
|
+
}
|
|
68
|
+
dispose() {
|
|
69
|
+
this.state.enabled = false;
|
|
70
|
+
this.delegate.dispose();
|
|
10
71
|
}
|
|
72
|
+
replaceDelegate(delegate, pointerLookSpeed) {
|
|
73
|
+
this.delegate.dispose();
|
|
74
|
+
this.delegate = delegate;
|
|
75
|
+
this.pointerLookSpeed = pointerLookSpeed;
|
|
76
|
+
this.delegate.enabled = this.state.enabled;
|
|
77
|
+
this.syncState();
|
|
78
|
+
}
|
|
79
|
+
lookByRadians(deltaYaw, deltaPitch, button) {
|
|
80
|
+
assertFinite(deltaYaw, "yaw delta");
|
|
81
|
+
assertFinite(deltaPitch, "pitch delta");
|
|
82
|
+
if (!this.state.enabled || (deltaYaw === 0 && deltaPitch === 0))
|
|
83
|
+
return;
|
|
84
|
+
const speed = Math.abs(this.pointerLookSpeed) > Number.EPSILON ? this.pointerLookSpeed : 1;
|
|
85
|
+
this.updateDelegate(new InputSnapshot({
|
|
86
|
+
pointer: {
|
|
87
|
+
deltaX: -deltaYaw / speed,
|
|
88
|
+
deltaY: -deltaPitch / speed,
|
|
89
|
+
buttons: new Map([[button, { down: true, pressed: true, released: false }]])
|
|
90
|
+
}
|
|
91
|
+
}), 0);
|
|
92
|
+
}
|
|
93
|
+
updateDelegate(snapshot, deltaSeconds) {
|
|
94
|
+
assertFinite(deltaSeconds, "delta seconds");
|
|
95
|
+
if (!this.state.enabled)
|
|
96
|
+
return;
|
|
97
|
+
this.delegate.enabled = true;
|
|
98
|
+
this.delegate.update(snapshot, deltaSeconds);
|
|
99
|
+
this.syncState();
|
|
100
|
+
}
|
|
101
|
+
syncState() {
|
|
102
|
+
const { position, rotation } = this.controlledCamera;
|
|
103
|
+
this.state.position.copy(position);
|
|
104
|
+
if (rotation)
|
|
105
|
+
this.state.rotation.copy(rotation);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function keySnapshot(code) {
|
|
109
|
+
return new InputSnapshot({ keys: new Set([code]) });
|
|
110
|
+
}
|
|
111
|
+
function assertFinite(value, label) {
|
|
112
|
+
if (!Number.isFinite(value))
|
|
113
|
+
throw new RangeError(`FlyControls ${label} must be finite.`);
|
|
11
114
|
}
|
|
12
115
|
//# sourceMappingURL=FlyControls.js.map
|
package/dist/FlyControls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlyControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/FlyControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAgC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"FlyControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/FlyControls.ts"],"names":[],"mappings":"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"}
|
package/dist/MapControls.d.ts
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
|
+
import { InputSnapshot } from "@aura3d/input";
|
|
1
2
|
import { OrbitControls } from "./OrbitControls";
|
|
3
|
+
import type { OrbitCameraLike, OrbitControlsOptions } from "./OrbitControls";
|
|
2
4
|
export declare class MapControls extends OrbitControls {
|
|
3
5
|
readonly screenSpacePanning = false;
|
|
6
|
+
readonly hasExternalCamera: boolean;
|
|
7
|
+
constructor(camera?: OrbitCameraLike, options?: OrbitControlsOptions);
|
|
8
|
+
/**
|
|
9
|
+
* Apply MapControls mouse semantics through the delegated orbit engine:
|
|
10
|
+
* left pans, right rotates, middle dollies, and the wheel dollies.
|
|
11
|
+
*/
|
|
12
|
+
applyInput(snapshot: InputSnapshot): void;
|
|
13
|
+
/**
|
|
14
|
+
* Ground-plane truck. This moves the real delegated orbit target on the XZ
|
|
15
|
+
* plane, including for the state-backed no-camera form.
|
|
16
|
+
*/
|
|
4
17
|
truck(deltaX: number, deltaZ: number): void;
|
|
5
18
|
}
|
|
6
19
|
//# sourceMappingURL=MapControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/MapControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"MapControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/MapControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,qBAAa,WAAY,SAAQ,aAAa;IAC5C,QAAQ,CAAC,kBAAkB,SAAS;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAExB,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB;IAQxE;;;OAGG;IACM,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAmBlD;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAI5C"}
|
package/dist/MapControls.js
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
|
+
import { InputSnapshot } from "@aura3d/input";
|
|
1
2
|
import { OrbitControls } from "./OrbitControls.js";
|
|
3
|
+
import { ControlVector3 } from "./NativeControlTypes.js";
|
|
2
4
|
export class MapControls extends OrbitControls {
|
|
3
5
|
screenSpacePanning = false;
|
|
6
|
+
hasExternalCamera;
|
|
7
|
+
constructor(camera, options = {}) {
|
|
8
|
+
// Unlike OrbitControls' deliberately retained detached compatibility mode,
|
|
9
|
+
// MapControls always delegates. A no-camera caller receives a state-backed
|
|
10
|
+
// camera so truck/orbit/dolly all use the same spherical engine.
|
|
11
|
+
super(camera ?? { position: new ControlVector3(0, 0, 5) }, options);
|
|
12
|
+
this.hasExternalCamera = camera !== undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Apply MapControls mouse semantics through the delegated orbit engine:
|
|
16
|
+
* left pans, right rotates, middle dollies, and the wheel dollies.
|
|
17
|
+
*/
|
|
18
|
+
applyInput(snapshot) {
|
|
19
|
+
const left = snapshot.button(0).down;
|
|
20
|
+
const middle = snapshot.button(1).down;
|
|
21
|
+
const right = snapshot.button(2).down;
|
|
22
|
+
const buttons = new Map();
|
|
23
|
+
if (left)
|
|
24
|
+
buttons.set(2, snapshot.button(0));
|
|
25
|
+
if (right)
|
|
26
|
+
buttons.set(0, snapshot.button(2));
|
|
27
|
+
super.applyInput(new InputSnapshot({
|
|
28
|
+
keys: snapshot.keys,
|
|
29
|
+
pointer: {
|
|
30
|
+
...snapshot.pointer,
|
|
31
|
+
buttons,
|
|
32
|
+
wheelY: snapshot.pointer.wheelY + (middle ? snapshot.pointer.deltaY : 0)
|
|
33
|
+
},
|
|
34
|
+
gamepads: snapshot.gamepads
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ground-plane truck. This moves the real delegated orbit target on the XZ
|
|
39
|
+
* plane, including for the state-backed no-camera form.
|
|
40
|
+
*/
|
|
4
41
|
truck(deltaX, deltaZ) {
|
|
5
|
-
this.
|
|
6
|
-
|
|
42
|
+
if (!this.enablePan)
|
|
43
|
+
return;
|
|
44
|
+
this.truckTarget(deltaX, deltaZ);
|
|
7
45
|
}
|
|
8
46
|
}
|
|
9
47
|
//# sourceMappingURL=MapControls.js.map
|
package/dist/MapControls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/MapControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,kBAAkB,GAAG,KAAK,CAAC;IAEpC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MapControls.js","sourceRoot":"","sources":["../../../../packages/controls/src/MapControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,kBAAkB,GAAG,KAAK,CAAC;IAC3B,iBAAiB,CAAU;IAEpC,YAAY,MAAwB,EAAE,UAAgC,EAAE;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,iEAAiE;QACjE,KAAK,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,GAAG,MAAM,KAAK,SAAS,CAAC;IAChD,CAAC;IAED;;;OAGG;IACM,UAAU,CAAC,QAAuB;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6F,CAAC;QACrH,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,KAAK,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,OAAO;gBACnB,OAAO;gBACP,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAc,EAAE,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACF"}
|
package/dist/OrbitControls.d.ts
CHANGED
|
@@ -1,11 +1,65 @@
|
|
|
1
|
+
import { InputSnapshot, type OrbitControlsOptions } from "@aura3d/input";
|
|
1
2
|
import { type ThreeCompatControlState } from "./ControlState";
|
|
3
|
+
import type { Vector3Like } from "./NativeControlTypes";
|
|
4
|
+
export type { OrbitControlsOptions };
|
|
5
|
+
export interface OrbitCameraLike {
|
|
6
|
+
position: Vector3Like;
|
|
7
|
+
lookAt?(target: Vector3Like): void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Three.js-compatible orbit controls.
|
|
11
|
+
*
|
|
12
|
+
* Two modes:
|
|
13
|
+
*
|
|
14
|
+
* - Camera-attached (`new OrbitControls(camera, options)`): all motion is
|
|
15
|
+
* delegated to the `@aura3d/input` orbit implementation, which owns the real
|
|
16
|
+
* spherical camera math, distance/polar clamping, and `saveState`/`reset`.
|
|
17
|
+
* `state` mirrors the camera the engine produced. This is the supported path.
|
|
18
|
+
* - Detached (`new OrbitControls()`): there is no camera to drive, so
|
|
19
|
+
* `rotate`/`pan`/`dolly` only accumulate bookkeeping numbers on `state`.
|
|
20
|
+
* Those numbers are not a camera pose and carry no parity claim. This mode
|
|
21
|
+
* exists so `TrackballControls` and existing detached callers keep working;
|
|
22
|
+
* new code should attach a camera.
|
|
23
|
+
*/
|
|
2
24
|
export declare class OrbitControls {
|
|
3
25
|
readonly state: ThreeCompatControlState;
|
|
4
26
|
enablePan: boolean;
|
|
5
27
|
enableZoom: boolean;
|
|
6
28
|
enableRotate: boolean;
|
|
29
|
+
private readonly engine;
|
|
30
|
+
private attachedCamera;
|
|
31
|
+
constructor(camera?: OrbitCameraLike, options?: OrbitControlsOptions);
|
|
32
|
+
/** True when a camera is attached and motion is delegated to the real engine. */
|
|
33
|
+
get isCameraAttached(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Drive the controls from an input snapshot. Camera-attached only; a detached
|
|
36
|
+
* instance has no camera to move and ignores the snapshot.
|
|
37
|
+
*
|
|
38
|
+
* Named `applyInput` rather than `update` because `TrackballControls`
|
|
39
|
+
* overrides `update(deltaSeconds)` with damping-tick semantics.
|
|
40
|
+
*/
|
|
41
|
+
applyInput(snapshot: InputSnapshot): void;
|
|
7
42
|
rotate(deltaX: number, deltaY: number): void;
|
|
8
43
|
pan(deltaX: number, deltaY: number): void;
|
|
9
44
|
dolly(scale: number): void;
|
|
45
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
46
|
+
getAzimuthalAngle(): number;
|
|
47
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
48
|
+
getPolarAngle(): number;
|
|
49
|
+
/** Camera-attached only; returns 0 when detached. */
|
|
50
|
+
getDistance(): number;
|
|
51
|
+
/** Camera-attached only; no-op when detached. */
|
|
52
|
+
saveState(): void;
|
|
53
|
+
/** Camera-attached only; no-op when detached. */
|
|
54
|
+
reset(): void;
|
|
55
|
+
dispose(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Move the orbit target on the XZ ground plane. Camera-attached instances
|
|
58
|
+
* move the engine target (and therefore the camera); detached instances only
|
|
59
|
+
* update `state.target` bookkeeping.
|
|
60
|
+
*/
|
|
61
|
+
protected truckTarget(deltaX: number, deltaZ: number): void;
|
|
62
|
+
private pushFlags;
|
|
63
|
+
private syncState;
|
|
10
64
|
}
|
|
11
65
|
//# sourceMappingURL=OrbitControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../packages/controls/src/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/G,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACpC;AAYD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAA+B;IACtE,SAAS,UAAQ;IACjB,UAAU,UAAQ;IAClB,YAAY,UAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,cAAc,CAA8B;gBAExC,MAAM,CAAC,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB;IASxE,iFAAiF;IACjF,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQzC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY5C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYzC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW1B,qDAAqD;IACrD,iBAAiB,IAAI,MAAM;IAI3B,qDAAqD;IACrD,aAAa,IAAI,MAAM;IAIvB,qDAAqD;IACrD,WAAW,IAAI,MAAM;IAIrB,iDAAiD;IACjD,SAAS,IAAI,IAAI;IAIjB,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IAIf;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa3D,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;CAWlB"}
|