UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

37 lines (36 loc) 1.11 kB
"use strict"; 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; } }