jsketcher/web/app/cad/workbench/workbenchesLoaderPlugin.ts
2022-08-13 02:57:38 -07:00

42 lines
No EOL
1.4 KiB
TypeScript

import {WorkbenchRegistry} from "workbenches/registry";
import planeOperation from "cad/craft/primitives/simplePlane/simplePlaneOperation";
import createDatumOperation from "cad/craft/datum/create/createDatumOperation";
import moveDatumOperation from "cad/craft/datum/move/moveDatumOperation";
import rotateDatumOperation from "cad/craft/datum/rotate/rotateDatumOperation";
import datumOperation from "cad/craft/primitives/plane/planeOperation";
import {Plugin} from "plugable/pluginSystem";
import {WorkbenchService} from "cad/workbench/workbenchService";
import {OperationService} from "cad/craft/operationBundle";
export interface WorkbenchesLoaderInputContext {
workbenchService: WorkbenchService,
operationService: OperationService
}
export const WorkbenchesLoaderPlugin: Plugin<WorkbenchesLoaderInputContext, {}> = {
inputContextSpec: {
workbenchService: 'required',
operationService: 'required'
},
outputContextSpec: {},
activate(ctx) {
registerCoreOperations(ctx);
WorkbenchRegistry.forEach(wConfig => ctx.workbenchService.registerWorkbench(wConfig));
ctx.workbenchService.switchToDefaultWorkbench();
}
}
function registerCoreOperations(ctx: WorkbenchesLoaderInputContext) {
ctx.operationService.registerOperations([
planeOperation,
createDatumOperation,
moveDatumOperation,
rotateDatumOperation,
datumOperation,
] as any);
}