@iwsdk/core 0.4.2 → 0.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/README.md +4 -7
- package/dist/asset/asset-manager.d.ts +136 -8
- package/dist/asset/asset-manager.d.ts.map +1 -1
- package/dist/asset/asset-manager.js +491 -47
- package/dist/asset/asset-manager.js.map +1 -1
- package/dist/asset/cache-manager.d.ts +4 -2
- package/dist/asset/cache-manager.d.ts.map +1 -1
- package/dist/asset/cache-manager.js +10 -3
- package/dist/asset/cache-manager.js.map +1 -1
- package/dist/asset/loaders/audio-loader.d.ts +1 -1
- package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
- package/dist/asset/loaders/audio-loader.js +8 -26
- package/dist/asset/loaders/audio-loader.js.map +1 -1
- package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
- package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
- package/dist/asset/loaders/cached-asset-load.js +100 -0
- package/dist/asset/loaders/cached-asset-load.js.map +1 -0
- package/dist/asset/loaders/gltf-loader.d.ts +28 -1
- package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
- package/dist/asset/loaders/gltf-loader.js +254 -33
- package/dist/asset/loaders/gltf-loader.js.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.js +19 -29
- package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
- package/dist/asset/loaders/texture-loader.d.ts +1 -1
- package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/texture-loader.js +9 -26
- package/dist/asset/loaders/texture-loader.js.map +1 -1
- package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
- package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
- package/dist/asset/loaders/uikitml-loader.js +44 -0
- package/dist/asset/loaders/uikitml-loader.js.map +1 -0
- package/dist/audio/audio-pool.d.ts +7 -0
- package/dist/audio/audio-pool.d.ts.map +1 -1
- package/dist/audio/audio-pool.js.map +1 -1
- package/dist/audio/audio-system.d.ts +1 -0
- package/dist/audio/audio-system.d.ts.map +1 -1
- package/dist/audio/audio-system.js +16 -2
- package/dist/audio/audio-system.js.map +1 -1
- package/dist/camera/camera-system.d.ts.map +1 -1
- package/dist/camera/camera-system.js +5 -3
- package/dist/camera/camera-system.js.map +1 -1
- package/dist/depth/depth-sensing-system.d.ts.map +1 -1
- package/dist/depth/depth-sensing-system.js +31 -10
- package/dist/depth/depth-sensing-system.js.map +1 -1
- package/dist/ecs/builtin-components.d.ts +1239 -0
- package/dist/ecs/builtin-components.d.ts.map +1 -0
- package/dist/ecs/builtin-components.js +87 -0
- package/dist/ecs/builtin-components.js.map +1 -0
- package/dist/ecs/component-editor-metadata.d.ts +19 -0
- package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
- package/dist/ecs/component-editor-metadata.js +19 -0
- package/dist/ecs/component-editor-metadata.js.map +1 -0
- package/dist/ecs/component-manifest.d.ts +24 -0
- package/dist/ecs/component-manifest.d.ts.map +1 -0
- package/dist/ecs/component-manifest.js +121 -0
- package/dist/ecs/component-manifest.js.map +1 -0
- package/dist/ecs/component.d.ts +1 -0
- package/dist/ecs/component.d.ts.map +1 -1
- package/dist/ecs/entity.d.ts +20 -2
- package/dist/ecs/entity.d.ts.map +1 -1
- package/dist/ecs/entity.js +59 -3
- package/dist/ecs/entity.js.map +1 -1
- package/dist/ecs/index.d.ts +3 -1
- package/dist/ecs/index.d.ts.map +1 -1
- package/dist/ecs/system.d.ts +9 -0
- package/dist/ecs/system.d.ts.map +1 -1
- package/dist/ecs/system.js.map +1 -1
- package/dist/ecs/world.d.ts +158 -4
- package/dist/ecs/world.d.ts.map +1 -1
- package/dist/ecs/world.js +304 -5
- package/dist/ecs/world.js.map +1 -1
- package/dist/environment/dome-gradient.d.ts +2 -1
- package/dist/environment/dome-gradient.d.ts.map +1 -1
- package/dist/environment/dome-gradient.js +2 -1
- package/dist/environment/dome-gradient.js.map +1 -1
- package/dist/environment/environment-system.d.ts +19 -3
- package/dist/environment/environment-system.d.ts.map +1 -1
- package/dist/environment/environment-system.js +78 -48
- package/dist/environment/environment-system.js.map +1 -1
- package/dist/environment/gradient-environment.d.ts.map +1 -1
- package/dist/environment/gradient-environment.js +13 -7
- package/dist/environment/gradient-environment.js.map +1 -1
- package/dist/environment/scene-ar-environment.d.ts +39 -0
- package/dist/environment/scene-ar-environment.d.ts.map +1 -0
- package/dist/environment/scene-ar-environment.js +93 -0
- package/dist/environment/scene-ar-environment.js.map +1 -0
- package/dist/grab/grab-helpers.d.ts +39 -0
- package/dist/grab/grab-helpers.d.ts.map +1 -0
- package/dist/grab/grab-helpers.js +59 -0
- package/dist/grab/grab-helpers.js.map +1 -0
- package/dist/grab/grab-system.d.ts +45 -0
- package/dist/grab/grab-system.d.ts.map +1 -1
- package/dist/grab/grab-system.js +67 -5
- package/dist/grab/grab-system.js.map +1 -1
- package/dist/grab/grab-warnings.d.ts +14 -0
- package/dist/grab/grab-warnings.d.ts.map +1 -0
- package/dist/grab/grab-warnings.js +53 -0
- package/dist/grab/grab-warnings.js.map +1 -0
- package/dist/grab/handles.d.ts.map +1 -1
- package/dist/grab/handles.js +8 -3
- package/dist/grab/handles.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -16
- package/dist/index.js.map +1 -1
- package/dist/init/world-initializer.d.ts +11 -7
- package/dist/init/world-initializer.d.ts.map +1 -1
- package/dist/init/world-initializer.js +118 -57
- package/dist/init/world-initializer.js.map +1 -1
- package/dist/init/xr.d.ts +0 -1
- package/dist/init/xr.d.ts.map +1 -1
- package/dist/init/xr.js +12 -3
- package/dist/init/xr.js.map +1 -1
- package/dist/input/input-system.d.ts.map +1 -1
- package/dist/input/input-system.js +26 -11
- package/dist/input/input-system.js.map +1 -1
- package/dist/layers/xr-layer-state.d.ts +47 -0
- package/dist/layers/xr-layer-state.d.ts.map +1 -0
- package/dist/layers/xr-layer-state.js +23 -0
- package/dist/layers/xr-layer-state.js.map +1 -0
- package/dist/layers/xr-layer-system.d.ts +45 -93
- package/dist/layers/xr-layer-system.d.ts.map +1 -1
- package/dist/layers/xr-layer-system.js +4 -25
- package/dist/layers/xr-layer-system.js.map +1 -1
- package/dist/level/index.d.ts +6 -2
- package/dist/level/index.d.ts.map +1 -1
- package/dist/level/level-component-applier.d.ts +24 -0
- package/dist/level/level-component-applier.d.ts.map +1 -0
- package/dist/level/level-component-applier.js +199 -0
- package/dist/level/level-component-applier.js.map +1 -0
- package/dist/level/level-player-rig.d.ts +17 -0
- package/dist/level/level-player-rig.d.ts.map +1 -0
- package/dist/level/level-player-rig.js +113 -0
- package/dist/level/level-player-rig.js.map +1 -0
- package/dist/level/level-scene-environment.d.ts +28 -0
- package/dist/level/level-scene-environment.d.ts.map +1 -0
- package/dist/level/level-scene-environment.js +121 -0
- package/dist/level/level-scene-environment.js.map +1 -0
- package/dist/level/level-scene-json-importer.d.ts +53 -0
- package/dist/level/level-scene-json-importer.d.ts.map +1 -0
- package/dist/level/level-scene-json-importer.js +256 -0
- package/dist/level/level-scene-json-importer.js.map +1 -0
- package/dist/level/level-scene-material.d.ts +22 -0
- package/dist/level/level-scene-material.d.ts.map +1 -0
- package/dist/level/level-scene-material.js +231 -0
- package/dist/level/level-scene-material.js.map +1 -0
- package/dist/level/level-scene-object.d.ts +49 -0
- package/dist/level/level-scene-object.d.ts.map +1 -0
- package/dist/level/level-scene-object.js +396 -0
- package/dist/level/level-scene-object.js.map +1 -0
- package/dist/level/level-scene-primitive.d.ts +21 -0
- package/dist/level/level-scene-primitive.d.ts.map +1 -0
- package/dist/level/level-scene-primitive.js +159 -0
- package/dist/level/level-scene-primitive.js.map +1 -0
- package/dist/level/level-system.d.ts +14 -20
- package/dist/level/level-system.d.ts.map +1 -1
- package/dist/level/level-system.js +114 -49
- package/dist/level/level-system.js.map +1 -1
- package/dist/lighting/index.d.ts +10 -0
- package/dist/lighting/index.d.ts.map +1 -0
- package/dist/lighting/index.js +4 -0
- package/dist/lighting/index.js.map +1 -0
- package/dist/lighting/light-binding.d.ts +76 -0
- package/dist/lighting/light-binding.d.ts.map +1 -0
- package/dist/lighting/light-binding.js +229 -0
- package/dist/lighting/light-binding.js.map +1 -0
- package/dist/lighting/light-components.d.ts +885 -0
- package/dist/lighting/light-components.d.ts.map +1 -0
- package/dist/lighting/light-components.js +146 -0
- package/dist/lighting/light-components.js.map +1 -0
- package/dist/lighting/light-system.d.ts +919 -0
- package/dist/lighting/light-system.d.ts.map +1 -0
- package/dist/lighting/light-system.js +244 -0
- package/dist/lighting/light-system.js.map +1 -0
- package/dist/locomotion/locomotion-environment.d.ts +27 -0
- package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
- package/dist/locomotion/locomotion-environment.js +22 -0
- package/dist/locomotion/locomotion-environment.js.map +1 -0
- package/dist/locomotion/locomotion.d.ts +5 -34
- package/dist/locomotion/locomotion.d.ts.map +1 -1
- package/dist/locomotion/locomotion.js +33 -31
- package/dist/locomotion/locomotion.js.map +1 -1
- package/dist/locomotion/materials/line.js +1 -1
- package/dist/locomotion/slide.d.ts.map +1 -1
- package/dist/locomotion/slide.js +2 -2
- package/dist/locomotion/slide.js.map +1 -1
- package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
- package/dist/mcp/ecs-debug-tools.js +10 -2
- package/dist/mcp/ecs-debug-tools.js.map +1 -1
- package/dist/mcp/mcp-runtime.d.ts.map +1 -1
- package/dist/mcp/mcp-runtime.js +4 -1
- package/dist/mcp/mcp-runtime.js.map +1 -1
- package/dist/mcp/scene-tools.d.ts +152 -1
- package/dist/mcp/scene-tools.d.ts.map +1 -1
- package/dist/mcp/scene-tools.js +538 -8
- package/dist/mcp/scene-tools.js.map +1 -1
- package/dist/physics/index.js +11 -4
- package/dist/physics/index.js.map +1 -1
- package/dist/physics/physics-system.d.ts +704 -11
- package/dist/physics/physics-system.d.ts.map +1 -1
- package/dist/physics/physics-system.js +307 -25
- package/dist/physics/physics-system.js.map +1 -1
- package/dist/physics/physicsBody.d.ts +40 -1
- package/dist/physics/physicsBody.d.ts.map +1 -1
- package/dist/physics/physicsBody.js +39 -0
- package/dist/physics/physicsBody.js.map +1 -1
- package/dist/physics/physicsManipulation.d.ts +1 -1
- package/dist/physics/physicsManipulation.d.ts.map +1 -1
- package/dist/physics/physicsShape.d.ts +5 -3
- package/dist/physics/physicsShape.d.ts.map +1 -1
- package/dist/physics/physicsShape.js +2 -1
- package/dist/physics/physicsShape.js.map +1 -1
- package/dist/physics/utils.d.ts +10 -0
- package/dist/physics/utils.d.ts.map +1 -1
- package/dist/physics/utils.js +82 -48
- package/dist/physics/utils.js.map +1 -1
- package/dist/project/index.d.ts +11 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +5 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/normalize.d.ts +19 -0
- package/dist/project/normalize.d.ts.map +1 -0
- package/dist/project/normalize.js +206 -0
- package/dist/project/normalize.js.map +1 -0
- package/dist/project/paths.d.ts +21 -0
- package/dist/project/paths.d.ts.map +1 -0
- package/dist/project/paths.js +75 -0
- package/dist/project/paths.js.map +1 -0
- package/dist/project/types.d.ts +159 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +11 -0
- package/dist/project/types.js.map +1 -0
- package/dist/project/validation.d.ts +17 -0
- package/dist/project/validation.d.ts.map +1 -0
- package/dist/project/validation.js +501 -0
- package/dist/project/validation.js.map +1 -0
- package/dist/scene-understanding/scene-understanding-system.d.ts +23 -2
- package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.js +76 -54
- package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
- package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
- package/dist/transform/transform-component.d.ts +32 -0
- package/dist/transform/transform-component.d.ts.map +1 -0
- package/dist/transform/transform-component.js +24 -0
- package/dist/transform/transform-component.js.map +1 -0
- package/dist/transform/transform.d.ts +9 -42
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +8 -25
- package/dist/transform/transform.js.map +1 -1
- package/dist/ui/document.d.ts +9 -2
- package/dist/ui/document.d.ts.map +1 -1
- package/dist/ui/document.js +30 -5
- package/dist/ui/document.js.map +1 -1
- package/dist/ui/follow-component.d.ts +57 -0
- package/dist/ui/follow-component.d.ts.map +1 -0
- package/dist/ui/follow-component.js +38 -0
- package/dist/ui/follow-component.js.map +1 -0
- package/dist/ui/follow.d.ts +28 -102
- package/dist/ui/follow.d.ts.map +1 -1
- package/dist/ui/follow.js +10 -48
- package/dist/ui/follow.js.map +1 -1
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/panel-components.d.ts +29 -0
- package/dist/ui/panel-components.d.ts.map +1 -0
- package/dist/ui/panel-components.js +22 -0
- package/dist/ui/panel-components.js.map +1 -0
- package/dist/ui/screenspace-component.d.ts +39 -0
- package/dist/ui/screenspace-component.d.ts.map +1 -0
- package/dist/ui/screenspace-component.js +21 -0
- package/dist/ui/screenspace-component.js.map +1 -0
- package/dist/ui/screenspace.d.ts +47 -135
- package/dist/ui/screenspace.d.ts.map +1 -1
- package/dist/ui/screenspace.js +127 -65
- package/dist/ui/screenspace.js.map +1 -1
- package/dist/ui/ui.d.ts +20 -122
- package/dist/ui/ui.d.ts.map +1 -1
- package/dist/ui/ui.js +44 -107
- package/dist/ui/ui.js.map +1 -1
- package/dist/ui/uikitml-asset.d.ts +25 -0
- package/dist/ui/uikitml-asset.d.ts.map +1 -0
- package/dist/ui/uikitml-asset.js +56 -0
- package/dist/ui/uikitml-asset.js.map +1 -0
- package/dist/ui/uikitml.d.ts +41 -0
- package/dist/ui/uikitml.d.ts.map +1 -0
- package/dist/ui/uikitml.js +119 -0
- package/dist/ui/uikitml.js.map +1 -0
- package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/visibility/visibility-component.d.ts +14 -0
- package/dist/visibility/visibility-component.d.ts.map +1 -0
- package/dist/visibility/visibility-component.js +15 -0
- package/dist/visibility/visibility-component.js.map +1 -0
- package/dist/visibility/visibility.d.ts +3 -10
- package/dist/visibility/visibility.d.ts.map +1 -1
- package/dist/visibility/visibility.js +9 -12
- package/dist/visibility/visibility.js.map +1 -1
- package/package.json +48 -19
- package/LICENSE +0 -21
- package/dist/ecs/component-registry.d.ts +0 -54
- package/dist/ecs/component-registry.d.ts.map +0 -1
- package/dist/ecs/component-registry.js +0 -86
- package/dist/ecs/component-registry.js.map +0 -1
- package/dist/level/level-entity-creator.d.ts +0 -27
- package/dist/level/level-entity-creator.d.ts.map +0 -1
- package/dist/level/level-entity-creator.js +0 -108
- package/dist/level/level-entity-creator.js.map +0 -1
- package/dist/level/level-glxf-importer.d.ts +0 -23
- package/dist/level/level-glxf-importer.d.ts.map +0 -1
- package/dist/level/level-glxf-importer.js +0 -40
- package/dist/level/level-glxf-importer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physics-system.d.ts","sourceRoot":"","sources":["../../src/physics/physics-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,
|
|
1
|
+
{"version":3,"file":"physics-system.d.ts","sourceRoot":"","sources":["../../src/physics/physics-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import '../runtime/three.js';
|
|
2
|
-
import { PhysicsBody,
|
|
2
|
+
import { PhysicsBody, DEFAULT_ANGULAR_DAMPING, DEFAULT_LINEAR_DAMPING, DEFAULT_GRAVITY_FACTOR, PhysicsState } from './physicsBody.js';
|
|
3
3
|
import { PhysicsManipulation } from './physicsManipulation.js';
|
|
4
4
|
import { PhysicsShape, PhysicsShapeType } from './physicsShape.js';
|
|
5
|
-
import { detectShapeFromGeometry, generateMergedGeometry } from './utils.js';
|
|
5
|
+
import { detectShapeFromGeometry, generateMergedGeometry, sequentialIndices } from './utils.js';
|
|
6
6
|
import { createSystem } from '../ecs/system.js';
|
|
7
7
|
import { Types, ne } from 'elics';
|
|
8
8
|
import { Grabbed } from '../grab/grabbed.js';
|
|
@@ -14,6 +14,36 @@ import { Vector3, Matrix4, Mesh } from 'three';
|
|
|
14
14
|
* This source code is licensed under the MIT license found in the
|
|
15
15
|
* LICENSE file in the root directory of this source tree.
|
|
16
16
|
*/
|
|
17
|
+
const ZERO_VECTOR = [0, 0, 0];
|
|
18
|
+
function getCapsuleAxisEndpoints(radius, totalHeight) {
|
|
19
|
+
if (!Number.isFinite(radius) ||
|
|
20
|
+
!Number.isFinite(totalHeight) ||
|
|
21
|
+
radius <= 0 ||
|
|
22
|
+
totalHeight < radius * 2) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const halfSegment = totalHeight / 2 - radius;
|
|
26
|
+
if (halfSegment === 0) {
|
|
27
|
+
return [
|
|
28
|
+
[0, 0, 0],
|
|
29
|
+
[0, 0, 0],
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
return [
|
|
33
|
+
[0, -halfSegment, 0],
|
|
34
|
+
[0, halfSegment, 0],
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
function vector3ToArray(value) {
|
|
38
|
+
return 'x' in value
|
|
39
|
+
? [value.x, value.y, value.z]
|
|
40
|
+
: [value[0], value[1], value[2]];
|
|
41
|
+
}
|
|
42
|
+
function quaternionToArray(value) {
|
|
43
|
+
return 'w' in value
|
|
44
|
+
? [value.x, value.y, value.z, value.w]
|
|
45
|
+
: [value[0], value[1], value[2], value[3]];
|
|
46
|
+
}
|
|
17
47
|
/**
|
|
18
48
|
* Manages physics simulation using the Havok physics engine.
|
|
19
49
|
*
|
|
@@ -52,6 +82,23 @@ class PhysicsSystem extends createSystem({
|
|
|
52
82
|
required: [PhysicsBody, PhysicsManipulation],
|
|
53
83
|
where: [ne(PhysicsBody, '_engineBody', 0)],
|
|
54
84
|
},
|
|
85
|
+
// Bodies whose gravityFactor / linearDamping / angularDamping differ from
|
|
86
|
+
// the defaults. The value predicate keeps each set limited to overridden
|
|
87
|
+
// bodies, so the common case (default values) is never visited by the
|
|
88
|
+
// per-frame reactive sync below, and the queries re-fire whenever the field
|
|
89
|
+
// is `setValue`-d.
|
|
90
|
+
gravityOverrides: {
|
|
91
|
+
required: [PhysicsBody, PhysicsShape],
|
|
92
|
+
where: [ne(PhysicsBody, 'gravityFactor', DEFAULT_GRAVITY_FACTOR)],
|
|
93
|
+
},
|
|
94
|
+
linearDampingOverrides: {
|
|
95
|
+
required: [PhysicsBody, PhysicsShape],
|
|
96
|
+
where: [ne(PhysicsBody, 'linearDamping', DEFAULT_LINEAR_DAMPING)],
|
|
97
|
+
},
|
|
98
|
+
angularDampingOverrides: {
|
|
99
|
+
required: [PhysicsBody, PhysicsShape],
|
|
100
|
+
where: [ne(PhysicsBody, 'angularDamping', DEFAULT_ANGULAR_DAMPING)],
|
|
101
|
+
},
|
|
55
102
|
}, {
|
|
56
103
|
gravity: { type: Types.Vec3, default: [0, -9.81, 0] },
|
|
57
104
|
}) {
|
|
@@ -60,6 +107,14 @@ class PhysicsSystem extends createSystem({
|
|
|
60
107
|
this.scaleBuffer = new Vector3();
|
|
61
108
|
this.matrixBuffer = new Matrix4();
|
|
62
109
|
}
|
|
110
|
+
/** Float32 view over the current Havok heap buffer (see {@link heapFloatView}). */
|
|
111
|
+
getHeapFloatView() {
|
|
112
|
+
const buffer = this.havok.HEAPU8.buffer;
|
|
113
|
+
if (!this.heapFloatView || this.heapFloatView.buffer !== buffer) {
|
|
114
|
+
this.heapFloatView = new Float32Array(buffer);
|
|
115
|
+
}
|
|
116
|
+
return this.heapFloatView;
|
|
117
|
+
}
|
|
63
118
|
async init() {
|
|
64
119
|
const { default: HavokPhysics } = await import('@babylonjs/havok');
|
|
65
120
|
this.havok = await HavokPhysics();
|
|
@@ -79,6 +134,80 @@ class PhysicsSystem extends createSystem({
|
|
|
79
134
|
this.havok.HP_World_RemoveBody(this.havokWorld, [BigInt(engineBody)]);
|
|
80
135
|
}
|
|
81
136
|
});
|
|
137
|
+
this.subscribeReactiveOverrides();
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Teleport an existing Havok body to `pose`.
|
|
141
|
+
*
|
|
142
|
+
* @remarks
|
|
143
|
+
* No-ops until the entity has a live {@link PhysicsBody}. The pose is pushed
|
|
144
|
+
* directly to Havok and mirrored onto `entity.object3D` immediately so callers
|
|
145
|
+
* do not need to wait for the next physics tick before reading the reset
|
|
146
|
+
* transform. Linear and angular velocity are cleared by default, which is the
|
|
147
|
+
* expected behavior for reset/home-position flows.
|
|
148
|
+
*
|
|
149
|
+
* @example Reset a fallen prop to its home pose
|
|
150
|
+
* ```ts
|
|
151
|
+
* const physics = world.getSystem(PhysicsSystem);
|
|
152
|
+
* physics.setBodyTransform(prop, {
|
|
153
|
+
* position: homePosition,
|
|
154
|
+
* quaternion: homeQuaternion,
|
|
155
|
+
* });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
setBodyTransform(entity, pose, options = {}) {
|
|
159
|
+
if (!this.havok || !entity.hasComponent(PhysicsBody)) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const engineBody = entity.getValue(PhysicsBody, '_engineBody');
|
|
163
|
+
if (!engineBody) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const body = [BigInt(engineBody)];
|
|
167
|
+
const position = vector3ToArray(pose.position);
|
|
168
|
+
const quaternion = quaternionToArray(pose.quaternion);
|
|
169
|
+
this.havok.HP_Body_SetQTransform(body, [position, quaternion]);
|
|
170
|
+
if (entity.object3D) {
|
|
171
|
+
entity.object3D.position.set(position[0], position[1], position[2]);
|
|
172
|
+
entity.object3D.quaternion.set(quaternion[0], quaternion[1], quaternion[2], quaternion[3]);
|
|
173
|
+
entity.object3D.updateMatrixWorld(true);
|
|
174
|
+
}
|
|
175
|
+
if (options.resetVelocity === false) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
this.havok.HP_Body_SetLinearVelocity(body, [...ZERO_VECTOR]);
|
|
179
|
+
this.havok.HP_Body_SetAngularVelocity(body, [...ZERO_VECTOR]);
|
|
180
|
+
entity.getVectorView(PhysicsBody, '_linearVelocity').set(ZERO_VECTOR);
|
|
181
|
+
entity.getVectorView(PhysicsBody, '_angularVelocity').set(ZERO_VECTOR);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Reset a body's gravityFactor / linearDamping / angularDamping to the engine
|
|
185
|
+
* default when its field returns to the default value. The entity then drops
|
|
186
|
+
* out of the override set, so {@link syncReactiveOverrides} no longer visits
|
|
187
|
+
* it — this is the one place that restores the default. The `hasComponent`
|
|
188
|
+
* guard distinguishes the value-returned-to-default case from the other
|
|
189
|
+
* disqualify cause (PhysicsBody/PhysicsShape removal), where the body is being
|
|
190
|
+
* released and must not be written to.
|
|
191
|
+
*/
|
|
192
|
+
subscribeReactiveOverrides() {
|
|
193
|
+
this.queries.gravityOverrides.subscribe('disqualify', (entity) => {
|
|
194
|
+
if (entity.hasComponent(PhysicsBody) &&
|
|
195
|
+
entity.hasComponent(PhysicsShape)) {
|
|
196
|
+
this.syncGravityFactor(entity);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
this.queries.linearDampingOverrides.subscribe('disqualify', (entity) => {
|
|
200
|
+
if (entity.hasComponent(PhysicsBody) &&
|
|
201
|
+
entity.hasComponent(PhysicsShape)) {
|
|
202
|
+
this.syncLinearDamping(entity);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
this.queries.angularDampingOverrides.subscribe('disqualify', (entity) => {
|
|
206
|
+
if (entity.hasComponent(PhysicsBody) &&
|
|
207
|
+
entity.hasComponent(PhysicsShape)) {
|
|
208
|
+
this.syncAngularDamping(entity);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
82
211
|
}
|
|
83
212
|
update(delta) {
|
|
84
213
|
if (this.havok && this.havokWorld) {
|
|
@@ -100,10 +229,19 @@ class PhysicsSystem extends createSystem({
|
|
|
100
229
|
}
|
|
101
230
|
else {
|
|
102
231
|
if (!engineBody && engineShape) {
|
|
103
|
-
const
|
|
232
|
+
const linearDamping = (_a = entity.getValue(PhysicsBody, 'linearDamping')) !== null && _a !== void 0 ? _a : DEFAULT_LINEAR_DAMPING;
|
|
233
|
+
const angularDamping = (_b = entity.getValue(PhysicsBody, 'angularDamping')) !== null && _b !== void 0 ? _b : DEFAULT_ANGULAR_DAMPING;
|
|
234
|
+
const gravityFactor = (_c = entity.getValue(PhysicsBody, 'gravityFactor')) !== null && _c !== void 0 ? _c : DEFAULT_GRAVITY_FACTOR;
|
|
235
|
+
const bodyRepsonse = this.createBody([BigInt(engineShape)], entity.object3D.position, entity.object3D.quaternion, entity.getValue(PhysicsBody, 'state'), linearDamping, angularDamping, gravityFactor, entity.getVectorView(PhysicsBody, 'centerOfMass'));
|
|
104
236
|
if (bodyRepsonse) {
|
|
105
237
|
entity.setValue(PhysicsBody, '_engineBody', Number(bodyRepsonse.createdBody));
|
|
106
238
|
entity.setValue(PhysicsBody, '_engineOffset', bodyRepsonse.offset);
|
|
239
|
+
// Seed the reactive shadows with what createBody just pushed, so the
|
|
240
|
+
// first per-frame sync sees no drift and skips a redundant write.
|
|
241
|
+
PhysicsBody.data._engineGravityFactor[entity.index] = gravityFactor;
|
|
242
|
+
PhysicsBody.data._engineLinearDamping[entity.index] = linearDamping;
|
|
243
|
+
PhysicsBody.data._engineAngularDamping[entity.index] =
|
|
244
|
+
angularDamping;
|
|
107
245
|
}
|
|
108
246
|
}
|
|
109
247
|
else if (engineBody && this.bodyBuffer) {
|
|
@@ -128,10 +266,14 @@ class PhysicsSystem extends createSystem({
|
|
|
128
266
|
return;
|
|
129
267
|
}
|
|
130
268
|
const bodyOffset = (_d = entity.getValue(PhysicsBody, '_engineOffset')) !== null && _d !== void 0 ? _d : 0;
|
|
131
|
-
|
|
269
|
+
// Read the 16-float transform straight out of the cached heap view.
|
|
270
|
+
// `bodyBuffer + bodyOffset` is 4-byte aligned (it was a valid
|
|
271
|
+
// Float32Array byteOffset previously), so `>> 2` is exact.
|
|
272
|
+
const heap = this.getHeapFloatView();
|
|
273
|
+
const base = (this.bodyBuffer + bodyOffset) >> 2;
|
|
132
274
|
for (let mi = 0; mi < 15; mi++) {
|
|
133
275
|
if ((mi & 3) != 3) {
|
|
134
|
-
this.matrixBuffer.elements[mi] =
|
|
276
|
+
this.matrixBuffer.elements[mi] = heap[base + mi];
|
|
135
277
|
}
|
|
136
278
|
}
|
|
137
279
|
this.matrixBuffer.elements[15] = 1.0;
|
|
@@ -139,6 +281,7 @@ class PhysicsSystem extends createSystem({
|
|
|
139
281
|
}
|
|
140
282
|
}
|
|
141
283
|
});
|
|
284
|
+
this.syncReactiveOverrides();
|
|
142
285
|
this.queries.manipluatedEntities.entities.forEach((entity) => {
|
|
143
286
|
const engineBody = entity.getValue(PhysicsBody, '_engineBody');
|
|
144
287
|
if (!entity.object3D || !this.havok || !this.havokWorld || !engineBody) {
|
|
@@ -218,8 +361,98 @@ class PhysicsSystem extends createSystem({
|
|
|
218
361
|
createdBody: body,
|
|
219
362
|
};
|
|
220
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Push post-creation gravityFactor / linearDamping / angularDamping edits to
|
|
366
|
+
* Havok. Only overridden bodies are visited (see the value-predicate queries
|
|
367
|
+
* in the system definition); each sync diffs the component value against the
|
|
368
|
+
* last-pushed shadow, so a body whose field is unchanged this frame costs only
|
|
369
|
+
* a typed-array compare.
|
|
370
|
+
*/
|
|
371
|
+
syncReactiveOverrides() {
|
|
372
|
+
this.queries.gravityOverrides.entities.forEach((entity) => {
|
|
373
|
+
this.syncGravityFactor(entity);
|
|
374
|
+
});
|
|
375
|
+
this.queries.linearDampingOverrides.entities.forEach((entity) => {
|
|
376
|
+
this.syncLinearDamping(entity);
|
|
377
|
+
});
|
|
378
|
+
this.queries.angularDampingOverrides.entities.forEach((entity) => {
|
|
379
|
+
this.syncAngularDamping(entity);
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Sync the entity's current {@link PhysicsBody.gravityFactor} onto its Havok
|
|
384
|
+
* body. Diffs the component value against `_engineGravityFactor` (the last
|
|
385
|
+
* value pushed) rather than reading back from Havok, so an unchanged body
|
|
386
|
+
* costs only a typed-array compare — no WASM call and no allocation. The Havok
|
|
387
|
+
* write and shadow update happen only on an actual change. No-op until the body
|
|
388
|
+
* exists. See {@link gravityOverrides}.
|
|
389
|
+
*/
|
|
390
|
+
syncGravityFactor(entity) {
|
|
391
|
+
if (!this.havok) {
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
394
|
+
const index = entity.index;
|
|
395
|
+
const engineBody = PhysicsBody.data._engineBody[index];
|
|
396
|
+
if (!engineBody) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
const target = PhysicsBody.data.gravityFactor[index];
|
|
400
|
+
if (PhysicsBody.data._engineGravityFactor[index] === target) {
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
this.havok.HP_Body_SetGravityFactor([BigInt(engineBody)], target);
|
|
404
|
+
PhysicsBody.data._engineGravityFactor[index] = target;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Sync the entity's current {@link PhysicsBody.linearDamping} onto its Havok
|
|
408
|
+
* body. Diffs against `_engineLinearDamping` (the last value pushed) rather
|
|
409
|
+
* than reading back from Havok, so an unchanged body costs only a typed-array
|
|
410
|
+
* compare — no WASM call and no allocation. The Havok write and shadow update
|
|
411
|
+
* happen only on an actual change. No-op until the body exists.
|
|
412
|
+
* See {@link linearDampingOverrides}.
|
|
413
|
+
*/
|
|
414
|
+
syncLinearDamping(entity) {
|
|
415
|
+
if (!this.havok) {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
const index = entity.index;
|
|
419
|
+
const engineBody = PhysicsBody.data._engineBody[index];
|
|
420
|
+
if (!engineBody) {
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
const target = PhysicsBody.data.linearDamping[index];
|
|
424
|
+
if (PhysicsBody.data._engineLinearDamping[index] === target) {
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
this.havok.HP_Body_SetLinearDamping([BigInt(engineBody)], target);
|
|
428
|
+
PhysicsBody.data._engineLinearDamping[index] = target;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Sync the entity's current {@link PhysicsBody.angularDamping} onto its Havok
|
|
432
|
+
* body. Diffs against `_engineAngularDamping` (the last value pushed) rather
|
|
433
|
+
* than reading back from Havok, so an unchanged body costs only a typed-array
|
|
434
|
+
* compare — no WASM call and no allocation. The Havok write and shadow update
|
|
435
|
+
* happen only on an actual change. No-op until the body exists.
|
|
436
|
+
* See {@link angularDampingOverrides}.
|
|
437
|
+
*/
|
|
438
|
+
syncAngularDamping(entity) {
|
|
439
|
+
if (!this.havok) {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
const index = entity.index;
|
|
443
|
+
const engineBody = PhysicsBody.data._engineBody[index];
|
|
444
|
+
if (!engineBody) {
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
const target = PhysicsBody.data.angularDamping[index];
|
|
448
|
+
if (PhysicsBody.data._engineAngularDamping[index] === target) {
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
this.havok.HP_Body_SetAngularDamping([BigInt(engineBody)], target);
|
|
452
|
+
PhysicsBody.data._engineAngularDamping[index] = target;
|
|
453
|
+
}
|
|
221
454
|
createHavokShapes(entity, dimensionsView) {
|
|
222
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
455
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
223
456
|
if (!entity.object3D) {
|
|
224
457
|
console.warn('PhysicsSystem: No object3D attached to entity', entity.index);
|
|
225
458
|
return;
|
|
@@ -269,8 +502,20 @@ class PhysicsSystem extends createSystem({
|
|
|
269
502
|
}
|
|
270
503
|
break;
|
|
271
504
|
}
|
|
505
|
+
case PhysicsShapeType.Capsules: {
|
|
506
|
+
const capsuleShape = this.createCapsuleShape(dimensionsView[0], // radius
|
|
507
|
+
dimensionsView[1], // total end-to-end height
|
|
508
|
+
(_k = entity.getValue(PhysicsShape, 'density')) !== null && _k !== void 0 ? _k : 1.0, (_l = entity.getValue(PhysicsShape, 'restitution')) !== null && _l !== void 0 ? _l : 0, (_m = entity.getValue(PhysicsShape, 'friction')) !== null && _m !== void 0 ? _m : 0.5);
|
|
509
|
+
if (capsuleShape) {
|
|
510
|
+
PhysicsShape.data._engineShape[entity.index] = Number(capsuleShape);
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
console.warn('PhysicsSystem: Failed to create capsule shape for entity', entity.index);
|
|
514
|
+
}
|
|
515
|
+
break;
|
|
516
|
+
}
|
|
272
517
|
case PhysicsShapeType.ConvexHull: {
|
|
273
|
-
const convexHullShape = this.createConvexHullShape(entity.object3D, (
|
|
518
|
+
const convexHullShape = this.createConvexHullShape(entity.object3D, (_o = entity.getValue(PhysicsShape, 'density')) !== null && _o !== void 0 ? _o : 1.0, (_p = entity.getValue(PhysicsShape, 'restitution')) !== null && _p !== void 0 ? _p : 0, (_q = entity.getValue(PhysicsShape, 'friction')) !== null && _q !== void 0 ? _q : 0.5);
|
|
274
519
|
if (convexHullShape) {
|
|
275
520
|
PhysicsShape.data._engineShape[entity.index] =
|
|
276
521
|
Number(convexHullShape);
|
|
@@ -281,7 +526,7 @@ class PhysicsSystem extends createSystem({
|
|
|
281
526
|
break;
|
|
282
527
|
}
|
|
283
528
|
case PhysicsShapeType.TriMesh: {
|
|
284
|
-
const triMeshShape = this.createTriMeshShape(entity.object3D, (
|
|
529
|
+
const triMeshShape = this.createTriMeshShape(entity.object3D, (_r = entity.getValue(PhysicsShape, 'density')) !== null && _r !== void 0 ? _r : 1.0, (_s = entity.getValue(PhysicsShape, 'restitution')) !== null && _s !== void 0 ? _s : 0, (_t = entity.getValue(PhysicsShape, 'friction')) !== null && _t !== void 0 ? _t : 0.5);
|
|
285
530
|
if (triMeshShape) {
|
|
286
531
|
PhysicsShape.data._engineShape[entity.index] = Number(triMeshShape);
|
|
287
532
|
}
|
|
@@ -340,24 +585,56 @@ class PhysicsSystem extends createSystem({
|
|
|
340
585
|
]);
|
|
341
586
|
return cylinderShape;
|
|
342
587
|
}
|
|
588
|
+
createCapsuleShape(radius, totalHeight, density, restitution, friction) {
|
|
589
|
+
if (!this.havok) {
|
|
590
|
+
console.warn('PhysicsSystem: Cannot create capsule shape - Havok physics engine not initialized');
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
const endpoints = getCapsuleAxisEndpoints(radius, totalHeight);
|
|
594
|
+
if (!endpoints) {
|
|
595
|
+
console.warn('PhysicsSystem: Capsule dimensions require a positive radius and a total height greater than or equal to twice the radius');
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
const [pointA, pointB] = endpoints;
|
|
599
|
+
const capsuleShape = this.havok.HP_Shape_CreateCapsule(pointA, pointB, radius)[1];
|
|
600
|
+
this.havok.HP_Shape_SetDensity(capsuleShape, density);
|
|
601
|
+
this.havok.HP_Shape_SetMaterial(capsuleShape, [
|
|
602
|
+
friction,
|
|
603
|
+
friction,
|
|
604
|
+
restitution,
|
|
605
|
+
this.havok.MaterialCombine.MINIMUM,
|
|
606
|
+
this.havok.MaterialCombine.MAXIMUM,
|
|
607
|
+
]);
|
|
608
|
+
return capsuleShape;
|
|
609
|
+
}
|
|
343
610
|
createConvexHullShape(object3D, density, restitution, friction) {
|
|
344
611
|
if (!this.havok) {
|
|
345
612
|
console.warn('PhysicsSystem: Cannot create convex hull shape - Havok physics engine not initialized');
|
|
346
613
|
return;
|
|
347
614
|
}
|
|
615
|
+
// When object3D is not a Mesh we build a merged geometry here and must
|
|
616
|
+
// dispose it once the shape is created; a Mesh's own geometry stays in use.
|
|
617
|
+
const ownsGeometry = !(object3D instanceof Mesh);
|
|
348
618
|
const geometry = object3D instanceof Mesh
|
|
349
619
|
? object3D.geometry
|
|
350
620
|
: generateMergedGeometry(object3D);
|
|
351
|
-
const
|
|
352
|
-
if (!
|
|
621
|
+
const positionAttribute = geometry.attributes.position;
|
|
622
|
+
if (!positionAttribute) {
|
|
353
623
|
console.warn('PhysicsSystem: Failed to get vertices for convex hull shape with object3D name ' +
|
|
354
624
|
object3D.name +
|
|
355
625
|
' &id ' +
|
|
356
626
|
object3D.id);
|
|
627
|
+
if (ownsGeometry) {
|
|
628
|
+
geometry.dispose();
|
|
629
|
+
}
|
|
357
630
|
return;
|
|
358
631
|
}
|
|
632
|
+
const vertices = this.getVertices(positionAttribute.array);
|
|
359
633
|
const convexHullShape = this.havok.HP_Shape_CreateConvexHull(vertices.offset, vertices.numObjects / 3)[1];
|
|
360
634
|
this.havok._free(vertices.offset);
|
|
635
|
+
if (ownsGeometry) {
|
|
636
|
+
geometry.dispose();
|
|
637
|
+
}
|
|
361
638
|
this.havok.HP_Shape_SetDensity(convexHullShape, density);
|
|
362
639
|
this.havok.HP_Shape_SetMaterial(convexHullShape, [
|
|
363
640
|
friction,
|
|
@@ -369,33 +646,38 @@ class PhysicsSystem extends createSystem({
|
|
|
369
646
|
return convexHullShape;
|
|
370
647
|
}
|
|
371
648
|
createTriMeshShape(object3D, density, restitution, friction) {
|
|
649
|
+
var _a, _b;
|
|
372
650
|
if (!this.havok) {
|
|
373
651
|
console.warn('PhysicsSystem: Cannot create tri-mesh shape - Havok physics engine not initialized');
|
|
374
652
|
return;
|
|
375
653
|
}
|
|
654
|
+
// When object3D is not a Mesh we build a merged geometry here and must
|
|
655
|
+
// dispose it once the shape is created; a Mesh's own geometry stays in use.
|
|
656
|
+
const ownsGeometry = !(object3D instanceof Mesh);
|
|
376
657
|
const geometry = object3D instanceof Mesh
|
|
377
658
|
? object3D.geometry
|
|
378
659
|
: generateMergedGeometry(object3D);
|
|
379
|
-
const
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
}
|
|
388
|
-
if (!indices) {
|
|
389
|
-
console.warn('PhysicsSystem: Failed to get indices for tri-mesh shape with object3D name ' +
|
|
390
|
-
object3D.name +
|
|
391
|
-
' &id ' +
|
|
392
|
-
object3D.id);
|
|
660
|
+
const positionAttribute = geometry.attributes.position;
|
|
661
|
+
if (!positionAttribute) {
|
|
662
|
+
console.warn('PhysicsSystem: Failed to get vertices for tri-mesh shape with object3D name ' +
|
|
663
|
+
object3D.name +
|
|
664
|
+
' &id ' +
|
|
665
|
+
object3D.id);
|
|
666
|
+
if (ownsGeometry) {
|
|
667
|
+
geometry.dispose();
|
|
393
668
|
}
|
|
394
669
|
return;
|
|
395
670
|
}
|
|
671
|
+
const vertices = this.getVertices(positionAttribute.array);
|
|
672
|
+
// geometry.index is null for non-indexed geometry; synthesize the implicit
|
|
673
|
+
// sequential index list so non-indexed meshes don't dereference null here.
|
|
674
|
+
const indices = this.getIndices((_b = (_a = geometry.index) === null || _a === void 0 ? void 0 : _a.array) !== null && _b !== void 0 ? _b : sequentialIndices(positionAttribute.count));
|
|
396
675
|
const triMeshShape = this.havok.HP_Shape_CreateMesh(vertices.offset, vertices.numObjects / 3, indices.offset, indices.numObjects / 3)[1];
|
|
397
676
|
this.havok._free(vertices.offset);
|
|
398
677
|
this.havok._free(indices.offset);
|
|
678
|
+
if (ownsGeometry) {
|
|
679
|
+
geometry.dispose();
|
|
680
|
+
}
|
|
399
681
|
this.havok.HP_Shape_SetDensity(triMeshShape, density);
|
|
400
682
|
this.havok.HP_Shape_SetMaterial(triMeshShape, [
|
|
401
683
|
friction,
|
|
@@ -428,5 +710,5 @@ class PhysicsSystem extends createSystem({
|
|
|
428
710
|
}
|
|
429
711
|
}
|
|
430
712
|
|
|
431
|
-
export { PhysicsSystem };
|
|
713
|
+
export { PhysicsSystem, getCapsuleAxisEndpoints };
|
|
432
714
|
//# sourceMappingURL=physics-system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physics-system.js","sources":["../../src/physics/physics-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"physics-system.js","sources":["../../src/physics/physics-system.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAAA;;;;;AAKG;AA2DH,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU;AAEhC,SAAU,uBAAuB,CACrC,MAAc,EACd,WAAmB,EAAA;AAEnB,IAAA,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxB,QAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC7B,QAAA,MAAM,IAAI,CAAC;AACX,QAAA,WAAW,GAAG,MAAM,GAAG,CAAC,EACxB;AACA,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,GAAG,MAAM;AAC5C,IAAA,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO;AACL,YAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACT,YAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACV;IACH;IACA,OAAO;AACL,QAAA,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACpB,QAAA,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACpB;AACH;AAEA,SAAS,cAAc,CAAC,KAAmB,EAAA;IACzC,OAAO,GAAG,IAAI;AACZ,UAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5B,UAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC;AAEA,SAAS,iBAAiB,CACxB,KAAsB,EAAA;IAEtB,OAAO,GAAG,IAAI;AACZ,UAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;UACnC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACG,MAAO,aAAc,SAAQ,YAAY,CAC7C;AACE,IAAA,eAAe,EAAE;AACf,QAAA,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;AACtC,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,QAAQ,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAC5C,KAAK,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAA;;;;;;AAMD,IAAA,gBAAgB,EAAE;AAChB,QAAA,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACrC,KAAK,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;AAClE,KAAA;AACD,IAAA,sBAAsB,EAAE;AACtB,QAAA,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACrC,KAAK,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;AAClE,KAAA;AACD,IAAA,uBAAuB,EAAE;AACvB,QAAA,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACrC,KAAK,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;AACpE,KAAA;CACF,EACD;AACE,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;CACtD,CACF,CAAA;AA9BD,IAAA,WAAA,GAAA;;AAmCU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE;AAC3B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE;IA82BtC;;IAp2BU,gBAAgB,GAAA;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,MAAM;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,MAAM,EAAE;YAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;QAC/C;QACA,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,MAAM,IAAI,GAAA;QACR,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAClE,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,YAAY,EAAE;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;;AAG1E,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,KAAI;YAC9D,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACnC;YACF;YAEA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;YACjE,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACpD;YAEA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;YAC9D,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvE;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,0BAA0B,EAAE;IACnC;AAEA;;;;;;;;;;;;;;;;;;AAkBG;AACH,IAAA,gBAAgB,CACd,MAAc,EACd,IAA8B,EAC9B,UAAuC,EAAE,EAAA;AAEzC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACpD;QACF;QAEA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QAEA,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAa;QAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAErD,QAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE9D,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAC5B,UAAU,CAAC,CAAC,CAAC,EACb,UAAU,CAAC,CAAC,CAAC,EACb,UAAU,CAAC,CAAC,CAAC,EACb,UAAU,CAAC,CAAC,CAAC,CACd;AACD,YAAA,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACzC;AAEA,QAAA,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE;YACnC;QACF;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;AAC7D,QAAA,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;AACrE,QAAA,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IACxE;AAEA;;;;;;;;AAQG;IACK,0BAA0B,GAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,KAAI;AAC/D,YAAA,IACE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;AAChC,gBAAA,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EACjC;AACA,gBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,KAAI;AACrE,YAAA,IACE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;AAChC,gBAAA,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EACjC;AACA,gBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,KAAI;AACtE,YAAA,IACE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;AAChC,gBAAA,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EACjC;AACA,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,CAAC,KAAa,EAAA;QAClB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzE;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;;AACvD,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACvD;YACF;YAEA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;YACjE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;YAE9D,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CACzC,YAAY,EACZ,YAAY,CACG;AACjB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC;gBAC9C;YACF;iBAAO;AACL,gBAAA,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE;AAC9B,oBAAA,MAAM,aAAa,GACjB,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAC7C,sBAAsB;AACxB,oBAAA,MAAM,cAAc,GAClB,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAC9C,uBAAuB;AACzB,oBAAA,MAAM,aAAa,GACjB,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAC7C,sBAAsB;oBACxB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAClC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EACrB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EACxB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAC1B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,EACrC,aAAa,EACb,cAAc,EACd,aAAa,EACb,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,CAAiB,CAClE;oBACD,IAAI,YAAY,EAAE;AAChB,wBAAA,MAAM,CAAC,QAAQ,CACb,WAAW,EACX,aAAa,EACb,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CACjC;wBACD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC;;;wBAGlE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa;wBACnE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa;wBACnE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,4BAAA,cAAc;oBAClB;gBACF;AAAO,qBAAA,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACxC,oBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;wBAC1D,MAAM,CAAC,UAAU,CAAC;AACnB,qBAAA,CAAC;AACF,oBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC;wBAC5D,MAAM,CAAC,UAAU,CAAC;AACnB,qBAAA,CAAC;oBAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAC7C,WAAW,EACX,iBAAiB,CAClB;oBACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAC9C,WAAW,EACX,kBAAkB,CACnB;oBACD,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACzC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;AAE3C,oBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AACzC,oBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU;oBAE7C,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;wBACnD,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACpC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACpB;4BACE,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpC,4BAAA,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACzD,yBAAA,CACF;wBACD;oBACF;AAEA,oBAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;;;;AAIrE,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;oBACpC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,KAAK,CAAC;AAEhD,oBAAA,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;wBAC9B,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;AACjB,4BAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;wBAClD;oBACF;oBACA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG;AACpC,oBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC;gBACrE;YACF;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE;AAE5B,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;AAE9D,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE;gBACtE;YACF;;AAGA,YAAA,IACE,CAAC;AACE,iBAAA,aAAa,CAAC,mBAAmB,EAAE,OAAO;iBAC1C,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,KAAK,CAAC,CAAC,EACpC;gBACA,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,mBAAmB,EAAE,OAAO,CAAC;gBAChE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAC7B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACpB;AACE,oBAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1B,oBAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1B,oBAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBAC3B,EACD,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CACvD;YACH;;AAGA,YAAA,IACE,CAAC;AACE,iBAAA,aAAa,CAAC,mBAAmB,EAAE,gBAAgB;iBACnD,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,KAAK,CAAC,CAAC,EACpC;gBACA,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CACzC,mBAAmB,EACnB,gBAAgB,CACjB;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAClC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACpB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAC1D;YACH;;AAGA,YAAA,IACE,CAAC;AACE,iBAAA,aAAa,CAAC,mBAAmB,EAAE,iBAAiB;iBACpD,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,KAAK,CAAC,CAAC,EACpC;gBACA,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAC1C,mBAAmB,EACnB,iBAAiB,CAClB;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACnC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACpB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAC7D;YACH;AAEA,YAAA,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC;AAC7C,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,UAAU,CAChB,KAAiB,EACjB,QAAiB,EACjB,UAAsB,EACtB,KAAU,EACV,aAAqB,EACrB,cAAsB,EACtB,aAAqB,EACrB,YAA0B,EAAA;QAE1B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACnC;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE;YACrC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpC,YAAA,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACzD,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,cAAc,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,KAAK,CAAC;AAChE,QAAA,MAAM,SAAS,GACb,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAChC,cAAE,SAAS,CAAC,CAAC;AACb,cAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAoB;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,EAAE;YAC7C,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACpE;aAAO;;YAEL,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC;QAEA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC;AAErD,QAAA,IAAI,UAAsB;QAC1B,QAAQ,KAAK;YACX,KAAK,YAAY,CAAC,MAAM;gBACtB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;gBACzC;YACF,KAAK,YAAY,CAAC,SAAS;gBACzB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS;gBAC5C;YACF,KAAK,YAAY,CAAC,OAAO;AACzB,YAAA;gBACE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO;;QAE9C,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC;AAElD,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;QAEzD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,YAAA,WAAW,EAAE,IAAI;SAClB;IACH;AAEA;;;;;;AAMG;IACK,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACxD,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAChC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC9D,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAChC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC/D,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;AACjC,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;;;AAOG;AACK,IAAA,iBAAiB,CAAC,MAAc,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf;QACF;AACA,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;QAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QACA,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QACpD,IAAI,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;YAC3D;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;QACjE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,MAAM;IACvD;AAEA;;;;;;;AAOG;AACK,IAAA,iBAAiB,CAAC,MAAc,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf;QACF;AACA,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;QAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QACA,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QACpD,IAAI,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;YAC3D;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;QACjE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,MAAM;IACvD;AAEA;;;;;;;AAOG;AACK,IAAA,kBAAkB,CAAC,MAAc,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf;QACF;AACA,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;QAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QACA,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACrD,IAAI,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;YAC5D;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;QAClE,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,MAAM;IACxD;IAEQ,iBAAiB,CAAC,MAAc,EAAE,cAA4B,EAAA;;AACpE,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACpB,OAAO,CAAC,IAAI,CACV,+CAA+C,EAC/C,MAAM,CAAC,KAAK,CACb;YACD;QACF;;QAGA,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;AAEtD,QAAA,IAAI,SAAS,KAAK,gBAAgB,CAAC,IAAI,EAAE;YACvC,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;;YAE1D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;AAC3D,YAAA,SAAS,GAAG,SAAS,CAAC,SAAS;AAE/B,YAAA,IAAI,SAAS,CAAC,UAAU,EAAE;;AAExB,gBAAA,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;YAC1C;QACF;QAEA,QAAQ,SAAS;AACf,YAAA,KAAK,gBAAgB,CAAC,MAAM,EAAE;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC,cAAc,CAAC,CAAC,CAAC,EACjB,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAC/C,MAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,EACjD,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CACjD;gBACD,IAAI,SAAS,EAAE;AACb,oBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;gBAClE;qBAAO;oBACL,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,MAAM,CAAC,KAAK,CACb;gBACH;gBACA;YACF;AACA,YAAA,KAAK,gBAAgB,CAAC,GAAG,EAAE;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAClC,cAAc,EACd,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAC/C,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,EACjD,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CACjD;gBACD,IAAI,QAAQ,EAAE;AACZ,oBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjE;qBAAO;oBACL,OAAO,CAAC,IAAI,CACV,sDAAsD,EACtD,MAAM,CAAC,KAAK,CACb;gBACH;gBACA;YACF;AACA,YAAA,KAAK,gBAAgB,CAAC,QAAQ,EAAE;gBAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC5C,cAAc,CAAC,CAAC,CAAC;AACjB,gBAAA,cAAc,CAAC,CAAC,CAAC;AACjB,gBAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAC/C,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,EACjD,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CACjD;gBACD,IAAI,aAAa,EAAE;AACjB,oBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;gBACtE;qBAAO;oBACL,OAAO,CAAC,IAAI,CACV,2DAA2D,EAC3D,MAAM,CAAC,KAAK,CACb;gBACH;gBACA;YACF;AACA,YAAA,KAAK,gBAAgB,CAAC,QAAQ,EAAE;gBAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAC1C,cAAc,CAAC,CAAC,CAAC;AACjB,gBAAA,cAAc,CAAC,CAAC,CAAC;AACjB,gBAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAC/C,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,EACjD,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CACjD;gBACD,IAAI,YAAY,EAAE;AAChB,oBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;gBACrE;qBAAO;oBACL,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,MAAM,CAAC,KAAK,CACb;gBACH;gBACA;YACF;AACA,YAAA,KAAK,gBAAgB,CAAC,UAAU,EAAE;gBAChC,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAChD,MAAM,CAAC,QAAQ,EACf,MAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAC/C,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,EACjD,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CACjD;gBACD,IAAI,eAAe,EAAE;oBACnB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC1C,MAAM,CAAC,eAAe,CAAC;gBAC3B;qBAAO;oBACL,OAAO,CAAC,IAAI,CACV,8DAA8D,EAC9D,MAAM,CAAC,KAAK,CACb;gBACH;gBACA;YACF;AACA,YAAA,KAAK,gBAAgB,CAAC,OAAO,EAAE;gBAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAC1C,MAAM,CAAC,QAAQ,EACf,MAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,EAC/C,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,EACjD,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CACjD;gBACD,IAAI,YAAY,EAAE;AAChB,oBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;gBACrE;qBAAO;oBACL,OAAO,CAAC,IAAI,CACV,2DAA2D,EAC3D,MAAM,CAAC,KAAK,CACb;gBACH;gBACA;YACF;;IAEJ;AAEQ,IAAA,eAAe,CACrB,MAAc,EACd,OAAe,EACf,WAAmB,EACnB,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CACV,gFAAgF,CACjF;YACD;QACF;QAEA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;AAClD,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACzC,QAAQ;YACR,QAAQ;YACR,WAAW;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AACnC,SAAA,CAAC;AACF,QAAA,OAAO,SAAS;IAClB;AAEQ,IAAA,cAAc,CACpB,KAAmB,EACnB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CACV,+EAA+E,CAChF;YACD;QACF;QAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAC5C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACZ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/B,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;AACjD,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YACxC,QAAQ;YACR,QAAQ;YACR,WAAW;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AACnC,SAAA,CAAC;AACF,QAAA,OAAO,QAAQ;IACjB;IAEQ,mBAAmB,CACzB,MAAc,EACd,MAAc,EACd,OAAe,EACf,WAAmB,EACnB,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CACV,oFAAoF,CACrF;YACD;QACF;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CACtD,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EACnB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,CACP,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,aAAa,EAAE;YAC7C,QAAQ;YACR,QAAQ;YACR,WAAW;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AACnC,SAAA,CAAC;AACF,QAAA,OAAO,aAAa;IACtB;IAEQ,kBAAkB,CACxB,MAAc,EACd,WAAmB,EACnB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CACV,mFAAmF,CACpF;YACD;QACF;QAEA,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC;QAC9D,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CACV,0HAA0H,CAC3H;YACD;QACF;AACA,QAAA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;AAClC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CACpD,MAAM,EACN,MAAM,EACN,MAAM,CACP,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC;AACrD,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,YAAY,EAAE;YAC5C,QAAQ;YACR,QAAQ;YACR,WAAW;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AACnC,SAAA,CAAC;AACF,QAAA,OAAO,YAAY;IACrB;AAEQ,IAAA,qBAAqB,CAC3B,QAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF;YACD;QACF;;;QAIA,MAAM,YAAY,GAAG,EAAE,QAAQ,YAAY,IAAI,CAAC;AAChD,QAAA,MAAM,QAAQ,GACZ,QAAQ,YAAY;cAChB,QAAQ,CAAC;AACX,cAAE,sBAAsB,CAAC,QAAQ,CAAC;AACtC,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ;QACtD,IAAI,CAAC,iBAAiB,EAAE;YACtB,OAAO,CAAC,IAAI,CACV,iFAAiF;AAC/E,gBAAA,QAAQ,CAAC,IAAI;gBACb,OAAO;gBACP,QAAQ,CAAC,EAAE,CACd;YACD,IAAI,YAAY,EAAE;gBAChB,QAAQ,CAAC,OAAO,EAAE;YACpB;YACA;QACF;QACA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAE1D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAC1D,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,GAAG,CAAC,CACxB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEjC,IAAI,YAAY,EAAE;YAChB,QAAQ,CAAC,OAAO,EAAE;QACpB;QAEA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,eAAe,EAAE;YAC/C,QAAQ;YACR,QAAQ;YACR,WAAW;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AACnC,SAAA,CAAC;AAEF,QAAA,OAAO,eAAe;IACxB;AAEQ,IAAA,kBAAkB,CACxB,QAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,QAAgB,EAAA;;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CACV,oFAAoF,CACrF;YACD;QACF;;;QAIA,MAAM,YAAY,GAAG,EAAE,QAAQ,YAAY,IAAI,CAAC;AAChD,QAAA,MAAM,QAAQ,GACZ,QAAQ,YAAY;cAChB,QAAQ,CAAC;AACX,cAAE,sBAAsB,CAAC,QAAQ,CAAC;AAEtC,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ;QACtD,IAAI,CAAC,iBAAiB,EAAE;YACtB,OAAO,CAAC,IAAI,CACV,8EAA8E;AAC5E,gBAAA,QAAQ,CAAC,IAAI;gBACb,OAAO;gBACP,QAAQ,CAAC,EAAE,CACd;YACD,IAAI,YAAY,EAAE;gBAChB,QAAQ,CAAC,OAAO,EAAE;YACpB;YACA;QACF;QAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC;;;QAG1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAC7B,CAAA,EAAA,GAAA,MAAA,QAAQ,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,mCAAI,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CACpE;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjD,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,GAAG,CAAC,EACvB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,UAAU,GAAG,CAAC,CACvB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAEhC,IAAI,YAAY,EAAE;YAChB,QAAQ,CAAC,OAAO,EAAE;QACpB;QAEA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC;AACrD,QAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,YAAY,EAAE;YAC5C,QAAQ;YACR,QAAQ;YACR,WAAW;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO;AACnC,SAAA,CAAC;AAEF,QAAA,OAAO,YAAY;IACrB;AAEQ,IAAA,WAAW,CAAC,QAAoB,EAAA;QACtC,MAAM,aAAa,GAAG,CAAC;AACvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,aAAa;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAE/C,QAAA,MAAM,GAAG,GAAG,IAAI,YAAY,CAC1B,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,MAAM,EACzB,WAAW,EACX,QAAQ,CAAC,MAAM,CAChB;AACD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACtB;QAEA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE;IAC7D;AAEQ,IAAA,UAAU,CAAC,OAAmB,EAAA;QACpC,MAAM,WAAW,GAAG,CAAC;AACrB,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/C,QAAA,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC,MAAM,EACzB,WAAW,EACX,OAAO,CAAC,MAAM,CACf;AACD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACrB;QAEA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE;IAC5D;AACD;;;;"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import { Types } from '
|
|
7
|
+
import { Types } from '../ecs/component.js';
|
|
8
8
|
/** Motion type for {@link PhysicsBody}. @category Physics */
|
|
9
9
|
export declare const PhysicsState: {
|
|
10
10
|
/** Static bodies are bodies which never move. Use this motion type for your immovable objects like walls and floors.
|
|
@@ -56,14 +56,29 @@ export declare const PhysicsBody: import("elics").Component<{
|
|
|
56
56
|
};
|
|
57
57
|
default: "DYNAMIC";
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Linear velocity damping. Reactive: mutating it via
|
|
61
|
+
* `setValue(PhysicsBody, 'linearDamping', ...)` after the body is created is
|
|
62
|
+
* applied to the running simulation on the next frame.
|
|
63
|
+
*/
|
|
59
64
|
linearDamping: {
|
|
60
65
|
type: Types.Float32;
|
|
61
66
|
default: number;
|
|
62
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* Angular velocity damping. Reactive: mutating it via
|
|
70
|
+
* `setValue(PhysicsBody, 'angularDamping', ...)` after the body is created is
|
|
71
|
+
* applied to the running simulation on the next frame.
|
|
72
|
+
*/
|
|
63
73
|
angularDamping: {
|
|
64
74
|
type: Types.Float32;
|
|
65
75
|
default: number;
|
|
66
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Per-body gravity multiplier (`0` floats, `1` is normal gravity). Reactive:
|
|
79
|
+
* mutating it via `setValue(PhysicsBody, 'gravityFactor', ...)` after the body
|
|
80
|
+
* is created is applied to the running simulation on the next frame.
|
|
81
|
+
*/
|
|
67
82
|
gravityFactor: {
|
|
68
83
|
type: Types.Float32;
|
|
69
84
|
default: number;
|
|
@@ -88,5 +103,29 @@ export declare const PhysicsBody: import("elics").Component<{
|
|
|
88
103
|
type: Types.Float64;
|
|
89
104
|
default: number;
|
|
90
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* Last `gravityFactor` value pushed to the engine. Internal shadow used by
|
|
108
|
+
* the reactive sync to detect changes without reading back from Havok.
|
|
109
|
+
*/
|
|
110
|
+
_engineGravityFactor: {
|
|
111
|
+
type: Types.Float32;
|
|
112
|
+
default: number;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Last `linearDamping` value pushed to the engine. Internal shadow used by
|
|
116
|
+
* the reactive sync to detect changes without reading back from Havok.
|
|
117
|
+
*/
|
|
118
|
+
_engineLinearDamping: {
|
|
119
|
+
type: Types.Float32;
|
|
120
|
+
default: number;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Last `angularDamping` value pushed to the engine. Internal shadow used by
|
|
124
|
+
* the reactive sync to detect changes without reading back from Havok.
|
|
125
|
+
*/
|
|
126
|
+
_engineAngularDamping: {
|
|
127
|
+
type: Types.Float32;
|
|
128
|
+
default: number;
|
|
129
|
+
};
|
|
91
130
|
}>;
|
|
92
131
|
//# sourceMappingURL=physicsBody.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physicsBody.d.ts","sourceRoot":"","sources":["../../src/physics/physicsBody.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,
|
|
1
|
+
{"version":3,"file":"physicsBody.d.ts","sourceRoot":"","sources":["../../src/physics/physicsBody.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,qBAAqB,CAAC;AAE7D,6DAA6D;AAC7D,eAAO,MAAM,YAAY;IACvB;4DACwD;;IAExD,6EAA6E;;IAE7E;wIACoI;;CAE5H,CAAC;AAEX,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAC1C,eAAO,MAAM,uBAAuB,IAAM,CAAC;AAC3C,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,WAAW;IAGpB,sEAAsE;;;;YAtCxE;oEACwD;;YAExD,6EAA6E;;YAE7E;gJACoI;;;;;IAsClI;;;;OAIG;;;;;IAEH;;;;OAIG;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;IAOH;;;OAGG;;;;;IAKH;;;OAGG;;;;;IAKH;;;OAGG;;;;;EAON,CAAC"}
|