@realsee/dnalogel
Version:
69 lines (68 loc) • 1.8 kB
JavaScript
var f = Object.defineProperty;
var k = (s, e, r) => e in s ? f(s, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : s[e] = r;
var i = (s, e, r) => (k(s, typeof e != "symbol" ? e + "" : e, r), r);
import { BaseUtil as w } from "./BaseUtil.js";
import * as a from "three";
import { transformPosition as n } from "../five/transformPosition.js";
class g extends w {
constructor(r) {
super(r);
i(this, "_workCode");
}
/**
* @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, t;
return (t = (r = this.five.works) == null ? void 0 : r.find((o) => o.workCode === this.workCode)) != null ? t : this.five.work;
}
get observers() {
return this.work.observers;
}
get transform() {
var t, o;
const r = (o = (t = this.work) == null ? void 0 : t.options) == null ? void 0 : o.transform;
return r ? r.clone() : new a.Matrix4();
}
/**
* @description: 获取全景点坐标
*/
getObserverPosition(r) {
var o;
const t = (o = this.getObserver(r)) == null ? void 0 : o.position;
if (t)
return n(t, this.transform);
}
/**
* @description: 获取全景点位和模型的地面坐标
*/
getObserverStandingPosition(r) {
var o;
const t = (o = this.getObserver(r)) == null ? void 0 : o.standingPosition;
if (t)
return n(t, this.transform);
}
/**
* @description: 获取observer
*/
getObserver(r) {
var t;
return (t = this.observers) == null ? void 0 : t[r];
}
}
export {
g as WorkUtil
};