@react-three/rapier 0.6.0 → 0.6.3
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/InstancedRigidBodies.d.ts +4 -4
- package/dist/declarations/src/Physics.d.ts +8 -1
- package/dist/declarations/src/RigidBody.d.ts +12 -4
- package/dist/declarations/src/api.d.ts +16 -0
- package/dist/declarations/src/types.d.ts +6 -2
- package/dist/declarations/src/utils.d.ts +12 -7
- package/dist/react-three-rapier.cjs.dev.js +186 -104
- package/dist/react-three-rapier.cjs.prod.js +186 -104
- package/dist/react-three-rapier.esm.js +141 -59
- package/package.json +1 -1
- package/readme.md +19 -2
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
import React from "react";
|
2
2
|
import { InstancedRigidBodyApi } from "./api";
|
3
3
|
import { RigidBodyProps } from "./RigidBody";
|
4
4
|
import { Vector3Array } from "./types";
|
5
|
-
interface InstancedRigidBodiesProps extends Omit<RigidBodyProps, "position" | "rotation" | "onCollisionEnter" | "onCollisionExit"> {
|
5
|
+
export interface InstancedRigidBodiesProps extends Omit<RigidBodyProps, "position" | "rotation" | "onCollisionEnter" | "onCollisionExit"> {
|
6
6
|
positions?: Vector3Array[];
|
7
7
|
rotations?: Vector3Array[];
|
8
|
+
scales?: Vector3Array[];
|
8
9
|
}
|
9
|
-
export declare const InstancedRigidBodies:
|
10
|
-
export {};
|
10
|
+
export declare const InstancedRigidBodies: React.ForwardRefExoticComponent<InstancedRigidBodiesProps & React.RefAttributes<InstancedRigidBodyApi>>;
|
@@ -10,7 +10,8 @@ export interface RapierContext {
|
|
10
10
|
rigidBodyStates: Map<RigidBodyHandle, {
|
11
11
|
mesh: Object3D;
|
12
12
|
isSleeping: boolean;
|
13
|
-
setMatrix
|
13
|
+
setMatrix(mat: Matrix4): void;
|
14
|
+
getMatrix(): Matrix4;
|
14
15
|
worldScale: Vector3;
|
15
16
|
invertedMatrixWorld: Matrix4;
|
16
17
|
}>;
|
@@ -58,6 +59,12 @@ interface RapierWorldProps {
|
|
58
59
|
* @defaultValue "vary"
|
59
60
|
*/
|
60
61
|
timeStep?: number | "vary";
|
62
|
+
/**
|
63
|
+
* Pause the physics simulation
|
64
|
+
*
|
65
|
+
* @defaultValue false
|
66
|
+
*/
|
67
|
+
paused: boolean;
|
61
68
|
}
|
62
69
|
export declare const Physics: FC<RapierWorldProps>;
|
63
70
|
export {};
|
@@ -1,12 +1,20 @@
|
|
1
|
-
import React, { MutableRefObject } from "react";
|
1
|
+
import React, { MutableRefObject, RefObject } from "react";
|
2
2
|
import { ReactNode } from "react";
|
3
3
|
import { Object3D } from "three";
|
4
|
+
import { InstancedRigidBodyApi } from "./api";
|
5
|
+
import { InstancedRigidBodiesProps } from "./InstancedRigidBodies";
|
4
6
|
import { RigidBodyApi, UseRigidBodyOptions } from "./types";
|
7
|
+
export declare const RigidBodyContext: React.Context<{
|
8
|
+
ref: RefObject<Object3D> | MutableRefObject<Object3D>;
|
9
|
+
api: RigidBodyApi | InstancedRigidBodyApi;
|
10
|
+
hasCollisionEvents: boolean;
|
11
|
+
options: UseRigidBodyOptions | InstancedRigidBodiesProps;
|
12
|
+
}>;
|
5
13
|
export declare const useRigidBodyContext: () => {
|
6
|
-
ref: MutableRefObject<Object3D>;
|
7
|
-
api: RigidBodyApi;
|
14
|
+
ref: RefObject<Object3D> | MutableRefObject<Object3D>;
|
15
|
+
api: RigidBodyApi | InstancedRigidBodyApi;
|
8
16
|
hasCollisionEvents: boolean;
|
9
|
-
options: UseRigidBodyOptions;
|
17
|
+
options: UseRigidBodyOptions | InstancedRigidBodiesProps;
|
10
18
|
};
|
11
19
|
export interface RigidBodyProps extends UseRigidBodyOptions {
|
12
20
|
children?: ReactNode;
|
@@ -75,6 +75,22 @@ export interface RigidBodyApi {
|
|
75
75
|
* Sets the angular velocity of this rigid-body.
|
76
76
|
*/
|
77
77
|
setAngvel(velocity: Vector3Object): void;
|
78
|
+
/**
|
79
|
+
* The linear damping of this rigid-body.
|
80
|
+
*/
|
81
|
+
linearDamping(): number;
|
82
|
+
/**
|
83
|
+
* Sets the linear damping factor applied to this rigid-body.
|
84
|
+
*/
|
85
|
+
setLinearDamping(factor: number): void;
|
86
|
+
/**
|
87
|
+
* The angular damping of this rigid-body.
|
88
|
+
*/
|
89
|
+
angularDamping(): number;
|
90
|
+
/**
|
91
|
+
* Sets the anugular damping factor applied to this rigid-body.
|
92
|
+
*/
|
93
|
+
setAngularDamping(factor: number): void;
|
78
94
|
/**
|
79
95
|
* If this rigid body is kinematic, sets its future rotation after the next timestep integration.
|
80
96
|
*
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { MutableRefObject } from "react";
|
2
|
-
import { CoefficientCombineRule,
|
2
|
+
import { CoefficientCombineRule, Collider as RapierCollider, RigidBody as RapierRigidBody, TempContactManifold } from "@dimforge/rapier3d-compat";
|
3
3
|
import { createColliderApi, createJointApi, createRigidBodyApi, createWorldApi } from "./api";
|
4
|
-
export { RapierRigidBody, RapierCollider };
|
5
4
|
export { CoefficientCombineRule as CoefficientCombineRule } from "@dimforge/rapier3d-compat";
|
5
|
+
export { RapierRigidBody, RapierCollider };
|
6
6
|
export declare type RefGetter<T> = MutableRefObject<() => T | undefined>;
|
7
7
|
export declare type RigidBodyAutoCollider = "ball" | "cuboid" | "hull" | "trimesh" | false;
|
8
8
|
export interface UseRigidBodyAPI {
|
@@ -126,6 +126,10 @@ export interface UseRigidBodyOptions {
|
|
126
126
|
* default: true
|
127
127
|
*/
|
128
128
|
canSleep?: boolean;
|
129
|
+
/** The linear damping coefficient of this rigid-body.*/
|
130
|
+
linearDamping?: number;
|
131
|
+
/** The angular damping coefficient of this rigid-body.*/
|
132
|
+
angularDamping?: number;
|
129
133
|
/** The linear velocity of this body.
|
130
134
|
* default: zero velocity
|
131
135
|
*/
|
@@ -1,11 +1,7 @@
|
|
1
|
-
import { Collider, ColliderDesc, RigidBody, RigidBodyDesc, Vector3 as RapierVector3
|
1
|
+
import { Collider, ColliderDesc, Quaternion as RapierQuaternion, RigidBody, RigidBodyDesc, Vector3 as RapierVector3 } from "@dimforge/rapier3d-compat";
|
2
2
|
import { BufferGeometry, Matrix4, Object3D, Quaternion, Vector3 } from "three";
|
3
3
|
import { RigidBodyApi, RigidBodyAutoCollider, RigidBodyShape, RigidBodyTypeString, UseColliderOptions, UseRigidBodyOptions, Vector3Array, WorldApi } from "./types";
|
4
|
-
export declare const
|
5
|
-
x: number;
|
6
|
-
y: number;
|
7
|
-
z: number;
|
8
|
-
};
|
4
|
+
export declare const vectorArrayToVector3: (arr: Vector3Array) => Vector3;
|
9
5
|
export declare const vector3ToQuaternion: (v: Vector3) => Quaternion;
|
10
6
|
export declare const rapierVector3ToVector3: ({ x, y, z }: RapierVector3) => Vector3;
|
11
7
|
export declare const rapierQuaternionToQuaternion: ({ x, y, z, w, }: RapierQuaternion) => Quaternion;
|
@@ -30,7 +26,16 @@ interface CreateColliderFromOptions {
|
|
30
26
|
}): Collider;
|
31
27
|
}
|
32
28
|
export declare const createColliderFromOptions: CreateColliderFromOptions;
|
33
|
-
|
29
|
+
interface CreateCollidersFromChildren {
|
30
|
+
(options: {
|
31
|
+
object: Object3D;
|
32
|
+
rigidBody?: Pick<RigidBodyApi | RigidBody, "handle">;
|
33
|
+
options: UseRigidBodyOptions;
|
34
|
+
world: WorldApi;
|
35
|
+
ignoreMeshColliders: boolean;
|
36
|
+
}): Collider[];
|
37
|
+
}
|
38
|
+
export declare const createCollidersFromChildren: CreateCollidersFromChildren;
|
34
39
|
export declare const colliderDescFromGeometry: (geometry: BufferGeometry, colliders: RigidBodyAutoCollider, scale: Vector3, hasCollisionEvents: boolean) => ColliderDesc;
|
35
40
|
export declare const scaleVertices: (vertices: ArrayLike<number>, scale: Vector3) => number[];
|
36
41
|
export declare const rigidBodyDescFromOptions: (options: UseRigidBodyOptions) => RigidBodyDesc;
|