@orca-fe/x-map
Version:
39 lines (38 loc) • 1.3 kB
JavaScript
/* eslint-disable @typescript-eslint/no-explicit-any */
import { EventEmitter } from 'events';
import { Object3D } from 'three';
export default class ThreeObject extends EventEmitter {
constructor(options = {}) {
super();
this.object3D = new Object3D();
const { z = 0, pointerEvents = false } = options;
this.options = options;
this.z = z;
this.pointerEvents = pointerEvents;
this.object3D.position.set(0, 0, this.z);
}
setZ(z) {
this.z = z;
this.object3D.position.set(0, 0, this.z);
}
setLayer(layer) {
var _a;
this.layer = layer;
if (!(layer === null || layer === void 0 ? void 0 : layer.map))
return;
const { threeCenter } = layer.map;
if (threeCenter[0] !== ((_a = this.threeCenter) === null || _a === void 0 ? void 0 : _a[0]) || threeCenter[1] !== this.threeCenter[1]) {
this.threeCenter = threeCenter;
this.createObject();
}
}
emit(eventName, ...args) {
return super.emit(eventName, ...args);
}
on(eventName, listener) {
return super.on(eventName, listener);
}
off(eventName, listener) {
return super.off(eventName, listener);
}
}