@react-three/rapier 0.15.1 → 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.
@@ -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, Vector3Array } from "../types";
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?: Vector3Array;
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 Vector3Array = [x: number, y: number, z: number];
71
- export declare type Vector4Array = [x: number, y: number, z: number, w: number];
72
- export declare type Boolean3Array = [x: boolean, y: boolean, z: boolean];
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?: Vector3Array;
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?: Vector3Array;
256
+ linearVelocity?: Vector3Tuple;
245
257
  /**
246
258
  * The initial angular velocity of this body.
247
259
  * @defaultValue [0,0,0]
248
260
  */
249
- angularVelocity?: Vector3Array;
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?: Boolean3Array;
331
+ enabledRotations?: Boolean3Tuple;
320
332
  /**
321
333
  * Allow translation of this rigid-body only along specific axes.
322
334
  */
323
- enabledTranslations?: Boolean3Array;
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: Vector3Array,
340
- body2Anchor: Vector3Array
351
+ body1Anchor: Vector3Tuple,
352
+ body2Anchor: Vector3Tuple
341
353
  ];
342
354
  export declare type FixedJointParams = [
343
- body1Anchor: Vector3Array,
344
- body1LocalFrame: Vector4Array,
345
- body2Anchor: Vector3Array,
346
- body2LocalFrame: Vector4Array
355
+ body1Anchor: Vector3Tuple,
356
+ body1LocalFrame: Vector4Tuple,
357
+ body2Anchor: Vector3Tuple,
358
+ body2LocalFrame: Vector4Tuple
347
359
  ];
348
360
  export declare type PrismaticJointParams = [
349
- body1Anchor: Vector3Array,
350
- body1LocalFrame: Vector3Array,
351
- body2Anchor: Vector3Array,
352
- body2LocalFrame: Vector3Array,
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: Vector3Array,
357
- body2Anchor: Vector3Array,
358
- axis: Vector3Array,
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: (ref: RefGetter<World>) => WorldApi;
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("..").Vector3Array | undefined;
44
- angularVelocity?: import("..").Vector3Array | undefined;
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("..").Boolean3Array | undefined;
58
- enabledTranslations?: import("..").Boolean3Array | undefined;
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("..").Vector3Array | undefined;
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, Vector3Array } from "../types";
4
- export declare const vectorArrayToVector3: (arr: Vector3Array) => Vector3;
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;