jsketcher/web/app/cad/scene/sceneBundle.ts
2022-11-15 20:34:17 -08:00

61 lines
No EOL
1.4 KiB
TypeScript

import Viewer from './viewer';
import CadScene from './cadScene';
import {ApplicationContext} from "cad/context";
import {ViewCube} from "cad/scene/controls/ViewCube";
export function activate(ctx: ApplicationContext) {
const {services} = ctx;
const {dom} = services;
const viewer = new Viewer(dom.viewerContainer);
services.viewer = viewer;
services.cadScene = new CadScene(viewer.sceneSetup.rootGroup);
ctx.viewer = viewer;
ctx.cadScene = services.cadScene;
let showMenu = false;
dom.viewerContainer.addEventListener('mousedown', (e) => {
if (e.which == 3 || e.button == 2) {
showMenu = true;
}
});
dom.viewerContainer.addEventListener('mousemove', (e) => {
showMenu = false;
});
dom.viewerContainer.addEventListener('mouseup', (e) => {
if (showMenu) {
ctx.actionService.run('menu.contextual', {
x: e.offsetX,
y: e.offsetY
})
}
}, false);
// let sketcher3D = new Sketcher3D(dom.viewerContainer);
// services.viewer.setCameraMode(CAMERA_MODE.ORTHOGRAPHIC);
document.addEventListener('contextmenu', e => {
// @ts-ignore
if (e.target.closest('#viewer-container')) {
e.preventDefault();
}
});
ctx.domService.contributeComponent(ViewCube);
}
export function dispose(ctx) {
ctx.services.viewer.dispose();
}
export interface SceneBundleContext {
cadScene: CadScene;
viewer: Viewer;
}
export const BundleName = "@Scene";