From 06c3d904928b70e9542a3fc67d1a79a654e213a6 Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Fri, 21 Jun 2024 17:17:28 +0200 Subject: [PATCH] Update to Rapier 0.20 (#281) --- .vscode/settings.json | 4 + CHANGELOG.md | 4 + Cargo.lock | 30 +++- rapier2d/Cargo.toml | 7 +- rapier2d/build_typescript.sh | 2 + rapier2d/package-lock.json | 203 +++++++++++++++++++++- rapier2d/package.json | 7 +- rapier3d/Cargo.toml | 7 +- rapier3d/build_typescript.sh | 2 + rapier3d/package-lock.json | 203 +++++++++++++++++++++- rapier3d/package.json | 7 +- src.ts/dynamics/impulse_joint.ts | 10 +- src.ts/dynamics/integration_parameters.ts | 8 +- src.ts/dynamics/multibody_joint.ts | 2 +- src.ts/pipeline/query_pipeline.ts | 5 +- src.ts/pipeline/world.ts | 4 +- src/control/character_controller.rs | 22 ++- src/dynamics/integration_parameters.rs | 8 +- src/dynamics/joint.rs | 38 ++-- src/pipeline/query_pipeline.rs | 4 +- testbed2d/package-lock.json | 11 +- testbed3d/package-lock.json | 5 +- 22 files changed, 524 insertions(+), 69 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..60770265 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "javascript.format.enable": false, + "typescript.format.enable": false +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 844452ef..7120c013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### Unreleased + +- Update to rapier 0.20 ([#281](https://github.com/dimforge/rapier.js/pull/281)), see [rapier's changelog](https://github.com/dimforge/rapier/blob/master/CHANGELOG.md#v0200-9-june-2024) for more context. + ### 0.13.1 (2024-05-08) #### Fixed diff --git a/Cargo.lock b/Cargo.lock index a0e2a523..7264a90d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -514,9 +514,9 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] name = "rapier2d" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535b70552dc42dab9054d3d5a80e8430ced502e20acb0bf6118c344ff356f62a" +checksum = "b406e79fca8206343d4e362d5bd6b7eb4c366e34c0ffcc3eb6469aabc3705503" dependencies = [ "approx", "arrayvec", @@ -534,13 +534,14 @@ dependencies = [ "rustc-hash", "serde", "simba", + "thiserror", ] [[package]] name = "rapier3d" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ce0398df94b282787ddd36a3a9c7e1ca19fa1e79722a2debc49c9f7c06e889" +checksum = "b05f54a624b439d53ef9126cc4b6832cc5a5e33c137a493e15c197885c00d741" dependencies = [ "approx", "arrayvec", @@ -558,6 +559,7 @@ dependencies = [ "rustc-hash", "serde", "simba", + "thiserror", ] [[package]] @@ -702,6 +704,26 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "thiserror" +version = "1.0.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e3de26b0965292219b4287ff031fcba86837900fe9cd2b34ea8ad893c0953d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "268026685b2be38d7103e9e507c938a1fcb3d7e6eb15e87870b617bf37b6d581" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "toml" version = "0.5.11" diff --git a/rapier2d/Cargo.toml b/rapier2d/Cargo.toml index f8cbce55..7678346b 100644 --- a/rapier2d/Cargo.toml +++ b/rapier2d/Cargo.toml @@ -23,7 +23,12 @@ required-features = ["dim2"] [dependencies] -rapier2d = { version = "0.19.0", features = ["wasm-bindgen", "serde-serialize", "enhanced-determinism", "debug-render"] } +rapier2d = { version = "0.20.0", features = [ + "wasm-bindgen", + "serde-serialize", + "enhanced-determinism", + "debug-render", +] } ref-cast = "1" wasm-bindgen = "0.2.90" js-sys = "0.3" diff --git a/rapier2d/build_typescript.sh b/rapier2d/build_typescript.sh index 6b955be2..622ab063 100755 --- a/rapier2d/build_typescript.sh +++ b/rapier2d/build_typescript.sh @@ -1,3 +1,5 @@ +#! /bin/sh + mkdir -p ./pkg/src cp -r ../src.ts/* pkg/src/. rm -f ./pkg/raw.ts diff --git a/rapier2d/package-lock.json b/rapier2d/package-lock.json index 96682827..bd032d8a 100644 --- a/rapier2d/package-lock.json +++ b/rapier2d/package-lock.json @@ -9,9 +9,16 @@ "wasm-pack": "^0.12.1" }, "devDependencies": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13" } }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", + "dev": true + }, "node_modules/axios": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", @@ -139,6 +146,30 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -222,6 +253,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/shiki": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "dev": true, + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "node_modules/tar": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", @@ -238,6 +281,77 @@ "node": ">=10" } }, + "node_modules/typedoc": { + "version": "0.25.13", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.3", + "shiki": "^0.14.7" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, "node_modules/wasm-pack": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.12.1.tgz", @@ -262,6 +376,12 @@ } }, "dependencies": { + "ansi-sequence-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", + "dev": true + }, "axios": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", @@ -359,6 +479,24 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -417,6 +555,18 @@ "glob": "^7.1.3" } }, + "shiki": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "dev": true, + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "tar": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", @@ -430,6 +580,57 @@ "yallist": "^4.0.0" } }, + "typedoc": { + "version": "0.25.13", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", + "dev": true, + "requires": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.3", + "shiki": "^0.14.7" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "peer": true + }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, "wasm-pack": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.12.1.tgz", diff --git a/rapier2d/package.json b/rapier2d/package.json index f8b7e9eb..5b60e8f7 100644 --- a/rapier2d/package.json +++ b/rapier2d/package.json @@ -7,12 +7,13 @@ "scripts": { "build": "npm run clean && npm run build:wasm && npm run build:ts && npm run build:doc", "build:doc": "typedoc --tsconfig tsconfig_typedoc.json", - "build:wasm": "./build_rust.sh", - "build:ts": "./build_typescript.sh", + "build:wasm": "sh ./build_rust.sh", + "build:ts": "sh ./build_typescript.sh", "clean": "rimraf pkg" }, "devDependencies": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13" }, "dependencies": { "wasm-pack": "^0.12.1" diff --git a/rapier3d/Cargo.toml b/rapier3d/Cargo.toml index 3dff1f4d..056f1d94 100644 --- a/rapier3d/Cargo.toml +++ b/rapier3d/Cargo.toml @@ -23,7 +23,12 @@ required-features = ["dim3"] [dependencies] -rapier3d = { version = "0.19.0", features = ["wasm-bindgen", "serde-serialize", "enhanced-determinism", "debug-render"] } +rapier3d = { version = "0.20.0", features = [ + "wasm-bindgen", + "serde-serialize", + "enhanced-determinism", + "debug-render", +] } ref-cast = "1" wasm-bindgen = "^0.2.90" js-sys = "0.3" diff --git a/rapier3d/build_typescript.sh b/rapier3d/build_typescript.sh index 25e06159..89d0da22 100755 --- a/rapier3d/build_typescript.sh +++ b/rapier3d/build_typescript.sh @@ -1,3 +1,5 @@ +#! /bin/sh + mkdir -p ./pkg/src cp -r ../src.ts/* pkg/src/. rm -f ./pkg/raw.ts diff --git a/rapier3d/package-lock.json b/rapier3d/package-lock.json index 66ccbf0f..e154288b 100644 --- a/rapier3d/package-lock.json +++ b/rapier3d/package-lock.json @@ -9,9 +9,16 @@ "wasm-pack": "^0.12.1" }, "devDependencies": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13" } }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", + "dev": true + }, "node_modules/axios": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", @@ -139,6 +146,30 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -222,6 +253,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/shiki": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "dev": true, + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "node_modules/tar": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", @@ -238,6 +281,77 @@ "node": ">=10" } }, + "node_modules/typedoc": { + "version": "0.25.13", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.3", + "shiki": "^0.14.7" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, "node_modules/wasm-pack": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.12.1.tgz", @@ -262,6 +376,12 @@ } }, "dependencies": { + "ansi-sequence-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", + "dev": true + }, "axios": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", @@ -359,6 +479,24 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -417,6 +555,18 @@ "glob": "^7.1.3" } }, + "shiki": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "dev": true, + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "tar": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", @@ -430,6 +580,57 @@ "yallist": "^4.0.0" } }, + "typedoc": { + "version": "0.25.13", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", + "dev": true, + "requires": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.3", + "shiki": "^0.14.7" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "peer": true + }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, "wasm-pack": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.12.1.tgz", diff --git a/rapier3d/package.json b/rapier3d/package.json index 132a8c86..6a2e0b07 100644 --- a/rapier3d/package.json +++ b/rapier3d/package.json @@ -7,12 +7,13 @@ "scripts": { "build": "npm run clean && npm run build:wasm && npm run build:ts && npm run build:doc", "build:doc": "typedoc --tsconfig tsconfig_typedoc.json", - "build:wasm": "./build_rust.sh", - "build:ts": "./build_typescript.sh", + "build:wasm": "sh ./build_rust.sh", + "build:ts": "sh ./build_typescript.sh", "clean": "rimraf pkg" }, "devDependencies": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13" }, "dependencies": { "wasm-pack": "^0.12.1" diff --git a/src.ts/dynamics/impulse_joint.ts b/src.ts/dynamics/impulse_joint.ts index e343657a..0c637ddf 100644 --- a/src.ts/dynamics/impulse_joint.ts +++ b/src.ts/dynamics/impulse_joint.ts @@ -49,7 +49,7 @@ export enum MotorModel { /** * An enum representing the possible joint axes of a generic joint. * They can be ORed together, like: - * JointAxesMask.X || JointAxesMask.Y + * JointAxesMask.LinX || JointAxesMask.LinY * to get a joint that is only free in the X and Y translational (positional) axes. * * Possible free axes are: @@ -62,9 +62,9 @@ export enum MotorModel { * - `AngZ`: Z angular rotation axis */ export enum JointAxesMask { - X = 1 << 0, - Y = 1 << 1, - Z = 1 << 2, + LinX = 1 << 0, + LinY = 1 << 1, + LinZ = 1 << 2, AngX = 1 << 3, AngY = 1 << 4, AngZ = 1 << 5, @@ -320,7 +320,7 @@ export class SpringImpulseJoint extends ImpulseJoint {} export class PrismaticImpulseJoint extends UnitImpulseJoint { public rawAxis(): RawJointAxis { - return RawJointAxis.X; + return RawJointAxis.LinX; } } diff --git a/src.ts/dynamics/integration_parameters.ts b/src.ts/dynamics/integration_parameters.ts index 014ef856..806d257d 100644 --- a/src.ts/dynamics/integration_parameters.ts +++ b/src.ts/dynamics/integration_parameters.ts @@ -28,8 +28,8 @@ export class IntegrationParameters { * The Error Reduction Parameter in `[0, 1]` is the proportion of * the positional error to be corrected at each time step (default: `0.2`). */ - get erp(): number { - return this.raw.erp; + get contact_erp(): number { + return this.raw.contact_erp; } get lengthUnit(): number { @@ -93,8 +93,8 @@ export class IntegrationParameters { this.raw.dt = value; } - set erp(value: number) { - this.raw.erp = value; + set contact_natural_frequency(value: number) { + this.raw.contact_natural_frequency = value; } set lengthUnit(value: number) { diff --git a/src.ts/dynamics/multibody_joint.ts b/src.ts/dynamics/multibody_joint.ts index 718339a9..5608aec7 100644 --- a/src.ts/dynamics/multibody_joint.ts +++ b/src.ts/dynamics/multibody_joint.ts @@ -186,7 +186,7 @@ export class FixedMultibodyJoint extends MultibodyJoint {} export class PrismaticMultibodyJoint extends UnitMultibodyJoint { public rawAxis(): RawJointAxis { - return RawJointAxis.X; + return RawJointAxis.LinX; } } diff --git a/src.ts/pipeline/query_pipeline.ts b/src.ts/pipeline/query_pipeline.ts index 63dc842c..8b68db6b 100644 --- a/src.ts/pipeline/query_pipeline.ts +++ b/src.ts/pipeline/query_pipeline.ts @@ -81,11 +81,10 @@ export class QueryPipeline { /** * Updates the acceleration structure of the query pipeline. - * @param bodies - The set of rigid-bodies taking part in this pipeline. * @param colliders - The set of colliders taking part in this pipeline. */ - public update(bodies: RigidBodySet, colliders: ColliderSet) { - this.raw.update(bodies.raw, colliders.raw); + public update(colliders: ColliderSet) { + this.raw.update(colliders.raw); } /** diff --git a/src.ts/pipeline/world.ts b/src.ts/pipeline/world.ts index b0fe42d4..27bbe301 100644 --- a/src.ts/pipeline/world.ts +++ b/src.ts/pipeline/world.ts @@ -269,7 +269,7 @@ export class World { eventQueue, hooks, ); - this.queryPipeline.update(this.bodies, this.colliders); + this.queryPipeline.update(this.colliders); } /** @@ -292,7 +292,7 @@ export class World { */ public updateSceneQueries() { this.propagateModifiedBodyPositionsToColliders(); - this.queryPipeline.update(this.bodies, this.colliders); + this.queryPipeline.update(this.colliders); } /** diff --git a/src/control/character_controller.rs b/src/control/character_controller.rs index 8bb9aa25..ebf4b8f5 100644 --- a/src/control/character_controller.rs +++ b/src/control/character_controller.rs @@ -190,18 +190,16 @@ impl RawKinematicCharacterController { .map(|b| b.mass()) }) .unwrap_or(0.0); - for collision in &self.events { - self.controller.solve_character_collision_impulses( - dt, - &mut bodies.0, - &colliders.0, - &queries.0, - collider.shape(), - character_mass, - collision, - query_filter, - ); - } + self.controller.solve_character_collision_impulses( + dt, + &mut bodies.0, + &colliders.0, + &queries.0, + collider.shape(), + character_mass, + self.events.iter().copied(), + query_filter, + ); } }); } else { diff --git a/src/dynamics/integration_parameters.rs b/src/dynamics/integration_parameters.rs index 0defb7f1..3416c4d5 100644 --- a/src/dynamics/integration_parameters.rs +++ b/src/dynamics/integration_parameters.rs @@ -18,8 +18,8 @@ impl RawIntegrationParameters { } #[wasm_bindgen(getter)] - pub fn erp(&self) -> f32 { - self.0.erp + pub fn contact_erp(&self) -> f32 { + self.0.contact_erp() } #[wasm_bindgen(getter)] @@ -68,8 +68,8 @@ impl RawIntegrationParameters { } #[wasm_bindgen(setter)] - pub fn set_erp(&mut self, value: f32) { - self.0.erp = value + pub fn set_contact_natural_frequency(&mut self, value: f32) { + self.0.contact_natural_frequency = value } #[wasm_bindgen(setter)] diff --git a/src/dynamics/joint.rs b/src/dynamics/joint.rs index bf38bbf4..74ab2b3d 100644 --- a/src/dynamics/joint.rs +++ b/src/dynamics/joint.rs @@ -36,9 +36,9 @@ pub enum RawJointType { #[cfg(feature = "dim2")] impl From for RawJointType { fn from(ty: JointAxesMask) -> RawJointType { - let rev_axes = JointAxesMask::X | JointAxesMask::Y; - let pri_axes = JointAxesMask::Y | JointAxesMask::ANG_X; - let fix_axes = JointAxesMask::X | JointAxesMask::Y | JointAxesMask::ANG_X; + let rev_axes = JointAxesMask::LIN_X | JointAxesMask::LIN_Y; + let pri_axes = JointAxesMask::LIN_Y | JointAxesMask::ANG_X; + let fix_axes = JointAxesMask::LIN_X | JointAxesMask::LIN_Y | JointAxesMask::ANG_X; if ty == rev_axes { RawJointType::Revolute @@ -56,20 +56,20 @@ impl From for RawJointType { #[cfg(feature = "dim3")] impl From for RawJointType { fn from(ty: JointAxesMask) -> RawJointType { - let rev_axes = JointAxesMask::X - | JointAxesMask::Y - | JointAxesMask::Z + let rev_axes = JointAxesMask::LIN_X + | JointAxesMask::LIN_Y + | JointAxesMask::LIN_Z | JointAxesMask::ANG_Y | JointAxesMask::ANG_Z; - let pri_axes = JointAxesMask::Y - | JointAxesMask::Z + let pri_axes = JointAxesMask::LIN_Y + | JointAxesMask::LIN_Z | JointAxesMask::ANG_X | JointAxesMask::ANG_Y | JointAxesMask::ANG_Z; let sph_axes = JointAxesMask::ANG_X | JointAxesMask::ANG_Y | JointAxesMask::ANG_Z; - let fix_axes = JointAxesMask::X - | JointAxesMask::Y - | JointAxesMask::Z + let fix_axes = JointAxesMask::LIN_X + | JointAxesMask::LIN_Y + | JointAxesMask::LIN_Z | JointAxesMask::ANG_X | JointAxesMask::ANG_Y | JointAxesMask::ANG_Z; @@ -107,8 +107,8 @@ impl From for MotorModel { #[wasm_bindgen] #[derive(Copy, Clone)] pub enum RawJointAxis { - X, - Y, + LinX, + LinY, AngX, } @@ -116,9 +116,9 @@ pub enum RawJointAxis { #[wasm_bindgen] #[derive(Copy, Clone)] pub enum RawJointAxis { - X, - Y, - Z, + LinX, + LinY, + LinZ, AngX, AngY, AngZ, @@ -127,10 +127,10 @@ pub enum RawJointAxis { impl From for JointAxis { fn from(axis: RawJointAxis) -> JointAxis { match axis { - RawJointAxis::X => JointAxis::X, - RawJointAxis::Y => JointAxis::Y, + RawJointAxis::LinX => JointAxis::LinX, + RawJointAxis::LinY => JointAxis::LinY, #[cfg(feature = "dim3")] - RawJointAxis::Z => JointAxis::Z, + RawJointAxis::LinZ => JointAxis::LinZ, RawJointAxis::AngX => JointAxis::AngX, #[cfg(feature = "dim3")] RawJointAxis::AngY => JointAxis::AngY, diff --git a/src/pipeline/query_pipeline.rs b/src/pipeline/query_pipeline.rs index ab0386f8..56c77400 100644 --- a/src/pipeline/query_pipeline.rs +++ b/src/pipeline/query_pipeline.rs @@ -22,8 +22,8 @@ impl RawQueryPipeline { RawQueryPipeline(QueryPipeline::new()) } - pub fn update(&mut self, bodies: &RawRigidBodySet, colliders: &RawColliderSet) { - self.0.update(&bodies.0, &colliders.0); + pub fn update(&mut self, colliders: &RawColliderSet) { + self.0.update(&colliders.0); } pub fn castRay( diff --git a/testbed2d/package-lock.json b/testbed2d/package-lock.json index 839b31aa..822d19d8 100644 --- a/testbed2d/package-lock.json +++ b/testbed2d/package-lock.json @@ -31,8 +31,13 @@ } }, "../rapier2d": { + "name": "@dimforge/rapier2d", + "dependencies": { + "wasm-pack": "^0.12.1" + }, "devDependencies": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13" } }, "node_modules/@dimforge/rapier2d": { @@ -4290,7 +4295,9 @@ "@dimforge/rapier2d": { "version": "file:../rapier2d", "requires": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13", + "wasm-pack": "^0.12.1" } }, "@discoveryjs/json-ext": { diff --git a/testbed3d/package-lock.json b/testbed3d/package-lock.json index f110096f..7edcd1e2 100644 --- a/testbed3d/package-lock.json +++ b/testbed3d/package-lock.json @@ -31,11 +31,13 @@ } }, "../rapier3d": { + "name": "@dimforge/rapier3d", "dependencies": { "wasm-pack": "^0.12.1" }, "devDependencies": { - "rimraf": "^3.0.2" + "rimraf": "^3.0.2", + "typedoc": "^0.25.13" } }, "node_modules/@dimforge/rapier3d": { @@ -4045,6 +4047,7 @@ "version": "file:../rapier3d", "requires": { "rimraf": "^3.0.2", + "typedoc": "^0.25.13", "wasm-pack": "^0.12.1" } },