jsketcher/web/app/cad/preview/previewPlugin.js
2018-12-15 00:30:26 -08:00

40 lines
No EOL
1.2 KiB
JavaScript

import {createPreviewer} from './scenePreviewer';
export function activate(ctx) {
let {streams, services} = ctx;
streams.wizard.wizardContext.attach(wizCtx => {
if (!wizCtx) {
return;
}
let {operation, materializedWorkingRequest$} = wizCtx;
if (operation.previewGeomProvider || operation.previewer) {
let previewer = null;
materializedWorkingRequest$.attach(({type, params}) => {
if (previewer === null) {
try {
if (operation.previewGeomProvider) {
previewer = createPreviewer(operation.previewGeomProvider, services, params);
} else if (operation.previewer) {
previewer = operation.previewer(ctx, params, wizCtx.updateParams);
}
} catch (e) {
console.error(e);
return;
}
wizCtx.addDisposer(() => {
previewer.dispose();
ctx.services.viewer.requestRender();
});
} else {
try {
previewer.update(params);
} catch (e) {
console.error(e);
}
}
ctx.services.viewer.requestRender();
});
}
});
}