UNPKG

@enable3d/three-graphics

Version:

3D library wrapping three.js and ammo.js

38 lines 1.55 kB
/** * @author Yannick Deubel (https://github.com/yandeu) * @copyright Copyright (c) 2021 Yannick Deubel; Project Url: https://github.com/enable3d/enable3d * @license {@link https://github.com/enable3d/enable3d/blob/master/LICENSE|LGPL-3.0} */ import { Scene, Vector2 } from 'three'; import Cameras from '../plugins/cameras.js'; import { setOrbitControls, setParent } from './_misc.js'; import { updateEvents, setSize } from './_misc.js'; export { updateEvents, getParent, destroy, setSize } from './_misc.js'; /** Init the 2D element support. */ export const init = (renderer, config = {}) => { // To allow render overlay on top of the 3d camera renderer.autoClear = false; const { width = window.innerWidth, height = window.innerHeight, size = renderer.getSize(new Vector2()) } = config; setSize(size.x, size.y); return { // {x: 0, y: 0} is bottomLeft camera: Cameras.Orthographic({ left: 0, right: width, bottom: 0, top: height }), scene: new Scene() }; }; /** Use this if you need events on the 2D elements. */ export const initEvents = ({ canvas, orbitControls }) => { setOrbitControls(orbitControls); setParent(canvas); }; export const preRender = (renderer) => { renderer.clear(); }; export const postRender = (renderer, flatArea) => { if (flatArea && flatArea.scene && flatArea.camera) { renderer.clearDepth(); renderer.render(flatArea.scene, flatArea.camera); updateEvents(flatArea.camera); } }; //# sourceMappingURL=flat.js.map