|
@@ -24,6 +24,7 @@ import EImageQuality from "./enum/EImageQuality.js"
|
|
|
import Panorama from "./Panorama.js"
|
|
|
import Debug from "./Debug.js"
|
|
|
import Logger from "./Logger.js"
|
|
|
+import Response from "./Response.js"
|
|
|
|
|
|
const logger = new Logger('xverse-room')
|
|
|
export default class Xverse_Room extends EventEmitter {
|
|
@@ -87,8 +88,10 @@ export default class Xverse_Room extends EventEmitter {
|
|
|
if (s.stream) {
|
|
|
r || (r = !0,logger.info("Invoke updateRawYUVData"));
|
|
|
this.isUpdatedRawYUVData = !1;
|
|
|
- const fov = (l = this._currentState.skin) == null ? void 0 : l.fov;
|
|
|
+ const fov = (l = this._currentState.skin) == null ? void 0 : l.fov;0
|
|
|
+
|
|
|
this.sceneManager.materialComponent.updateRawYUVData(s.stream, s.width, s.height, fov);
|
|
|
+
|
|
|
this.isUpdatedRawYUVData = !0
|
|
|
}
|
|
|
if(!e){
|
|
@@ -142,6 +145,64 @@ export default class Xverse_Room extends EventEmitter {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ doRotate(){
|
|
|
+ if(typeof(window.star_angle) == 'undefined'){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let angle = window.star_angle
|
|
|
+ this.sceneManager.materialComponent.initreceveFrames()
|
|
|
+
|
|
|
+ let cameraPostion0 = util.xversePosition2Ue4(this.sceneManager.cameraComponent.mainCamera.position.clone())
|
|
|
+ let playerPosition = this.sceneManager.avatarComponent._mainUser.position
|
|
|
+
|
|
|
+ let rotationQuaternion = BABYLON.Quaternion.RotationAxis( new BABYLON.Vector3(0, 0, 1), angle )
|
|
|
+ let cameraPos = new BABYLON.Vector3( cameraPostion0.x, cameraPostion0.y, cameraPostion0.z )
|
|
|
+ let cameraCenter = new BABYLON.Vector3( playerPosition.x, playerPosition.y, playerPosition.z )
|
|
|
+ // console.error(cameraPos, cameraCenter)
|
|
|
+
|
|
|
+ cameraPos.rotateByQuaternionAroundPointToRef(rotationQuaternion, cameraCenter, cameraPos)
|
|
|
+
|
|
|
+ let cameraState = {
|
|
|
+ "position": {
|
|
|
+ "x": cameraPos.x,
|
|
|
+ "y": cameraPos.y,
|
|
|
+ "z": cameraPos.z
|
|
|
+ },
|
|
|
+ "angle": {
|
|
|
+ "pitch": 0,
|
|
|
+ "yaw": window.camera_endRotation,
|
|
|
+ "roll": 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let response = JSON.parse(JSON.stringify(Response))
|
|
|
+
|
|
|
+ response.signal.newUserStates[0].userId = nickname
|
|
|
+
|
|
|
+ response.signal.newUserStates[0].playerState.player.position.x = this.avatarManager.avatars.get(nickname).position.x
|
|
|
+ response.signal.newUserStates[0].playerState.player.position.y = this.avatarManager.avatars.get(nickname).position.y
|
|
|
+ response.signal.newUserStates[0].playerState.player.position.z = this.avatarManager.avatars.get(nickname).position.z
|
|
|
+
|
|
|
+ response.signal.newUserStates[0].playerState.player.angle.pitch = this.avatarManager.avatars.get(nickname).rotation.pitch
|
|
|
+ response.signal.newUserStates[0].playerState.player.angle.yaw = this.avatarManager.avatars.get(nickname).rotation.yaw
|
|
|
+ response.signal.newUserStates[0].playerState.player.angle.roll = this.avatarManager.avatars.get(nickname).rotation.roll
|
|
|
+
|
|
|
+ response.signal.newUserStates[0].playerState.camera.position.x = cameraState.position.x
|
|
|
+ response.signal.newUserStates[0].playerState.camera.position.y = cameraState.position.y
|
|
|
+ response.signal.newUserStates[0].playerState.camera.position.z = cameraState.position.z
|
|
|
+
|
|
|
+ response.signal.newUserStates[0].playerState.camera.angle.pitch = cameraState.angle.pitch
|
|
|
+ response.signal.newUserStates[0].playerState.camera.angle.yaw = cameraState.angle.yaw
|
|
|
+ response.signal.newUserStates[0].playerState.camera.angle.roll = cameraState.angle.roll
|
|
|
+
|
|
|
+ response.signal.newUserStates[0].playerState.cameraCenter.x = this.avatarManager.avatars.get(nickname).position.x
|
|
|
+ response.signal.newUserStates[0].playerState.cameraCenter.y = this.avatarManager.avatars.get(nickname).position.y
|
|
|
+ response.signal.newUserStates[0].playerState.cameraCenter.z = this.avatarManager.avatars.get(nickname).position.z
|
|
|
+
|
|
|
+ console.log('更新相机角度')
|
|
|
+ this.signal.handleSignal(response)
|
|
|
+ }
|
|
|
+
|
|
|
get currentNetworkOptions() {
|
|
|
return this._currentNetworkOptions
|
|
|
}
|