jsketcher/web/app/cad/craft/spatialCurve/spatialCurveOperation.js
2019-01-16 19:19:27 -08:00

65 lines
1.3 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import CSys from '../../../math/csys';
import {MDatum} from '../../model/mdatum';
import spatialCurveOpSchema from './spatialCurveOpSchema';
import SpatialCurveWizard from './SpatialCurveWizard';
import spatialCurveEditor from './editor/spatialCurveEditor';
function updateCSys(csys, params, findFace) {
csys.copy(CSys.ORIGIN);
if (params.originatingFace) {
const face = findFace(params.originatingFace);
if (face) {
csys.copy(face.csys);
}
}
csys.origin.x += params.x;
csys.origin.y += params.y;
csys.origin.z += params.z;
}
function create(params, {cadRegistry}) {
let csys = CSys.origin();
updateCSys(csys, params, cadRegistry.findFace);
return {
consumed: [],
created: [new MDatum(csys)]
}
}
function previewer(ctx, initialParams, updateParams) {
let editor = spatialCurveEditor(ctx.services.cadScene.workGroup, ctx.services.viewer, [CSys.ORIGIN]);
function update(params) {
// updateCSys(datum3D.csys, params, ctx.services.cadRegistry.findFace);
}
function dispose() {
editor.dispose();
}
update(initialParams);
return {
update, dispose
}
}
export default {
id: 'SPATIAL_CURVE',
label: 'Edit Spatial Curve',
icon: 'img/cad/plane',
info: 'create/edit spatial curve',
previewer,
run: create,
form: SpatialCurveWizard,
schema: spatialCurveOpSchema  
};