immersive2/src/menus/abstractMenu.ts

24 lines
847 B
TypeScript

import {Scene, TransformNode, Vector3, WebXRDefaultExperience} from "@babylonjs/core";
import {Controllers} from "../controllers/controllers";
import {Handle} from "../objects/handle";
import {DefaultScene} from "../defaultScene";
export abstract class AbstractMenu {
protected handle: Handle;
protected scene: Scene;
protected xr: WebXRDefaultExperience;
protected controllers: Controllers;
protected constructor(xr: WebXRDefaultExperience, controllers: Controllers) {
this.scene = DefaultScene.Scene;
this.xr = xr;
this.controllers = controllers;
}
protected createHandle(mesh: TransformNode, offset: Vector3, rotation: Vector3) {
this.handle = new Handle(mesh, offset, rotation);
}
public toggle() {
throw new Error("AbstractMenu.toggle() not implemented");
}
}