UNPKG

gpu-curtains

Version:

gpu-curtains is a 3D WebGPU rendering engine. It can be used as a standalone 3D engine, but also includes extra classes focused on mapping 3d objects to DOM elements; It allows users to synchronize values such as position, sizing, or scale between them.

37 lines (34 loc) 1.6 kB
import { throwError } from '../../utils/utils.mjs'; import { Object3D } from '../objects3D/Object3D.mjs'; const formatRendererError = (renderer, rendererType = "GPURenderer", type) => { const error = type ? `Unable to create ${type} because the ${rendererType} is not defined: ${renderer}` : `The ${rendererType} is not defined: ${renderer}`; throwError(error); }; const isRenderer = (renderer, type) => { renderer = renderer && renderer.renderer || renderer; const isRenderer2 = renderer && (renderer.type === "GPURenderer" || renderer.type === "GPUCameraRenderer" || renderer.type === "GPUCurtainsRenderer"); if (!isRenderer2) { formatRendererError(renderer, "GPURenderer", type); } return renderer; }; const isCameraRenderer = (renderer, type) => { renderer = renderer && renderer.renderer || renderer; const isCameraRenderer2 = renderer && (renderer.type === "GPUCameraRenderer" || renderer.type === "GPUCurtainsRenderer"); if (!isCameraRenderer2) { formatRendererError(renderer, "GPUCameraRenderer", type); } return renderer; }; const isCurtainsRenderer = (renderer, type) => { renderer = renderer && renderer.renderer || renderer; const isCurtainsRenderer2 = renderer && renderer.type === "GPUCurtainsRenderer"; if (!isCurtainsRenderer2) { formatRendererError(renderer, "GPUCurtainsRenderer", type); } return renderer; }; const isProjectedMesh = (object) => { return "geometry" in object && "material" in object && object instanceof Object3D ? object : false; }; export { isCameraRenderer, isCurtainsRenderer, isProjectedMesh, isRenderer };