All files / app/codeCharta/ui/codeMap/threeViewer threeCamera.service.ts

100% Statements 12/12
100% Branches 0/0
100% Functions 2/2
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2239x 39x     39x 39x 39x 39x       2x 2x 2x       2x 2x      
import { Injectable } from "@angular/core"
import { PerspectiveCamera, Vector3 } from "three"
 
@Injectable({ providedIn: "root" })
export class ThreeCameraService {
    static VIEW_ANGLE = 45
    static NEAR = 50
    static FAR = 200_000 //TODO optimize renderer for far objects
    camera: PerspectiveCamera
 
    init(containerWidth: number, containerHeight: number) {
        const aspect = containerWidth / containerHeight
        this.camera = new PerspectiveCamera(ThreeCameraService.VIEW_ANGLE, aspect, ThreeCameraService.NEAR, ThreeCameraService.FAR)
        this.setPosition(new Vector3(0, 300, 1000))
    }
 
    setPosition(position: Vector3) {
        this.camera.position.set(position.x, position.y, position.z)
        this.camera.lookAt(0, 0, 0)
    }
}