@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
37 lines (36 loc) • 1.11 kB
JavaScript
;
export class PolyCamerasRegister {
constructor(poly) {
this._cameraNodeTypes = [];
this._registeredViewerCreateCallbackByCamera = /* @__PURE__ */ new Map();
}
registerNodeType(nodeType) {
if (!this._cameraNodeTypes.includes(nodeType)) {
this._cameraNodeTypes.push(nodeType);
}
}
registeredNodeTypes() {
return this._cameraNodeTypes;
}
register(cameraClass, viewerCreateCallback) {
this._registeredViewerCreateCallbackByCamera.set(cameraClass, viewerCreateCallback);
}
createViewer(options) {
const callback = this._registeredViewerCreateCallbackByCamera.get(options.camera.constructor);
if (!callback) {
console.error("no createViewer callback available");
console.log(
"createViewer",
options.camera,
options.camera.constructor,
this._registeredViewerCreateCallbackByCamera
);
return;
}
return callback(options);
}
objectRegistered(object) {
const callback = this._registeredViewerCreateCallbackByCamera.get(object.constructor);
return callback != null;
}
}