diff --git a/src/arScene.ts b/src/arScene.ts index 1ea9338..1544e92 100644 --- a/src/arScene.ts +++ b/src/arScene.ts @@ -1,58 +1,17 @@ -import * as THREE from 'three' - export interface ARState { - renderer: THREE.WebGLRenderer - scene: THREE.Scene - camera: THREE.PerspectiveCamera - logFrame: number -} - -function computeVFov(hfovDeg: number, aspect: number): number { - const hfovRad = hfovDeg * Math.PI / 180 - return 2 * Math.atan(Math.tan(hfovRad / 2) / aspect) * 180 / Math.PI + canvas: HTMLCanvasElement } export function createARScene( canvas: HTMLCanvasElement, - width: number, - height: number, - hfov: number, - heightOffset: number, + _width: number, + _height: number, + _hfov: number, + _heightOffset: number, ): ARState { - const renderer = new THREE.WebGLRenderer({ - canvas, - alpha: true, - antialias: true, - premultipliedAlpha: false, - }) - renderer.setSize(width, height) - renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)) - renderer.setClearColor(0x000000, 0) - - const scene = new THREE.Scene() - - const aspect = width / height - const vfov = computeVFov(hfov, aspect) - - const camera = new THREE.PerspectiveCamera(vfov, aspect, 0.01, 100) - camera.position.set(0, heightOffset + 0.75, 0) - camera.lookAt(0, 0, -5) - - return { renderer, scene, camera, logFrame: 0 } + return { canvas } } -export function updateARScene(state: ARState) { - state.logFrame++ - state.renderer.render(state.scene, state.camera) -} +export function updateARScene(_state: ARState) {} -export function disposeARScene(state: ARState) { - state.renderer.dispose() - state.scene.traverse((obj) => { - if (obj instanceof THREE.Mesh || obj instanceof THREE.Line) { - obj.geometry.dispose() - const mats = Array.isArray(obj.material) ? obj.material : [obj.material] - mats.forEach((m) => m.dispose()) - } - }) -} +export function disposeARScene(_state: ARState) {}