UNPKG

@polygonjs/polygonjs

Version:

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

32 lines (31 loc) 1.03 kB
"use strict"; import { RopType } from "../../engine/poly/registers/nodes/types/Rop"; import { CameraAttribute } from "./CoreCamera"; import { isNumber } from "../Type"; import { coreObjectClassFactory } from "../geometry/CoreObjectFactory"; export class CoreCameraCSSRendererController { static isCSSRendererNode(node) { return node.type() == RopType.CSS2D || node.type() == RopType.CSS3D; } static cssRendererConfig(options) { const { canvas, scene, camera } = options; const nodeId = coreObjectClassFactory(camera).attribValue(camera, CameraAttribute.CSS_RENDERER_NODE_ID); if (nodeId == null) { return; } if (!isNumber(nodeId)) { return; } const foundNode = scene.graph.nodeFromId(nodeId); if (!foundNode) { return; } if (!this.isCSSRendererNode(foundNode)) { return; } const cssRendererNode = foundNode; cssRendererNode.compute(); const cssRenderer = cssRendererNode.renderer(canvas); return { cssRenderer, cssRendererNode }; } }