diff --git a/web/app/cad/craft/cutExtrude/cutExtrude.js b/web/app/cad/craft/cutExtrude/cutExtrude.js
deleted file mode 100644
index cb8933d9..00000000
--- a/web/app/cad/craft/cutExtrude/cutExtrude.js
+++ /dev/null
@@ -1,114 +0,0 @@
-import {enclose} from 'brep/operations/brep-enclose'
-import {BooleanOperation, combineShells} from '../booleanOperation'
-import {Matrix3x4} from 'math/matrix';
-import {equal} from 'math/equality';
-
-
-export function Extrude(params, ctx) {
- // return doOperation(params, ctx, false);
-
- return ctx.craftEngine.cutExtrude(false, params);
-}
-
-export function Cut(params, ctx) {
-
- // return doOperation(params, ctx, true);
-
- return ctx.craftEngine.cutExtrude(true, params);
-}
-
-export function doOperation(params, ctx, cut) {
- const {cadRegistry, sketchStorageService} = ctx;
- const face = cadRegistry.findFace(params.face);
- const solid = face.solid;
-
- let sketch = sketchStorageService.readSketch(face.id);
- if (!sketch) throw 'sketch not found for the face ' + face.id;
-
- let vector = resolveExtrudeVector(cadRegistry, face, params, !cut);
- const details = getEncloseDetails(params, sketch.fetchContours(), vector, face.csys, face.surface, !cut, false);
- const operand = combineShells(details.map(d => enclose(d.basePath, d.lidPath, d.baseSurface, d.lidSurface)));
- return BooleanOperation(face, solid, operand, cut ? 'subtract' : 'union');
-}
-
-export function resolveExtrudeVector(cadRegistry, face, params, invert) {
- let vector = null;
- if (params.datumAxisVector) {
- const datumAxis = cadRegistry.findDatumAxis(params.datumAxisVector);
- if (datumAxis) {
- vector = datumAxis.dir;
- invert = false;
- }
- } else if (params.edgeVector) {
- const edge = cadRegistry.findEdge(params.edgeVector);
- const curve = edge.brepEdge.curve;
- if (curve.degree === 1) {
- vector = edge.brepEdge.curve.tangentAtParam(edge.brepEdge.curve.uMin);
- if (vector.dot(face.csys.z) < 0 === invert) {
- vector = vector.negate();
- }
- invert = false;
- }
- } else if (params.sketchSegmentVector) {
- const mSegment = cadRegistry.findSketchObject(params.sketchSegmentVector);
- if (mSegment.sketchPrimitive.isSegment) {
- let [a, b] = mSegment.sketchPrimitive.tessellate().map(mSegment.face.sketchToWorldTransformation.apply);
- vector = b.minus(a)._normalize();
- if (vector.dot(face.csys.z) < 0 === invert) {
- vector._negate();
- }
- invert = false;
- }
- }
- if (!vector) {
- invert = !invert;
- vector = face.csys.z;
- }
-
- if (params.flip) {
- invert = !invert;
- }
-
- let value = params.value;
- if (value < 0) {
- value = Math.abs(value);
- invert = !invert;
- }
-
- if (invert) {
- vector = vector.negate();
- }
-
- return vector.multiply(value);
-}
-
-export function getEncloseDetails(params, contours, target, csys, sketchSurface, invert) {
- let details = [];
- for (let contour of contours) {
- if (invert) contour.reverse();
- const basePath = contour.transferInCoordinateSystem(csys);
- if (invert) contour.reverse();
-
- const lidPath = [];
- let applyPrism = !equal(params.prism, 1);
- let prismTr = null;
- if (applyPrism) {
- prismTr = new Matrix3x4();
- prismTr.scale(params.prism, params.prism, params.prism);
- }
- for (let i = 0; i < basePath.length; ++i) {
- const curve = basePath[i];
- let lidCurve = cur
- ve.translate(target);
- if (applyPrism) {
- lidCurve = lidCurve.transform(prismTr);
- }
- lidPath.push(lidCurve);
- }
-
- const baseSurface = sketchSurface.tangentPlane(0, 0);
- const lidSurface = baseSurface.translate(target).invert();
- details.push({basePath, lidPath, baseSurface, lidSurface});
- }
- return details;
-}
\ No newline at end of file
diff --git a/web/app/cad/craft/e0/craftEngine.ts b/web/app/cad/craft/e0/craftEngine.ts
index ddeef5de..e386d2c6 100644
--- a/web/app/cad/craft/e0/craftEngine.ts
+++ b/web/app/cad/craft/e0/craftEngine.ts
@@ -12,7 +12,7 @@ import {
import * as vec from 'math/vec';
import {MOpenFaceShell} from '../../model/mopenFace';
import {BooleanType, EngineAPI_V1} from "engine/api";
-import {resolveExtrudeVector} from "../cutExtrude/cutExtrude";
+
import {ApplicationContext} from "context";
import {MBrepShell} from "../../model/mshell";
diff --git a/web/app/cad/craft/spatialCurve/SpatialCurveWizard.jsx b/web/app/cad/craft/spatialCurve/SpatialCurveWizard.jsx
deleted file mode 100644
index 5d414535..00000000
--- a/web/app/cad/craft/spatialCurve/SpatialCurveWizard.jsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from 'react';
-import {Group} from '../wizard/components/form/Form';
-
-export default function SpatialCurveWizard() {
- return
- ;
-}
\ No newline at end of file
diff --git a/web/app/cad/craft/spatialCurve/editor/controlPointObject.js b/web/app/cad/craft/spatialCurve/editor/controlPointObject.js
deleted file mode 100644
index 4e0fe51e..00000000
--- a/web/app/cad/craft/spatialCurve/editor/controlPointObject.js
+++ /dev/null
@@ -1,121 +0,0 @@
-import DatumObject3D from '../../datum/datumObject';
-import {
- ArcCurve, CatmullRomCurve3, CubicBezierCurve3, CurvePath, ExtrudeBufferGeometry, Mesh, MeshBasicMaterial, Object3D,
- PolyhedronGeometry,
- Shape,
- SphereGeometry, Vector2, Vector3
-} from 'three';
-import {CSYS_SIZE_MODEL} from '../../datum/csysObject';
-import {DisposableMesh} from 'scene/objects/disposableMesh';
-
-export default class ControlPointObject3D extends DatumObject3D {
-
- constructor(csys, viewer) {
- super(csys, viewer);
- this.affordanceArea = new AffordanceArea();
- this.csysObj.add(this.affordanceArea);
- const xrh = new RotationHandleHolder(new RotationHandle(0xff0000));
- const yrh = new RotationHandleHolder(new RotationHandle(0x00ff00));
- const zrh = new RotationHandleHolder(new RotationHandle(0x0000ff));
-
- // yrh.rotateOnAxis(new Vector3(1, 0, 0), Math.PI * 0.5);
-
- // zrh.rotateOnAxis(new Vector3(1, 0, 0), Math.PI * 0.5);
-
- // this.csysObj.add(xrh);
- this.csysObj.add(yrh);
- // this.csysObj.add(zrh);
- }
-
-}
-
-class RotationHandleHolder extends Object3D {
-
- constructor(handle, rotation) {
-
- super();
-
- let size = CSYS_SIZE_MODEL * 1.05;
-
-
- this.position.set(0, 0, -size);
- handle.scale.set(size, size, size);
-
- this.add(handle);
- this.dispose = () => handle.dispose();
- }
-}
-
-class RotationHandle extends DisposableMesh {
-
- constructor(color) {
-
- const path = new CurvePath();
-
- const C = 0.551915024494;
-
- path.curves.push(new CubicBezierCurve3(
- new Vector3( 0, 1, 0 ),
- new Vector3( C, 1, 0 ),
- new Vector3( 1, C, 0 ),
- new Vector3( 1, 0, 0 ),
- ),
- new CubicBezierCurve3(
- new Vector3( 1, 0, 0 ),
- new Vector3( 1, -C, 0 ),
- new Vector3( C, -1, 0 ),
- new Vector3( 0, -1, 0 ),
- ),
- new CubicBezierCurve3(
- new Vector3( 0, -1, 0 ),
- new Vector3( -C, -1, 0 ),
- new Vector3( -1, -C, 0 ),
- new Vector3( -1, 0, 0 ),
- )
- );
-
- let extrudeSettings = {
- steps: 50,
- extrudePath: path
- };
-
-
- let S = 0.01;
- let shape = new Shape( [new Vector3(-S, -S), new Vector3(S, -S), new Vector3(S, S), new Vector3(-S, S), new Vector3(-S, -S)] );
-
- let geometry = new ExtrudeBufferGeometry( [shape], extrudeSettings );
-
- super(geometry, new MeshBasicMaterial({
- // transparent: true,
- // opacity: 0.5,
- color,
- // visible: false
- }));
- }
-
- dispose() {
- this.geometry.dispose();
- this.material.dispose();
- }
-}
-
-
-class AffordanceArea extends DisposableMesh {
-
- constructor() {
- super(new SphereGeometry( 1, 8, 8), new MeshBasicMaterial({
- transparent: true,
- opacity: 0.5,
- color: 0xAA8439,
- // visible: false
- }));
-
- let size = CSYS_SIZE_MODEL * 1.05;
- this.scale.set(size, size, size);
- }
-
- dispose() {
- this.geometry.dispose();
- this.material.dispose();
- }
-}
diff --git a/web/app/cad/craft/spatialCurve/editor/spatialCurveEditor.js b/web/app/cad/craft/spatialCurve/editor/spatialCurveEditor.js
deleted file mode 100644
index 0608e076..00000000
--- a/web/app/cad/craft/spatialCurve/editor/spatialCurveEditor.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import * as SceneGraph from 'scene/sceneGraph';
-import ControlPointObject3D from './controlPointObject';
-
-export default function spatialCurveEditor(workGroup, viewer, frames) {
-
- function init() {
- frames.forEach(addPoint);
- }
-
-
- function addPoint(pCsys) {
- SceneGraph.addToGroup(workGroup, new ControlPointObject3D(pCsys, viewer));
- viewer.requestRender();
- }
-
- function dispose() {
-
- }
-
- init();
-
- return {
- dispose
- }
-}
-
-
diff --git a/web/app/cad/craft/spatialCurve/spatialCurveOpSchema.js b/web/app/cad/craft/spatialCurve/spatialCurveOpSchema.js
deleted file mode 100644
index b27bf780..00000000
--- a/web/app/cad/craft/spatialCurve/spatialCurveOpSchema.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- points: {
- type: 'number',
- defaultValue: 0
- },
-}
\ No newline at end of file
diff --git a/web/app/cad/craft/spatialCurve/spatialCurveOperation.js b/web/app/cad/craft/spatialCurve/spatialCurveOperation.js
deleted file mode 100644
index 2f596087..00000000
--- a/web/app/cad/craft/spatialCurve/spatialCurveOperation.js
+++ /dev/null
@@ -1,65 +0,0 @@
-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
-};
-
-
-
diff --git a/web/app/cad/partImport/importStepOperation/ImportStepForm.tsx b/web/app/cad/partImport/importStepOperation/ImportStepForm.tsx
deleted file mode 100644
index dd96ae00..00000000
--- a/web/app/cad/partImport/importStepOperation/ImportStepForm.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from 'react';
-import {Group} from "../../craft/wizard/components/form/Form";
-import {TextField} from "../../craft/wizard/components/form/Fields";
-
-export function ImportStepForm() {
-
- return
-
- ;
-}
\ No newline at end of file
diff --git a/web/app/cad/partImport/importStepOperation/ImportStepLocalForm.tsx b/web/app/cad/partImport/importStepOperation/ImportStepLocalForm.tsx
deleted file mode 100644
index 4ffe2ea0..00000000
--- a/web/app/cad/partImport/importStepOperation/ImportStepLocalForm.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import React from 'react';
-import {Group} from "../../craft/wizard/components/form/Form";
-import {FileField} from "../../craft/wizard/components/form/Fields";
-
-export function ImportStepLocalForm() {
-
- return
-
- ;
-}
\ No newline at end of file
diff --git a/web/app/cad/partImport/importStepOperation/importStepOperation.ts b/web/app/cad/partImport/importStepOperation/importStepOperation.ts
deleted file mode 100644
index 76fa41f0..00000000
--- a/web/app/cad/partImport/importStepOperation/importStepOperation.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import {ImportStepForm} from "./ImportStepForm";
-import importStepSchema from "./importStepSchema";
-import {OperationDescriptor} from "../../craft/operationPlugin";
-import {ApplicationContext} from "context";
-import {OperationResult} from "../../craft/craftPlugin";
-import {GiLunarModule} from "react-icons/gi";
-import {BiCubeAlt} from "react-icons/bi";
-import {checkHttpResponseStatus} from "network/checkHttpResponseStatus";
-import { LocalFile } from "ui/components/controls/FileControl";
-import { ImportStepLocalForm } from "./ImportStepLocalForm";
-import { string } from "prop-types";
-
-export interface ImportStepOperationParams {
- url: string,
-}
-
-export interface ImportStepFromLocalOperationParams {
-
- file: LocalFile;
-
-}
-
-export const ImportStepOperation: OperationDescriptor = {
-
- id: 'IMPORT_STEP_FILE',
- label: 'import step file',
- icon: GiLunarModule,
- info: 'import step file from external url',
- paramsInfo: ({url}) => url,
- previewGeomProvider: null,
- run: importStepFile,
- form: ImportStepForm,
- schema: importStepSchema
-};
-
-export const ImportStepFromLocalFileOperation: OperationDescriptor = {
-
- id: 'IMPORT_STEP_LOCAL_FILE',
- label: 'import local step file',
- icon: BiCubeAlt,
- info: 'import step file from local file',
- paramsInfo: ({file}) => file && file.fileName,
- previewGeomProvider: null,
- run: importStepLocalFile,
- form: ImportStepLocalForm,
- schema: {
- file: {
- type: 'object',
- schema: {
- fileName: {
- type: 'string',
- },
- constent: {
- type: 'string',
- }
- }
- }
- }
-};
-
-function importStepFile(params: ImportStepOperationParams, ctx: ApplicationContext): Promise {
-
- const {cadRegistry, remotePartsService} = ctx;
-
- return fetch(params.url).then(checkHttpResponseStatus).then(res => res.text()).then(data => {
-
- console.log(data);
- FS.writeFile('/tmp/test', data);
-
- return ctx.services.craftEngine.stepImport({
- file: '/tmp/test'
- });
- })
-
-
-}
-
-function importStepLocalFile(params: ImportStepFromLocalOperationParams, ctx: ApplicationContext): Promise {
-
- const {cadRegistry, remotePartsService} = ctx;
-
- console.log(params.file.content);
- FS.writeFile('/tmp/test', params.file.content);
-
- return ctx.services.craftEngine.stepImport({
- file: '/tmp/test'
- });
-
-}
\ No newline at end of file
diff --git a/web/app/cad/partImport/importStepOperation/importStepSchema.js b/web/app/cad/partImport/importStepOperation/importStepSchema.js
deleted file mode 100644
index 011c1541..00000000
--- a/web/app/cad/partImport/importStepOperation/importStepSchema.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- url: {
- type: 'string'
- }
-}
diff --git a/web/app/cad/partImport/remotePartsPlugin.ts b/web/app/cad/partImport/remotePartsPlugin.ts
index 090bcbe2..7800c8dd 100644
--- a/web/app/cad/partImport/remotePartsPlugin.ts
+++ b/web/app/cad/partImport/remotePartsPlugin.ts
@@ -16,13 +16,12 @@ import {activate as activateExpressionsPlugin} from '../expressions/expressionsP
import {activate as activateCadRegistryPlugin} from '../craft/cadRegistryPlugin';
import {activate as activateStoragePlugin} from '../storage/storagePlugin';
import {activate as activateSketchStoragePlugin} from '../sketch/sketchStoragePlugin';
-import {ImportStepFromLocalFileOperation, ImportStepOperation} from "./importStepOperation/importStepOperation";
export function activate(ctx: ApplicationContext) {
- ctx.domService.contributeComponent(CatalogPartChooser);
+ //ctx.domService.contributeComponent(CatalogPartChooser);
- ctx.operationService.registerOperations([ImportPartOperation, ImportStepOperation, ImportStepFromLocalFileOperation]);
+ //ctx.operationService.registerOperations([ImportPartOperation, ImportStepOperation, ImportStepFromLocalFileOperation]);
function loadDefinedCatalogs(): Promise<[CatalogCategory, PartsCatalog][]> {
diff --git a/web/app/cad/workbench/workbenchesLoaderPlugin.ts b/web/app/cad/workbench/workbenchesLoaderPlugin.ts
index 1620983b..a9b6bab1 100644
--- a/web/app/cad/workbench/workbenchesLoaderPlugin.ts
+++ b/web/app/cad/workbench/workbenchesLoaderPlugin.ts
@@ -4,7 +4,6 @@ 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 spatialCurveOperation from "cad/craft/spatialCurve/spatialCurveOperation";
import {Plugin} from "plugable/pluginSystem";
import {WorkbenchService} from "cad/workbench/workbenchService";
import {OperationService} from "cad/craft/operationPlugin";
@@ -39,6 +38,5 @@ function registerCoreOperations(ctx: WorkbenchesLoaderInputContext) {
moveDatumOperation,
rotateDatumOperation,
datumOperation,
- spatialCurveOperation,
] as any);
}
\ No newline at end of file