@needle-tools/engine 2.30.0-pre → 2.31.0-pre
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 +4 -0
- package/dist/needle-engine.d.ts +807 -753
- package/dist/needle-engine.js +336 -336
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +16 -16
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/engine_physics.d.ts +19 -8
- package/lib/engine/engine_physics.js +57 -48
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine-components/Camera.js +0 -1
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/Component.d.ts +10 -0
- package/lib/engine-components/Component.js +53 -0
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/Rigidbody.d.ts +1 -1
- package/lib/engine-components/Rigidbody.js +3 -3
- package/lib/engine-components/Rigidbody.js.map +1 -1
- package/lib/engine-components/ScreenCapture.d.ts +35 -6
- package/lib/engine-components/ScreenCapture.js +356 -103
- package/lib/engine-components/ScreenCapture.js.map +1 -1
- package/lib/engine-components/VideoPlayer.d.ts +4 -0
- package/lib/engine-components/VideoPlayer.js +22 -1
- package/lib/engine-components/VideoPlayer.js.map +1 -1
- package/lib/needle-engine.d.ts +1 -0
- package/lib/needle-engine.js +1 -0
- package/lib/needle-engine.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/engine_physics.ts +74 -57
- package/src/engine-components/Camera.ts +0 -1
- package/src/engine-components/Component.ts +58 -0
- package/src/engine-components/RigidBody.ts +2 -2
- package/src/engine-components/ScreenCapture.ts +386 -114
- package/src/engine-components/VideoPlayer.ts +26 -2
- package/src/needle-engine.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenCapture.js","sourceRoot":"","sources":["../../../engine-components/ScreenCapture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScreenCapture.js","sourceRoot":"","sources":["../../../engine-components/ScreenCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Behaviour } from "./Component";
|
|
2
2
|
import * as THREE from "three";
|
|
3
|
+
import { Object3D } from "three";
|
|
3
4
|
export declare enum VideoSource {
|
|
4
5
|
VideoClip = 0,
|
|
5
6
|
Url = 1
|
|
@@ -46,6 +47,7 @@ export declare class VideoPlayer extends Behaviour {
|
|
|
46
47
|
private videoMaterial;
|
|
47
48
|
private _isPlaying;
|
|
48
49
|
private wasPlaying;
|
|
50
|
+
setVideo(video: MediaStream): void;
|
|
49
51
|
setClipURL(url: string): void;
|
|
50
52
|
awake(): void;
|
|
51
53
|
onEnable(): void;
|
|
@@ -57,6 +59,8 @@ export declare class VideoPlayer extends Behaviour {
|
|
|
57
59
|
stop(): void;
|
|
58
60
|
pause(): void;
|
|
59
61
|
create(playAutomatically: boolean): void;
|
|
62
|
+
private _targetObjects;
|
|
63
|
+
getTargetObjects(): Array<Object3D>;
|
|
60
64
|
private createVideoElement;
|
|
61
65
|
private handleBeginPlaying;
|
|
62
66
|
private updateVideoElementSettings;
|
|
@@ -104,6 +104,18 @@ export class VideoPlayer extends Behaviour {
|
|
|
104
104
|
videoMaterial = null;
|
|
105
105
|
_isPlaying = false;
|
|
106
106
|
wasPlaying = false;
|
|
107
|
+
setVideo(video) {
|
|
108
|
+
this.clip = video;
|
|
109
|
+
this.source = VideoSource.VideoClip;
|
|
110
|
+
if (!this.videoElement)
|
|
111
|
+
this.create(true);
|
|
112
|
+
else {
|
|
113
|
+
// TODO: how to prevent interruption error when another video is already playing
|
|
114
|
+
this.videoElement.srcObject = video;
|
|
115
|
+
if (this._isPlaying)
|
|
116
|
+
this.videoElement.play();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
107
119
|
setClipURL(url) {
|
|
108
120
|
if (this.url === url)
|
|
109
121
|
return;
|
|
@@ -112,7 +124,9 @@ export class VideoPlayer extends Behaviour {
|
|
|
112
124
|
this.source = VideoSource.Url;
|
|
113
125
|
if (debug)
|
|
114
126
|
console.log("set url", url);
|
|
115
|
-
if (this.videoElement)
|
|
127
|
+
if (!this.videoElement)
|
|
128
|
+
this.create(true);
|
|
129
|
+
else {
|
|
116
130
|
this.videoElement.src = url;
|
|
117
131
|
if (this._isPlaying)
|
|
118
132
|
this.videoElement.play();
|
|
@@ -158,6 +172,7 @@ export class VideoPlayer extends Behaviour {
|
|
|
158
172
|
this._receivedInput = true;
|
|
159
173
|
this.updateVideoElementSettings();
|
|
160
174
|
});
|
|
175
|
+
this._targetObjects = [];
|
|
161
176
|
}
|
|
162
177
|
play() {
|
|
163
178
|
if (!this.videoElement)
|
|
@@ -214,6 +229,10 @@ export class VideoPlayer extends Behaviour {
|
|
|
214
229
|
this.videoTexture.encoding = THREE.sRGBEncoding;
|
|
215
230
|
this.handleBeginPlaying(playAutomatically);
|
|
216
231
|
}
|
|
232
|
+
_targetObjects;
|
|
233
|
+
getTargetObjects() {
|
|
234
|
+
return Array.from(this._targetObjects);
|
|
235
|
+
}
|
|
217
236
|
createVideoElement() {
|
|
218
237
|
const video = document.createElement("video");
|
|
219
238
|
if (this._crossOrigin)
|
|
@@ -227,6 +246,7 @@ export class VideoPlayer extends Behaviour {
|
|
|
227
246
|
return;
|
|
228
247
|
if (!this.videoElement)
|
|
229
248
|
return;
|
|
249
|
+
this._targetObjects.length = 0;
|
|
230
250
|
let target = this.gameObject;
|
|
231
251
|
switch (this.renderMode) {
|
|
232
252
|
case VideoRenderMode.MaterialOverride:
|
|
@@ -242,6 +262,7 @@ export class VideoPlayer extends Behaviour {
|
|
|
242
262
|
}
|
|
243
263
|
const mat = target["material"];
|
|
244
264
|
if (mat) {
|
|
265
|
+
this._targetObjects.push(target);
|
|
245
266
|
if (mat !== this.videoMaterial) {
|
|
246
267
|
this.videoMaterial = mat.clone();
|
|
247
268
|
target["material"] = this.videoMaterial;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../engine-components/VideoPlayer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAgB,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAErC,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACnB,aAAa;IACb,oEAAoE;IACpE,cAAc;IACd,uDAAS,CAAA;IACT,aAAa;IACb,mEAAmE;IACnE,cAAc;IACd,2CAAG,CAAA;AACP,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,+DAAQ,CAAA;IACR,6EAAe,CAAA;IACf,mEAAU,CAAA;IACV,qEAAW,CAAA;AACf,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,yEAAkB,CAAA;IAClB,2EAAmB,CAAA;IACnB,uEAAiB,CAAA;IACjB,6EAAoB,CAAA;AACxB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,OAAO,WAAY,SAAQ,SAAS;IAGtC,QAAQ,GAA0B,IAAI,CAAC;IAEvC,WAAW,GAAY,IAAI,CAAC;IAE5B,YAAY,CAAW;IAGf,UAAU,CAAmB;IAG7B,sBAAsB,CAAU;IAGhC,sBAAsB,CAAY;IAGlC,aAAa,CAAW;IAGxB,IAAI,GAAW,CAAC,CAAC;IAEjB,cAAc,GAAW,CAAC,CAAC;IAEnC,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,YAAY,EAAE,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC;IAClE,CAAC;IACD,IAAI,aAAa,CAAC,GAAW;QACzB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC;IAC7C,CAAC;IAEO,UAAU,GAAY,KAAK,CAAC;IACpC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;IACtD,CAAC;IAED,IAAI,SAAS,CAAC,GAAY;QACtB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;IACvD,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QACvB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;SACvC;;YACI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK;mBACtD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;SACrD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;IAC/D,CAAC;IACD,IAAI,WAAW,CAAC,GAAkB;QAC9B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,GAAG,KAAK,IAAI;gBAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;;gBAChE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SACzD;IACL,CAAC;IAEO,YAAY,GAAkB,WAAW,CAAC;IAE1C,eAAe,GAAyB,oBAAoB,CAAC,WAAW,CAAC;IAEzE,MAAM,CAAe;IACrB,IAAI,GAAiC,IAAI,CAAC;IAC1C,GAAG,GAAmB,IAAI,CAAC;IAE3B,YAAY,GAA4B,IAAI,CAAC;IAC7C,YAAY,GAA8B,IAAI,CAAC;IAC/C,aAAa,GAAoB,IAAI,CAAC;IAEtC,UAAU,GAAY,KAAK,CAAC;IAC5B,UAAU,GAAY,KAAK,CAAC;IAEpC,UAAU,CAAC,GAAW;QAClB,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,OAAO;QAC7B,+BAA+B;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC;QAC9B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../engine-components/VideoPlayer.ts"],"names":[],"mappings":"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"}
|
package/lib/needle-engine.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ import "./engine/engine_element";
|
|
|
2
2
|
import "./engine/engine_setup";
|
|
3
3
|
export { GameObject, Behaviour } from "./engine-components/Component";
|
|
4
4
|
export { serializeable } from "./engine/engine_serialization_decorator";
|
|
5
|
+
export { Collision } from "./engine/engine_physics";
|
|
5
6
|
export * from "./engine-components/codegen/exports";
|
package/lib/needle-engine.js
CHANGED
|
@@ -4,6 +4,7 @@ import "./engine/engine_setup";
|
|
|
4
4
|
// import "./engine-components/DomOverlay";
|
|
5
5
|
export { GameObject, Behaviour } from "./engine-components/Component";
|
|
6
6
|
export { serializeable } from "./engine/engine_serialization_decorator";
|
|
7
|
+
export { Collision } from "./engine/engine_physics";
|
|
7
8
|
export * from "./engine-components/codegen/exports";
|
|
8
9
|
// make accessible for external javascript
|
|
9
10
|
import { Context } from "./engine/engine_setup";
|
package/lib/needle-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../../needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAC/B,qCAAqC;AACrC,2CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,cAAc,qCAAqC,CAAC;AAKpD,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC9B,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,qCAAqC,CAAC;AAClE,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1B,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACrB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../../needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAC/B,qCAAqC;AACrC,2CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAKpD,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC9B,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,qCAAqC,CAAC;AAClE,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1B,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACrB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.31.0-pre",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development, and can be deployed anywhere. It is flexible, extensible, and collaboration and XR come naturally.",
|
|
5
5
|
"main": "dist/needle-engine.js",
|
|
6
6
|
"module": "lib/needle-engine.js",
|
|
@@ -7,15 +7,13 @@ import * as utils from "./engine_utils"
|
|
|
7
7
|
import * as threeutils from "./engine_three_utils"
|
|
8
8
|
import { InstancingUtil } from '../engine-components/Renderer';
|
|
9
9
|
import { GameObject } from '../engine-components/Component';
|
|
10
|
-
import { Shape } from 'cannon-es';
|
|
10
|
+
import { Body, RigidVehicle, Shape, Vec3 } from 'cannon-es';
|
|
11
|
+
import { Object3D, Vector3 } from 'three';
|
|
12
|
+
import { Collider } from '../engine-components/Collider';
|
|
11
13
|
|
|
12
14
|
const debugPhysics = utils.getParam("debugphysics");
|
|
13
15
|
const debugCollisions = utils.getParam("debugcollisions");
|
|
14
16
|
|
|
15
|
-
export interface ICollisionEventReceiver {
|
|
16
|
-
onCollision(data: CollisionData);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
17
|
export class BodyOptions {
|
|
20
18
|
mass: number = 1;
|
|
21
19
|
kinematic: boolean = false;
|
|
@@ -25,6 +23,8 @@ export class BodyOptions {
|
|
|
25
23
|
sleepThreshold: number = .01;
|
|
26
24
|
}
|
|
27
25
|
|
|
26
|
+
const bodyObjectKey = Symbol("object");
|
|
27
|
+
|
|
28
28
|
// TODO: refactor to return some kind of handle for adding/removing
|
|
29
29
|
class PhysicsObject {
|
|
30
30
|
obj: THREE.Object3D;
|
|
@@ -40,38 +40,21 @@ class PhysicsObject {
|
|
|
40
40
|
this.obj = obj;
|
|
41
41
|
this.parent = obj.parent;
|
|
42
42
|
this.body = body;
|
|
43
|
+
if (this.body)
|
|
44
|
+
this.body[bodyObjectKey] = obj;
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
obj: THREE.Object3D | null;
|
|
48
|
-
contact: CANNON.ContactEquation;
|
|
49
|
-
target: THREE.Object3D | null;
|
|
50
|
-
type: string;
|
|
51
|
-
|
|
52
|
-
constructor(contact: CANNON.ContactEquation, type: string) {
|
|
53
|
-
this.contact = contact;
|
|
54
|
-
this.type = type;
|
|
55
|
-
this.obj = null;
|
|
56
|
-
this.target = null;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
class CannonCollision {
|
|
48
|
+
declare type CannonCollision = {
|
|
60
49
|
body: CANNON.Body;
|
|
61
50
|
contact: CANNON.ContactEquation;
|
|
62
51
|
target: CANNON.Body;
|
|
63
52
|
type: string;
|
|
64
|
-
constructor(body: CANNON.Body, contact: CANNON.ContactEquation, target: CANNON.Body, type: string) {
|
|
65
|
-
this.body = body;
|
|
66
|
-
this.contact = contact;
|
|
67
|
-
this.target = target;
|
|
68
|
-
this.type = type;
|
|
69
|
-
}
|
|
70
53
|
}
|
|
71
54
|
|
|
72
55
|
export class RaycastOptions {
|
|
73
56
|
ray: THREE.Ray | undefined = undefined;
|
|
74
|
-
cam
|
|
57
|
+
cam: THREE.Camera | undefined | null = undefined;
|
|
75
58
|
screenPoint: THREE.Vector2 | undefined = undefined;
|
|
76
59
|
raycaster: THREE.Raycaster | undefined = undefined;
|
|
77
60
|
results: Array<THREE.Intersection> | undefined = undefined;
|
|
@@ -246,9 +229,9 @@ export class Physics {
|
|
|
246
229
|
|
|
247
230
|
// physics simulation
|
|
248
231
|
|
|
249
|
-
get isUpdating()
|
|
232
|
+
get isUpdating(): boolean { return this._isUpdatingPhysicsWorld; }
|
|
250
233
|
|
|
251
|
-
private _isUpdatingPhysicsWorld
|
|
234
|
+
private _isUpdatingPhysicsWorld: boolean = false;
|
|
252
235
|
|
|
253
236
|
private context: Context;
|
|
254
237
|
|
|
@@ -270,6 +253,9 @@ export class Physics {
|
|
|
270
253
|
};
|
|
271
254
|
cannonDebugger(context.scene, this.world.bodies, opts);
|
|
272
255
|
}
|
|
256
|
+
|
|
257
|
+
this.world.addEventListener("beginContact", this.onBeginContact.bind(this));
|
|
258
|
+
this.world.addEventListener("endContact", this.onEndContact.bind(this))
|
|
273
259
|
}
|
|
274
260
|
|
|
275
261
|
public addPreStepListener(listener: (evt) => void) {
|
|
@@ -492,13 +478,13 @@ export class Physics {
|
|
|
492
478
|
deltaTime = Math.min(deltaTime, 1 / 30);
|
|
493
479
|
this.world.step(deltaTime);
|
|
494
480
|
this._isUpdatingPhysicsWorld = false;
|
|
495
|
-
if(debugPhysics && this.context.time.frameCount % 60 === 0){
|
|
481
|
+
if (debugPhysics && this.context.time.frameCount % 60 === 0) {
|
|
496
482
|
console.log("physics world has " + this.world.bodies.length + " bodies", this.world);
|
|
497
483
|
}
|
|
498
484
|
}
|
|
499
485
|
|
|
500
|
-
private temp
|
|
501
|
-
private tempQuat
|
|
486
|
+
private temp: THREE.Vector3 = new THREE.Vector3();
|
|
487
|
+
private tempQuat: THREE.Quaternion = new THREE.Quaternion();
|
|
502
488
|
|
|
503
489
|
public postStep() {
|
|
504
490
|
this._isUpdatingPhysicsWorld = true;
|
|
@@ -614,40 +600,71 @@ export class Physics {
|
|
|
614
600
|
obj.body.removeEventListener("collide", obj.collisonCallback);
|
|
615
601
|
}
|
|
616
602
|
|
|
617
|
-
private
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
let addedData = 0;
|
|
622
|
-
const objs = this.objects;
|
|
623
|
-
function requestData() {
|
|
624
|
-
if (addedData > 0) return;
|
|
625
|
-
for (let i = 0; i < objs.length; i++) {
|
|
626
|
-
if (addedData == 2) return;
|
|
627
|
-
const entry = objs[i];
|
|
628
|
-
if (entry.body == event.body) {
|
|
629
|
-
resolved.obj = entry.obj;
|
|
630
|
-
++addedData;
|
|
631
|
-
}
|
|
632
|
-
else if (entry.body == event.target) {
|
|
633
|
-
resolved.target = entry.obj;
|
|
634
|
-
++addedData;
|
|
635
|
-
}
|
|
636
|
-
}
|
|
637
|
-
}
|
|
603
|
+
private onBeginContact(_) {
|
|
604
|
+
// this is called after the object collide event so we dont really need it
|
|
605
|
+
// console.log("START", args);
|
|
606
|
+
}
|
|
638
607
|
|
|
608
|
+
private raiseCollisionEvents(obj: THREE.Object3D, event: CannonCollision) {
|
|
609
|
+
const collision = new Collision(obj, event);
|
|
639
610
|
if (debugCollisions)
|
|
640
611
|
console.log("collision between", event.contact.bi, event.contact.bj, obj, event);
|
|
641
|
-
|
|
642
612
|
for (let i = 0; i < obj.userData?.components?.length; i++) {
|
|
643
613
|
const component = obj.userData.components[i];
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
614
|
+
component.__internalHandleCollision(collision);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
private onEndContact(args: { bodyA: CANNON.Body, bodyB: CANNON.Body }) {
|
|
619
|
+
// console.log("END", args.bodyA, args.bodyB);
|
|
620
|
+
const obj1 = args.bodyA[bodyObjectKey];
|
|
621
|
+
const obj2 = args.bodyB[bodyObjectKey];
|
|
622
|
+
for (let i = 0; i < obj2.userData?.components?.length; i++) {
|
|
623
|
+
const component = obj2.userData.components[i];
|
|
624
|
+
component.sendExitCollisionEvent(obj1);
|
|
648
625
|
}
|
|
649
626
|
}
|
|
650
627
|
|
|
651
628
|
}
|
|
652
629
|
|
|
653
630
|
|
|
631
|
+
export class Collision {
|
|
632
|
+
private readonly collision: CannonCollision;
|
|
633
|
+
|
|
634
|
+
readonly me: Object3D;
|
|
635
|
+
|
|
636
|
+
private _normal?: Vector3;
|
|
637
|
+
get normal(): Vector3 {
|
|
638
|
+
if (!this._normal) {
|
|
639
|
+
this._normal = new Vector3(this.collision.contact.ni.x, this.collision.contact.ni.y, this.collision.contact.ni.z);
|
|
640
|
+
}
|
|
641
|
+
return this._normal;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
private _collider?: Collider;
|
|
645
|
+
get collider(): Collider {
|
|
646
|
+
if (this._collider === undefined) {
|
|
647
|
+
this._collider = GameObject.getComponent(this.gameObject, Collider)!;
|
|
648
|
+
}
|
|
649
|
+
return this._collider;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
get gameObject(): Object3D {
|
|
653
|
+
return this.collision.body[bodyObjectKey];
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
// private _point?: Vector3;
|
|
657
|
+
// get point(): Vector3 {
|
|
658
|
+
// if (!this._point) {
|
|
659
|
+
// const c = this.collision.contact;
|
|
660
|
+
// const point = c.bi.position.clone().vadd(c.ri);
|
|
661
|
+
// this._point = new Vector3(point.x, point.y, point.z);
|
|
662
|
+
// }
|
|
663
|
+
// return this._point;
|
|
664
|
+
// }
|
|
665
|
+
|
|
666
|
+
constructor(obj: Object3D, collision: CannonCollision) {
|
|
667
|
+
this.me = obj;
|
|
668
|
+
this.collision = collision;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
@@ -160,7 +160,6 @@ export class Camera extends Behaviour {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
applyClearFlagsIfIsActiveCamera() {
|
|
163
|
-
// TODO: need to differentiate between what kind of XR (set skybox in VR but not in mobile AR for example!?)
|
|
164
163
|
if (this._cam && this.context.mainCameraComponent === this) {
|
|
165
164
|
switch (this._clearFlags) {
|
|
166
165
|
case ClearFlags.Skybox:
|
|
@@ -9,6 +9,7 @@ import * as main from "../engine/engine_mainloop_utils";
|
|
|
9
9
|
import { Object3D } from "three";
|
|
10
10
|
import { InstantiateIdProvider, syncDestroy, syncInstantiate } from "../engine/engine_networking_instantiate";
|
|
11
11
|
import { SourceIdentifier } from "../engine/engine_gltf";
|
|
12
|
+
import { Collision } from "../engine/engine_physics";
|
|
12
13
|
|
|
13
14
|
export interface UIDProvider {
|
|
14
15
|
seed: number;
|
|
@@ -835,6 +836,10 @@ class Component implements EventTarget {
|
|
|
835
836
|
onBeforeRender?(frame: THREE.XRFrame | null): void;
|
|
836
837
|
onAfterRender?(): void;
|
|
837
838
|
|
|
839
|
+
onCollisionEnter?(col: Collision);
|
|
840
|
+
onCollisionExit?(col: Collision);
|
|
841
|
+
onCollisionStay?(col: Collision);
|
|
842
|
+
|
|
838
843
|
startCoroutine(routine: Generator, evt: FrameEvent = FrameEvent.Update): Generator {
|
|
839
844
|
return this.context.registerCoroutineUpdate(this, routine, evt);
|
|
840
845
|
}
|
|
@@ -865,6 +870,7 @@ class Component implements EventTarget {
|
|
|
865
870
|
this.__didEnable = false;
|
|
866
871
|
this.__isEnabled = undefined;
|
|
867
872
|
this.__destroyed = false;
|
|
873
|
+
this.__internalResetsCachedPhysicsData();
|
|
868
874
|
}
|
|
869
875
|
|
|
870
876
|
__internalAwake() {
|
|
@@ -892,6 +898,7 @@ class Component implements EventTarget {
|
|
|
892
898
|
__internalDisable() {
|
|
893
899
|
if (!this.__didEnable) return;
|
|
894
900
|
this.__didEnable = false;
|
|
901
|
+
this._collisionExitRoutine = undefined;
|
|
895
902
|
this.onDisable();
|
|
896
903
|
}
|
|
897
904
|
|
|
@@ -899,6 +906,57 @@ class Component implements EventTarget {
|
|
|
899
906
|
this.__internalNewInstanceCreated();
|
|
900
907
|
}
|
|
901
908
|
|
|
909
|
+
private _collisionExitRoutine: any;
|
|
910
|
+
private _collisions: Map<Object3D, { col: Collision, frame: number }> | null = null;
|
|
911
|
+
|
|
912
|
+
private __internalResetsCachedPhysicsData() {
|
|
913
|
+
this._collisionExitRoutine = null;
|
|
914
|
+
this._collisions = null;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
__internalHandleCollision(col: Collision) {
|
|
918
|
+
if (this.onCollisionEnter || this.onCollisionExit || this.onCollisionStay) {
|
|
919
|
+
const otherObject = col.gameObject;
|
|
920
|
+
if (!this._collisions) this._collisions = new Map();
|
|
921
|
+
if (this._collisions.has(otherObject)) {
|
|
922
|
+
const cur = this._collisions.get(otherObject)!;
|
|
923
|
+
cur.frame = this.context.time.frameCount;
|
|
924
|
+
cur.col = col;
|
|
925
|
+
this.onCollisionStay?.call(this, col);
|
|
926
|
+
}
|
|
927
|
+
else {
|
|
928
|
+
const entry = { col, frame: this.context.time.frameCount };
|
|
929
|
+
this._collisions.set(otherObject, entry);
|
|
930
|
+
this.onCollisionEnter?.call(this, col);
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
sendExitCollisionEvent(obj : Object3D) {
|
|
936
|
+
if(!this._collisions) return;
|
|
937
|
+
const col = this._collisions.get(obj);
|
|
938
|
+
if(!col) return;
|
|
939
|
+
this.onCollisionExit?.call(this, col.col);
|
|
940
|
+
this._collisions.delete(obj);
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
private __waitForCollisionExit() {
|
|
944
|
+
if (this._collisionExitRoutine) return;
|
|
945
|
+
// const self = this;
|
|
946
|
+
// function* routine() {
|
|
947
|
+
// while (self._collisions && self._collisions.size > 0) {
|
|
948
|
+
// for (let ob of self._collisions.keys()) {
|
|
949
|
+
// const entry = self._collisions!.get(ob)!;
|
|
950
|
+
// if (self.context.time.frameCount - entry.frame > 1) {
|
|
951
|
+
// self._collisions!.delete(ob);
|
|
952
|
+
// self.onCollisionExit?.call(self, entry.col);
|
|
953
|
+
// }
|
|
954
|
+
// }
|
|
955
|
+
// yield;
|
|
956
|
+
// }
|
|
957
|
+
// }
|
|
958
|
+
// this._collisionExitRoutine = this.startCoroutine(routine(), FrameEvent.EarlyUpdate);
|
|
959
|
+
}
|
|
902
960
|
|
|
903
961
|
|
|
904
962
|
// TODO move this to threeutils
|
|
@@ -29,7 +29,7 @@ export class Rigidbody extends Behaviour {
|
|
|
29
29
|
@serializeable()
|
|
30
30
|
angularDrag: number = 1;
|
|
31
31
|
@serializeable()
|
|
32
|
-
|
|
32
|
+
detectCollisions: boolean = true;
|
|
33
33
|
@serializeable()
|
|
34
34
|
sleepThreshold: number = 0.01;
|
|
35
35
|
|
|
@@ -106,7 +106,7 @@ export class Rigidbody extends Behaviour {
|
|
|
106
106
|
options.angularDrag = this.angularDrag;
|
|
107
107
|
options.mass = this.mass;
|
|
108
108
|
options.kinematic = this.isKinematic;
|
|
109
|
-
options.physicsEvents = this.
|
|
109
|
+
options.physicsEvents = this.detectCollisions;
|
|
110
110
|
options.sleepThreshold = this.sleepThreshold;
|
|
111
111
|
this._body = this.context.physics.createBody(this.gameObject, options);
|
|
112
112
|
}
|