import * as THREE from 'three'; import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer'; export default class CSSRenderer { constructor(experience) { this.experience = experience; this.container = experience.container; this.canvas = experience.canvas; this.sizes = experience.sizes; this.scene = experience.scene; this.camera = experience.camera; this.setInstance(); } setInstance() { this.instance = new CSS2DRenderer(); this.instance.setSize(this.sizes.width, this.sizes.height); this.instance.domElement.style.position = 'absolute'; this.instance.domElement.style.top = '0px'; this.instance.domElement.style.left = '0px'; this.instance.domElement.style.pointerEvents = 'none'; this.container.appendChild(this.instance.domElement); } resize() { this.instance.setSize(this.sizes.width, this.sizes.height); this.instance.setPixelRatio(this.sizes.pixelRatio); } update() { this.instance.render(this.scene, this.camera.instance); } destroy() { this.instance.domElement.remove(); } }