@threlte/rapier 3.0.0-next.11 → 3.0.0-next.13

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.
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import type { FixedImpulseJoint } from '@dimforge/rapier3d-compat';
3
+ import { Euler } from 'three';
4
+ export declare const useFixedJoint: (anchorA: [x: number, y: number, z: number], frameA: Parameters<Euler['set']> | Euler, anchorB: [x: number, y: number, z: number], frameB: Parameters<Euler['set']> | Euler) => {
5
+ joint: import("svelte/store").Writable<FixedImpulseJoint>;
6
+ rigidBodyA: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
7
+ rigidBodyB: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
8
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import { MultibodyJoint, type ImpulseJoint, type RigidBody } from '@dimforge/rapier3d-compat';
3
+ import type { RapierContext } from '../types/types';
4
+ export declare const useJoint: <T extends ImpulseJoint | MultibodyJoint>(initializeJoint: (rigidBodyA: RigidBody, rigidBodyB: RigidBody, ctx: RapierContext) => T) => {
5
+ joint: import("svelte/store").Writable<T>;
6
+ rigidBodyA: import("svelte/store").Writable<RigidBody | undefined>;
7
+ rigidBodyB: import("svelte/store").Writable<RigidBody | undefined>;
8
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import type { PrismaticImpulseJoint } from '@dimforge/rapier3d-compat';
3
+ import { Vector3 } from 'three';
4
+ export declare const usePrismaticJoint: (anchorA: Parameters<Vector3['set']> | Vector3, anchorB: Parameters<Vector3['set']> | Vector3, axis: Parameters<Vector3['set']> | Vector3, limits?: [min: number, max: number]) => {
5
+ joint: import("svelte/store").Writable<PrismaticImpulseJoint>;
6
+ rigidBodyA: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
7
+ rigidBodyB: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
8
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import type { RevoluteImpulseJoint } from '@dimforge/rapier3d-compat';
3
+ import { Vector3 } from 'three';
4
+ export declare const useRevoluteJoint: (anchorA: Parameters<Vector3['set']> | Vector3, anchorB: Parameters<Vector3['set']> | Vector3, axis: Parameters<Vector3['set']> | Vector3, limits?: [min: number, max: number]) => {
5
+ joint: import("svelte/store").Writable<RevoluteImpulseJoint>;
6
+ rigidBodyA: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
7
+ rigidBodyB: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
8
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import type { SphericalImpulseJoint } from '@dimforge/rapier3d-compat';
3
+ import { Vector3 } from 'three';
4
+ export declare const useSphericalJoint: (anchorA: Parameters<Vector3['set']> | Vector3, anchorB: Parameters<Vector3['set']> | Vector3) => {
5
+ joint: import("svelte/store").Writable<SphericalImpulseJoint>;
6
+ rigidBodyA: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
7
+ rigidBodyB: import("svelte/store").Writable<import("@dimforge/rapier3d-compat").RigidBody | undefined>;
8
+ };
@@ -1,6 +1,7 @@
1
+ import { isInstanceOf } from '@threlte/core';
1
2
  export const isVector3 = (v) => {
2
- return v.isVector3;
3
+ return isInstanceOf(v, 'Vector3');
3
4
  };
4
5
  export const isEuler = (v) => {
5
- return v.isEuler;
6
+ return isInstanceOf(v, 'Euler');
6
7
  };
@@ -1,4 +1,4 @@
1
- import { Collider, World, RigidBody } from '@dimforge/rapier3d-compat';
1
+ import { Collider, RigidBody, World } from '@dimforge/rapier3d-compat';
2
2
  import { type Object3D } from 'three';
3
3
  import type { AutoCollidersShapes } from '../types/types';
4
4
  /**
@@ -1,4 +1,5 @@
1
1
  import { ActiveEvents, ColliderDesc } from '@dimforge/rapier3d-compat';
2
+ import { isInstanceOf } from '@threlte/core';
2
3
  import { Quaternion, Vector3 } from 'three';
3
4
  const offset = new Vector3();
4
5
  const worldPosition = new Vector3();
@@ -33,7 +34,7 @@ export const createCollidersFromChildren = (object, collidersType, world, rigidB
33
34
  rigidBodyParentObject?.getWorldPosition(rigidBodyWorldPos);
34
35
  rigidBodyParentObject?.getWorldQuaternion(rigidBodyWorldQuatInversed).invert();
35
36
  object.traverse((child) => {
36
- if ('isMesh' in child) {
37
+ if (isInstanceOf(child, 'Mesh')) {
37
38
  const { geometry } = child;
38
39
  const worldPos = child.getWorldPosition(worldPosition);
39
40
  const translation = worldPos.sub(rigidBodyWorldPos);
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@threlte/rapier",
3
- "version": "3.0.0-next.11",
3
+ "version": "3.0.0-next.13",
4
4
  "author": "Grischa Erbe <hello@legrisch.com> (https://legrisch.com)",
5
5
  "license": "MIT",
6
6
  "description": "Components and hooks to use the Rapier physics engine in Threlte",
7
7
  "devDependencies": {
8
8
  "@dimforge/rapier3d-compat": "^0.14.0",
9
9
  "@sveltejs/adapter-auto": "^3.2.0",
10
- "@sveltejs/kit": "^2.5.5",
10
+ "@sveltejs/kit": "^2.7.2",
11
11
  "@sveltejs/package": "^2.3.1",
12
12
  "@sveltejs/vite-plugin-svelte": "^3.1.0",
13
13
  "@types/node": "^20.12.7",
@@ -22,7 +22,7 @@
22
22
  "prettier-plugin-svelte": "^3.2.2",
23
23
  "publint": "^0.2.7",
24
24
  "rimraf": "^5.0.5",
25
- "svelte": "5.0.0-next.181",
25
+ "svelte": "^5.0.5",
26
26
  "svelte-check": "^3.6.9",
27
27
  "svelte-preprocess": "^5.1.3",
28
28
  "svelte2tsx": "^0.7.6",
@@ -31,7 +31,7 @@
31
31
  "type-fest": "^4.15.0",
32
32
  "typescript": "^5.4.5",
33
33
  "vite": "^5.2.8",
34
- "@threlte/core": "8.0.0-next.19"
34
+ "@threlte/core": "8.0.0-next.21"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@dimforge/rapier3d-compat": ">=0.14",