feat: loading bar

This commit is contained in:
TrèsAbhi committed 2024-01-04 13:37:36 -06:00
1 parent 0a4e696bc1
commit 6ca9e637dc
5 files changed
+97 -120

No files matched your search

@@ -1,25 +1,18 @@
import { OrbitControls } from '@react-three/drei';
import { useThree } from '@react-three/fiber';
import { RefObject, useEffect, useRef } from 'react';
import { Box3, Object3D } from 'three';
import { useEffect, useRef } from 'react';
import { OrbitControls as OrbitControlsClass } from 'three-stdlib';
import { useTankopedia } from '../../../../../stores/tankopedia';
interface ControlsProps {
fit: RefObject<Object3D>;
}
export function Controls({ fit }: ControlsProps) {
export function Controls() {
const camera = useThree((state) => state.camera);
const orbitControls = useRef<OrbitControlsClass>(null);
const enabled = useTankopedia((state) => state.model.controlsEnabled);
useEffect(() => {
const box = new Box3().setFromObject(fit.current!);
orbitControls.current?.target.set(0, (box.min.y + box.max.y) / 2, 0);
camera.position.set(-5, (box.min.y + box.max.y) / 2, -15);
}, [fit.current]);
camera.position.set(-5, 4, -20);
orbitControls.current?.target.set(0, 1.5, 0);
}, []);
return <OrbitControls ref={orbitControls} enabled={enabled} />;
}