@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
58 lines (57 loc) • 1.71 kB
JavaScript
;
import { NamedFunction2, NamedFunction3 } from "./_Base";
import { CAMERA_CONTROLS_EVENTS, CameraControlsEvent } from "../viewers/utils/ViewerControlsController";
export class setViewer extends NamedFunction2 {
static type() {
return "setViewer";
}
func(className, addClass) {
const viewer = this.scene.viewersRegister.firstViewer();
const canvas = viewer == null ? void 0 : viewer.canvas();
if (!canvas) {
return;
}
if (viewer) {
if (addClass) {
canvas.classList.add(className);
} else {
canvas.classList.remove(className);
}
}
}
}
export class setViewerControls extends NamedFunction3 {
static type() {
return "setViewerControls";
}
func(active, updateTarget, controlsTarget) {
const viewer = this.scene.viewersRegister.firstViewer();
if (!viewer) {
return;
}
const controlsController = viewer.controlsController();
controlsController.setActive(active);
if (updateTarget) {
controlsController.setTarget(controlsTarget);
}
}
}
export class onViewerControlsEvent extends NamedFunction2 {
static type() {
return "onViewerControlsEvent";
}
func(callbacks, evaluator) {
const viewer = this.scene.viewersRegister.firstViewer();
if (!viewer) {
return;
}
for (const eventName of CAMERA_CONTROLS_EVENTS) {
viewer.controlsController().addEventListener(CameraControlsEvent[eventName], callbacks[eventName]);
}
evaluator.onDispose(() => {
for (const eventName of CAMERA_CONTROLS_EVENTS) {
viewer.controlsController().removeEventListener(CameraControlsEvent[eventName], callbacks[eventName]);
}
});
}
}