@react-three/rapier 0.15.0 → 0.16.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/declarations/src/components/AnyCollider.d.ts +28 -9
- package/dist/declarations/src/components/Physics.d.ts +2 -2
- package/dist/declarations/src/hooks/use-imperative-instance.d.ts +2 -1
- package/dist/declarations/src/types.d.ts +33 -21
- package/dist/declarations/src/utils/api.d.ts +1 -2
- package/dist/declarations/src/utils/utils-collider.d.ts +5 -5
- package/dist/declarations/src/utils/utils-rigidbody.d.ts +4 -0
- package/dist/declarations/src/utils/utils.d.ts +2 -2
- package/dist/react-three-rapier.cjs.dev.js +162 -164
- package/dist/react-three-rapier.cjs.prod.js +162 -164
- package/dist/react-three-rapier.esm.js +162 -166
- package/package.json +4 -4
- package/readme.md +29 -22
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Collider } from "@dimforge/rapier3d-compat";
|
2
2
|
import React, { ReactNode } from "react";
|
3
|
-
import { ColliderOptions, CuboidArgs, RoundCuboidArgs, BallArgs, CapsuleArgs, HeightfieldArgs, TrimeshArgs, ConeArgs, CylinderArgs, ConvexHullArgs } from "../types";
|
3
|
+
import { ColliderOptions, CuboidArgs, RoundCuboidArgs, BallArgs, CapsuleArgs, HeightfieldArgs, TrimeshArgs, ConeArgs, CylinderArgs, ConvexHullArgs, RoundCylinderArgs } from "../types";
|
4
|
+
import { RoundConeArgs } from "../types";
|
4
5
|
export interface ColliderProps extends ColliderOptions<any> {
|
5
6
|
children?: ReactNode;
|
6
7
|
}
|
@@ -14,14 +15,6 @@ export declare type ColliderOptionsRequiredArgs<T extends unknown[]> = Omit<Coll
|
|
14
15
|
children?: ReactNode;
|
15
16
|
};
|
16
17
|
export declare type CuboidColliderProps = ColliderOptionsRequiredArgs<CuboidArgs>;
|
17
|
-
export declare type RoundCuboidColliderProps = ColliderOptionsRequiredArgs<RoundCuboidArgs>;
|
18
|
-
export declare type BallColliderProps = ColliderOptionsRequiredArgs<BallArgs>;
|
19
|
-
export declare type CapsuleColliderProps = ColliderOptionsRequiredArgs<CapsuleArgs>;
|
20
|
-
export declare type HeightfieldColliderProps = ColliderOptionsRequiredArgs<HeightfieldArgs>;
|
21
|
-
export declare type TrimeshColliderProps = ColliderOptionsRequiredArgs<TrimeshArgs>;
|
22
|
-
export declare type ConeColliderProps = ColliderOptionsRequiredArgs<ConeArgs>;
|
23
|
-
export declare type CylinderColliderProps = ColliderOptionsRequiredArgs<CylinderArgs>;
|
24
|
-
export declare type ConvexHullColliderProps = ColliderOptionsRequiredArgs<ConvexHullArgs>;
|
25
18
|
/**
|
26
19
|
* A cuboid collider shape
|
27
20
|
* @category Colliders
|
@@ -30,6 +23,7 @@ export declare const CuboidCollider: React.ForwardRefExoticComponent<Omit<Collid
|
|
30
23
|
args: CuboidArgs;
|
31
24
|
children?: ReactNode;
|
32
25
|
} & React.RefAttributes<Collider>>;
|
26
|
+
export declare type RoundCuboidColliderProps = ColliderOptionsRequiredArgs<RoundCuboidArgs>;
|
33
27
|
/**
|
34
28
|
* A round cuboid collider shape
|
35
29
|
* @category Colliders
|
@@ -38,6 +32,7 @@ export declare const RoundCuboidCollider: React.ForwardRefExoticComponent<Omit<C
|
|
38
32
|
args: RoundCuboidArgs;
|
39
33
|
children?: ReactNode;
|
40
34
|
} & React.RefAttributes<Collider>>;
|
35
|
+
export declare type BallColliderProps = ColliderOptionsRequiredArgs<BallArgs>;
|
41
36
|
/**
|
42
37
|
* A ball collider shape
|
43
38
|
* @category Colliders
|
@@ -46,6 +41,7 @@ export declare const BallCollider: React.ForwardRefExoticComponent<Omit<Collider
|
|
46
41
|
args: BallArgs;
|
47
42
|
children?: ReactNode;
|
48
43
|
} & React.RefAttributes<Collider>>;
|
44
|
+
export declare type CapsuleColliderProps = ColliderOptionsRequiredArgs<CapsuleArgs>;
|
49
45
|
/**
|
50
46
|
* A capsule collider shape
|
51
47
|
* @category Colliders
|
@@ -54,6 +50,7 @@ export declare const CapsuleCollider: React.ForwardRefExoticComponent<Omit<Colli
|
|
54
50
|
args: CapsuleArgs;
|
55
51
|
children?: ReactNode;
|
56
52
|
} & React.RefAttributes<Collider>>;
|
53
|
+
export declare type HeightfieldColliderProps = ColliderOptionsRequiredArgs<HeightfieldArgs>;
|
57
54
|
/**
|
58
55
|
* A heightfield collider shape
|
59
56
|
* @category Colliders
|
@@ -62,6 +59,7 @@ export declare const HeightfieldCollider: React.ForwardRefExoticComponent<Omit<C
|
|
62
59
|
args: HeightfieldArgs;
|
63
60
|
children?: ReactNode;
|
64
61
|
} & React.RefAttributes<Collider>>;
|
62
|
+
export declare type TrimeshColliderProps = ColliderOptionsRequiredArgs<TrimeshArgs>;
|
65
63
|
/**
|
66
64
|
* A trimesh collider shape
|
67
65
|
* @category Colliders
|
@@ -70,6 +68,7 @@ export declare const TrimeshCollider: React.ForwardRefExoticComponent<Omit<Colli
|
|
70
68
|
args: TrimeshArgs;
|
71
69
|
children?: ReactNode;
|
72
70
|
} & React.RefAttributes<Collider>>;
|
71
|
+
export declare type ConeColliderProps = ColliderOptionsRequiredArgs<ConeArgs>;
|
73
72
|
/**
|
74
73
|
* A cone collider shape
|
75
74
|
* @category Colliders
|
@@ -78,6 +77,16 @@ export declare const ConeCollider: React.ForwardRefExoticComponent<Omit<Collider
|
|
78
77
|
args: ConeArgs;
|
79
78
|
children?: ReactNode;
|
80
79
|
} & React.RefAttributes<Collider>>;
|
80
|
+
export declare type RoundConeColliderProps = ColliderOptionsRequiredArgs<RoundConeArgs>;
|
81
|
+
/**
|
82
|
+
* A round cylinder collider shape
|
83
|
+
* @category Colliders
|
84
|
+
*/
|
85
|
+
export declare const RoundConeCollider: React.ForwardRefExoticComponent<Omit<ColliderOptions<RoundConeArgs>, "args"> & {
|
86
|
+
args: RoundConeArgs;
|
87
|
+
children?: ReactNode;
|
88
|
+
} & React.RefAttributes<Collider>>;
|
89
|
+
export declare type CylinderColliderProps = ColliderOptionsRequiredArgs<CylinderArgs>;
|
81
90
|
/**
|
82
91
|
* A cylinder collider shape
|
83
92
|
* @category Colliders
|
@@ -86,6 +95,16 @@ export declare const CylinderCollider: React.ForwardRefExoticComponent<Omit<Coll
|
|
86
95
|
args: CylinderArgs;
|
87
96
|
children?: ReactNode;
|
88
97
|
} & React.RefAttributes<Collider>>;
|
98
|
+
export declare type RoundCylinderColliderProps = ColliderOptionsRequiredArgs<RoundCylinderArgs>;
|
99
|
+
/**
|
100
|
+
* A round cylinder collider shape
|
101
|
+
* @category Colliders
|
102
|
+
*/
|
103
|
+
export declare const RoundCylinderCollider: React.ForwardRefExoticComponent<Omit<ColliderOptions<RoundConeArgs>, "args"> & {
|
104
|
+
args: RoundConeArgs;
|
105
|
+
children?: ReactNode;
|
106
|
+
} & React.RefAttributes<Collider>>;
|
107
|
+
export declare type ConvexHullColliderProps = ColliderOptionsRequiredArgs<ConvexHullArgs>;
|
89
108
|
/**
|
90
109
|
* A convex hull collider shape
|
91
110
|
* @category Colliders
|
@@ -2,7 +2,7 @@ import type Rapier from "@dimforge/rapier3d-compat";
|
|
2
2
|
import { Collider, ColliderHandle, RigidBody, RigidBodyHandle } from "@dimforge/rapier3d-compat";
|
3
3
|
import React, { FC, ReactNode } from "react";
|
4
4
|
import { Matrix4, Object3D, Vector3 } from "three";
|
5
|
-
import { CollisionEnterHandler, CollisionExitHandler, ContactForceHandler, IntersectionEnterHandler, IntersectionExitHandler, RigidBodyAutoCollider,
|
5
|
+
import { CollisionEnterHandler, CollisionExitHandler, ContactForceHandler, IntersectionEnterHandler, IntersectionExitHandler, RigidBodyAutoCollider, Vector3Tuple } from "../types";
|
6
6
|
import { WorldApi } from "../utils/api";
|
7
7
|
export interface RigidBodyState {
|
8
8
|
meshType: "instancedMesh" | "mesh";
|
@@ -115,7 +115,7 @@ export interface PhysicsProps {
|
|
115
115
|
* Set the gravity of the physics world
|
116
116
|
* @defaultValue [0, -9.81, 0]
|
117
117
|
*/
|
118
|
-
gravity?:
|
118
|
+
gravity?: Vector3Tuple;
|
119
119
|
/**
|
120
120
|
* Set the base automatic colliders for this physics world
|
121
121
|
* All Meshes inside RigidBodies will generate a collider
|
@@ -1,4 +1,5 @@
|
|
1
|
+
import { DependencyList } from "react";
|
1
2
|
/**
|
2
3
|
* Initiate an instance and return a safe getter
|
3
4
|
*/
|
4
|
-
export declare const useImperativeInstance: <InstanceType_1>(createFn: () => InstanceType_1, destroyFn: (instance: InstanceType_1) => void) => () => InstanceType_1;
|
5
|
+
export declare const useImperativeInstance: <InstanceType_1>(createFn: () => InstanceType_1, destroyFn: (instance: InstanceType_1) => void, dependencyList: DependencyList) => () => InstanceType_1;
|
@@ -67,14 +67,26 @@ export declare type RoundConvexMeshArgs = [
|
|
67
67
|
export declare type UseBodyOptions = Omit<RigidBodyOptions, "shape">;
|
68
68
|
export declare type RigidBodyTypeString = "fixed" | "dynamic" | "kinematicPosition" | "kinematicVelocity";
|
69
69
|
export declare type ColliderShape = "cuboid" | "trimesh" | "ball" | "capsule" | "convexHull" | "heightfield" | "polyline" | "roundCuboid" | "cylinder" | "roundCylinder" | "cone" | "roundCone" | "convexMesh" | "roundConvexHull" | "roundConvexMesh";
|
70
|
-
export declare type
|
71
|
-
export declare type
|
72
|
-
export declare type
|
70
|
+
export declare type Vector3Tuple = [x: number, y: number, z: number];
|
71
|
+
export declare type Vector4Tuple = [x: number, y: number, z: number, w: number];
|
72
|
+
export declare type Boolean3Tuple = [x: boolean, y: boolean, z: boolean];
|
73
73
|
export declare type Vector3Object = {
|
74
74
|
x: number;
|
75
75
|
y: number;
|
76
76
|
z: number;
|
77
77
|
};
|
78
|
+
/**
|
79
|
+
* @deprecated use Vector3Tuple instead
|
80
|
+
*/
|
81
|
+
export declare type Vector3Array = Vector3Tuple;
|
82
|
+
/**
|
83
|
+
* @deprecated use Vector4Tuple instead
|
84
|
+
* */
|
85
|
+
export declare type Vector4Array = Vector4Tuple;
|
86
|
+
/**
|
87
|
+
* @deprecated use Boolean3Tuple instead
|
88
|
+
* */
|
89
|
+
export declare type Boolean3Array = Boolean3Tuple;
|
78
90
|
export interface ColliderOptions<ColliderArgs extends Array<unknown>> {
|
79
91
|
/**
|
80
92
|
* The optional name passed to THREE's Object3D
|
@@ -91,7 +103,7 @@ export interface ColliderOptions<ColliderArgs extends Array<unknown>> {
|
|
91
103
|
/**
|
92
104
|
* Principal angular inertia of this rigid body
|
93
105
|
*/
|
94
|
-
principalAngularInertia?:
|
106
|
+
principalAngularInertia?: Vector3Tuple;
|
95
107
|
/**
|
96
108
|
* Restitution controls how elastic (aka. bouncy) a contact is. Le elasticity of a contact is controlled by the restitution coefficient
|
97
109
|
*/
|
@@ -241,12 +253,12 @@ export interface RigidBodyOptions extends ColliderProps {
|
|
241
253
|
* The initial linear velocity of this body.
|
242
254
|
* @defaultValue [0,0,0]
|
243
255
|
*/
|
244
|
-
linearVelocity?:
|
256
|
+
linearVelocity?: Vector3Tuple;
|
245
257
|
/**
|
246
258
|
* The initial angular velocity of this body.
|
247
259
|
* @defaultValue [0,0,0]
|
248
260
|
*/
|
249
|
-
angularVelocity?:
|
261
|
+
angularVelocity?: Vector3Tuple;
|
250
262
|
/**
|
251
263
|
* The scaling factor applied to the gravity affecting the rigid-body.
|
252
264
|
* @defaultValue 1.0
|
@@ -316,11 +328,11 @@ export interface RigidBodyOptions extends ColliderProps {
|
|
316
328
|
/**
|
317
329
|
* Allow rotation of this rigid-body only along specific axes.
|
318
330
|
*/
|
319
|
-
enabledRotations?:
|
331
|
+
enabledRotations?: Boolean3Tuple;
|
320
332
|
/**
|
321
333
|
* Allow translation of this rigid-body only along specific axes.
|
322
334
|
*/
|
323
|
-
enabledTranslations?:
|
335
|
+
enabledTranslations?: Boolean3Tuple;
|
324
336
|
/**
|
325
337
|
* Passed down to the object3d representing this collider.
|
326
338
|
*/
|
@@ -336,26 +348,26 @@ export interface RigidBodyOptions extends ColliderProps {
|
|
336
348
|
transformState?: (state: RigidBodyState) => RigidBodyState;
|
337
349
|
}
|
338
350
|
export declare type SphericalJointParams = [
|
339
|
-
body1Anchor:
|
340
|
-
body2Anchor:
|
351
|
+
body1Anchor: Vector3Tuple,
|
352
|
+
body2Anchor: Vector3Tuple
|
341
353
|
];
|
342
354
|
export declare type FixedJointParams = [
|
343
|
-
body1Anchor:
|
344
|
-
body1LocalFrame:
|
345
|
-
body2Anchor:
|
346
|
-
body2LocalFrame:
|
355
|
+
body1Anchor: Vector3Tuple,
|
356
|
+
body1LocalFrame: Vector4Tuple,
|
357
|
+
body2Anchor: Vector3Tuple,
|
358
|
+
body2LocalFrame: Vector4Tuple
|
347
359
|
];
|
348
360
|
export declare type PrismaticJointParams = [
|
349
|
-
body1Anchor:
|
350
|
-
body1LocalFrame:
|
351
|
-
body2Anchor:
|
352
|
-
body2LocalFrame:
|
361
|
+
body1Anchor: Vector3Tuple,
|
362
|
+
body1LocalFrame: Vector3Tuple,
|
363
|
+
body2Anchor: Vector3Tuple,
|
364
|
+
body2LocalFrame: Vector3Tuple,
|
353
365
|
limits?: [min: number, max: number]
|
354
366
|
];
|
355
367
|
export declare type RevoluteJointParams = [
|
356
|
-
body1Anchor:
|
357
|
-
body2Anchor:
|
358
|
-
axis:
|
368
|
+
body1Anchor: Vector3Tuple,
|
369
|
+
body2Anchor: Vector3Tuple,
|
370
|
+
axis: Vector3Tuple,
|
359
371
|
limits?: [min: number, max: number]
|
360
372
|
];
|
361
373
|
export interface UseImpulseJoint<JointParams, JointType extends ImpulseJoint> {
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { Collider, ColliderDesc, DebugRenderBuffers, ImpulseJoint, JointData, RigidBody, RigidBodyDesc, World } from "@dimforge/rapier3d-compat";
|
2
2
|
import { Vector3 } from "three";
|
3
|
-
import { RefGetter } from "../types";
|
4
3
|
export interface WorldApi {
|
5
4
|
raw(): World;
|
6
5
|
getCollider(handle: number): Collider | undefined;
|
@@ -15,4 +14,4 @@ export interface WorldApi {
|
|
15
14
|
setGravity(gravity: Vector3): void;
|
16
15
|
debugRender(): DebugRenderBuffers;
|
17
16
|
}
|
18
|
-
export declare const createWorldApi: (
|
17
|
+
export declare const createWorldApi: (getWorld: () => World) => WorldApi;
|
@@ -40,8 +40,8 @@ export declare const useColliderEvents: (getCollider: () => Collider, props: Col
|
|
40
40
|
contactForce?: boolean;
|
41
41
|
}) => void;
|
42
42
|
export declare const cleanRigidBodyPropsForCollider: (props?: RigidBodyProps) => {
|
43
|
-
linearVelocity?: import("..").
|
44
|
-
angularVelocity?: import("..").
|
43
|
+
linearVelocity?: import("..").Vector3Tuple | undefined;
|
44
|
+
angularVelocity?: import("..").Vector3Tuple | undefined;
|
45
45
|
dominanceGroup?: number | undefined;
|
46
46
|
position?: import("@react-three/fiber").Vector3 | undefined;
|
47
47
|
rotation?: import("@react-three/fiber").Euler | undefined;
|
@@ -54,8 +54,8 @@ export declare const cleanRigidBodyPropsForCollider: (props?: RigidBodyProps) =>
|
|
54
54
|
onWake?(): void;
|
55
55
|
lockRotations?: boolean | undefined;
|
56
56
|
lockTranslations?: boolean | undefined;
|
57
|
-
enabledRotations?: import("..").
|
58
|
-
enabledTranslations?: import("..").
|
57
|
+
enabledRotations?: import("..").Boolean3Tuple | undefined;
|
58
|
+
enabledTranslations?: import("..").Boolean3Tuple | undefined;
|
59
59
|
userData?: {
|
60
60
|
[key: string]: any;
|
61
61
|
} | undefined;
|
@@ -64,7 +64,7 @@ export declare const cleanRigidBodyPropsForCollider: (props?: RigidBodyProps) =>
|
|
64
64
|
name?: string | undefined;
|
65
65
|
shape?: ColliderShape | undefined;
|
66
66
|
args?: any;
|
67
|
-
principalAngularInertia?: import("..").
|
67
|
+
principalAngularInertia?: import("..").Vector3Tuple | undefined;
|
68
68
|
restitutionCombineRule?: import("@dimforge/rapier3d-compat").CoefficientCombineRule | undefined;
|
69
69
|
frictionCombineRule?: import("@dimforge/rapier3d-compat").CoefficientCombineRule | undefined;
|
70
70
|
quaternion?: import("@react-three/fiber").Quaternion | undefined;
|
@@ -14,6 +14,10 @@ interface CreateRigidBodyStateOptions {
|
|
14
14
|
export declare const createRigidBodyState: ({ rigidBody, object, setMatrix, getMatrix, worldScale, meshType }: CreateRigidBodyStateOptions) => RigidBodyState;
|
15
15
|
declare type ImmutableRigidBodyOptions = (keyof RigidBodyProps)[];
|
16
16
|
export declare const immutableRigidBodyOptions: ImmutableRigidBodyOptions;
|
17
|
+
declare type MutableRigidBodyOptions = {
|
18
|
+
[Prop in keyof RigidBodyProps]: (rb: RigidBody, value: any) => void;
|
19
|
+
};
|
20
|
+
export declare const mutableRigidBodyOptions: MutableRigidBodyOptions;
|
17
21
|
export declare const setRigidBodyOptions: (rigidBody: RigidBody, options: RigidBodyProps, states: RigidBodyStateMap, updateTranslations?: boolean) => void;
|
18
22
|
export declare const useUpdateRigidBodyOptions: (getRigidBody: () => RigidBody, props: RigidBodyProps, states: RigidBodyStateMap, updateTranslations?: boolean) => void;
|
19
23
|
export declare const useRigidBodyEvents: (getRigidBody: () => RigidBody, props: RigidBodyProps, events: EventMap) => void;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Quaternion as RapierQuaternion, Vector3 as RapierVector3 } from "@dimforge/rapier3d-compat";
|
2
2
|
import { Euler, Quaternion, Vector3 } from "three";
|
3
|
-
import { RigidBodyTypeString,
|
4
|
-
export declare const vectorArrayToVector3: (arr:
|
3
|
+
import { RigidBodyTypeString, Vector3Tuple } from "../types";
|
4
|
+
export declare const vectorArrayToVector3: (arr: Vector3Tuple) => Vector3;
|
5
5
|
export declare const tupleToObject: <T extends readonly any[], K extends readonly string[]>(tuple: T, keys: K) => { [Key in K[number]]: T[number]; };
|
6
6
|
export declare const vector3ToQuaternion: (v: Vector3) => Quaternion;
|
7
7
|
export declare const rapierVector3ToVector3: ({ x, y, z }: RapierVector3) => Vector3;
|