@needle-tools/engine 3.0.1-alpha.2 → 3.0.1-alpha.3
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 -1
- package/dist/needle-engine.js +7706 -7641
- package/dist/needle-engine.min.js +262 -262
- package/dist/needle-engine.umd.cjs +280 -280
- package/lib/engine/engine_input.d.ts +5 -89
- package/lib/engine/engine_input.js +49 -103
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_physics.d.ts +5 -0
- package/lib/engine/engine_physics.js +39 -4
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_types.d.ts +1 -0
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_utils.js +4 -8
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine-components/CharacterController.js +2 -2
- package/lib/engine-components/CharacterController.js.map +1 -1
- package/lib/engine-components/DragControls.js +3 -4
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/SpectatorCamera.js.map +1 -1
- package/lib/engine-components/WebXR.js +12 -2
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/WebXRController.js +1 -1
- package/lib/engine-components/WebXRController.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.js +1 -3
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/lib/engine-components-experimental/Presentation.js +2 -3
- package/lib/engine-components-experimental/Presentation.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/plugins/vite/alias.js +5 -2
- package/src/engine/engine_input.ts +134 -108
- package/src/engine/engine_physics.ts +41 -4
- package/src/engine/engine_types.ts +1 -0
- package/src/engine/engine_utils.ts +4 -8
- package/src/engine-components/CharacterController.ts +2 -2
- package/src/engine-components/DragControls.ts +3 -4
- package/src/engine-components/SpectatorCamera.ts +1 -1
- package/src/engine-components/WebXR.ts +12 -3
- package/src/engine-components/WebXRController.ts +1 -1
- package/src/engine-components/ui/EventSystem.ts +2 -3
- package/src/engine-components-experimental/Presentation.ts +2 -2
|
@@ -86,9 +86,10 @@ export declare class Input extends EventTarget {
|
|
|
86
86
|
private _pointerEvent;
|
|
87
87
|
getKeyDown(): string | null;
|
|
88
88
|
getKeyPressed(): string | null;
|
|
89
|
-
isKeyDown(keyCode: KeyCode | string
|
|
90
|
-
isKeyUp(keyCode: KeyCode | string
|
|
91
|
-
isKeyPressed(keyCode: KeyCode | string
|
|
89
|
+
isKeyDown(keyCode: KeyCode | string): boolean;
|
|
90
|
+
isKeyUp(keyCode: KeyCode | string): boolean;
|
|
91
|
+
isKeyPressed(keyCode: KeyCode | string): boolean;
|
|
92
|
+
private getCodeForCommonKeyName;
|
|
92
93
|
createPointerDown(args: PointerEventArgs): void;
|
|
93
94
|
createPointerMove(args: PointerEventArgs): void;
|
|
94
95
|
createPointerUp(args: PointerEventArgs): void;
|
|
@@ -120,89 +121,4 @@ export declare class Input extends EventTarget {
|
|
|
120
121
|
private setPointerStateT;
|
|
121
122
|
private onDispatchEvent;
|
|
122
123
|
}
|
|
123
|
-
export declare
|
|
124
|
-
BACKSPACE = "Backspace",
|
|
125
|
-
TAB = "Tab",
|
|
126
|
-
ENTER = "Enter",
|
|
127
|
-
SHIFT = "Shift",
|
|
128
|
-
CTRL = "Control",
|
|
129
|
-
ALT = "Alt",
|
|
130
|
-
PAUSE = "Pause",
|
|
131
|
-
CAPS_LOCK = "CapsLock",
|
|
132
|
-
ESCAPE = "Escape",
|
|
133
|
-
SPACE = " ",
|
|
134
|
-
PAGE_UP = "PageUp",
|
|
135
|
-
PAGE_DOWN = "PageDown",
|
|
136
|
-
END = "End",
|
|
137
|
-
HOME = "Home",
|
|
138
|
-
LEFT_ARROW = "ArrowLeft",
|
|
139
|
-
UP_ARROW = "ArrowUp",
|
|
140
|
-
RIGHT_ARROW = "ArrowRight",
|
|
141
|
-
DOWN_ARROW = "ArrowDown",
|
|
142
|
-
INSERT = "Insert",
|
|
143
|
-
DELETE = "Delete",
|
|
144
|
-
KEY_0 = "0",
|
|
145
|
-
KEY_1 = "1",
|
|
146
|
-
KEY_2 = "2",
|
|
147
|
-
KEY_3 = "3",
|
|
148
|
-
KEY_4 = "4",
|
|
149
|
-
KEY_5 = "5",
|
|
150
|
-
KEY_6 = "6",
|
|
151
|
-
KEY_7 = "7",
|
|
152
|
-
KEY_8 = "8",
|
|
153
|
-
KEY_9 = "9",
|
|
154
|
-
KEY_A = "a",
|
|
155
|
-
KEY_B = "b",
|
|
156
|
-
KEY_C = "c",
|
|
157
|
-
KEY_D = "d",
|
|
158
|
-
KEY_E = "e",
|
|
159
|
-
KEY_F = "f",
|
|
160
|
-
KEY_G = "g",
|
|
161
|
-
KEY_H = "h",
|
|
162
|
-
KEY_I = "i",
|
|
163
|
-
KEY_K = "k",
|
|
164
|
-
KEY_J = "j",
|
|
165
|
-
KEY_L = "l",
|
|
166
|
-
KEY_M = "m",
|
|
167
|
-
KEY_N = "n",
|
|
168
|
-
KEY_O = "o",
|
|
169
|
-
KEY_P = "p",
|
|
170
|
-
KEY_Q = "q",
|
|
171
|
-
KEY_R = "r",
|
|
172
|
-
KEY_S = "s",
|
|
173
|
-
KEY_T = "t",
|
|
174
|
-
KEY_U = "u",
|
|
175
|
-
KEY_V = "v",
|
|
176
|
-
KEY_W = "w",
|
|
177
|
-
KEY_X = "x",
|
|
178
|
-
KEY_Z = "z",
|
|
179
|
-
KEY_Y = "y",
|
|
180
|
-
SELECT = "Select",
|
|
181
|
-
NUMPAD_0 = "Numpad0",
|
|
182
|
-
NUMPAD_1 = "Numpad1",
|
|
183
|
-
NUMPAD_2 = "Numpad2",
|
|
184
|
-
NUMPAD_3 = "Numpad3",
|
|
185
|
-
NUMPAD_4 = "Numpad4",
|
|
186
|
-
NUMPAD_5 = "Numpad5",
|
|
187
|
-
NUMPAD_6 = "Numpad6",
|
|
188
|
-
NUMPAD_7 = "Numpad7",
|
|
189
|
-
NUMPAD_8 = "Numpad8",
|
|
190
|
-
NUMPAD_9 = "Numpad9",
|
|
191
|
-
MULTIPLY = "Multiply",
|
|
192
|
-
ADD = "Add",
|
|
193
|
-
SUBTRACT = "Subtract",
|
|
194
|
-
DECIMAL = "Decimal",
|
|
195
|
-
DIVIDE = "Divide",
|
|
196
|
-
F1 = "F1",
|
|
197
|
-
F2 = "F2",
|
|
198
|
-
F3 = "F3",
|
|
199
|
-
F4 = "F4",
|
|
200
|
-
F5 = "F5",
|
|
201
|
-
F6 = "F6",
|
|
202
|
-
F7 = "F7",
|
|
203
|
-
F8 = "F8",
|
|
204
|
-
F9 = "F9",
|
|
205
|
-
F10 = "F10",
|
|
206
|
-
F11 = "F11",
|
|
207
|
-
F12 = "F12"
|
|
208
|
-
}
|
|
124
|
+
export declare type KeyCode = "Tab" | "Enter" | "ShiftLeft" | "ShiftRight" | "ControlLeft" | "ControlRight" | "AltLeft" | "AltRight" | "Pause" | "CapsLock" | "Escape" | "Space" | "PageUp" | "PageDown" | "End" | "Home" | "ArrowLeft" | "ArrowUp" | "ArrowRight" | "ArrowDown" | "Insert" | "Delete" | "Digit0" | "Digit1" | "Digit2" | "Digit3" | "Digit4" | "Digit5" | "Digit6" | "Digit7" | "Digit8" | "Digit9" | "KeyA" | "KeyB" | "KeyC" | "KeyD" | "KeyE" | "KeyF" | "KeyG" | "KeyH" | "KeyI" | "KeyJ" | "KeyK" | "KeyL" | "KeyM" | "KeyN" | "KeyO" | "KeyP" | "KeyQ" | "KeyR" | "KeyS" | "KeyT" | "KeyU" | "KeyV" | "KeyW" | "KeyX" | "KeyY" | "KeyZ" | "Select" | "Numpad0" | "Numpad1" | "Numpad2" | "Numpad3" | "Numpad4" | "Numpad5" | "Numpad6" | "Numpad7" | "Numpad8" | "Numpad9" | "Multiply" | "Add" | "Subtract" | "Decimal" | "Divide" | "F1" | "F2" | "F3" | "F4" | "F5" | "F6" | "F7" | "F8" | "F9" | "F10" | "F11" | "F12";
|
|
@@ -239,26 +239,57 @@ export class Input extends EventTarget {
|
|
|
239
239
|
return null;
|
|
240
240
|
}
|
|
241
241
|
isKeyDown(keyCode) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
242
|
+
const codes = this.getCodeForCommonKeyName(keyCode);
|
|
243
|
+
if (codes !== null) {
|
|
244
|
+
for (const code of codes)
|
|
245
|
+
if (this.isKeyDown(code))
|
|
246
|
+
return true;
|
|
247
|
+
return false;
|
|
245
248
|
}
|
|
246
|
-
// console.log( this.keysPressed[keyCode]?.frame, time.frameCount);
|
|
247
249
|
return this.context.application.isVisible && this.context.application.hasFocus && this.keysPressed[keyCode]?.startFrame === this.context.time.frameCount && this.keysPressed[keyCode].pressed;
|
|
248
250
|
}
|
|
249
251
|
isKeyUp(keyCode) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
252
|
+
const codes = this.getCodeForCommonKeyName(keyCode);
|
|
253
|
+
if (codes !== null) {
|
|
254
|
+
for (const code of codes)
|
|
255
|
+
if (this.isKeyUp(code))
|
|
256
|
+
return true;
|
|
257
|
+
return false;
|
|
253
258
|
}
|
|
254
259
|
return this.context.application.isVisible && this.context.application.hasFocus && this.keysPressed[keyCode]?.frame === this.context.time.frameCount && !this.keysPressed[keyCode].pressed;
|
|
255
260
|
}
|
|
256
261
|
isKeyPressed(keyCode) {
|
|
257
|
-
|
|
258
|
-
|
|
262
|
+
const codes = this.getCodeForCommonKeyName(keyCode);
|
|
263
|
+
if (codes !== null) {
|
|
264
|
+
for (const code of codes)
|
|
265
|
+
if (this.isKeyPressed(code))
|
|
266
|
+
return true;
|
|
267
|
+
return false;
|
|
259
268
|
}
|
|
260
269
|
return this.context.application.isVisible && this.context.application.hasFocus && this.keysPressed[keyCode]?.pressed; // && time.frameCount - this.keysPressed[keyCode].frame < 100;
|
|
261
270
|
}
|
|
271
|
+
// utility helper for mapping common names to actual codes; e.g. "Shift" -> "ShiftLeft" and "ShiftRight" or "a" -> "KeyA"
|
|
272
|
+
getCodeForCommonKeyName(keyName) {
|
|
273
|
+
if (keyName.length === 1) {
|
|
274
|
+
// check if this is a digit
|
|
275
|
+
if (keyName >= "0" && keyName <= "9")
|
|
276
|
+
return ["Digit" + keyName];
|
|
277
|
+
// check if this is a letter
|
|
278
|
+
if (keyName >= "a" && keyName <= "z")
|
|
279
|
+
return ["Key" + keyName.toUpperCase()];
|
|
280
|
+
if (keyName == " ")
|
|
281
|
+
return ["Space"];
|
|
282
|
+
}
|
|
283
|
+
switch (keyName) {
|
|
284
|
+
case "Shift":
|
|
285
|
+
return ["ShiftLeft", "ShiftRight"];
|
|
286
|
+
case "Control":
|
|
287
|
+
return ["ControlLeft", "ControlRight"];
|
|
288
|
+
case "Alt":
|
|
289
|
+
return ["AltLeft", "AltRight"];
|
|
290
|
+
}
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
262
293
|
createPointerDown(args) {
|
|
263
294
|
if (debug)
|
|
264
295
|
showBalloonMessage("Create Pointer down");
|
|
@@ -337,16 +368,16 @@ export class Input extends EventTarget {
|
|
|
337
368
|
onKeyDown(evt) {
|
|
338
369
|
if (!this.context.application.hasFocus)
|
|
339
370
|
return;
|
|
340
|
-
const ex = this.keysPressed[evt.
|
|
371
|
+
const ex = this.keysPressed[evt.code];
|
|
341
372
|
if (ex && ex.pressed)
|
|
342
373
|
return;
|
|
343
|
-
this.keysPressed[evt.
|
|
374
|
+
this.keysPressed[evt.code] = { pressed: true, frame: this.context.time.frameCount + 1, startFrame: this.context.time.frameCount + 1, key: evt.key, code: evt.code };
|
|
344
375
|
this.onDispatchEvent(InputEvents.KeyDown, new KeyEventArgs(evt));
|
|
345
376
|
}
|
|
346
377
|
onKeyPressed(evt) {
|
|
347
378
|
if (!this.context.application.hasFocus)
|
|
348
379
|
return;
|
|
349
|
-
const p = this.keysPressed[evt.
|
|
380
|
+
const p = this.keysPressed[evt.code];
|
|
350
381
|
if (!p)
|
|
351
382
|
return;
|
|
352
383
|
p.pressed = true;
|
|
@@ -356,7 +387,7 @@ export class Input extends EventTarget {
|
|
|
356
387
|
onKeyUp(evt) {
|
|
357
388
|
if (!this.context.application.hasFocus)
|
|
358
389
|
return;
|
|
359
|
-
const p = this.keysPressed[evt.
|
|
390
|
+
const p = this.keysPressed[evt.code];
|
|
360
391
|
if (!p)
|
|
361
392
|
return;
|
|
362
393
|
p.pressed = false;
|
|
@@ -469,6 +500,9 @@ export class Input extends EventTarget {
|
|
|
469
500
|
while (evt.button >= this._pointerPositionDown.length)
|
|
470
501
|
this._pointerPositionDown.push(new THREE.Vector2());
|
|
471
502
|
this._pointerPositionDown[evt.button].set(evt.clientX, evt.clientY);
|
|
503
|
+
while (evt.button >= this._pointerPositions.length)
|
|
504
|
+
this._pointerPositions.push(new THREE.Vector2());
|
|
505
|
+
this._pointerPositions[evt.button].set(evt.clientX, evt.clientY);
|
|
472
506
|
if (evt.button >= this._pointerDownTime.length)
|
|
473
507
|
this._pointerDownTime.push(0);
|
|
474
508
|
this._pointerDownTime[evt.button] = this.context.time.time;
|
|
@@ -542,8 +576,8 @@ export class Input extends EventTarget {
|
|
|
542
576
|
this._pointerPositionsDelta.push(new THREE.Vector2());
|
|
543
577
|
const lf = this._pointerPositionsLastFrame[evt.button];
|
|
544
578
|
lf.copy(this._pointerPositions[evt.button]);
|
|
545
|
-
const dx = evt.
|
|
546
|
-
const dy = evt.
|
|
579
|
+
const dx = evt.clientX - lf.x;
|
|
580
|
+
const dy = evt.clientY - lf.y;
|
|
547
581
|
this._pointerPositionsDelta[evt.button].set(dx, dy);
|
|
548
582
|
this._pointerPositions[evt.button].x = evt.clientX;
|
|
549
583
|
this._pointerPositions[evt.button].y = evt.clientY;
|
|
@@ -602,94 +636,6 @@ export class Input extends EventTarget {
|
|
|
602
636
|
}
|
|
603
637
|
}
|
|
604
638
|
}
|
|
605
|
-
export var KeyCode;
|
|
606
|
-
(function (KeyCode) {
|
|
607
|
-
KeyCode["BACKSPACE"] = "Backspace";
|
|
608
|
-
KeyCode["TAB"] = "Tab";
|
|
609
|
-
KeyCode["ENTER"] = "Enter";
|
|
610
|
-
KeyCode["SHIFT"] = "Shift";
|
|
611
|
-
KeyCode["CTRL"] = "Control";
|
|
612
|
-
KeyCode["ALT"] = "Alt";
|
|
613
|
-
KeyCode["PAUSE"] = "Pause";
|
|
614
|
-
KeyCode["CAPS_LOCK"] = "CapsLock";
|
|
615
|
-
KeyCode["ESCAPE"] = "Escape";
|
|
616
|
-
KeyCode["SPACE"] = " ";
|
|
617
|
-
KeyCode["PAGE_UP"] = "PageUp";
|
|
618
|
-
KeyCode["PAGE_DOWN"] = "PageDown";
|
|
619
|
-
KeyCode["END"] = "End";
|
|
620
|
-
KeyCode["HOME"] = "Home";
|
|
621
|
-
KeyCode["LEFT_ARROW"] = "ArrowLeft";
|
|
622
|
-
KeyCode["UP_ARROW"] = "ArrowUp";
|
|
623
|
-
KeyCode["RIGHT_ARROW"] = "ArrowRight";
|
|
624
|
-
KeyCode["DOWN_ARROW"] = "ArrowDown";
|
|
625
|
-
KeyCode["INSERT"] = "Insert";
|
|
626
|
-
KeyCode["DELETE"] = "Delete";
|
|
627
|
-
KeyCode["KEY_0"] = "0";
|
|
628
|
-
KeyCode["KEY_1"] = "1";
|
|
629
|
-
KeyCode["KEY_2"] = "2";
|
|
630
|
-
KeyCode["KEY_3"] = "3";
|
|
631
|
-
KeyCode["KEY_4"] = "4";
|
|
632
|
-
KeyCode["KEY_5"] = "5";
|
|
633
|
-
KeyCode["KEY_6"] = "6";
|
|
634
|
-
KeyCode["KEY_7"] = "7";
|
|
635
|
-
KeyCode["KEY_8"] = "8";
|
|
636
|
-
KeyCode["KEY_9"] = "9";
|
|
637
|
-
KeyCode["KEY_A"] = "a";
|
|
638
|
-
KeyCode["KEY_B"] = "b";
|
|
639
|
-
KeyCode["KEY_C"] = "c";
|
|
640
|
-
KeyCode["KEY_D"] = "d";
|
|
641
|
-
KeyCode["KEY_E"] = "e";
|
|
642
|
-
KeyCode["KEY_F"] = "f";
|
|
643
|
-
KeyCode["KEY_G"] = "g";
|
|
644
|
-
KeyCode["KEY_H"] = "h";
|
|
645
|
-
KeyCode["KEY_I"] = "i";
|
|
646
|
-
KeyCode["KEY_K"] = "k";
|
|
647
|
-
KeyCode["KEY_J"] = "j";
|
|
648
|
-
KeyCode["KEY_L"] = "l";
|
|
649
|
-
KeyCode["KEY_M"] = "m";
|
|
650
|
-
KeyCode["KEY_N"] = "n";
|
|
651
|
-
KeyCode["KEY_O"] = "o";
|
|
652
|
-
KeyCode["KEY_P"] = "p";
|
|
653
|
-
KeyCode["KEY_Q"] = "q";
|
|
654
|
-
KeyCode["KEY_R"] = "r";
|
|
655
|
-
KeyCode["KEY_S"] = "s";
|
|
656
|
-
KeyCode["KEY_T"] = "t";
|
|
657
|
-
KeyCode["KEY_U"] = "u";
|
|
658
|
-
KeyCode["KEY_V"] = "v";
|
|
659
|
-
KeyCode["KEY_W"] = "w";
|
|
660
|
-
KeyCode["KEY_X"] = "x";
|
|
661
|
-
KeyCode["KEY_Z"] = "z";
|
|
662
|
-
KeyCode["KEY_Y"] = "y";
|
|
663
|
-
KeyCode["SELECT"] = "Select";
|
|
664
|
-
KeyCode["NUMPAD_0"] = "Numpad0";
|
|
665
|
-
KeyCode["NUMPAD_1"] = "Numpad1";
|
|
666
|
-
KeyCode["NUMPAD_2"] = "Numpad2";
|
|
667
|
-
KeyCode["NUMPAD_3"] = "Numpad3";
|
|
668
|
-
KeyCode["NUMPAD_4"] = "Numpad4";
|
|
669
|
-
KeyCode["NUMPAD_5"] = "Numpad5";
|
|
670
|
-
KeyCode["NUMPAD_6"] = "Numpad6";
|
|
671
|
-
KeyCode["NUMPAD_7"] = "Numpad7";
|
|
672
|
-
KeyCode["NUMPAD_8"] = "Numpad8";
|
|
673
|
-
KeyCode["NUMPAD_9"] = "Numpad9";
|
|
674
|
-
KeyCode["MULTIPLY"] = "Multiply";
|
|
675
|
-
KeyCode["ADD"] = "Add";
|
|
676
|
-
KeyCode["SUBTRACT"] = "Subtract";
|
|
677
|
-
KeyCode["DECIMAL"] = "Decimal";
|
|
678
|
-
KeyCode["DIVIDE"] = "Divide";
|
|
679
|
-
KeyCode["F1"] = "F1";
|
|
680
|
-
KeyCode["F2"] = "F2";
|
|
681
|
-
KeyCode["F3"] = "F3";
|
|
682
|
-
KeyCode["F4"] = "F4";
|
|
683
|
-
KeyCode["F5"] = "F5";
|
|
684
|
-
KeyCode["F6"] = "F6";
|
|
685
|
-
KeyCode["F7"] = "F7";
|
|
686
|
-
KeyCode["F8"] = "F8";
|
|
687
|
-
KeyCode["F9"] = "F9";
|
|
688
|
-
KeyCode["F10"] = "F10";
|
|
689
|
-
KeyCode["F11"] = "F11";
|
|
690
|
-
KeyCode["F12"] = "F12";
|
|
691
|
-
})(KeyCode || (KeyCode = {}));
|
|
692
|
-
;
|
|
693
639
|
// KEY_1 = 49,
|
|
694
640
|
// KEY_2 = 50,
|
|
695
641
|
// KEY_3 = 51,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_input.js","sourceRoot":"","sources":["../../src/engine/engine_input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine_input.js","sourceRoot":"","sources":["../../src/engine/engine_input.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,11 @@ export declare class Physics {
|
|
|
71
71
|
point: Vector3;
|
|
72
72
|
collider: ICollider;
|
|
73
73
|
};
|
|
74
|
+
raycastPhysicsFastAndGetNormal(origin: Vec2 | Vec3, direction?: Vec3 | undefined, maxDistance?: number, solid?: boolean): null | {
|
|
75
|
+
point: Vector3;
|
|
76
|
+
normal: Vector3;
|
|
77
|
+
collider: ICollider;
|
|
78
|
+
};
|
|
74
79
|
private getPhysicsRay;
|
|
75
80
|
private rapierSphere;
|
|
76
81
|
private rapierColliderArray;
|
|
@@ -221,7 +221,10 @@ export class Physics {
|
|
|
221
221
|
const ray = this.getPhysicsRay(this.rapierRay, origin, direction);
|
|
222
222
|
if (!ray)
|
|
223
223
|
return null;
|
|
224
|
-
const hit = this.world?.castRay(ray, maxDistance, solid)
|
|
224
|
+
const hit = this.world?.castRay(ray, maxDistance, solid, undefined, undefined, undefined, undefined, (c) => {
|
|
225
|
+
// ignore objects in the IgnoreRaycast=2 layer
|
|
226
|
+
return !c[$componentKey]?.gameObject.layers.isEnabled(2);
|
|
227
|
+
});
|
|
225
228
|
if (hit) {
|
|
226
229
|
const point = ray.pointAt(hit.toi);
|
|
227
230
|
const vec = this.raycastVectorsBuffer.get();
|
|
@@ -230,6 +233,25 @@ export class Physics {
|
|
|
230
233
|
}
|
|
231
234
|
return null;
|
|
232
235
|
}
|
|
236
|
+
raycastPhysicsFastAndGetNormal(origin, direction = undefined, maxDistance = Infinity, solid = true) {
|
|
237
|
+
const ray = this.getPhysicsRay(this.rapierRay, origin, direction);
|
|
238
|
+
if (!ray)
|
|
239
|
+
return null;
|
|
240
|
+
const hit = this.world?.castRayAndGetNormal(ray, maxDistance, solid, undefined, undefined, undefined, undefined, (c) => {
|
|
241
|
+
// ignore objects in the IgnoreRaycast=2 layer
|
|
242
|
+
return !c[$componentKey]?.gameObject.layers.isEnabled(2);
|
|
243
|
+
});
|
|
244
|
+
if (hit) {
|
|
245
|
+
const point = ray.pointAt(hit.toi);
|
|
246
|
+
const normal = hit.normal;
|
|
247
|
+
const vec = this.raycastVectorsBuffer.get();
|
|
248
|
+
const nor = this.raycastVectorsBuffer.get();
|
|
249
|
+
vec.set(point.x, point.y, point.z);
|
|
250
|
+
nor.set(normal.x, normal.y, normal.z);
|
|
251
|
+
return { point: vec, normal: nor, collider: hit.collider[$componentKey] };
|
|
252
|
+
}
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
233
255
|
getPhysicsRay(ray, origin, direction = undefined) {
|
|
234
256
|
const cam = this.context.mainCamera;
|
|
235
257
|
// if we get origin in 2d space we need to project it to 3d space
|
|
@@ -239,11 +261,13 @@ export class Physics {
|
|
|
239
261
|
return null;
|
|
240
262
|
}
|
|
241
263
|
const vec3 = this.raycastVectorsBuffer.get();
|
|
264
|
+
vec3.x = origin.x;
|
|
265
|
+
vec3.y = origin.y;
|
|
266
|
+
vec3.z = 0;
|
|
242
267
|
// if the origin is in screen space we need to convert it to raycaster space
|
|
243
|
-
if (
|
|
244
|
-
this.context.input.convertScreenspaceToRaycastSpace(
|
|
268
|
+
if (vec3.x > 1 || vec3.y > 1 || vec3.y < -1 || vec3.x < -1) {
|
|
269
|
+
this.context.input.convertScreenspaceToRaycastSpace(vec3);
|
|
245
270
|
}
|
|
246
|
-
vec3.set(origin.x, origin.y, -1);
|
|
247
271
|
vec3.unproject(cam);
|
|
248
272
|
origin = vec3;
|
|
249
273
|
}
|
|
@@ -392,9 +416,17 @@ export class Physics {
|
|
|
392
416
|
scale.y = Math.abs(scale.y);
|
|
393
417
|
if (scale.z < 0)
|
|
394
418
|
scale.z = Math.abs(scale.z);
|
|
419
|
+
// prevent zero scale - seems normals are flipped otherwise
|
|
420
|
+
if (scale.x == 0)
|
|
421
|
+
scale.x = 0.0000001;
|
|
422
|
+
if (scale.y == 0)
|
|
423
|
+
scale.y = 0.0000001;
|
|
424
|
+
if (scale.z == 0)
|
|
425
|
+
scale.z = 0.0000001;
|
|
395
426
|
const desc = ColliderDesc.cuboid(scale.x, scale.y, scale.z);
|
|
396
427
|
// const objectLayerMask = collider.gameObject.layers.mask;
|
|
397
428
|
// const mask = objectLayerMask & ~2;
|
|
429
|
+
// TODO: https://rapier.rs/docs/user_guides/javascript/colliders/#collision-groups-and-solver-groups
|
|
398
430
|
// desc.setCollisionGroups(objectLayerMask);
|
|
399
431
|
this.createCollider(collider, desc, center);
|
|
400
432
|
}
|
|
@@ -528,6 +560,9 @@ export class Physics {
|
|
|
528
560
|
col[$componentKey] = collider;
|
|
529
561
|
collider[$bodyKey] = col;
|
|
530
562
|
col.setActiveEvents(ActiveEvents.COLLISION_EVENTS);
|
|
563
|
+
// const objectLayerMask = collider.gameObject.layers.mask;
|
|
564
|
+
// const mask = objectLayerMask & ~2;
|
|
565
|
+
// col.setCollisionGroups(objectLayerMask);
|
|
531
566
|
this.objects.push(collider);
|
|
532
567
|
this.bodies.push(col);
|
|
533
568
|
return col;
|