@plasius/gpu-physics 0.1.0 → 0.1.1
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/CHANGELOG.md +44 -0
- package/README.md +9 -1
- package/dist/index.cjs +35 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +35 -23
- package/dist/index.js.map +1 -1
- package/package.json +8 -6
- package/src/index.js +37 -23
package/CHANGELOG.md
CHANGED
|
@@ -5,3 +5,47 @@
|
|
|
5
5
|
- Initial public release of `@plasius/gpu-physics`.
|
|
6
6
|
- Added `PhysicsRoot`, `StaticRigidBody`, `DynamicRigidBody`, and `KinematicRigidBody` bridge components.
|
|
7
7
|
- Added baseline tests and migration documentation.
|
|
8
|
+
|
|
9
|
+
## [Unreleased]
|
|
10
|
+
|
|
11
|
+
- **Added**
|
|
12
|
+
- (placeholder)
|
|
13
|
+
|
|
14
|
+
- **Changed**
|
|
15
|
+
- (placeholder)
|
|
16
|
+
|
|
17
|
+
- **Fixed**
|
|
18
|
+
- (placeholder)
|
|
19
|
+
|
|
20
|
+
- **Security**
|
|
21
|
+
- (placeholder)
|
|
22
|
+
|
|
23
|
+
## [0.1.1] - 2026-02-28
|
|
24
|
+
|
|
25
|
+
- **Added**
|
|
26
|
+
- (placeholder)
|
|
27
|
+
|
|
28
|
+
- **Changed**
|
|
29
|
+
- Removed direct `@react-three/rapier` bridge dependency and switched to framework-neutral physics boundary components.
|
|
30
|
+
- Removed legacy Three.js stack dev dependencies from the package.
|
|
31
|
+
|
|
32
|
+
- **Fixed**
|
|
33
|
+
- (placeholder)
|
|
34
|
+
|
|
35
|
+
- **Security**
|
|
36
|
+
- (placeholder)
|
|
37
|
+
|
|
38
|
+
## [0.1.0] - 2026-02-11
|
|
39
|
+
|
|
40
|
+
- **Added**
|
|
41
|
+
- Initial release.
|
|
42
|
+
|
|
43
|
+
- **Changed**
|
|
44
|
+
- (placeholder)
|
|
45
|
+
|
|
46
|
+
- **Fixed**
|
|
47
|
+
- (placeholder)
|
|
48
|
+
|
|
49
|
+
- **Security**
|
|
50
|
+
- (placeholder)
|
|
51
|
+
[0.1.1]: https://github.com/Plasius-LTD/gpu-physics/releases/tag/v0.1.1
|
package/README.md
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
# @plasius/gpu-physics
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@plasius/gpu-physics)
|
|
4
|
+
[](https://github.com/Plasius-LTD/gpu-physics/actions/workflows/ci.yml)
|
|
5
|
+
[](https://codecov.io/gh/Plasius-LTD/gpu-physics)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](./CODE_OF_CONDUCT.md)
|
|
8
|
+
[](./SECURITY.md)
|
|
9
|
+
[](./CHANGELOG.md)
|
|
10
|
+
|
|
3
11
|
Framework-ready physics bridge package for Plasius GPU migration paths.
|
|
4
12
|
|
|
5
13
|
## Why
|
|
6
14
|
|
|
7
|
-
`@plasius/gpu-physics` provides a stable physics API surface while renderer code migrates away from direct legacy integration points. It
|
|
15
|
+
`@plasius/gpu-physics` provides a stable physics API surface while renderer code migrates away from direct legacy integration points. It is framework-neutral and keeps call sites isolated from any specific scene runtime.
|
|
8
16
|
|
|
9
17
|
## Install
|
|
10
18
|
|
package/dist/index.cjs
CHANGED
|
@@ -37,51 +37,66 @@ __export(index_exports, {
|
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(index_exports);
|
|
39
39
|
var import_react = __toESM(require("react"), 1);
|
|
40
|
-
var import_rapier = require("@react-three/rapier");
|
|
41
40
|
var DEFAULT_GRAVITY = Object.freeze([0, -9.81, 0]);
|
|
41
|
+
var PhysicsContext = import_react.default.createContext({
|
|
42
|
+
gravity: DEFAULT_GRAVITY,
|
|
43
|
+
options: {}
|
|
44
|
+
});
|
|
45
|
+
var RigidBodyContext = import_react.default.createContext({
|
|
46
|
+
type: "fixed",
|
|
47
|
+
colliders: "trimesh",
|
|
48
|
+
options: {}
|
|
49
|
+
});
|
|
42
50
|
function PhysicsRoot({ gravity = DEFAULT_GRAVITY, children, ...props }) {
|
|
43
|
-
|
|
51
|
+
const value = import_react.default.useMemo(
|
|
52
|
+
() => ({
|
|
53
|
+
gravity,
|
|
54
|
+
options: props
|
|
55
|
+
}),
|
|
56
|
+
[gravity, props]
|
|
57
|
+
);
|
|
58
|
+
return import_react.default.createElement(PhysicsContext.Provider, { value }, children);
|
|
44
59
|
}
|
|
45
60
|
function StaticRigidBody({
|
|
46
61
|
colliders = "trimesh",
|
|
47
62
|
children,
|
|
48
63
|
...props
|
|
49
64
|
}) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{
|
|
65
|
+
const value = import_react.default.useMemo(
|
|
66
|
+
() => ({
|
|
53
67
|
type: "fixed",
|
|
54
68
|
colliders,
|
|
55
|
-
|
|
56
|
-
},
|
|
57
|
-
|
|
69
|
+
options: props
|
|
70
|
+
}),
|
|
71
|
+
[colliders, props]
|
|
58
72
|
);
|
|
73
|
+
return import_react.default.createElement(RigidBodyContext.Provider, { value }, children);
|
|
59
74
|
}
|
|
60
75
|
function DynamicRigidBody({ colliders = "hull", children, ...props }) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{
|
|
76
|
+
const value = import_react.default.useMemo(
|
|
77
|
+
() => ({
|
|
64
78
|
type: "dynamic",
|
|
65
79
|
colliders,
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
|
|
80
|
+
options: props
|
|
81
|
+
}),
|
|
82
|
+
[colliders, props]
|
|
69
83
|
);
|
|
84
|
+
return import_react.default.createElement(RigidBodyContext.Provider, { value }, children);
|
|
70
85
|
}
|
|
71
86
|
function KinematicRigidBody({
|
|
72
87
|
colliders = "hull",
|
|
73
88
|
children,
|
|
74
89
|
...props
|
|
75
90
|
}) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
{
|
|
91
|
+
const value = import_react.default.useMemo(
|
|
92
|
+
() => ({
|
|
79
93
|
type: "kinematicPosition",
|
|
80
94
|
colliders,
|
|
81
|
-
|
|
82
|
-
},
|
|
83
|
-
|
|
95
|
+
options: props
|
|
96
|
+
}),
|
|
97
|
+
[colliders, props]
|
|
84
98
|
);
|
|
99
|
+
return import_react.default.createElement(RigidBodyContext.Provider, { value }, children);
|
|
85
100
|
}
|
|
86
101
|
// Annotate the CommonJS export names for ESM import in node:
|
|
87
102
|
0 && (module.exports = {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"sourcesContent":["import React from \"react\";\
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"sourcesContent":["import React from \"react\";\n\nexport const DEFAULT_GRAVITY = Object.freeze([0, -9.81, 0]);\n\nconst PhysicsContext = React.createContext({\n gravity: DEFAULT_GRAVITY,\n options: {},\n});\n\nconst RigidBodyContext = React.createContext({\n type: \"fixed\",\n colliders: \"trimesh\",\n options: {},\n});\n\nexport function PhysicsRoot({ gravity = DEFAULT_GRAVITY, children, ...props }) {\n const value = React.useMemo(\n () => ({\n gravity,\n options: props,\n }),\n [gravity, props]\n );\n return React.createElement(PhysicsContext.Provider, { value }, children);\n}\n\nexport function StaticRigidBody({\n colliders = \"trimesh\",\n children,\n ...props\n}) {\n const value = React.useMemo(\n () => ({\n type: \"fixed\",\n colliders,\n options: props,\n }),\n [colliders, props]\n );\n return React.createElement(RigidBodyContext.Provider, { value }, children);\n}\n\nexport function DynamicRigidBody({ colliders = \"hull\", children, ...props }) {\n const value = React.useMemo(\n () => ({\n type: \"dynamic\",\n colliders,\n options: props,\n }),\n [colliders, props]\n );\n return React.createElement(RigidBodyContext.Provider, { value }, children);\n}\n\nexport function KinematicRigidBody({\n colliders = \"hull\",\n children,\n ...props\n}) {\n const value = React.useMemo(\n () => ({\n type: \"kinematicPosition\",\n colliders,\n options: props,\n }),\n [colliders, props]\n );\n return React.createElement(RigidBodyContext.Provider, { value }, children);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAEX,IAAM,kBAAkB,OAAO,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAE1D,IAAM,iBAAiB,aAAAA,QAAM,cAAc;AAAA,EACzC,SAAS;AAAA,EACT,SAAS,CAAC;AACZ,CAAC;AAED,IAAM,mBAAmB,aAAAA,QAAM,cAAc;AAAA,EAC3C,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS,CAAC;AACZ,CAAC;AAEM,SAAS,YAAY,EAAE,UAAU,iBAAiB,UAAU,GAAG,MAAM,GAAG;AAC7E,QAAM,QAAQ,aAAAA,QAAM;AAAA,IAClB,OAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,SAAS,KAAK;AAAA,EACjB;AACA,SAAO,aAAAA,QAAM,cAAc,eAAe,UAAU,EAAE,MAAM,GAAG,QAAQ;AACzE;AAEO,SAAS,gBAAgB;AAAA,EAC9B,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,QAAQ,aAAAA,QAAM;AAAA,IAClB,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,WAAW,KAAK;AAAA,EACnB;AACA,SAAO,aAAAA,QAAM,cAAc,iBAAiB,UAAU,EAAE,MAAM,GAAG,QAAQ;AAC3E;AAEO,SAAS,iBAAiB,EAAE,YAAY,QAAQ,UAAU,GAAG,MAAM,GAAG;AAC3E,QAAM,QAAQ,aAAAA,QAAM;AAAA,IAClB,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,WAAW,KAAK;AAAA,EACnB;AACA,SAAO,aAAAA,QAAM,cAAc,iBAAiB,UAAU,EAAE,MAAM,GAAG,QAAQ;AAC3E;AAEO,SAAS,mBAAmB;AAAA,EACjC,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,QAAQ,aAAAA,QAAM;AAAA,IAClB,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,WAAW,KAAK;AAAA,EACnB;AACA,SAAO,aAAAA,QAAM,cAAc,iBAAiB,UAAU,EAAE,MAAM,GAAG,QAAQ;AAC3E;","names":["React"]}
|
package/dist/index.js
CHANGED
|
@@ -1,53 +1,65 @@
|
|
|
1
1
|
// src/index.js
|
|
2
2
|
import React from "react";
|
|
3
|
-
import {
|
|
4
|
-
Physics as RapierPhysics,
|
|
5
|
-
RigidBody as RapierRigidBody
|
|
6
|
-
} from "@react-three/rapier";
|
|
7
3
|
var DEFAULT_GRAVITY = Object.freeze([0, -9.81, 0]);
|
|
4
|
+
var PhysicsContext = React.createContext({
|
|
5
|
+
gravity: DEFAULT_GRAVITY,
|
|
6
|
+
options: {}
|
|
7
|
+
});
|
|
8
|
+
var RigidBodyContext = React.createContext({
|
|
9
|
+
type: "fixed",
|
|
10
|
+
colliders: "trimesh",
|
|
11
|
+
options: {}
|
|
12
|
+
});
|
|
8
13
|
function PhysicsRoot({ gravity = DEFAULT_GRAVITY, children, ...props }) {
|
|
9
|
-
|
|
14
|
+
const value = React.useMemo(
|
|
15
|
+
() => ({
|
|
16
|
+
gravity,
|
|
17
|
+
options: props
|
|
18
|
+
}),
|
|
19
|
+
[gravity, props]
|
|
20
|
+
);
|
|
21
|
+
return React.createElement(PhysicsContext.Provider, { value }, children);
|
|
10
22
|
}
|
|
11
23
|
function StaticRigidBody({
|
|
12
24
|
colliders = "trimesh",
|
|
13
25
|
children,
|
|
14
26
|
...props
|
|
15
27
|
}) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
{
|
|
28
|
+
const value = React.useMemo(
|
|
29
|
+
() => ({
|
|
19
30
|
type: "fixed",
|
|
20
31
|
colliders,
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
|
|
32
|
+
options: props
|
|
33
|
+
}),
|
|
34
|
+
[colliders, props]
|
|
24
35
|
);
|
|
36
|
+
return React.createElement(RigidBodyContext.Provider, { value }, children);
|
|
25
37
|
}
|
|
26
38
|
function DynamicRigidBody({ colliders = "hull", children, ...props }) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{
|
|
39
|
+
const value = React.useMemo(
|
|
40
|
+
() => ({
|
|
30
41
|
type: "dynamic",
|
|
31
42
|
colliders,
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
|
|
43
|
+
options: props
|
|
44
|
+
}),
|
|
45
|
+
[colliders, props]
|
|
35
46
|
);
|
|
47
|
+
return React.createElement(RigidBodyContext.Provider, { value }, children);
|
|
36
48
|
}
|
|
37
49
|
function KinematicRigidBody({
|
|
38
50
|
colliders = "hull",
|
|
39
51
|
children,
|
|
40
52
|
...props
|
|
41
53
|
}) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{
|
|
54
|
+
const value = React.useMemo(
|
|
55
|
+
() => ({
|
|
45
56
|
type: "kinematicPosition",
|
|
46
57
|
colliders,
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
|
|
58
|
+
options: props
|
|
59
|
+
}),
|
|
60
|
+
[colliders, props]
|
|
50
61
|
);
|
|
62
|
+
return React.createElement(RigidBodyContext.Provider, { value }, children);
|
|
51
63
|
}
|
|
52
64
|
export {
|
|
53
65
|
DEFAULT_GRAVITY,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"sourcesContent":["import React from \"react\";\
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"sourcesContent":["import React from \"react\";\n\nexport const DEFAULT_GRAVITY = Object.freeze([0, -9.81, 0]);\n\nconst PhysicsContext = React.createContext({\n gravity: DEFAULT_GRAVITY,\n options: {},\n});\n\nconst RigidBodyContext = React.createContext({\n type: \"fixed\",\n colliders: \"trimesh\",\n options: {},\n});\n\nexport function PhysicsRoot({ gravity = DEFAULT_GRAVITY, children, ...props }) {\n const value = React.useMemo(\n () => ({\n gravity,\n options: props,\n }),\n [gravity, props]\n );\n return React.createElement(PhysicsContext.Provider, { value }, children);\n}\n\nexport function StaticRigidBody({\n colliders = \"trimesh\",\n children,\n ...props\n}) {\n const value = React.useMemo(\n () => ({\n type: \"fixed\",\n colliders,\n options: props,\n }),\n [colliders, props]\n );\n return React.createElement(RigidBodyContext.Provider, { value }, children);\n}\n\nexport function DynamicRigidBody({ colliders = \"hull\", children, ...props }) {\n const value = React.useMemo(\n () => ({\n type: \"dynamic\",\n colliders,\n options: props,\n }),\n [colliders, props]\n );\n return React.createElement(RigidBodyContext.Provider, { value }, children);\n}\n\nexport function KinematicRigidBody({\n colliders = \"hull\",\n children,\n ...props\n}) {\n const value = React.useMemo(\n () => ({\n type: \"kinematicPosition\",\n colliders,\n options: props,\n }),\n [colliders, props]\n );\n return React.createElement(RigidBodyContext.Provider, { value }, children);\n}\n"],"mappings":";AAAA,OAAO,WAAW;AAEX,IAAM,kBAAkB,OAAO,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAE1D,IAAM,iBAAiB,MAAM,cAAc;AAAA,EACzC,SAAS;AAAA,EACT,SAAS,CAAC;AACZ,CAAC;AAED,IAAM,mBAAmB,MAAM,cAAc;AAAA,EAC3C,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS,CAAC;AACZ,CAAC;AAEM,SAAS,YAAY,EAAE,UAAU,iBAAiB,UAAU,GAAG,MAAM,GAAG;AAC7E,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,SAAS,KAAK;AAAA,EACjB;AACA,SAAO,MAAM,cAAc,eAAe,UAAU,EAAE,MAAM,GAAG,QAAQ;AACzE;AAEO,SAAS,gBAAgB;AAAA,EAC9B,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,WAAW,KAAK;AAAA,EACnB;AACA,SAAO,MAAM,cAAc,iBAAiB,UAAU,EAAE,MAAM,GAAG,QAAQ;AAC3E;AAEO,SAAS,iBAAiB,EAAE,YAAY,QAAQ,UAAU,GAAG,MAAM,GAAG;AAC3E,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,WAAW,KAAK;AAAA,EACnB;AACA,SAAO,MAAM,cAAc,iBAAiB,UAAU,EAAE,MAAM,GAAG,QAAQ;AAC3E;AAEO,SAAS,mBAAmB;AAAA,EACjC,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,CAAC,WAAW,KAAK;AAAA,EACnB;AACA,SAAO,MAAM,cAAc,iBAAiB,UAAU,EAAE,MAAM,GAAG,QAAQ;AAC3E;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasius/gpu-physics",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Physics integration bridge package for Plasius GPU renderer migration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
"demo": "python3 -m http.server --directory ..",
|
|
30
30
|
"test": "npm run test:unit",
|
|
31
31
|
"test:unit": "node --test",
|
|
32
|
-
"test:coverage": "c8 --reporter=lcov --reporter=text node --test"
|
|
32
|
+
"test:coverage": "c8 --reporter=lcov --reporter=text node --test",
|
|
33
|
+
"pack:check": "node scripts/verify-public-package.cjs",
|
|
34
|
+
"prepublishOnly": "npm run build && npm run pack:check"
|
|
33
35
|
},
|
|
34
36
|
"keywords": [
|
|
35
37
|
"physics",
|
|
@@ -43,9 +45,6 @@
|
|
|
43
45
|
"peerDependencies": {
|
|
44
46
|
"react": "^19.1.0"
|
|
45
47
|
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"@react-three/rapier": "^2.1.0"
|
|
48
|
-
},
|
|
49
48
|
"devDependencies": {
|
|
50
49
|
"c8": "^10.1.3",
|
|
51
50
|
"react": "^19.1.0",
|
|
@@ -72,5 +71,8 @@
|
|
|
72
71
|
"type": "github",
|
|
73
72
|
"url": "https://github.com/sponsors/Plasius-LTD"
|
|
74
73
|
}
|
|
75
|
-
]
|
|
74
|
+
],
|
|
75
|
+
"overrides": {
|
|
76
|
+
"minimatch": "^10.2.1"
|
|
77
|
+
}
|
|
76
78
|
}
|
package/src/index.js
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
Physics as RapierPhysics,
|
|
4
|
-
RigidBody as RapierRigidBody,
|
|
5
|
-
} from "@react-three/rapier";
|
|
6
2
|
|
|
7
3
|
export const DEFAULT_GRAVITY = Object.freeze([0, -9.81, 0]);
|
|
8
4
|
|
|
5
|
+
const PhysicsContext = React.createContext({
|
|
6
|
+
gravity: DEFAULT_GRAVITY,
|
|
7
|
+
options: {},
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const RigidBodyContext = React.createContext({
|
|
11
|
+
type: "fixed",
|
|
12
|
+
colliders: "trimesh",
|
|
13
|
+
options: {},
|
|
14
|
+
});
|
|
15
|
+
|
|
9
16
|
export function PhysicsRoot({ gravity = DEFAULT_GRAVITY, children, ...props }) {
|
|
10
|
-
|
|
17
|
+
const value = React.useMemo(
|
|
18
|
+
() => ({
|
|
19
|
+
gravity,
|
|
20
|
+
options: props,
|
|
21
|
+
}),
|
|
22
|
+
[gravity, props]
|
|
23
|
+
);
|
|
24
|
+
return React.createElement(PhysicsContext.Provider, { value }, children);
|
|
11
25
|
}
|
|
12
26
|
|
|
13
27
|
export function StaticRigidBody({
|
|
@@ -15,27 +29,27 @@ export function StaticRigidBody({
|
|
|
15
29
|
children,
|
|
16
30
|
...props
|
|
17
31
|
}) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{
|
|
32
|
+
const value = React.useMemo(
|
|
33
|
+
() => ({
|
|
21
34
|
type: "fixed",
|
|
22
35
|
colliders,
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
|
|
36
|
+
options: props,
|
|
37
|
+
}),
|
|
38
|
+
[colliders, props]
|
|
26
39
|
);
|
|
40
|
+
return React.createElement(RigidBodyContext.Provider, { value }, children);
|
|
27
41
|
}
|
|
28
42
|
|
|
29
43
|
export function DynamicRigidBody({ colliders = "hull", children, ...props }) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
{
|
|
44
|
+
const value = React.useMemo(
|
|
45
|
+
() => ({
|
|
33
46
|
type: "dynamic",
|
|
34
47
|
colliders,
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
|
|
48
|
+
options: props,
|
|
49
|
+
}),
|
|
50
|
+
[colliders, props]
|
|
38
51
|
);
|
|
52
|
+
return React.createElement(RigidBodyContext.Provider, { value }, children);
|
|
39
53
|
}
|
|
40
54
|
|
|
41
55
|
export function KinematicRigidBody({
|
|
@@ -43,13 +57,13 @@ export function KinematicRigidBody({
|
|
|
43
57
|
children,
|
|
44
58
|
...props
|
|
45
59
|
}) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{
|
|
60
|
+
const value = React.useMemo(
|
|
61
|
+
() => ({
|
|
49
62
|
type: "kinematicPosition",
|
|
50
63
|
colliders,
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
|
|
64
|
+
options: props,
|
|
65
|
+
}),
|
|
66
|
+
[colliders, props]
|
|
54
67
|
);
|
|
68
|
+
return React.createElement(RigidBodyContext.Provider, { value }, children);
|
|
55
69
|
}
|