@gg-web-engine/rapier3d 0.0.24
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 +17 -0
- package/dist/components/rapier-3d-rigid-body.component.d.ts +26 -0
- package/dist/components/rapier-3d-rigid-body.component.js +88 -0
- package/dist/components/rapier-3d-trigger.component.d.ts +17 -0
- package/dist/components/rapier-3d-trigger.component.js +41 -0
- package/dist/components/rapier-3d-world.component.d.ts +27 -0
- package/dist/components/rapier-3d-world.component.js +81 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/rapier-3d-factory.d.ts +22 -0
- package/dist/rapier-3d-factory.js +89 -0
- package/dist/rapier-3d-loader.d.ts +6 -0
- package/dist/rapier-3d-loader.js +7 -0
- package/etc/@dimforge/rapier3d/LICENSE +201 -0
- package/etc/@dimforge/rapier3d/README.md +33 -0
- package/etc/@dimforge/rapier3d/coarena.d.ts +15 -0
- package/etc/@dimforge/rapier3d/coarena.js +61 -0
- package/etc/@dimforge/rapier3d/coarena.js.map +1 -0
- package/etc/@dimforge/rapier3d/control/character_controller.d.ts +188 -0
- package/etc/@dimforge/rapier3d/control/character_controller.js +256 -0
- package/etc/@dimforge/rapier3d/control/character_controller.js.map +1 -0
- package/etc/@dimforge/rapier3d/control/index.d.ts +2 -0
- package/etc/@dimforge/rapier3d/control/index.js +5 -0
- package/etc/@dimforge/rapier3d/control/index.js.map +1 -0
- package/etc/@dimforge/rapier3d/control/ray_cast_vehicle_controller.d.ts +240 -0
- package/etc/@dimforge/rapier3d/control/ray_cast_vehicle_controller.js +362 -0
- package/etc/@dimforge/rapier3d/control/ray_cast_vehicle_controller.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/ccd_solver.d.ts +15 -0
- package/etc/@dimforge/rapier3d/dynamics/ccd_solver.js +22 -0
- package/etc/@dimforge/rapier3d/dynamics/ccd_solver.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/coefficient_combine_rule.d.ts +13 -0
- package/etc/@dimforge/rapier3d/dynamics/coefficient_combine_rule.js +15 -0
- package/etc/@dimforge/rapier3d/dynamics/coefficient_combine_rule.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/impulse_joint.d.ts +204 -0
- package/etc/@dimforge/rapier3d/dynamics/impulse_joint.js +335 -0
- package/etc/@dimforge/rapier3d/dynamics/impulse_joint.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/impulse_joint_set.d.ts +79 -0
- package/etc/@dimforge/rapier3d/dynamics/impulse_joint_set.js +123 -0
- package/etc/@dimforge/rapier3d/dynamics/impulse_joint_set.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/index.d.ts +10 -0
- package/etc/@dimforge/rapier3d/dynamics/index.js +11 -0
- package/etc/@dimforge/rapier3d/dynamics/index.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/integration_parameters.d.ts +55 -0
- package/etc/@dimforge/rapier3d/dynamics/integration_parameters.js +98 -0
- package/etc/@dimforge/rapier3d/dynamics/integration_parameters.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/island_manager.d.ts +24 -0
- package/etc/@dimforge/rapier3d/dynamics/island_manager.js +32 -0
- package/etc/@dimforge/rapier3d/dynamics/island_manager.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/multibody_joint.d.ts +42 -0
- package/etc/@dimforge/rapier3d/dynamics/multibody_joint.js +124 -0
- package/etc/@dimforge/rapier3d/dynamics/multibody_joint.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/multibody_joint_set.d.ts +76 -0
- package/etc/@dimforge/rapier3d/dynamics/multibody_joint_set.js +118 -0
- package/etc/@dimforge/rapier3d/dynamics/multibody_joint_set.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/rigid_body.d.ts +679 -0
- package/etc/@dimforge/rapier3d/dynamics/rigid_body.js +960 -0
- package/etc/@dimforge/rapier3d/dynamics/rigid_body.js.map +1 -0
- package/etc/@dimforge/rapier3d/dynamics/rigid_body_set.d.ts +78 -0
- package/etc/@dimforge/rapier3d/dynamics/rigid_body_set.js +147 -0
- package/etc/@dimforge/rapier3d/dynamics/rigid_body_set.js.map +1 -0
- package/etc/@dimforge/rapier3d/exports.d.ts +7 -0
- package/etc/@dimforge/rapier3d/exports.js +11 -0
- package/etc/@dimforge/rapier3d/exports.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/broad_phase.d.ts +15 -0
- package/etc/@dimforge/rapier3d/geometry/broad_phase.js +22 -0
- package/etc/@dimforge/rapier3d/geometry/broad_phase.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/collider.d.ts +763 -0
- package/etc/@dimforge/rapier3d/geometry/collider.js +1140 -0
- package/etc/@dimforge/rapier3d/geometry/collider.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/collider_set.d.ts +72 -0
- package/etc/@dimforge/rapier3d/geometry/collider_set.js +144 -0
- package/etc/@dimforge/rapier3d/geometry/collider_set.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/contact.d.ts +31 -0
- package/etc/@dimforge/rapier3d/geometry/contact.js +21 -0
- package/etc/@dimforge/rapier3d/geometry/contact.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/feature.d.ts +6 -0
- package/etc/@dimforge/rapier3d/geometry/feature.js +10 -0
- package/etc/@dimforge/rapier3d/geometry/feature.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/index.d.ts +11 -0
- package/etc/@dimforge/rapier3d/geometry/index.js +12 -0
- package/etc/@dimforge/rapier3d/geometry/index.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/interaction_groups.d.ts +18 -0
- package/etc/@dimforge/rapier3d/geometry/interaction_groups.js +2 -0
- package/etc/@dimforge/rapier3d/geometry/interaction_groups.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/narrow_phase.d.ts +71 -0
- package/etc/@dimforge/rapier3d/geometry/narrow_phase.js +148 -0
- package/etc/@dimforge/rapier3d/geometry/narrow_phase.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/point.d.ts +47 -0
- package/etc/@dimforge/rapier3d/geometry/point.js +48 -0
- package/etc/@dimforge/rapier3d/geometry/point.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/ray.d.ts +97 -0
- package/etc/@dimforge/rapier3d/geometry/ray.js +100 -0
- package/etc/@dimforge/rapier3d/geometry/ray.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/shape.d.ts +489 -0
- package/etc/@dimforge/rapier3d/geometry/shape.js +686 -0
- package/etc/@dimforge/rapier3d/geometry/shape.js.map +1 -0
- package/etc/@dimforge/rapier3d/geometry/toi.d.ts +46 -0
- package/etc/@dimforge/rapier3d/geometry/toi.js +37 -0
- package/etc/@dimforge/rapier3d/geometry/toi.js.map +1 -0
- package/etc/@dimforge/rapier3d/init.d.ts +1 -0
- package/etc/@dimforge/rapier3d/init.js +2 -0
- package/etc/@dimforge/rapier3d/init.js.map +1 -0
- package/etc/@dimforge/rapier3d/math.d.ts +94 -0
- package/etc/@dimforge/rapier3d/math.js +138 -0
- package/etc/@dimforge/rapier3d/math.js.map +1 -0
- package/etc/@dimforge/rapier3d/package.json +33 -0
- package/etc/@dimforge/rapier3d/pipeline/debug_render_pipeline.d.ts +39 -0
- package/etc/@dimforge/rapier3d/pipeline/debug_render_pipeline.js +38 -0
- package/etc/@dimforge/rapier3d/pipeline/debug_render_pipeline.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/event_queue.d.ts +101 -0
- package/etc/@dimforge/rapier3d/pipeline/event_queue.js +135 -0
- package/etc/@dimforge/rapier3d/pipeline/event_queue.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/index.d.ts +7 -0
- package/etc/@dimforge/rapier3d/pipeline/index.js +8 -0
- package/etc/@dimforge/rapier3d/pipeline/index.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/physics_hooks.d.ts +39 -0
- package/etc/@dimforge/rapier3d/pipeline/physics_hooks.js +13 -0
- package/etc/@dimforge/rapier3d/pipeline/physics_hooks.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/physics_pipeline.d.ts +12 -0
- package/etc/@dimforge/rapier3d/pipeline/physics_pipeline.js +24 -0
- package/etc/@dimforge/rapier3d/pipeline/physics_pipeline.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/query_pipeline.d.ts +190 -0
- package/etc/@dimforge/rapier3d/pipeline/query_pipeline.js +271 -0
- package/etc/@dimforge/rapier3d/pipeline/query_pipeline.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/serialization_pipeline.d.ts +37 -0
- package/etc/@dimforge/rapier3d/pipeline/serialization_pipeline.js +49 -0
- package/etc/@dimforge/rapier3d/pipeline/serialization_pipeline.js.map +1 -0
- package/etc/@dimforge/rapier3d/pipeline/world.d.ts +419 -0
- package/etc/@dimforge/rapier3d/pipeline/world.js +581 -0
- package/etc/@dimforge/rapier3d/pipeline/world.js.map +1 -0
- package/etc/@dimforge/rapier3d/rapier.d.ts +3 -0
- package/etc/@dimforge/rapier3d/rapier.js +4 -0
- package/etc/@dimforge/rapier3d/rapier.js.map +1 -0
- package/etc/@dimforge/rapier3d/rapier_wasm3d.d.ts +2921 -0
- package/etc/@dimforge/rapier3d/rapier_wasm3d.js +2 -0
- package/etc/@dimforge/rapier3d/rapier_wasm3d_bg.js +5585 -0
- package/etc/@dimforge/rapier3d/rapier_wasm3d_bg.wasm +0 -0
- package/etc/@dimforge/rapier3d/rapier_wasm3d_bg.wasm.d.ts +486 -0
- package/etc/@dimforge/rapier3d/raw.d.ts +1 -0
- package/etc/@dimforge/rapier3d/raw.js +2 -0
- package/etc/@dimforge/rapier3d/raw.js.map +1 -0
- package/package.json +43 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collider.js","sourceRoot":"","sources":["../src/geometry/collider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { RawColliderSet } from "../raw";
|
|
2
|
+
import { Collider, ColliderDesc, ColliderHandle } from "./collider";
|
|
3
|
+
import { ImpulseJointHandle, IslandManager, RigidBodyHandle } from "../dynamics";
|
|
4
|
+
import { RigidBodySet } from "../dynamics";
|
|
5
|
+
/**
|
|
6
|
+
* A set of rigid bodies that can be handled by a physics pipeline.
|
|
7
|
+
*
|
|
8
|
+
* To avoid leaking WASM resources, this MUST be freed manually with `colliderSet.free()`
|
|
9
|
+
* once you are done using it (and all the rigid-bodies it created).
|
|
10
|
+
*/
|
|
11
|
+
export declare class ColliderSet {
|
|
12
|
+
raw: RawColliderSet;
|
|
13
|
+
private map;
|
|
14
|
+
/**
|
|
15
|
+
* Release the WASM memory occupied by this collider set.
|
|
16
|
+
*/
|
|
17
|
+
free(): void;
|
|
18
|
+
constructor(raw?: RawColliderSet);
|
|
19
|
+
/** @internal */
|
|
20
|
+
castClosure<Res>(f?: (collider: Collider) => Res): (handle: ColliderHandle) => Res | undefined;
|
|
21
|
+
/** @internal */
|
|
22
|
+
finalizeDeserialization(bodies: RigidBodySet): void;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new collider and return its integer handle.
|
|
25
|
+
*
|
|
26
|
+
* @param bodies - The set of bodies where the collider's parent can be found.
|
|
27
|
+
* @param desc - The collider's description.
|
|
28
|
+
* @param parentHandle - The integer handle of the rigid-body this collider is attached to.
|
|
29
|
+
*/
|
|
30
|
+
createCollider(bodies: RigidBodySet, desc: ColliderDesc, parentHandle: RigidBodyHandle): Collider;
|
|
31
|
+
/**
|
|
32
|
+
* Remove a collider from this set.
|
|
33
|
+
*
|
|
34
|
+
* @param handle - The integer handle of the collider to remove.
|
|
35
|
+
* @param bodies - The set of rigid-body containing the rigid-body the collider is attached to.
|
|
36
|
+
* @param wakeUp - If `true`, the rigid-body the removed collider is attached to will be woken-up automatically.
|
|
37
|
+
*/
|
|
38
|
+
remove(handle: ColliderHandle, islands: IslandManager, bodies: RigidBodySet, wakeUp: boolean): void;
|
|
39
|
+
/**
|
|
40
|
+
* Internal function, do not call directly.
|
|
41
|
+
* @param handle
|
|
42
|
+
*/
|
|
43
|
+
unmap(handle: ImpulseJointHandle): void;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the rigid-body with the given handle.
|
|
46
|
+
*
|
|
47
|
+
* @param handle - The handle of the rigid-body to retrieve.
|
|
48
|
+
*/
|
|
49
|
+
get(handle: ColliderHandle): Collider | null;
|
|
50
|
+
/**
|
|
51
|
+
* The number of colliders on this set.
|
|
52
|
+
*/
|
|
53
|
+
len(): number;
|
|
54
|
+
/**
|
|
55
|
+
* Does this set contain a collider with the given handle?
|
|
56
|
+
*
|
|
57
|
+
* @param handle - The collider handle to check.
|
|
58
|
+
*/
|
|
59
|
+
contains(handle: ColliderHandle): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Applies the given closure to each collider contained by this set.
|
|
62
|
+
*
|
|
63
|
+
* @param f - The closure to apply.
|
|
64
|
+
*/
|
|
65
|
+
forEach(f: (collider: Collider) => void): void;
|
|
66
|
+
/**
|
|
67
|
+
* Gets all colliders in the list.
|
|
68
|
+
*
|
|
69
|
+
* @returns collider list.
|
|
70
|
+
*/
|
|
71
|
+
getAll(): Collider[];
|
|
72
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { RawColliderSet } from "../raw";
|
|
2
|
+
import { Coarena } from "../coarena";
|
|
3
|
+
import { RotationOps, VectorOps } from "../math";
|
|
4
|
+
import { Collider } from "./collider";
|
|
5
|
+
/**
|
|
6
|
+
* A set of rigid bodies that can be handled by a physics pipeline.
|
|
7
|
+
*
|
|
8
|
+
* To avoid leaking WASM resources, this MUST be freed manually with `colliderSet.free()`
|
|
9
|
+
* once you are done using it (and all the rigid-bodies it created).
|
|
10
|
+
*/
|
|
11
|
+
export class ColliderSet {
|
|
12
|
+
/**
|
|
13
|
+
* Release the WASM memory occupied by this collider set.
|
|
14
|
+
*/
|
|
15
|
+
free() {
|
|
16
|
+
if (!!this.raw) {
|
|
17
|
+
this.raw.free();
|
|
18
|
+
}
|
|
19
|
+
this.raw = undefined;
|
|
20
|
+
if (!!this.map) {
|
|
21
|
+
this.map.clear();
|
|
22
|
+
}
|
|
23
|
+
this.map = undefined;
|
|
24
|
+
}
|
|
25
|
+
constructor(raw) {
|
|
26
|
+
this.raw = raw || new RawColliderSet();
|
|
27
|
+
this.map = new Coarena();
|
|
28
|
+
// Initialize the map with the existing elements, if any.
|
|
29
|
+
if (raw) {
|
|
30
|
+
raw.forEachColliderHandle((handle) => {
|
|
31
|
+
this.map.set(handle, new Collider(this, handle, null));
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** @internal */
|
|
36
|
+
castClosure(f) {
|
|
37
|
+
return (handle) => {
|
|
38
|
+
if (!!f) {
|
|
39
|
+
return f(this.get(handle));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/** @internal */
|
|
47
|
+
finalizeDeserialization(bodies) {
|
|
48
|
+
this.map.forEach((collider) => collider.finalizeDeserialization(bodies));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a new collider and return its integer handle.
|
|
52
|
+
*
|
|
53
|
+
* @param bodies - The set of bodies where the collider's parent can be found.
|
|
54
|
+
* @param desc - The collider's description.
|
|
55
|
+
* @param parentHandle - The integer handle of the rigid-body this collider is attached to.
|
|
56
|
+
*/
|
|
57
|
+
createCollider(bodies, desc, parentHandle) {
|
|
58
|
+
let hasParent = parentHandle != undefined && parentHandle != null;
|
|
59
|
+
if (hasParent && isNaN(parentHandle))
|
|
60
|
+
throw Error("Cannot create a collider with a parent rigid-body handle that is not a number.");
|
|
61
|
+
let rawShape = desc.shape.intoRaw();
|
|
62
|
+
let rawTra = VectorOps.intoRaw(desc.translation);
|
|
63
|
+
let rawRot = RotationOps.intoRaw(desc.rotation);
|
|
64
|
+
let rawCom = VectorOps.intoRaw(desc.centerOfMass);
|
|
65
|
+
// #if DIM3
|
|
66
|
+
let rawPrincipalInertia = VectorOps.intoRaw(desc.principalAngularInertia);
|
|
67
|
+
let rawInertiaFrame = RotationOps.intoRaw(desc.angularInertiaLocalFrame);
|
|
68
|
+
// #endif
|
|
69
|
+
let handle = this.raw.createCollider(desc.enabled, rawShape, rawTra, rawRot, desc.massPropsMode, desc.mass, rawCom,
|
|
70
|
+
// #if DIM3
|
|
71
|
+
rawPrincipalInertia, rawInertiaFrame,
|
|
72
|
+
// #endif
|
|
73
|
+
desc.density, desc.friction, desc.restitution, desc.frictionCombineRule, desc.restitutionCombineRule, desc.isSensor, desc.collisionGroups, desc.solverGroups, desc.activeCollisionTypes, desc.activeHooks, desc.activeEvents, desc.contactForceEventThreshold, hasParent, hasParent ? parentHandle : 0, bodies.raw);
|
|
74
|
+
rawShape.free();
|
|
75
|
+
rawTra.free();
|
|
76
|
+
rawRot.free();
|
|
77
|
+
rawCom.free();
|
|
78
|
+
// #if DIM3
|
|
79
|
+
rawPrincipalInertia.free();
|
|
80
|
+
rawInertiaFrame.free();
|
|
81
|
+
// #endif
|
|
82
|
+
let parent = hasParent ? bodies.get(parentHandle) : null;
|
|
83
|
+
let collider = new Collider(this, handle, parent, desc.shape);
|
|
84
|
+
this.map.set(handle, collider);
|
|
85
|
+
return collider;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Remove a collider from this set.
|
|
89
|
+
*
|
|
90
|
+
* @param handle - The integer handle of the collider to remove.
|
|
91
|
+
* @param bodies - The set of rigid-body containing the rigid-body the collider is attached to.
|
|
92
|
+
* @param wakeUp - If `true`, the rigid-body the removed collider is attached to will be woken-up automatically.
|
|
93
|
+
*/
|
|
94
|
+
remove(handle, islands, bodies, wakeUp) {
|
|
95
|
+
this.raw.remove(handle, islands.raw, bodies.raw, wakeUp);
|
|
96
|
+
this.unmap(handle);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Internal function, do not call directly.
|
|
100
|
+
* @param handle
|
|
101
|
+
*/
|
|
102
|
+
unmap(handle) {
|
|
103
|
+
this.map.delete(handle);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Gets the rigid-body with the given handle.
|
|
107
|
+
*
|
|
108
|
+
* @param handle - The handle of the rigid-body to retrieve.
|
|
109
|
+
*/
|
|
110
|
+
get(handle) {
|
|
111
|
+
return this.map.get(handle);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The number of colliders on this set.
|
|
115
|
+
*/
|
|
116
|
+
len() {
|
|
117
|
+
return this.map.len();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Does this set contain a collider with the given handle?
|
|
121
|
+
*
|
|
122
|
+
* @param handle - The collider handle to check.
|
|
123
|
+
*/
|
|
124
|
+
contains(handle) {
|
|
125
|
+
return this.get(handle) != null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Applies the given closure to each collider contained by this set.
|
|
129
|
+
*
|
|
130
|
+
* @param f - The closure to apply.
|
|
131
|
+
*/
|
|
132
|
+
forEach(f) {
|
|
133
|
+
this.map.forEach(f);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Gets all colliders in the list.
|
|
137
|
+
*
|
|
138
|
+
* @returns collider list.
|
|
139
|
+
*/
|
|
140
|
+
getAll() {
|
|
141
|
+
return this.map.getAll();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=collider_set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collider_set.js","sourceRoot":"","sources":["../src/geometry/collider_set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Vector } from "../math";
|
|
2
|
+
import { RawShapeContact } from "../raw";
|
|
3
|
+
/**
|
|
4
|
+
* The contact info between two shapes.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ShapeContact {
|
|
7
|
+
/**
|
|
8
|
+
* Distance between the two contact points.
|
|
9
|
+
* If this is negative, this contact represents a penetration.
|
|
10
|
+
*/
|
|
11
|
+
distance: number;
|
|
12
|
+
/**
|
|
13
|
+
* Position of the contact on the first shape.
|
|
14
|
+
*/
|
|
15
|
+
point1: Vector;
|
|
16
|
+
/**
|
|
17
|
+
* Position of the contact on the second shape.
|
|
18
|
+
*/
|
|
19
|
+
point2: Vector;
|
|
20
|
+
/**
|
|
21
|
+
* Contact normal, pointing towards the exterior of the first shape.
|
|
22
|
+
*/
|
|
23
|
+
normal1: Vector;
|
|
24
|
+
/**
|
|
25
|
+
* Contact normal, pointing towards the exterior of the second shape.
|
|
26
|
+
* If these contact data are expressed in world-space, this normal is equal to -normal1.
|
|
27
|
+
*/
|
|
28
|
+
normal2: Vector;
|
|
29
|
+
constructor(dist: number, point1: Vector, point2: Vector, normal1: Vector, normal2: Vector);
|
|
30
|
+
static fromRaw(raw: RawShapeContact): ShapeContact;
|
|
31
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { VectorOps } from "../math";
|
|
2
|
+
/**
|
|
3
|
+
* The contact info between two shapes.
|
|
4
|
+
*/
|
|
5
|
+
export class ShapeContact {
|
|
6
|
+
constructor(dist, point1, point2, normal1, normal2) {
|
|
7
|
+
this.distance = dist;
|
|
8
|
+
this.point1 = point1;
|
|
9
|
+
this.point2 = point2;
|
|
10
|
+
this.normal1 = normal1;
|
|
11
|
+
this.normal2 = normal2;
|
|
12
|
+
}
|
|
13
|
+
static fromRaw(raw) {
|
|
14
|
+
if (!raw)
|
|
15
|
+
return null;
|
|
16
|
+
const result = new ShapeContact(raw.distance(), VectorOps.fromRaw(raw.point1()), VectorOps.fromRaw(raw.point2()), VectorOps.fromRaw(raw.normal1()), VectorOps.fromRaw(raw.normal2()));
|
|
17
|
+
raw.free();
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=contact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact.js","sourceRoot":"","sources":["../src/geometry/contact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAC,MAAM,SAAS,CAAC;AAG1C;;GAEG;AACH,MAAM,OAAO,YAAY;IA4BrB,YACI,IAAY,EACZ,MAAc,EACd,MAAc,EACd,OAAe,EACf,OAAe;QAEf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,GAAoB;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,YAAY,CAC3B,GAAG,CAAC,QAAQ,EAAE,EACd,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAC/B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAC/B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAChC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CACnC,CAAC;QACF,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// #if DIM3
|
|
2
|
+
export var FeatureType;
|
|
3
|
+
(function (FeatureType) {
|
|
4
|
+
FeatureType[FeatureType["Vertex"] = 0] = "Vertex";
|
|
5
|
+
FeatureType[FeatureType["Edge"] = 1] = "Edge";
|
|
6
|
+
FeatureType[FeatureType["Face"] = 2] = "Face";
|
|
7
|
+
FeatureType[FeatureType["Unknown"] = 3] = "Unknown";
|
|
8
|
+
})(FeatureType || (FeatureType = {}));
|
|
9
|
+
// #endif
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../src/geometry/feature.ts"],"names":[],"mappings":"AACA,WAAW;AACX,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,iDAAM,CAAA;IACN,6CAAI,CAAA;IACJ,6CAAI,CAAA;IACJ,mDAAO,CAAA;AACX,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AACD,SAAS"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./broad_phase";
|
|
2
|
+
export * from "./narrow_phase";
|
|
3
|
+
export * from "./shape";
|
|
4
|
+
export * from "./collider";
|
|
5
|
+
export * from "./collider_set";
|
|
6
|
+
export * from "./feature";
|
|
7
|
+
export * from "./ray";
|
|
8
|
+
export * from "./point";
|
|
9
|
+
export * from "./toi";
|
|
10
|
+
export * from "./interaction_groups";
|
|
11
|
+
export * from "./contact";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from "./broad_phase";
|
|
2
|
+
export * from "./narrow_phase";
|
|
3
|
+
export * from "./shape";
|
|
4
|
+
export * from "./collider";
|
|
5
|
+
export * from "./collider_set";
|
|
6
|
+
export * from "./feature";
|
|
7
|
+
export * from "./ray";
|
|
8
|
+
export * from "./point";
|
|
9
|
+
export * from "./toi";
|
|
10
|
+
export * from "./interaction_groups";
|
|
11
|
+
export * from "./contact";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pairwise filtering using bit masks.
|
|
3
|
+
*
|
|
4
|
+
* This filtering method is based on two 16-bit values:
|
|
5
|
+
* - The interaction groups (the 16 left-most bits of `self.0`).
|
|
6
|
+
* - The interaction mask (the 16 right-most bits of `self.0`).
|
|
7
|
+
*
|
|
8
|
+
* An interaction is allowed between two filters `a` and `b` two conditions
|
|
9
|
+
* are met simultaneously:
|
|
10
|
+
* - The interaction groups of `a` has at least one bit set to `1` in common with the interaction mask of `b`.
|
|
11
|
+
* - The interaction groups of `b` has at least one bit set to `1` in common with the interaction mask of `a`.
|
|
12
|
+
* In other words, interactions are allowed between two filter iff. the following condition is met:
|
|
13
|
+
*
|
|
14
|
+
* ```
|
|
15
|
+
* ((a >> 16) & b) != 0 && ((b >> 16) & a) != 0
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export type InteractionGroups = number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction_groups.js","sourceRoot":"","sources":["../src/geometry/interaction_groups.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { RawNarrowPhase, RawContactManifold } from "../raw";
|
|
2
|
+
import { ColliderHandle } from "./collider";
|
|
3
|
+
import { Vector } from "../math";
|
|
4
|
+
/**
|
|
5
|
+
* The narrow-phase used for precise collision-detection.
|
|
6
|
+
*
|
|
7
|
+
* To avoid leaking WASM resources, this MUST be freed manually with `narrowPhase.free()`
|
|
8
|
+
* once you are done using it.
|
|
9
|
+
*/
|
|
10
|
+
export declare class NarrowPhase {
|
|
11
|
+
raw: RawNarrowPhase;
|
|
12
|
+
tempManifold: TempContactManifold;
|
|
13
|
+
/**
|
|
14
|
+
* Release the WASM memory occupied by this narrow-phase.
|
|
15
|
+
*/
|
|
16
|
+
free(): void;
|
|
17
|
+
constructor(raw?: RawNarrowPhase);
|
|
18
|
+
/**
|
|
19
|
+
* Enumerates all the colliders potentially in contact with the given collider.
|
|
20
|
+
*
|
|
21
|
+
* @param collider1 - The second collider involved in the contact.
|
|
22
|
+
* @param f - Closure that will be called on each collider that is in contact with `collider1`.
|
|
23
|
+
*/
|
|
24
|
+
contactsWith(collider1: ColliderHandle, f: (collider2: ColliderHandle) => void): void;
|
|
25
|
+
/**
|
|
26
|
+
* Enumerates all the colliders intersecting the given colliders, assuming one of them
|
|
27
|
+
* is a sensor.
|
|
28
|
+
*/
|
|
29
|
+
intersectionsWith(collider1: ColliderHandle, f: (collider2: ColliderHandle) => void): void;
|
|
30
|
+
/**
|
|
31
|
+
* Iterates through all the contact manifolds between the given pair of colliders.
|
|
32
|
+
*
|
|
33
|
+
* @param collider1 - The first collider involved in the contact.
|
|
34
|
+
* @param collider2 - The second collider involved in the contact.
|
|
35
|
+
* @param f - Closure that will be called on each contact manifold between the two colliders. If the second argument
|
|
36
|
+
* passed to this closure is `true`, then the contact manifold data is flipped, i.e., methods like `localNormal1`
|
|
37
|
+
* actually apply to the `collider2` and fields like `localNormal2` apply to the `collider1`.
|
|
38
|
+
*/
|
|
39
|
+
contactPair(collider1: ColliderHandle, collider2: ColliderHandle, f: (manifold: TempContactManifold, flipped: boolean) => void): void;
|
|
40
|
+
/**
|
|
41
|
+
* Returns `true` if `collider1` and `collider2` intersect and at least one of them is a sensor.
|
|
42
|
+
* @param collider1 − The first collider involved in the intersection.
|
|
43
|
+
* @param collider2 − The second collider involved in the intersection.
|
|
44
|
+
*/
|
|
45
|
+
intersectionPair(collider1: ColliderHandle, collider2: ColliderHandle): boolean;
|
|
46
|
+
}
|
|
47
|
+
export declare class TempContactManifold {
|
|
48
|
+
raw: RawContactManifold;
|
|
49
|
+
free(): void;
|
|
50
|
+
constructor(raw: RawContactManifold);
|
|
51
|
+
normal(): Vector;
|
|
52
|
+
localNormal1(): Vector;
|
|
53
|
+
localNormal2(): Vector;
|
|
54
|
+
subshape1(): number;
|
|
55
|
+
subshape2(): number;
|
|
56
|
+
numContacts(): number;
|
|
57
|
+
localContactPoint1(i: number): Vector | null;
|
|
58
|
+
localContactPoint2(i: number): Vector | null;
|
|
59
|
+
contactDist(i: number): number;
|
|
60
|
+
contactFid1(i: number): number;
|
|
61
|
+
contactFid2(i: number): number;
|
|
62
|
+
contactImpulse(i: number): number;
|
|
63
|
+
contactTangentImpulseX(i: number): number;
|
|
64
|
+
contactTangentImpulseY(i: number): number;
|
|
65
|
+
numSolverContacts(): number;
|
|
66
|
+
solverContactPoint(i: number): Vector;
|
|
67
|
+
solverContactDist(i: number): number;
|
|
68
|
+
solverContactFriction(i: number): number;
|
|
69
|
+
solverContactRestitution(i: number): number;
|
|
70
|
+
solverContactTangentVelocity(i: number): Vector;
|
|
71
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { RawNarrowPhase } from "../raw";
|
|
2
|
+
import { VectorOps } from "../math";
|
|
3
|
+
/**
|
|
4
|
+
* The narrow-phase used for precise collision-detection.
|
|
5
|
+
*
|
|
6
|
+
* To avoid leaking WASM resources, this MUST be freed manually with `narrowPhase.free()`
|
|
7
|
+
* once you are done using it.
|
|
8
|
+
*/
|
|
9
|
+
export class NarrowPhase {
|
|
10
|
+
/**
|
|
11
|
+
* Release the WASM memory occupied by this narrow-phase.
|
|
12
|
+
*/
|
|
13
|
+
free() {
|
|
14
|
+
if (!!this.raw) {
|
|
15
|
+
this.raw.free();
|
|
16
|
+
}
|
|
17
|
+
this.raw = undefined;
|
|
18
|
+
}
|
|
19
|
+
constructor(raw) {
|
|
20
|
+
this.raw = raw || new RawNarrowPhase();
|
|
21
|
+
this.tempManifold = new TempContactManifold(null);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Enumerates all the colliders potentially in contact with the given collider.
|
|
25
|
+
*
|
|
26
|
+
* @param collider1 - The second collider involved in the contact.
|
|
27
|
+
* @param f - Closure that will be called on each collider that is in contact with `collider1`.
|
|
28
|
+
*/
|
|
29
|
+
contactsWith(collider1, f) {
|
|
30
|
+
this.raw.contacts_with(collider1, f);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Enumerates all the colliders intersecting the given colliders, assuming one of them
|
|
34
|
+
* is a sensor.
|
|
35
|
+
*/
|
|
36
|
+
intersectionsWith(collider1, f) {
|
|
37
|
+
this.raw.intersections_with(collider1, f);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Iterates through all the contact manifolds between the given pair of colliders.
|
|
41
|
+
*
|
|
42
|
+
* @param collider1 - The first collider involved in the contact.
|
|
43
|
+
* @param collider2 - The second collider involved in the contact.
|
|
44
|
+
* @param f - Closure that will be called on each contact manifold between the two colliders. If the second argument
|
|
45
|
+
* passed to this closure is `true`, then the contact manifold data is flipped, i.e., methods like `localNormal1`
|
|
46
|
+
* actually apply to the `collider2` and fields like `localNormal2` apply to the `collider1`.
|
|
47
|
+
*/
|
|
48
|
+
contactPair(collider1, collider2, f) {
|
|
49
|
+
const rawPair = this.raw.contact_pair(collider1, collider2);
|
|
50
|
+
if (!!rawPair) {
|
|
51
|
+
const flipped = rawPair.collider1() != collider1;
|
|
52
|
+
let i;
|
|
53
|
+
for (i = 0; i < rawPair.numContactManifolds(); ++i) {
|
|
54
|
+
this.tempManifold.raw = rawPair.contactManifold(i);
|
|
55
|
+
if (!!this.tempManifold.raw) {
|
|
56
|
+
f(this.tempManifold, flipped);
|
|
57
|
+
}
|
|
58
|
+
// SAFETY: The RawContactManifold stores a raw pointer that will be invalidated
|
|
59
|
+
// at the next timestep. So we must be sure to free the pair here
|
|
60
|
+
// to avoid unsoundness in the Rust code.
|
|
61
|
+
this.tempManifold.free();
|
|
62
|
+
}
|
|
63
|
+
rawPair.free();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns `true` if `collider1` and `collider2` intersect and at least one of them is a sensor.
|
|
68
|
+
* @param collider1 − The first collider involved in the intersection.
|
|
69
|
+
* @param collider2 − The second collider involved in the intersection.
|
|
70
|
+
*/
|
|
71
|
+
intersectionPair(collider1, collider2) {
|
|
72
|
+
return this.raw.intersection_pair(collider1, collider2);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export class TempContactManifold {
|
|
76
|
+
free() {
|
|
77
|
+
if (!!this.raw) {
|
|
78
|
+
this.raw.free();
|
|
79
|
+
}
|
|
80
|
+
this.raw = undefined;
|
|
81
|
+
}
|
|
82
|
+
constructor(raw) {
|
|
83
|
+
this.raw = raw;
|
|
84
|
+
}
|
|
85
|
+
normal() {
|
|
86
|
+
return VectorOps.fromRaw(this.raw.normal());
|
|
87
|
+
}
|
|
88
|
+
localNormal1() {
|
|
89
|
+
return VectorOps.fromRaw(this.raw.local_n1());
|
|
90
|
+
}
|
|
91
|
+
localNormal2() {
|
|
92
|
+
return VectorOps.fromRaw(this.raw.local_n2());
|
|
93
|
+
}
|
|
94
|
+
subshape1() {
|
|
95
|
+
return this.raw.subshape1();
|
|
96
|
+
}
|
|
97
|
+
subshape2() {
|
|
98
|
+
return this.raw.subshape2();
|
|
99
|
+
}
|
|
100
|
+
numContacts() {
|
|
101
|
+
return this.raw.num_contacts();
|
|
102
|
+
}
|
|
103
|
+
localContactPoint1(i) {
|
|
104
|
+
return VectorOps.fromRaw(this.raw.contact_local_p1(i));
|
|
105
|
+
}
|
|
106
|
+
localContactPoint2(i) {
|
|
107
|
+
return VectorOps.fromRaw(this.raw.contact_local_p2(i));
|
|
108
|
+
}
|
|
109
|
+
contactDist(i) {
|
|
110
|
+
return this.raw.contact_dist(i);
|
|
111
|
+
}
|
|
112
|
+
contactFid1(i) {
|
|
113
|
+
return this.raw.contact_fid1(i);
|
|
114
|
+
}
|
|
115
|
+
contactFid2(i) {
|
|
116
|
+
return this.raw.contact_fid2(i);
|
|
117
|
+
}
|
|
118
|
+
contactImpulse(i) {
|
|
119
|
+
return this.raw.contact_impulse(i);
|
|
120
|
+
}
|
|
121
|
+
// #if DIM3
|
|
122
|
+
contactTangentImpulseX(i) {
|
|
123
|
+
return this.raw.contact_tangent_impulse_x(i);
|
|
124
|
+
}
|
|
125
|
+
contactTangentImpulseY(i) {
|
|
126
|
+
return this.raw.contact_tangent_impulse_y(i);
|
|
127
|
+
}
|
|
128
|
+
// #endif
|
|
129
|
+
numSolverContacts() {
|
|
130
|
+
return this.raw.num_solver_contacts();
|
|
131
|
+
}
|
|
132
|
+
solverContactPoint(i) {
|
|
133
|
+
return VectorOps.fromRaw(this.raw.solver_contact_point(i));
|
|
134
|
+
}
|
|
135
|
+
solverContactDist(i) {
|
|
136
|
+
return this.raw.solver_contact_dist(i);
|
|
137
|
+
}
|
|
138
|
+
solverContactFriction(i) {
|
|
139
|
+
return this.raw.solver_contact_friction(i);
|
|
140
|
+
}
|
|
141
|
+
solverContactRestitution(i) {
|
|
142
|
+
return this.raw.solver_contact_restitution(i);
|
|
143
|
+
}
|
|
144
|
+
solverContactTangentVelocity(i) {
|
|
145
|
+
return VectorOps.fromRaw(this.raw.solver_contact_tangent_velocity(i));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=narrow_phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"narrow_phase.js","sourceRoot":"","sources":["../src/geometry/narrow_phase.ts"],"names":[],"mappings":"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"}
|