12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import Codes from "./enum/Codes.js"
- import {eventsManager} from "./EventsManager.js"
- import util from "./util.js"
- import Logger from "./Logger.js"
- const logger = new Logger('panorama')
- export default class Panorama {
- constructor(e) {
- E(this, "_actived", !1);
- E(this, "handleReceivePanorama", async(e,t)=>{
- logger.warn("handle panorama", e.uuid, e.pos, e.finished);
- const r = {
- data: e.data,
- pose: {
- position: e.pos
- }
- }
- , n = this.room.sceneManager;
- if (this.room.networkController.rtcp.workers.changePanoMode(!0),
- await n.materialComponent.changePanoImg(0, r),
- !!e.finished)
- if (await n.changePanoShaderForLowModel(0),
- this.room.isPano = !0,
- this._actived = !0,
- t)
- this.room.sceneManager.cameraComponent.changeToFirstPersonView({
- position: t.position,
- rotation: t.angle
- });
- else {
- const {skinId: o, pathName: a} = this.room.currentState;
- if (!o || !a)
- return;
- const s = await this.room.modelManager.findRoute(o, a)
- , {camera: l} = util.getRandomItem(s.birthPointList) || {};
- l && this.room.sceneManager.cameraComponent.changeToFirstPersonView(le(oe({}, l), {
- rotation: l.angle
- }))
- }
- }
- );
- this.room = e
- }
- get actived() {
- return this._actived
- }
- bindListener(e) {
- this.room.networkController.rtcp.workers.registerFunction("panorama", r=>{
- logger.warn("receive panorama", r.uuid, r.pos),
- r.uuid && eventsManager.remove(r.uuid, Codes.Success, r, !0),
- this.room.isFirstDataUsed || (this.room.isFirstDataUsed = !0,
- this.handleReceivePanorama(r, this.room.options.camera).then(e))
- }
- )
- }
- access(e, t, r) {
- const {camera: n, player: o, attitude: a, areaName: s, pathName: l, tag: u} = e;
- return this.room.actionsHandler.requestPanorama({
- camera: n,
- player: o,
- attitude: a,
- areaName: s,
- pathName: l,
- tag: u
- }, t, r).then(c=>this.handleReceivePanorama(c, o))
- }
- exit(e) {
- const {camera: t, player: r, attitude: n, areaName: o, pathName: a} = e;
- return this.room.networkController.rtcp.workers.changePanoMode(!1),
- this.room.actionsHandler.changeRotationRenderType({
- renderType: RenderType.RotationVideo,
- player: r,
- camera: t,
- attitude: n,
- areaName: o,
- pathName: a
- }).then(()=>this.handleExitPanorama()).catch(s=>(this.room.networkController.rtcp.workers.changePanoMode(!0),
- Promise.reject(s)))
- }
- handleExitPanorama() {
- var e, t, r, n, o, a;
- this.room.isPano = !1,
- this._actived = !1,
- (n = (e = this.room.sceneManager) == null ? void 0 : e.cameraComponent) == null || n.forceChangeSavedCameraPose({
- position: (t = this.room._currentClickingState) == null ? void 0 : t.camera.position,
- rotation: (r = this.room._currentClickingState) == null ? void 0 : r.camera.angle
- }),
- this.room.sceneManager.changeVideoShaderForLowModel(),
- (a = (o = this.room.sceneManager) == null ? void 0 : o.cameraComponent) == null || a.changeToThirdPersonView()
- }
- }
|