@realsee/dnalogel
Version:
82 lines (81 loc) • 2.31 kB
JavaScript
var a = Object.defineProperty;
var h = (s, t, r) => t in s ? a(s, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : s[t] = r;
var k = (s, t, r) => (h(s, typeof t != "symbol" ? t + "" : t, r), r);
import { BaseUtil as d } from "./BaseUtil.js";
import * as v from "three";
import { transformPosition as f } from "../five/transformPosition.js";
const n = /* @__PURE__ */ new Map();
class c extends d {
constructor(r) {
super(r);
k(this, "_workCode");
}
get fromType() {
var e, i;
const r = this.workCode;
if (n.has(r))
return n.get(r);
const o = (i = (e = JSON.parse(this.work.raw.works[0])) == null ? void 0 : e.from_type) != null ? i : "vr";
return n.set(r, o), o;
}
/**
* @description 设置插件当前的 workCode
*/
set workCode(r) {
this._workCode = r;
}
/**
* @description 获取插件当前的 workCode
*/
get workCode() {
var r;
return (r = this._workCode) != null ? r : this.five.state.workCode;
}
/**
* @description 获取当前的 work
*/
get work() {
var r, o;
return (o = (r = this.five.works) == null ? void 0 : r.find((e) => e.workCode === this.workCode)) != null ? o : this.five.work;
}
get observers() {
var r;
return (r = this.work) == null ? void 0 : r.observers;
}
get transform() {
var o, e, i, w;
const r = (w = (o = this.work) == null ? void 0 : o.transform) != null ? w : (i = (e = this.work) == null ? void 0 : e.options) == null ? void 0 : i.transform;
return r ? r.clone() : new v.Matrix4();
}
getResolvedObserver(r) {
return this.five.works.getResolvedObserver({ workCode: this.workCode, panoIndex: r });
}
/**
* @description 获取全景点坐标
*/
getObserverPosition(r) {
var e;
const o = (e = this.getObserver(r)) == null ? void 0 : e.position;
if (o)
return f(o, this.transform);
}
/**
* @description 获取全景点位和模型的地面坐标
*/
getObserverStandingPosition(r) {
var e;
const o = (e = this.getObserver(r)) == null ? void 0 : e.standingPosition;
if (o)
return f(o, this.transform);
}
/**
* @description 获取observer
*/
getObserver(r) {
var o;
return (o = this.observers) == null ? void 0 : o[r];
}
}
export {
c as WorkUtil
};