mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
61 lines
No EOL
1.4 KiB
TypeScript
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"; |