@react-three/rapier 0.3.0 → 0.4.1
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/CHANGELOG.md +22 -0
- package/dist/declarations/src/api.d.ts +114 -18
- package/dist/declarations/src/components.d.ts +1 -9
- package/dist/declarations/src/hooks.d.ts +21 -161
- package/dist/declarations/src/utils.d.ts +4 -4
- package/dist/react-three-rapier.cjs.dev.js +117 -89
- package/dist/react-three-rapier.cjs.prod.js +117 -89
- package/dist/react-three-rapier.esm.js +118 -90
- package/package.json +2 -2
- package/readme.md +176 -0
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# @react-three/rapier
|
2
2
|
|
3
|
+
## 0.4.1
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- bb7a269: Add useful proxied api methods to rigidbody
|
8
|
+
|
9
|
+
## 0.4.0
|
10
|
+
|
11
|
+
### Minor Changes
|
12
|
+
|
13
|
+
- dd535aa: Update to @dimforge/rapier3d-compat@0.8.1, pinned version
|
14
|
+
|
15
|
+
### Patch Changes
|
16
|
+
|
17
|
+
- dd535aa: Better <Physics /> lifecycle making reinitialization more stable
|
18
|
+
|
19
|
+
## 0.3.1
|
20
|
+
|
21
|
+
### Patch Changes
|
22
|
+
|
23
|
+
- 37d2621: Pin rapier3d version to 0.8.0-alpha.2
|
24
|
+
|
3
25
|
## 0.3.0
|
4
26
|
|
5
27
|
### Minor Changes
|
@@ -1,33 +1,129 @@
|
|
1
1
|
import { Collider, ColliderDesc, ImpulseJoint, JointData, RigidBody, RigidBodyDesc, World } from "@dimforge/rapier3d-compat";
|
2
2
|
import { Quaternion, Vector3 } from "three";
|
3
3
|
import { RefGetter } from "./types";
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
declare type Vector3Object = {
|
5
|
+
x: number;
|
6
|
+
y: number;
|
7
|
+
z: number;
|
8
|
+
};
|
9
|
+
export interface RigidBodyApi {
|
10
|
+
/**
|
11
|
+
* Get the raw RigidBody
|
12
|
+
*/
|
13
|
+
raw(): RigidBody;
|
14
|
+
/**
|
15
|
+
* The handle of this RigidBody
|
16
|
+
*/
|
17
|
+
handle: number;
|
18
|
+
/**
|
19
|
+
* The mass of this rigid-body.
|
20
|
+
*/
|
21
|
+
mass(): number;
|
22
|
+
/**
|
23
|
+
* Applies an impulse at the center-of-mass of this rigid-body.
|
24
|
+
*/
|
25
|
+
applyImpulse(impulseVector: Vector3Object): void;
|
26
|
+
/**
|
27
|
+
* Applies an impulsive torque at the center-of-mass of this rigid-body.
|
28
|
+
*/
|
29
|
+
applyTorqueImpulse(torqueVector: Vector3Object): void;
|
30
|
+
/**
|
31
|
+
* Applies an impulse at the given world-space point of this rigid-body.
|
32
|
+
*/
|
33
|
+
applyImpulseAtPoint(impulseVector: Vector3Object, impulsePoint: Vector3Object): void;
|
34
|
+
/**
|
35
|
+
* Adds a force at the center-of-mass of this rigid-body.
|
36
|
+
*/
|
37
|
+
addForce(force: Vector3Object): void;
|
38
|
+
/**
|
39
|
+
* Adds a force at the given world-space point of this rigid-body.
|
40
|
+
*/
|
41
|
+
addForceAtPoint(force: Vector3Object, point: Vector3Object): void;
|
42
|
+
/**
|
43
|
+
* Adds a torque at the center-of-mass of this rigid-body.
|
44
|
+
*/
|
45
|
+
addTorque(torque: Vector3Object): void;
|
46
|
+
/**
|
47
|
+
* The world-space translation of this rigid-body.
|
48
|
+
*/
|
9
49
|
translation(): Vector3;
|
50
|
+
/**
|
51
|
+
* Sets the translation of this rigid-body.
|
52
|
+
*/
|
53
|
+
setTranslation(translation: Vector3Object): void;
|
54
|
+
/**
|
55
|
+
* The world-space orientation of this rigid-body.
|
56
|
+
*/
|
10
57
|
rotation(): Quaternion;
|
11
|
-
|
58
|
+
/**
|
59
|
+
* Sets the rotation quaternion of this rigid-body.
|
60
|
+
*/
|
61
|
+
setRotation(rotation: Vector3Object): void;
|
62
|
+
/**
|
63
|
+
* The linear velocity of this rigid-body.
|
64
|
+
*/
|
65
|
+
linvel(): Vector3;
|
66
|
+
/**
|
67
|
+
* Sets the linear velocity of this rigid-body.
|
68
|
+
*/
|
69
|
+
setLinvel(velocity: Vector3Object): void;
|
70
|
+
/**
|
71
|
+
* The angular velocity of this rigid-body.
|
72
|
+
*/
|
73
|
+
angvel(): Vector3;
|
74
|
+
/**
|
75
|
+
* Sets the angular velocity of this rigid-body.
|
76
|
+
*/
|
77
|
+
setAngvel(velocity: Vector3Object): void;
|
78
|
+
/**
|
79
|
+
* If this rigid body is kinematic, sets its future rotation after the next timestep integration.
|
80
|
+
*
|
81
|
+
* This should be used instead of rigidBody.setRotation to make the dynamic object interacting with this
|
82
|
+
* kinematic body behave as expected. Internally, Rapier will compute an artificial velocity for this
|
83
|
+
* rigid-body from its current position and its next kinematic position. This velocity will be used
|
84
|
+
* to compute forces on dynamic bodies interacting with this body.
|
85
|
+
*/
|
86
|
+
setNextKinematicRotation(rotation: Vector3Object): void;
|
87
|
+
/**
|
88
|
+
* If this rigid body is kinematic, sets its future rotation after the next timestep integration.
|
89
|
+
*
|
90
|
+
* This should be used instead of rigidBody.setRotation to make the dynamic object interacting with
|
91
|
+
* this kinematic body behave as expected. Internally, Rapier will compute an artificial velocity
|
92
|
+
* for this rigid-body from its current position and its next kinematic position. This velocity
|
93
|
+
* will be used to compute forces on dynamic bodies interacting with this body.
|
94
|
+
*/
|
95
|
+
setNextKinematicTranslation(translation: Vector3Object): void;
|
96
|
+
/**
|
97
|
+
* Resets to zero the user forces (but not torques) applied to this rigid-body.
|
98
|
+
*/
|
99
|
+
resetForces(): void;
|
100
|
+
/**
|
101
|
+
* Resets to zero the user torques applied to this rigid-body.
|
102
|
+
*/
|
103
|
+
resetTorques(): void;
|
104
|
+
}
|
105
|
+
export declare const createRigidBodyApi: (ref: RefGetter<RigidBody>) => RigidBodyApi;
|
12
106
|
export declare const createColliderApi: (ref: RefGetter<Collider>) => {
|
13
107
|
raw: () => Collider | undefined;
|
14
108
|
readonly handle: number;
|
15
109
|
};
|
16
|
-
export
|
17
|
-
raw
|
18
|
-
getCollider
|
19
|
-
getRigidBody
|
20
|
-
createRigidBody
|
21
|
-
createCollider
|
22
|
-
removeRigidBody
|
23
|
-
removeCollider
|
24
|
-
createImpulseJoint
|
25
|
-
removeImpulseJoint
|
26
|
-
forEachCollider
|
27
|
-
}
|
110
|
+
export interface WorldApi {
|
111
|
+
raw(): World;
|
112
|
+
getCollider(handle: number): Collider | undefined;
|
113
|
+
getRigidBody(handle: number): RigidBody | undefined;
|
114
|
+
createRigidBody(desc: RigidBodyDesc): RigidBody;
|
115
|
+
createCollider(desc: ColliderDesc, rigidBody: RigidBody): Collider;
|
116
|
+
removeRigidBody(rigidBody: RigidBody): void;
|
117
|
+
removeCollider(collider: Collider): void;
|
118
|
+
createImpulseJoint(params: JointData, rigidBodyA: RigidBody, rigidBodyB: RigidBody): ImpulseJoint;
|
119
|
+
removeImpulseJoint(joint: ImpulseJoint): void;
|
120
|
+
forEachCollider(callback: (collider: Collider) => void): void;
|
121
|
+
}
|
122
|
+
export declare const createWorldApi: (ref: RefGetter<World>) => WorldApi;
|
28
123
|
export declare const createJointApi: (ref: RefGetter<ImpulseJoint>) => {
|
29
124
|
raw: () => ImpulseJoint | undefined;
|
30
125
|
readonly handle: number;
|
31
126
|
configureMotorPosition: (targetPos: number, stiffness: number, damping: number) => void;
|
32
127
|
configureMotorVelocity: (targetVel: number, damping: number) => void;
|
33
128
|
};
|
129
|
+
export {};
|
@@ -1,18 +1,10 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { ReactNode } from "react";
|
3
|
-
import { Vector3 } from "three";
|
4
3
|
import { BallArgs, CapsuleArgs, ConeArgs, ConvexHullArgs, CuboidArgs, CylinderArgs, HeightfieldArgs, RoundCuboidArgs, TrimeshArgs, UseColliderOptions, UseRigidBodyOptions } from "./types";
|
5
4
|
interface RigidBodyProps extends UseRigidBodyOptions {
|
6
5
|
children?: ReactNode;
|
7
6
|
}
|
8
|
-
export declare const RigidBody: React.ForwardRefExoticComponent<RigidBodyProps & React.RefAttributes<
|
9
|
-
raw: () => import("@dimforge/rapier3d-compat/dynamics/rigid_body").RigidBody | undefined;
|
10
|
-
readonly handle: number;
|
11
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
12
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
13
|
-
translation(): Vector3;
|
14
|
-
rotation(): import("three").Quaternion;
|
15
|
-
}>>;
|
7
|
+
export declare const RigidBody: React.ForwardRefExoticComponent<RigidBodyProps & React.RefAttributes<import("./api").RigidBodyApi>>;
|
16
8
|
declare type UseColliderOptionsRequiredArgs<T> = Omit<UseColliderOptions<T>, "args"> & {
|
17
9
|
args: T;
|
18
10
|
children?: ReactNode;
|
@@ -1,62 +1,20 @@
|
|
1
1
|
import React, { MutableRefObject } from "react";
|
2
2
|
import { RapierContext } from "./Physics";
|
3
|
-
import { Mesh, Object3D
|
3
|
+
import { Mesh, Object3D } from "three";
|
4
4
|
import type Rapier from "@dimforge/rapier3d-compat";
|
5
5
|
export declare const useRapier: () => RapierContext;
|
6
6
|
import { BallArgs, CapsuleArgs, ConeArgs, ConvexHullArgs, CuboidArgs, CylinderArgs, HeightfieldArgs, PolylineArgs, RoundConvexHullArgs, RoundCuboidArgs, RoundCylinderArgs, TrimeshArgs, UseBodyOptions, UseRigidBodyOptions, UseImpulseJoint, SphericalJointParams, FixedJointParams, PrismaticJointParams, RevoluteJointParams, UseColliderOptions, RapierRigidBody, ConvexMeshArgs, RoundConvexMeshArgs, RigidBodyApi } from "./types";
|
7
7
|
import { RoundCone } from "@dimforge/rapier3d-compat";
|
8
|
-
export declare const useRigidBody: <O extends Object3D<import("three").Event>>(options?: UseRigidBodyOptions) => [React.MutableRefObject<O>,
|
9
|
-
raw: () => Rapier.RigidBody | undefined;
|
10
|
-
readonly handle: number;
|
11
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
12
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
13
|
-
translation(): Vector3;
|
14
|
-
rotation(): Quaternion;
|
15
|
-
}];
|
8
|
+
export declare const useRigidBody: <O extends Object3D<import("three").Event>>(options?: UseRigidBodyOptions) => [React.MutableRefObject<O>, import("./api").RigidBodyApi];
|
16
9
|
export declare const useCollider: <A>(body: RigidBodyApi, options?: UseColliderOptions<A>) => (React.MutableRefObject<Object3D<import("three").Event> | undefined> | {
|
17
10
|
raw: () => Rapier.Collider | undefined;
|
18
11
|
readonly handle: number;
|
19
12
|
})[];
|
20
|
-
export declare const useRigidBodyWithCollider: <A, O extends Object3D<import("three").Event> = Object3D<import("three").Event>>(rigidBodyOptions?: UseRigidBodyOptions | undefined, colliderOptions?: UseColliderOptions<A> | undefined) => [ref: React.MutableRefObject<O>, rigidBody:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
translation(): Vector3;
|
26
|
-
rotation(): Quaternion;
|
27
|
-
}];
|
28
|
-
export declare const useCuboid: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<CuboidArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
29
|
-
raw: () => Rapier.RigidBody | undefined;
|
30
|
-
readonly handle: number;
|
31
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
32
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
33
|
-
translation(): Vector3;
|
34
|
-
rotation(): Quaternion;
|
35
|
-
}];
|
36
|
-
export declare const useBall: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<BallArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
37
|
-
raw: () => Rapier.RigidBody | undefined;
|
38
|
-
readonly handle: number;
|
39
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
40
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
41
|
-
translation(): Vector3;
|
42
|
-
rotation(): Quaternion;
|
43
|
-
}];
|
44
|
-
export declare const useCapsule: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<CapsuleArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
45
|
-
raw: () => Rapier.RigidBody | undefined;
|
46
|
-
readonly handle: number;
|
47
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
48
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
49
|
-
translation(): Vector3;
|
50
|
-
rotation(): Quaternion;
|
51
|
-
}];
|
52
|
-
export declare const useHeightfield: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<HeightfieldArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
53
|
-
raw: () => Rapier.RigidBody | undefined;
|
54
|
-
readonly handle: number;
|
55
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
56
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
57
|
-
translation(): Vector3;
|
58
|
-
rotation(): Quaternion;
|
59
|
-
}];
|
13
|
+
export declare const useRigidBodyWithCollider: <A, O extends Object3D<import("three").Event> = Object3D<import("three").Event>>(rigidBodyOptions?: UseRigidBodyOptions | undefined, colliderOptions?: UseColliderOptions<A> | undefined) => [ref: React.MutableRefObject<O>, rigidBody: import("./api").RigidBodyApi];
|
14
|
+
export declare const useCuboid: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<CuboidArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
15
|
+
export declare const useBall: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<BallArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
16
|
+
export declare const useCapsule: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<CapsuleArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
17
|
+
export declare const useHeightfield: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<HeightfieldArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
60
18
|
/**
|
61
19
|
* Create a trimesh collider and rigid body.
|
62
20
|
* Note that Trimeshes don't have mass unless provided.
|
@@ -64,123 +22,25 @@ export declare const useHeightfield: <T extends Object3D<import("three").Event>>
|
|
64
22
|
* for available properties.
|
65
23
|
*/
|
66
24
|
export declare const useTrimesh: {
|
67
|
-
<T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<TrimeshArgs>): [ref: React.MutableRefObject<T>, rigidBody:
|
68
|
-
|
69
|
-
readonly handle: number;
|
70
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
71
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
72
|
-
translation(): Vector3;
|
73
|
-
rotation(): Quaternion;
|
74
|
-
}];
|
75
|
-
fromMesh<T_1 extends Object3D<import("three").Event>>(mesh: Mesh, rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<TrimeshArgs>): [ref: React.MutableRefObject<T_1>, rigidBody: {
|
76
|
-
raw: () => Rapier.RigidBody | undefined;
|
77
|
-
readonly handle: number;
|
78
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
79
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
80
|
-
translation(): Vector3;
|
81
|
-
rotation(): Quaternion;
|
82
|
-
}];
|
25
|
+
<T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<TrimeshArgs>): [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
26
|
+
fromMesh<T_1 extends Object3D<import("three").Event>>(mesh: Mesh, rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<TrimeshArgs>): [ref: React.MutableRefObject<T_1>, rigidBody: import("./api").RigidBodyApi];
|
83
27
|
};
|
84
|
-
export declare const usePolyline: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<PolylineArgs>) => [ref: React.MutableRefObject<T>, rigidBody:
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
rotation(): Quaternion;
|
91
|
-
}];
|
92
|
-
export declare const useRoundCuboid: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundCuboidArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
93
|
-
raw: () => Rapier.RigidBody | undefined;
|
94
|
-
readonly handle: number;
|
95
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
96
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
97
|
-
translation(): Vector3;
|
98
|
-
rotation(): Quaternion;
|
99
|
-
}];
|
100
|
-
export declare const useCylinder: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<CylinderArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
101
|
-
raw: () => Rapier.RigidBody | undefined;
|
102
|
-
readonly handle: number;
|
103
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
104
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
105
|
-
translation(): Vector3;
|
106
|
-
rotation(): Quaternion;
|
107
|
-
}];
|
108
|
-
export declare const useRoundCylinder: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundCylinderArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
109
|
-
raw: () => Rapier.RigidBody | undefined;
|
110
|
-
readonly handle: number;
|
111
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
112
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
113
|
-
translation(): Vector3;
|
114
|
-
rotation(): Quaternion;
|
115
|
-
}];
|
116
|
-
export declare const useCone: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<ConeArgs>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
117
|
-
raw: () => Rapier.RigidBody | undefined;
|
118
|
-
readonly handle: number;
|
119
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
120
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
121
|
-
translation(): Vector3;
|
122
|
-
rotation(): Quaternion;
|
123
|
-
}];
|
124
|
-
export declare const useRoundCone: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundCone>) => [ref: React.MutableRefObject<T>, rigidBody: {
|
125
|
-
raw: () => Rapier.RigidBody | undefined;
|
126
|
-
readonly handle: number;
|
127
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
128
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
129
|
-
translation(): Vector3;
|
130
|
-
rotation(): Quaternion;
|
131
|
-
}];
|
28
|
+
export declare const usePolyline: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<PolylineArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
29
|
+
export declare const useRoundCuboid: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundCuboidArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
30
|
+
export declare const useCylinder: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<CylinderArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
31
|
+
export declare const useRoundCylinder: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundCylinderArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
32
|
+
export declare const useCone: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<ConeArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
33
|
+
export declare const useRoundCone: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundCone>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
132
34
|
export declare const useConvexHull: {
|
133
|
-
<T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<ConvexHullArgs>): [ref: React.MutableRefObject<T>, rigidBody:
|
134
|
-
|
135
|
-
readonly handle: number;
|
136
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
137
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
138
|
-
translation(): Vector3;
|
139
|
-
rotation(): Quaternion;
|
140
|
-
}];
|
141
|
-
fromMesh<T_1 extends Object3D<import("three").Event>>(mesh: Mesh, rigidBodyOptions?: UseBodyOptions, colliderOptions?: Omit<UseColliderOptions<ConvexHullArgs>, "colliderArgs">): [ref: React.MutableRefObject<T_1>, rigidBody: {
|
142
|
-
raw: () => Rapier.RigidBody | undefined;
|
143
|
-
readonly handle: number;
|
144
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
145
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
146
|
-
translation(): Vector3;
|
147
|
-
rotation(): Quaternion;
|
148
|
-
}];
|
35
|
+
<T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<ConvexHullArgs>): [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
36
|
+
fromMesh<T_1 extends Object3D<import("three").Event>>(mesh: Mesh, rigidBodyOptions?: UseBodyOptions, colliderOptions?: Omit<UseColliderOptions<ConvexHullArgs>, "colliderArgs">): [ref: React.MutableRefObject<T_1>, rigidBody: import("./api").RigidBodyApi];
|
149
37
|
};
|
150
|
-
export declare const useRoundConvexHull: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundConvexHullArgs>) => [ref: React.MutableRefObject<T>, rigidBody:
|
151
|
-
raw: () => Rapier.RigidBody | undefined;
|
152
|
-
readonly handle: number;
|
153
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
154
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
155
|
-
translation(): Vector3;
|
156
|
-
rotation(): Quaternion;
|
157
|
-
}];
|
38
|
+
export declare const useRoundConvexHull: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundConvexHullArgs>) => [ref: React.MutableRefObject<T>, rigidBody: import("./api").RigidBodyApi];
|
158
39
|
export declare const useConvexMesh: {
|
159
|
-
<T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<ConvexMeshArgs>): [ref: React.MutableRefObject<Object3D<import("three").Event>>, rigidBody:
|
160
|
-
|
161
|
-
readonly handle: number;
|
162
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
163
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
164
|
-
translation(): Vector3;
|
165
|
-
rotation(): Quaternion;
|
166
|
-
}];
|
167
|
-
fromMesh<T_1 extends Object3D<import("three").Event>>(mesh: Mesh, rigidBodyOptions?: UseBodyOptions, colliderOptions?: Omit<UseColliderOptions<ConvexMeshArgs>, "colliderArgs">): [ref: React.MutableRefObject<Object3D<import("three").Event>>, rigidBody: {
|
168
|
-
raw: () => Rapier.RigidBody | undefined;
|
169
|
-
readonly handle: number;
|
170
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
171
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
172
|
-
translation(): Vector3;
|
173
|
-
rotation(): Quaternion;
|
174
|
-
}];
|
40
|
+
<T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<ConvexMeshArgs>): [ref: React.MutableRefObject<Object3D<import("three").Event>>, rigidBody: import("./api").RigidBodyApi];
|
41
|
+
fromMesh<T_1 extends Object3D<import("three").Event>>(mesh: Mesh, rigidBodyOptions?: UseBodyOptions, colliderOptions?: Omit<UseColliderOptions<ConvexMeshArgs>, "colliderArgs">): [ref: React.MutableRefObject<Object3D<import("three").Event>>, rigidBody: import("./api").RigidBodyApi];
|
175
42
|
};
|
176
|
-
export declare const useRoundConvexMesh: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundConvexMeshArgs>) => [ref: React.MutableRefObject<Object3D<import("three").Event>>, rigidBody:
|
177
|
-
raw: () => Rapier.RigidBody | undefined;
|
178
|
-
readonly handle: number;
|
179
|
-
applyImpulse({ x, y, z }: Vector3): void;
|
180
|
-
applyTorqueImpulse({ x, y, z }: Vector3): void;
|
181
|
-
translation(): Vector3;
|
182
|
-
rotation(): Quaternion;
|
183
|
-
}];
|
43
|
+
export declare const useRoundConvexMesh: <T extends Object3D<import("three").Event>>(rigidBodyOptions?: UseBodyOptions, colliderOptions?: UseColliderOptions<RoundConvexMeshArgs>) => [ref: React.MutableRefObject<Object3D<import("three").Event>>, rigidBody: import("./api").RigidBodyApi];
|
184
44
|
export declare const useImpulseJoint: <T extends Rapier.ImpulseJoint>(body1: MutableRefObject<RapierRigidBody | undefined | null> | RigidBodyApi, body2: MutableRefObject<RapierRigidBody | undefined | null> | RigidBodyApi, params: Rapier.JointData) => {
|
185
45
|
raw: () => Rapier.ImpulseJoint | undefined;
|
186
46
|
readonly handle: number;
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Collider } from "@dimforge/rapier3d-compat";
|
1
|
+
import { Collider, RigidBody } from "@dimforge/rapier3d-compat";
|
2
2
|
import { Object3D, Vector3 } from "three";
|
3
|
-
import {
|
3
|
+
import { RigidBodyAutoCollider, RigidBodyShape, RigidBodyTypeString, UseColliderOptions, Vector3Array, WorldApi } from "./types";
|
4
4
|
export declare const vectorArrayToObject: (arr: Vector3Array) => {
|
5
5
|
x: number;
|
6
6
|
y: number;
|
@@ -8,10 +8,10 @@ export declare const vectorArrayToObject: (arr: Vector3Array) => {
|
|
8
8
|
};
|
9
9
|
export declare const rigidBodyTypeFromString: (type: RigidBodyTypeString) => number;
|
10
10
|
export declare const scaleColliderArgs: (shape: RigidBodyShape, args: (number | ArrayLike<number>)[], scale: Vector3) => (number | ArrayLike<number>)[];
|
11
|
-
export declare const createColliderFromOptions: <A>(options: UseColliderOptions<A>, world: WorldApi,
|
11
|
+
export declare const createColliderFromOptions: <A>(options: UseColliderOptions<A>, world: WorldApi, rigidBody: RigidBody, scale?: {
|
12
12
|
x: number;
|
13
13
|
y: number;
|
14
14
|
z: number;
|
15
15
|
}, hasCollisionEvents?: boolean) => Collider;
|
16
|
-
export declare const createCollidersFromChildren: (object: Object3D, rigidBody:
|
16
|
+
export declare const createCollidersFromChildren: (object: Object3D, rigidBody: RigidBody, type: RigidBodyAutoCollider, world: WorldApi, hasCollisionEvents?: boolean) => Collider[];
|
17
17
|
export declare const scaleVertices: (vertices: ArrayLike<number>, scale: Vector3) => number[];
|