@iwer/devui 0.2.1 → 1.0.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/build/iwer-devui.js +5198 -2628
- package/build/iwer-devui.min.js +266 -130
- package/build/iwer-devui.module.js +5198 -2628
- package/build/iwer-devui.module.min.js +266 -130
- package/lib/components/analog.d.ts.map +1 -1
- package/lib/components/analog.js +11 -13
- package/lib/components/analog.js.map +1 -1
- package/lib/components/binary.d.ts.map +1 -1
- package/lib/components/binary.js +15 -17
- package/lib/components/binary.js.map +1 -1
- package/lib/components/controls.d.ts +11 -2
- package/lib/components/controls.d.ts.map +1 -1
- package/lib/components/controls.js +61 -27
- package/lib/components/controls.js.map +1 -1
- package/lib/components/fov.d.ts.map +1 -1
- package/lib/components/fov.js +0 -1
- package/lib/components/fov.js.map +1 -1
- package/lib/components/header.d.ts +0 -4
- package/lib/components/header.d.ts.map +1 -1
- package/lib/components/header.js +75 -61
- package/lib/components/header.js.map +1 -1
- package/lib/components/headset.d.ts +17 -0
- package/lib/components/headset.d.ts.map +1 -0
- package/lib/components/headset.js +91 -0
- package/lib/components/headset.js.map +1 -0
- package/lib/components/icons.d.ts +8 -1
- package/lib/components/icons.d.ts.map +1 -1
- package/lib/components/icons.js +53 -27
- package/lib/components/icons.js.map +1 -1
- package/lib/components/joystick.d.ts.map +1 -1
- package/lib/components/joystick.js +56 -60
- package/lib/components/joystick.js.map +1 -1
- package/lib/components/mapper.d.ts +7 -3
- package/lib/components/mapper.d.ts.map +1 -1
- package/lib/components/mapper.js +34 -60
- package/lib/components/mapper.js.map +1 -1
- package/lib/components/styled.d.ts +48 -7
- package/lib/components/styled.d.ts.map +1 -1
- package/lib/components/styled.js +213 -40
- package/lib/components/styled.js.map +1 -1
- package/lib/components/vec3.d.ts +25 -0
- package/lib/components/vec3.d.ts.map +1 -0
- package/lib/components/vec3.js +90 -0
- package/lib/components/vec3.js.map +1 -0
- package/lib/index.d.ts +8 -12
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +73 -51
- package/lib/index.js.map +1 -1
- package/lib/package.json +55 -0
- package/lib/scene.d.ts +23 -40
- package/lib/scene.d.ts.map +1 -1
- package/lib/scene.js +160 -192
- package/lib/scene.js.map +1 -1
- package/lib/src/components/analog.d.ts +17 -0
- package/lib/src/components/analog.d.ts.map +1 -0
- package/lib/src/components/analog.js +111 -0
- package/lib/src/components/analog.js.map +1 -0
- package/lib/src/components/binary.d.ts +17 -0
- package/lib/src/components/binary.d.ts.map +1 -0
- package/lib/src/components/binary.js +77 -0
- package/lib/src/components/binary.js.map +1 -0
- package/lib/src/components/controls.d.ts +29 -0
- package/lib/src/components/controls.d.ts.map +1 -0
- package/lib/src/components/controls.js +139 -0
- package/lib/src/components/controls.js.map +1 -0
- package/lib/src/components/fov.d.ts +16 -0
- package/lib/src/components/fov.d.ts.map +1 -0
- package/lib/src/components/fov.js +30 -0
- package/lib/src/components/fov.js.map +1 -0
- package/lib/src/components/header.d.ts +20 -0
- package/lib/src/components/header.d.ts.map +1 -0
- package/lib/src/components/header.js +47 -0
- package/lib/src/components/header.js.map +1 -0
- package/lib/src/components/headset.d.ts +17 -0
- package/lib/src/components/headset.d.ts.map +1 -0
- package/lib/src/components/headset.js +29 -0
- package/lib/src/components/headset.js.map +1 -0
- package/lib/src/components/icons.d.ts +37 -0
- package/lib/src/components/icons.d.ts.map +1 -0
- package/lib/src/components/icons.js +265 -0
- package/lib/src/components/icons.js.map +1 -0
- package/lib/src/components/joystick.d.ts +21 -0
- package/lib/src/components/joystick.d.ts.map +1 -0
- package/lib/src/components/joystick.js +245 -0
- package/lib/src/components/joystick.js.map +1 -0
- package/lib/src/components/keys.d.ts +10 -0
- package/lib/src/components/keys.d.ts.map +1 -0
- package/lib/src/components/keys.js +74 -0
- package/lib/src/components/keys.js.map +1 -0
- package/lib/src/components/mapper.d.ts +22 -0
- package/lib/src/components/mapper.d.ts.map +1 -0
- package/lib/src/components/mapper.js +108 -0
- package/lib/src/components/mapper.js.map +1 -0
- package/lib/src/components/styled.d.ts +70 -0
- package/lib/src/components/styled.d.ts.map +1 -0
- package/lib/src/components/styled.js +272 -0
- package/lib/src/components/styled.js.map +1 -0
- package/lib/src/components/vec3.d.ts +22 -0
- package/lib/src/components/vec3.d.ts.map +1 -0
- package/lib/src/components/vec3.js +123 -0
- package/lib/src/components/vec3.js.map +1 -0
- package/lib/src/index.d.ts +22 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/src/index.js +92 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/scene.d.ts +51 -0
- package/lib/src/scene.d.ts.map +1 -0
- package/lib/src/scene.js +250 -0
- package/lib/src/scene.js.map +1 -0
- package/lib/version.d.ts +2 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +2 -0
- package/lib/version.js.map +1 -0
- package/package.json +6 -3
- package/build/iwe.min.js +0 -180
- package/lib/components/settings.d.ts +0 -50
- package/lib/components/settings.d.ts.map +0 -1
- package/lib/components/settings.js +0 -103
- package/lib/components/settings.js.map +0 -1
package/lib/scene.js
CHANGED
|
@@ -4,81 +4,87 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
const
|
|
7
|
+
import { FrontSide, Group, Mesh, MeshBasicMaterial, PerspectiveCamera, Quaternion, RingGeometry, Scene, Vector3, WebGLRenderer, } from 'three';
|
|
8
|
+
import { TransformHandles } from '@pmndrs/handle';
|
|
9
|
+
import { forwardHtmlEvents } from '@pmndrs/pointer-events';
|
|
10
|
+
export const PRIVATE = Symbol('@@iwer/devui/input-scene');
|
|
11
|
+
const FREE_MOVEMENT_SPEED = 2;
|
|
11
12
|
export class InputLayer {
|
|
12
13
|
constructor(xrDevice) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
14
|
+
this.xrDevice = xrDevice;
|
|
15
|
+
this.combinedCameraPosition = new Vector3();
|
|
16
|
+
this.isPointerLocked = false;
|
|
17
|
+
this.vec3 = new Vector3();
|
|
18
|
+
this.quat = new Quaternion();
|
|
19
|
+
this.keyState = {
|
|
20
|
+
ShiftLeft: false,
|
|
21
|
+
KeyW: false,
|
|
22
|
+
KeyA: false,
|
|
23
|
+
KeyS: false,
|
|
24
|
+
KeyD: false,
|
|
25
|
+
ArrowUp: false,
|
|
26
|
+
ArrowDown: false,
|
|
27
|
+
};
|
|
28
|
+
this.lastTime = 0;
|
|
29
|
+
this.scene = new Scene();
|
|
30
|
+
this.camera = new PerspectiveCamera(50, window.innerWidth / window.innerHeight, 0.1, 40);
|
|
31
|
+
this.playerRig = new Group();
|
|
32
|
+
this.cameraRig = new Group();
|
|
33
|
+
this.scene.add(this.playerRig);
|
|
34
|
+
this.playerRig.add(this.cameraRig);
|
|
35
|
+
this.cameraRig.position.fromArray(xrDevice.position.vec3);
|
|
36
|
+
this.cameraRig.quaternion.fromArray(xrDevice.quaternion.quat);
|
|
37
|
+
this.cameraRig.add(this.camera);
|
|
38
|
+
this.camera.position.x -= xrDevice.ipd / 2;
|
|
36
39
|
const spaceOriginIndicator = new Mesh(new RingGeometry(0.25, 0.27, 32), new MeshBasicMaterial({
|
|
37
40
|
color: 0xffffff,
|
|
38
41
|
side: FrontSide,
|
|
39
42
|
}));
|
|
40
43
|
spaceOriginIndicator.rotateX(-Math.PI / 2);
|
|
41
|
-
scene.add(spaceOriginIndicator);
|
|
44
|
+
this.scene.add(spaceOriginIndicator);
|
|
42
45
|
// Create a renderer
|
|
43
|
-
|
|
44
|
-
renderer.
|
|
45
|
-
renderer.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
46
|
+
this.renderer = new WebGLRenderer({ alpha: true });
|
|
47
|
+
this.renderer.setPixelRatio(window.devicePixelRatio);
|
|
48
|
+
this.renderer.setSize(window.innerWidth, window.innerHeight);
|
|
49
|
+
this.renderer.setClearColor(0x000000, 0);
|
|
50
|
+
this.renderer.domElement.style.position = 'fixed';
|
|
51
|
+
this.renderer.domElement.style.top = '50vh';
|
|
52
|
+
this.renderer.domElement.style.left = '50vw';
|
|
53
|
+
this.renderer.domElement.style.transform = 'translate(-50%, -50%)';
|
|
54
|
+
this.transformHandles = new Map();
|
|
55
|
+
['left', 'right'].forEach((handedness) => {
|
|
56
|
+
const transformHandle = new TransformHandles();
|
|
57
|
+
transformHandle.scale.setScalar(0.1);
|
|
58
|
+
transformHandle.position.fromArray(xrDevice.controllers[handedness].position.vec3);
|
|
59
|
+
transformHandle.quaternion.fromArray(xrDevice.controllers[handedness].quaternion.quat);
|
|
60
|
+
this.cameraRig.attach(transformHandle);
|
|
61
|
+
transformHandle.userData = {
|
|
62
|
+
defaultPosition: transformHandle.position.toArray(),
|
|
63
|
+
defaultQuaternion: transformHandle.quaternion.toArray(),
|
|
64
|
+
};
|
|
65
|
+
transformHandle.userData.setMode = (mode) => {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
(_b = (_a = transformHandle.userData).modeCleanup) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
68
|
+
transformHandle.userData.modeCleanup = transformHandle.bind(mode);
|
|
69
|
+
transformHandle.userData.mode = mode;
|
|
70
|
+
};
|
|
71
|
+
transformHandle.userData.setMode('translate');
|
|
72
|
+
transformHandle.space = 'local';
|
|
73
|
+
this.transformHandles.set(handedness, transformHandle);
|
|
74
|
+
transformHandle.addEventListener('click', () => {
|
|
75
|
+
console.log('click');
|
|
76
|
+
if (transformHandle.userData.mode === 'translate') {
|
|
77
|
+
transformHandle.userData.setMode('rotate');
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
transformHandle.userData.setMode('translate');
|
|
72
81
|
}
|
|
73
82
|
});
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
setupTransformControls(rightTransformControls);
|
|
80
|
-
const mouseMoveHandler = (event) => {
|
|
81
|
-
if (!this[PRIVATE].isPointerLocked)
|
|
83
|
+
});
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
window.transformHandles = this.transformHandles;
|
|
86
|
+
this.mouseMoveHandler = (event) => {
|
|
87
|
+
if (!this.isPointerLocked)
|
|
82
88
|
return;
|
|
83
89
|
const movementX =
|
|
84
90
|
// @ts-ignore
|
|
@@ -86,54 +92,14 @@ export class InputLayer {
|
|
|
86
92
|
const movementY =
|
|
87
93
|
// @ts-ignore
|
|
88
94
|
event.movementY || event.mozMovementY || event.webkitMovementY || 0;
|
|
89
|
-
playerRig.rotation.y -= movementX * 0.002;
|
|
90
|
-
cameraRig.rotation.x -= movementY * 0.002;
|
|
91
|
-
xrDevice.quaternion.copy(cameraRig.getWorldQuaternion(new Quaternion()));
|
|
92
|
-
this.renderScene();
|
|
93
|
-
};
|
|
94
|
-
this[PRIVATE] = {
|
|
95
|
-
canvasContainer,
|
|
96
|
-
renderer,
|
|
97
|
-
scene,
|
|
98
|
-
camera,
|
|
99
|
-
playerRig,
|
|
100
|
-
cameraRig,
|
|
101
|
-
xrDevice,
|
|
102
|
-
controllerIndicators: {
|
|
103
|
-
left: leftControllerIndicator,
|
|
104
|
-
right: rightControllerIndicator,
|
|
105
|
-
},
|
|
106
|
-
transformControls: {
|
|
107
|
-
left: leftTransformControls,
|
|
108
|
-
right: rightTransformControls,
|
|
109
|
-
},
|
|
110
|
-
headsetDefaultPosition: cameraRig.position.clone(),
|
|
111
|
-
headsetDefaultQuaternion: cameraRig.quaternion.clone(),
|
|
112
|
-
controllerDefaultPositions: {
|
|
113
|
-
left: leftControllerIndicator.position.clone(),
|
|
114
|
-
right: rightControllerIndicator.position.clone(),
|
|
115
|
-
},
|
|
116
|
-
controllerDefaultQuaternions: {
|
|
117
|
-
left: leftControllerIndicator.quaternion.clone(),
|
|
118
|
-
right: rightControllerIndicator.quaternion.clone(),
|
|
119
|
-
},
|
|
120
|
-
resizeObserver,
|
|
121
|
-
isPointerLocked: false,
|
|
122
|
-
vec3: new Vector3(),
|
|
123
|
-
quat: new Quaternion(),
|
|
124
|
-
mouseMoveHandler,
|
|
125
|
-
keyState: {
|
|
126
|
-
ShiftLeft: false,
|
|
127
|
-
KeyW: false,
|
|
128
|
-
KeyA: false,
|
|
129
|
-
KeyS: false,
|
|
130
|
-
KeyD: false,
|
|
131
|
-
ArrowUp: false,
|
|
132
|
-
ArrowDown: false,
|
|
133
|
-
},
|
|
134
|
-
movePlayerRig: () => this.movePlayerRig(),
|
|
135
|
-
moveInterval: null,
|
|
95
|
+
this.playerRig.rotation.y -= movementX * 0.002;
|
|
96
|
+
this.cameraRig.rotation.x -= movementY * 0.002;
|
|
97
|
+
xrDevice.quaternion.copy(this.cameraRig.getWorldQuaternion(new Quaternion()));
|
|
136
98
|
};
|
|
99
|
+
this.cameraRig.getWorldPosition(this.combinedCameraPosition);
|
|
100
|
+
this.headsetDefaultPosition = this.cameraRig.position.clone();
|
|
101
|
+
this.headsetDefaultQuaternion = this.cameraRig.quaternion.clone();
|
|
102
|
+
this.forwardHtmlEvents = forwardHtmlEvents(this.renderer.domElement, () => this.camera, this.scene).update;
|
|
137
103
|
document.addEventListener('pointerlockchange', this.pointerLockChangeHandler.bind(this), false);
|
|
138
104
|
document.addEventListener('mozpointerlockchange', this.pointerLockChangeHandler.bind(this), false);
|
|
139
105
|
document.addEventListener('webkitpointerlockchange', this.pointerLockChangeHandler.bind(this), false);
|
|
@@ -141,135 +107,137 @@ export class InputLayer {
|
|
|
141
107
|
document.addEventListener('keyup', this.keyUpHandler.bind(this), false);
|
|
142
108
|
}
|
|
143
109
|
lockPointer() {
|
|
144
|
-
this
|
|
145
|
-
this
|
|
110
|
+
this.renderer.domElement.requestPointerLock =
|
|
111
|
+
this.renderer.domElement.requestPointerLock ||
|
|
146
112
|
// @ts-ignore
|
|
147
|
-
this
|
|
113
|
+
this.renderer.domElement.mozRequestPointerLock ||
|
|
148
114
|
// @ts-ignore
|
|
149
|
-
this
|
|
150
|
-
this
|
|
115
|
+
this.renderer.domElement.webkitRequestPointerLock;
|
|
116
|
+
this.renderer.domElement.requestPointerLock();
|
|
151
117
|
}
|
|
152
118
|
pointerLockChangeHandler() {
|
|
153
|
-
this
|
|
154
|
-
document.pointerLockElement === this
|
|
119
|
+
this.isPointerLocked =
|
|
120
|
+
document.pointerLockElement === this.renderer.domElement ||
|
|
155
121
|
// @ts-ignore
|
|
156
|
-
document.mozPointerLockElement === this
|
|
122
|
+
document.mozPointerLockElement === this.renderer.domElement ||
|
|
157
123
|
// @ts-ignore
|
|
158
|
-
document.webkitPointerLockElement === this
|
|
159
|
-
if (this
|
|
160
|
-
document.addEventListener('mousemove', this
|
|
161
|
-
Object.values(this
|
|
162
|
-
|
|
163
|
-
transformControls.visible = false;
|
|
124
|
+
document.webkitPointerLockElement === this.renderer.domElement;
|
|
125
|
+
if (this.isPointerLocked) {
|
|
126
|
+
document.addEventListener('mousemove', this.mouseMoveHandler, false);
|
|
127
|
+
Object.values(this.transformHandles).forEach((transformHandle) => {
|
|
128
|
+
transformHandle.visible = false;
|
|
164
129
|
});
|
|
165
130
|
}
|
|
166
131
|
else {
|
|
167
|
-
document.removeEventListener('mousemove', this
|
|
168
|
-
Object.values(this
|
|
169
|
-
|
|
170
|
-
transformControls.visible = true;
|
|
132
|
+
document.removeEventListener('mousemove', this.mouseMoveHandler, false);
|
|
133
|
+
Object.values(this.transformHandles).forEach((transformHandle) => {
|
|
134
|
+
transformHandle.visible = true;
|
|
171
135
|
});
|
|
172
136
|
}
|
|
173
137
|
}
|
|
174
138
|
keyDownHandler(event) {
|
|
175
|
-
const { keyState
|
|
139
|
+
const { keyState } = this;
|
|
176
140
|
if (event.code in keyState) {
|
|
177
141
|
keyState[event.code] = true;
|
|
178
142
|
}
|
|
179
|
-
if (keyState.ShiftLeft &&
|
|
180
|
-
(keyState.KeyW || keyState.KeyA || keyState.KeyS || keyState.KeyD)) {
|
|
181
|
-
if (!moveInterval) {
|
|
182
|
-
this[PRIVATE].moveInterval = window.setInterval(movePlayerRig, 16);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
143
|
if (keyState.ShiftLeft && keyState.ArrowUp) {
|
|
186
|
-
this
|
|
187
|
-
this.renderScene();
|
|
144
|
+
this.cameraRig.position.y += 0.05;
|
|
188
145
|
}
|
|
189
146
|
if (keyState.ShiftLeft && keyState.ArrowDown) {
|
|
190
|
-
this
|
|
191
|
-
this.renderScene();
|
|
147
|
+
this.cameraRig.position.y -= 0.05;
|
|
192
148
|
}
|
|
193
149
|
}
|
|
194
150
|
keyUpHandler(event) {
|
|
195
|
-
const { keyState
|
|
151
|
+
const { keyState } = this;
|
|
196
152
|
if (event.code in keyState) {
|
|
197
153
|
keyState[event.code] = false;
|
|
198
154
|
}
|
|
199
|
-
if (!keyState.ShiftLeft ||
|
|
200
|
-
!(keyState.KeyW || keyState.KeyA || keyState.KeyS || keyState.KeyD)) {
|
|
201
|
-
if (moveInterval) {
|
|
202
|
-
window.clearInterval(moveInterval);
|
|
203
|
-
this[PRIVATE].moveInterval = null;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
155
|
}
|
|
207
|
-
movePlayerRig() {
|
|
208
|
-
const { playerRig, keyState, vec3 } = this
|
|
156
|
+
movePlayerRig(delta) {
|
|
157
|
+
const { playerRig, keyState, vec3 } = this;
|
|
209
158
|
vec3.set((keyState.KeyD ? 1 : 0) - (keyState.KeyA ? 1 : 0), 0, (keyState.KeyS ? 1 : 0) - (keyState.KeyW ? 1 : 0));
|
|
210
|
-
if (vec3.lengthSq() > 0) {
|
|
159
|
+
if (vec3.lengthSq() > 0 && keyState.ShiftLeft) {
|
|
211
160
|
vec3
|
|
212
161
|
.normalize()
|
|
213
|
-
.multiplyScalar(FREE_MOVEMENT_SPEED)
|
|
162
|
+
.multiplyScalar(FREE_MOVEMENT_SPEED * delta)
|
|
214
163
|
.applyQuaternion(playerRig.quaternion);
|
|
215
164
|
playerRig.position.add(vec3);
|
|
216
|
-
this.renderScene();
|
|
217
165
|
}
|
|
218
166
|
}
|
|
219
|
-
syncFovy() {
|
|
220
|
-
this[PRIVATE].camera.fov = (this[PRIVATE].xrDevice.fovy / Math.PI) * 180;
|
|
221
|
-
this[PRIVATE].camera.updateProjectionMatrix();
|
|
222
|
-
}
|
|
223
167
|
resetDeviceTransforms() {
|
|
224
|
-
const { playerRig, cameraRig,
|
|
225
|
-
cameraRig.position.copy(this
|
|
226
|
-
cameraRig.quaternion.
|
|
168
|
+
const { playerRig, cameraRig, transformHandles } = this;
|
|
169
|
+
cameraRig.position.copy(this.headsetDefaultPosition);
|
|
170
|
+
cameraRig.quaternion.copy(this.headsetDefaultQuaternion);
|
|
227
171
|
playerRig.position.set(0, 0, 0);
|
|
228
172
|
playerRig.quaternion.set(0, 0, 0, 1);
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
this[PRIVATE].controllerDefaultPositions[handedness]);
|
|
233
|
-
controllerIndicator.quaternion.copy(
|
|
234
|
-
// @ts-ignore
|
|
235
|
-
this[PRIVATE].controllerDefaultQuaternions[handedness]);
|
|
173
|
+
transformHandles.forEach((transformHandle) => {
|
|
174
|
+
transformHandle.position.fromArray(transformHandle.userData.defaultPosition);
|
|
175
|
+
transformHandle.quaternion.fromArray(transformHandle.userData.defaultQuaternion);
|
|
236
176
|
});
|
|
237
|
-
this.syncDeviceTransforms();
|
|
238
|
-
this.renderScene();
|
|
239
177
|
}
|
|
240
178
|
syncDeviceTransforms() {
|
|
241
|
-
const { xrDevice, cameraRig,
|
|
242
|
-
xrDevice.position.copy(cameraRig.getWorldPosition(this
|
|
243
|
-
xrDevice.quaternion.copy(cameraRig.getWorldQuaternion(this
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
xrDevice.controllers[handedness].
|
|
247
|
-
// @ts-ignore
|
|
248
|
-
xrDevice.controllers[handedness].quaternion.copy(controllerIndicator.getWorldQuaternion(this[PRIVATE].quat));
|
|
179
|
+
const { xrDevice, cameraRig, transformHandles } = this;
|
|
180
|
+
xrDevice.position.copy(cameraRig.getWorldPosition(this.vec3));
|
|
181
|
+
xrDevice.quaternion.copy(cameraRig.getWorldQuaternion(this.quat));
|
|
182
|
+
transformHandles.forEach((transformHandle, handedness) => {
|
|
183
|
+
xrDevice.controllers[handedness].position.copy(transformHandle.getWorldPosition(this.vec3));
|
|
184
|
+
xrDevice.controllers[handedness].quaternion.copy(transformHandle.getWorldQuaternion(this.quat));
|
|
249
185
|
});
|
|
250
186
|
}
|
|
251
|
-
renderScene() {
|
|
187
|
+
renderScene(time) {
|
|
188
|
+
const xrDeviceFOV = (this.xrDevice.fovy / Math.PI) * 180;
|
|
189
|
+
let cameraMatrixNeedsUpdate = false;
|
|
190
|
+
if (this.camera.fov !== xrDeviceFOV) {
|
|
191
|
+
this.camera.fov = xrDeviceFOV;
|
|
192
|
+
cameraMatrixNeedsUpdate = true;
|
|
193
|
+
}
|
|
194
|
+
const iwerCanvasDimension = this.xrDevice.canvasDimensions;
|
|
195
|
+
if (iwerCanvasDimension) {
|
|
196
|
+
const canvas = this.renderer.domElement;
|
|
197
|
+
const resizeNeeded = canvas.width !== iwerCanvasDimension.width ||
|
|
198
|
+
canvas.height !== iwerCanvasDimension.height;
|
|
199
|
+
if (resizeNeeded) {
|
|
200
|
+
this.camera.aspect =
|
|
201
|
+
iwerCanvasDimension.width / iwerCanvasDimension.height;
|
|
202
|
+
this.renderer.setSize(iwerCanvasDimension.width, iwerCanvasDimension.height);
|
|
203
|
+
cameraMatrixNeedsUpdate = true;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (cameraMatrixNeedsUpdate) {
|
|
207
|
+
this.camera.updateProjectionMatrix();
|
|
208
|
+
}
|
|
209
|
+
if (!this.isPointerLocked) {
|
|
210
|
+
this.cameraRig.position.y = this.combinedCameraPosition.y;
|
|
211
|
+
this.playerRig.position.x = this.combinedCameraPosition.x;
|
|
212
|
+
this.playerRig.position.z = this.combinedCameraPosition.z;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
this.cameraRig.getWorldPosition(this.combinedCameraPosition);
|
|
216
|
+
}
|
|
217
|
+
this.forwardHtmlEvents();
|
|
218
|
+
this.transformHandles.forEach((transformHandle, handedness) => {
|
|
219
|
+
var _a;
|
|
220
|
+
const connected = Boolean((_a = this.xrDevice.controllers[handedness]) === null || _a === void 0 ? void 0 : _a.connected);
|
|
221
|
+
transformHandle.visible = connected && !this.isPointerLocked;
|
|
222
|
+
if (connected) {
|
|
223
|
+
transformHandle.update(time, this.camera);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
const delta = Math.min((time - this.lastTime) / 1000, 0.1);
|
|
227
|
+
this.movePlayerRig(delta);
|
|
252
228
|
this.syncDeviceTransforms();
|
|
253
|
-
this
|
|
229
|
+
this.renderer.render(this.scene, this.camera);
|
|
230
|
+
this.lastTime = time;
|
|
254
231
|
}
|
|
255
232
|
get domElement() {
|
|
256
|
-
return this
|
|
257
|
-
}
|
|
258
|
-
resize() {
|
|
259
|
-
const width = this[PRIVATE].canvasContainer.offsetWidth;
|
|
260
|
-
const height = this[PRIVATE].canvasContainer.offsetHeight;
|
|
261
|
-
this[PRIVATE].renderer.setSize(width, height);
|
|
262
|
-
this[PRIVATE].camera.aspect = width / height;
|
|
263
|
-
this[PRIVATE].camera.updateProjectionMatrix();
|
|
264
|
-
this.renderScene();
|
|
233
|
+
return this.renderer.domElement;
|
|
265
234
|
}
|
|
266
235
|
dispose() {
|
|
267
|
-
this
|
|
268
|
-
this[PRIVATE].renderer.dispose();
|
|
236
|
+
this.renderer.dispose();
|
|
269
237
|
document.removeEventListener('pointerlockchange', this.pointerLockChangeHandler.bind(this), false);
|
|
270
238
|
document.removeEventListener('mozpointerlockchange', this.pointerLockChangeHandler.bind(this), false);
|
|
271
239
|
document.removeEventListener('webkitpointerlockchange', this.pointerLockChangeHandler.bind(this), false);
|
|
272
|
-
document.removeEventListener('mousemove', this
|
|
240
|
+
document.removeEventListener('mousemove', this.mouseMoveHandler, false);
|
|
273
241
|
document.removeEventListener('keydown', this.keyDownHandler.bind(this), false);
|
|
274
242
|
document.removeEventListener('keyup', this.keyUpHandler.bind(this), false);
|
|
275
243
|
}
|
package/lib/scene.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACN,WAAW,EACX,SAAS,EACT,KAAK,EACL,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,KAAK,EACL,OAAO,EACP,aAAa,GACb,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAGrF,MAAM,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACnD,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,MAAM,OAAO,UAAU;IAyBtB,YAAY,QAAkB;QAC7B,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QACjD,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAE1B,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,iBAAiB,CACnC,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAC/B,eAAe,CAAC,WAAW,GAAG,eAAe,CAAC,YAAY,EAC1D,GAAG,EACH,IAAI,CACJ,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QAEtC,MAAM,uBAAuB,GAAG,IAAI,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACjE,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CACzC,QAAQ,CAAC,WAAW,CAAC,IAAK,CAAC,QAAQ,CAAC,IAAI,CACxC,CAAC;QACF,uBAAuB,CAAC,UAAU,CAAC,SAAS,CAC3C,QAAQ,CAAC,WAAW,CAAC,IAAK,CAAC,UAAU,CAAC,IAAI,CAC1C,CAAC;QACF,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAC1C,QAAQ,CAAC,WAAW,CAAC,KAAM,CAAC,QAAQ,CAAC,IAAI,CACzC,CAAC;QACF,wBAAwB,CAAC,UAAU,CAAC,SAAS,CAC5C,QAAQ,CAAC,WAAW,CAAC,KAAM,CAAC,UAAU,CAAC,IAAI,CAC3C,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1C,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC3C,uBAAuB,CAAC,OAAO,GAAG,KAAK,CAAC;QACxC,wBAAwB,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzC,MAAM,oBAAoB,GAAG,IAAI,IAAI,CACpC,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAChC,IAAI,iBAAiB,CAAC;YACrB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,SAAS;SACf,CAAC,CACF,CAAC;QACF,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAEhC,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;QAC5E,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEjD,MAAM,qBAAqB,GAAG,IAAI,iBAAiB,CAClD,MAAM,EACN,QAAQ,CAAC,UAAU,CACnB,CAAC;QACF,qBAAqB,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAEjC,MAAM,sBAAsB,GAAG,IAAI,iBAAiB,CACnD,MAAM,EACN,QAAQ,CAAC,UAAU,CACnB,CAAC;QACF,sBAAsB,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACxD,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAElC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAExC,wCAAwC;QACxC,MAAM,sBAAsB,GAAG,CAAC,QAA2B,EAAE,EAAE;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC3C,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;gBACzC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACnE,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;gBACpC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;oBACrB,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAChC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACP,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;QAC9C,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;QAE/C,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe;gBAAE,OAAO;YAC3C,MAAM,SAAS;YACd,aAAa;YACb,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;YACrE,MAAM,SAAS;YACd,aAAa;YACb,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;YACrE,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC;YAC1C,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC;YAE1C,QAAQ,CAAC,UAAU,CAAC,IAAI,CACvB,SAAS,CAAC,kBAAkB,CAAC,IAAI,UAAU,EAAE,CAAQ,CACrD,CAAC;YACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,eAAe;YACf,QAAQ;YACR,KAAK;YACL,MAAM;YACN,SAAS;YACT,SAAS;YACT,QAAQ;YACR,oBAAoB,EAAE;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,wBAAwB;aAC/B;YACD,iBAAiB,EAAE;gBAClB,IAAI,EAAE,qBAAqB;gBAC3B,KAAK,EAAE,sBAAsB;aAC7B;YACD,sBAAsB,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;YAClD,wBAAwB,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE;YACtD,0BAA0B,EAAE;gBAC3B,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC9C,KAAK,EAAE,wBAAwB,CAAC,QAAQ,CAAC,KAAK,EAAE;aAChD;YACD,4BAA4B,EAAE;gBAC7B,IAAI,EAAE,uBAAuB,CAAC,UAAU,CAAC,KAAK,EAAE;gBAChD,KAAK,EAAE,wBAAwB,CAAC,UAAU,CAAC,KAAK,EAAE;aAClD;YACD,cAAc;YACd,eAAe,EAAE,KAAK;YACtB,IAAI,EAAE,IAAI,OAAO,EAAE;YACnB,IAAI,EAAE,IAAI,UAAU,EAAE;YACtB,gBAAgB;YAChB,QAAQ,EAAE;gBACT,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,KAAK;aAChB;YACD,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YACzC,YAAY,EAAE,IAAI;SAClB,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CACxB,mBAAmB,EACnB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,gBAAgB,CACxB,sBAAsB,EACtB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,gBAAgB,CACxB,yBAAyB,EACzB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,KAAK,CACL,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB;YACnD,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB;gBACpD,aAAa;gBACb,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB;gBACvD,aAAa;gBACb,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACxD,CAAC;IAED,wBAAwB;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe;YAC5B,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU;gBACjE,aAAa;gBACb,QAAQ,CAAC,qBAAqB,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU;gBACpE,aAAa;gBACb,QAAQ,CAAC,wBAAwB,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAEzE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;YACnC,QAAQ,CAAC,gBAAgB,CACxB,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAC9B,KAAK,CACL,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CACrD,CAAC,iBAAiB,EAAE,EAAE;gBACrB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;gBAClC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YACnC,CAAC,CACD,CAAC;QACH,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,mBAAmB,CAC3B,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAC9B,KAAK,CACL,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CACrD,CAAC,iBAAiB,EAAE,EAAE;gBACrB,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACjC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,CAAC,CACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,cAAc,CAAC,KAAoB;QAClC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IACC,QAAQ,CAAC,SAAS;YAClB,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EACjE,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,YAAY,CAAC,KAAoB;QAChC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;QAED,IACC,CAAC,QAAQ,CAAC,SAAS;YACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAClE,CAAC;YACF,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;YACnC,CAAC;QACF,CAAC;IACF,CAAC;IAED,aAAa;QACZ,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CACP,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,CAAC,EACD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI;iBACF,SAAS,EAAE;iBACX,cAAc,CAAC,mBAAmB,CAAC;iBACnC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACxC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;IAC/C,CAAC;IAED,qBAAqB;QACpB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAC9D,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAC3C,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,EAAE;YACrC,mBAAmB,CAAC,QAAQ,CAAC,IAAI;YAChC,aAAa;YACb,IAAI,CAAC,OAAO,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,CACpD,CAAC;YACF,mBAAmB,CAAC,UAAU,CAAC,IAAI;YAClC,aAAa;YACb,IAAI,CAAC,OAAO,CAAC,CAAC,4BAA4B,CAAC,UAAU,CAAC,CACtD,CAAC;QACH,CAAC,CACD,CAAC;QACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAED,oBAAoB;QACnB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACrB,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAQ,CACrD,CAAC;QACF,QAAQ,CAAC,UAAU,CAAC,IAAI,CACvB,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAQ,CACvD,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAC3C,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,EAAE;YACrC,aAAa;YACb,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAE,CAAC,QAAQ,CAAC,IAAI,CAC9C,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAQ,CAC/D,CAAC;YACF,aAAa;YACb,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAE,CAAC,UAAU,CAAC,IAAI,CAChD,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAQ,CACjE,CAAC;QACH,CAAC,CACD,CAAC;IACH,CAAC;IAED,WAAW;QACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,MAAM;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,QAAQ,CAAC,mBAAmB,CAC3B,mBAAmB,EACnB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,mBAAmB,CAC3B,sBAAsB,EACtB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,mBAAmB,CAC3B,yBAAyB,EACzB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,mBAAmB,CAC3B,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAC9B,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,mBAAmB,CAC3B,SAAS,EACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,KAAK,CACL,CAAC;QACF,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { XRController } from 'iwer/lib/device/XRController';
|
|
9
|
+
interface AnalogButtonProps {
|
|
10
|
+
xrController: XRController;
|
|
11
|
+
buttonId: string;
|
|
12
|
+
pointerLocked: boolean;
|
|
13
|
+
mappedKey: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const AnalogButton: React.FC<AnalogButtonProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=analog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analog.d.ts","sourceRoot":"","sources":["../../../src/components/analog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,UAAU,iBAAiB;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0IpD,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
import { Button, ButtonContainer, ButtonGroup, Colors, ControlButtonStyles, FAIcon, MappedKeyBlock, RangeSelector, } from './styled.js';
|
|
9
|
+
import { useEffect, useState } from 'react';
|
|
10
|
+
import { GamepadIcon } from './icons.js';
|
|
11
|
+
import { MappedKeyDisplay } from './keys.js';
|
|
12
|
+
import { faFingerprint } from '@fortawesome/free-solid-svg-icons';
|
|
13
|
+
import { useDevUIConfig } from '../index.js';
|
|
14
|
+
export const AnalogButton = ({ xrController, buttonId, pointerLocked, mappedKey, }) => {
|
|
15
|
+
const devuiConfig = useDevUIConfig();
|
|
16
|
+
const [isTouched, setIsTouched] = useState(false);
|
|
17
|
+
const [isPressed, setIsPressed] = useState(false);
|
|
18
|
+
const [isKeyPressed, setIsKeyPressed] = useState(false);
|
|
19
|
+
const [analogValue, setAnalogValue] = useState(0);
|
|
20
|
+
const handedness = xrController.inputSource.handedness;
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const handleKeyDown = (event) => {
|
|
23
|
+
if (event.code === mappedKey) {
|
|
24
|
+
xrController.updateButtonValue(buttonId, 1);
|
|
25
|
+
setIsKeyPressed(true);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const handleKeyUp = (event) => {
|
|
29
|
+
if (event.code === mappedKey) {
|
|
30
|
+
xrController.updateButtonValue(buttonId, 0);
|
|
31
|
+
setIsKeyPressed(false);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const handleMouseDown = (event) => {
|
|
35
|
+
if (mappedKey === 'MouseLeft' && event.button === 0) {
|
|
36
|
+
xrController.updateButtonValue(buttonId, 1);
|
|
37
|
+
setIsKeyPressed(true);
|
|
38
|
+
}
|
|
39
|
+
else if (mappedKey === 'MouseRight' && event.button === 2) {
|
|
40
|
+
xrController.updateButtonValue(buttonId, 1);
|
|
41
|
+
setIsKeyPressed(true);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const handleMouseUp = (event) => {
|
|
45
|
+
if (mappedKey === 'MouseLeft' && event.button === 0) {
|
|
46
|
+
xrController.updateButtonValue(buttonId, 0);
|
|
47
|
+
setIsKeyPressed(false);
|
|
48
|
+
}
|
|
49
|
+
else if (mappedKey === 'MouseRight' && event.button === 2) {
|
|
50
|
+
xrController.updateButtonValue(buttonId, 0);
|
|
51
|
+
setIsKeyPressed(false);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
if (pointerLocked) {
|
|
55
|
+
if (mappedKey === 'MouseLeft' || mappedKey === 'MouseRight') {
|
|
56
|
+
window.addEventListener('mousedown', handleMouseDown);
|
|
57
|
+
window.addEventListener('mouseup', handleMouseUp);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
61
|
+
window.addEventListener('keyup', handleKeyUp);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (mappedKey === 'MouseLeft' || mappedKey === 'MouseRight') {
|
|
66
|
+
window.removeEventListener('mousedown', handleMouseDown);
|
|
67
|
+
window.removeEventListener('mouseup', handleMouseUp);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
71
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return () => {
|
|
75
|
+
if (mappedKey === 'MouseLeft' || mappedKey === 'MouseRight') {
|
|
76
|
+
window.removeEventListener('mousedown', handleMouseDown);
|
|
77
|
+
window.removeEventListener('mouseup', handleMouseUp);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
81
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}, [mappedKey, pointerLocked, buttonId, xrController]);
|
|
85
|
+
return (_jsxs(ButtonContainer, { "$reverse": handedness === 'right', children: [_jsx(GamepadIcon, { buttonName: buttonId, handedness: handedness }), _jsx(ButtonGroup, { "$reverse": handedness === 'right', children: pointerLocked ? (_jsx(MappedKeyBlock, { "$pressed": isKeyPressed, children: MappedKeyDisplay[mappedKey] })) : (_jsxs(_Fragment, { children: [_jsx(Button, { "$reverse": handedness === 'right', style: {
|
|
86
|
+
background: isPressed
|
|
87
|
+
? Colors.gradientLightGreyTranslucent
|
|
88
|
+
: Colors.gradientGreyTranslucent,
|
|
89
|
+
width: ControlButtonStyles.widthLong,
|
|
90
|
+
}, onClick: () => {
|
|
91
|
+
setIsPressed(true);
|
|
92
|
+
xrController.updateButtonValue(buttonId, 1);
|
|
93
|
+
setTimeout(() => {
|
|
94
|
+
setIsPressed(false);
|
|
95
|
+
xrController.updateButtonValue(buttonId, 0);
|
|
96
|
+
}, devuiConfig.buttonPressDuration);
|
|
97
|
+
}, children: "Press" }), _jsx(Button, { "$reverse": handedness === 'right', style: {
|
|
98
|
+
background: isTouched
|
|
99
|
+
? Colors.gradientLightGreyTranslucent
|
|
100
|
+
: Colors.gradientGreyTranslucent,
|
|
101
|
+
width: ControlButtonStyles.widthShort,
|
|
102
|
+
}, onClick: () => {
|
|
103
|
+
setIsTouched(!isTouched);
|
|
104
|
+
xrController.updateButtonTouch(buttonId, !isTouched);
|
|
105
|
+
}, children: _jsx(FAIcon, { icon: faFingerprint }) }), _jsx(RangeSelector, { "$reverse": handedness === 'right', value: analogValue, onChange: (e) => {
|
|
106
|
+
const value = Number(e.target.value);
|
|
107
|
+
setAnalogValue(value);
|
|
108
|
+
xrController.updateButtonValue(buttonId, value / 100);
|
|
109
|
+
}, min: "0", max: "100" })] })) })] }));
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=analog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analog.js","sourceRoot":"","sources":["../../../src/components/analog.tsx"],"names":[],"mappings":"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"}
|