@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
24 lines (23 loc) • 913 B
JavaScript
;
import { TypedNode } from "../../engine/nodes/_Base";
import { CameraAttribute } from "./CoreCamera";
import { isNumber } from "../Type";
import { ObjType } from "../../engine/poly/registers/nodes/types/Obj";
import { coreObjectClassFactory } from "../geometry/CoreObjectFactory";
export class CoreCameraRenderSceneController {
static isRenderSceneNode(node) {
return node.type() == ObjType.SCENE;
}
static renderScene(options) {
const { scene, camera } = options;
let sceneNode;
const foundNodeId = coreObjectClassFactory(camera).attribValue(camera, CameraAttribute.RENDER_SCENE_NODE_ID);
if (foundNodeId && isNumber(foundNodeId)) {
const foundNode = scene.graph.nodeFromId(foundNodeId);
if (foundNode && foundNode instanceof TypedNode && this.isRenderSceneNode(foundNode)) {
sceneNode = foundNode;
return sceneNode.object;
}
}
}
}