mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-17 22:15:44 +01:00
47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
import Viewer from './viewer';
|
|
import CadScene from './cadScene';
|
|
import {externalState, stream} from 'lstream';
|
|
import {AppTabsService} from "../dom/appTabsPlugin";
|
|
|
|
export function defineStreams({streams, services}) {
|
|
streams.cadScene = {
|
|
sceneRendered: stream(),
|
|
cameraMode: externalState(() => services.viewer.getCameraMode(), mode => services.viewer.setCameraMode(mode))
|
|
};
|
|
}
|
|
|
|
export function activate({streams, services}) {
|
|
let {dom} = services;
|
|
|
|
const onRendered = () => streams.cadScene.sceneRendered.next();
|
|
|
|
let viewer = new Viewer(dom.viewerContainer, onRendered);
|
|
|
|
services.viewer = viewer;
|
|
services.cadScene = new CadScene(viewer.sceneSetup.rootGroup);
|
|
|
|
|
|
// 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();
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
export function dispose(ctx) {
|
|
ctx.services.viewer.dispose();
|
|
}
|
|
|
|
|
|
declare module 'context' {
|
|
interface ApplicationContext {
|
|
|
|
cadScene: CadScene;
|
|
viewer: Viewer;
|
|
}
|
|
}
|