filestash/public/assets/pages/viewerpage/application_3d/scene_cube.js
Mickael d30c3120b6
feature (plugins): expand and migrate plugin - #803
* chore (dockerfile): cleanup dockerfile

* feature (plugin): extend plugin interface

* chore (docker): setup new Dockerfile

* chore (dockerfile): update dockerfile
2025-01-13 15:41:04 +11:00

23 lines
882 B
JavaScript

import { onDestroy } from "../../../lib/skeleton/index.js";
import { ViewCubeGizmo, SimpleCameraControls, ObjectPosition } from "../../../../lib/vendor/three/viewcube.js";
export default function({ camera, renderer, refresh, controls }) {
const viewCubeGizmo = new ViewCubeGizmo(camera, renderer, {
pos: ObjectPosition.RIGHT_BOTTOM,
dimension: 130,
faceColor: 0xf9f9fa,
outlineColor: 0xe2e2e2,
});
const simpleCameraControls = new SimpleCameraControls(camera);
simpleCameraControls.setControls(controls);
refresh.push(() => {
viewCubeGizmo.update();
simpleCameraControls.update();
});
const onCubeClick = (event) => simpleCameraControls.flyTo(event.quaternion);
viewCubeGizmo.addEventListener("change", onCubeClick);
onDestroy(() => viewCubeGizmo.removeEventListener("change", onCubeClick));
}