From de8268abb598562894fa5dba12e949b0a5183399 Mon Sep 17 00:00:00 2001 From: Mike Molinari Date: Wed, 20 Jul 2022 00:11:38 +0000 Subject: [PATCH] purdge old modeling commands. --- modules/workbenches/modeler/index.ts | 2 +- web/app/cad/craft/boolean/BooleanWizard.jsx | 11 --- web/app/cad/craft/boolean/booleanOpSchema.js | 12 --- web/app/cad/craft/boolean/booleanOperation.js | 45 ---------- web/app/cad/craft/cutExtrude/cutOperation.js | 23 ----- .../cad/craft/cutExtrude/extrudeOperation.js | 34 -------- web/app/cad/craft/cutExtrude/form.js | 21 ----- web/app/cad/craft/cutExtrude/previewer.js | 55 ------------ web/app/cad/craft/cutExtrude/schema.js | 41 --------- web/app/cad/craft/fillet/FilletForm.jsx | 11 --- web/app/cad/craft/fillet/filletOperation.js | 15 ---- web/app/cad/craft/fillet/schema.js | 21 ----- web/app/cad/craft/loft/LoftForm.jsx | 12 --- web/app/cad/craft/loft/loftOperation.js | 24 ----- web/app/cad/craft/loft/loftPreviewer.js | 10 --- web/app/cad/craft/loft/schema.js | 14 --- .../craft/primitives/booleanOptionHelper.js | 10 --- .../craft/primitives/booleanOptionSchema.js | 5 -- .../cad/craft/primitives/box/BoxWizard.jsx | 15 ---- .../cad/craft/primitives/box/boxOpSchema.js | 25 ------ .../cad/craft/primitives/box/boxOperation.js | 31 ------- .../cad/craft/primitives/cone/ConeWizard.jsx | 15 ---- .../cad/craft/primitives/cone/coneOpSchema.js | 25 ------ .../craft/primitives/cone/coneOperation.js | 87 ------------------- .../primitives/cylinder/CylinderWizard.jsx | 14 --- .../primitives/cylinder/cylinderOpSchema.js | 20 ----- .../primitives/cylinder/cylinderOperation.js | 30 ------- .../primitives/datumConsumingOperation.js | 10 --- .../craft/primitives/primitivePreviewer.js | 53 ----------- .../craft/primitives/sphere/SphereWizard.jsx | 13 --- .../craft/primitives/sphere/sphereOpSchema.js | 15 ---- .../primitives/sphere/sphereOperation.js | 28 ------ .../craft/primitives/torus/TorusWizard.jsx | 14 --- .../craft/primitives/torus/torusOpSchema.js | 20 ----- .../craft/primitives/torus/torusOperation.js | 72 --------------- web/app/cad/craft/revolve/RevolveForm.jsx | 15 ---- web/app/cad/craft/revolve/revolveOperation.js | 17 ---- web/app/cad/craft/revolve/revolvePreviewer.js | 36 -------- web/app/cad/craft/revolve/schema.js | 20 ----- .../cad/workbench/workbenchesLoaderPlugin.ts | 23 ----- 40 files changed, 1 insertion(+), 963 deletions(-) delete mode 100644 web/app/cad/craft/boolean/BooleanWizard.jsx delete mode 100644 web/app/cad/craft/boolean/booleanOpSchema.js delete mode 100644 web/app/cad/craft/boolean/booleanOperation.js delete mode 100644 web/app/cad/craft/cutExtrude/cutOperation.js delete mode 100644 web/app/cad/craft/cutExtrude/extrudeOperation.js delete mode 100644 web/app/cad/craft/cutExtrude/form.js delete mode 100644 web/app/cad/craft/cutExtrude/previewer.js delete mode 100644 web/app/cad/craft/cutExtrude/schema.js delete mode 100644 web/app/cad/craft/fillet/FilletForm.jsx delete mode 100644 web/app/cad/craft/fillet/filletOperation.js delete mode 100644 web/app/cad/craft/fillet/schema.js delete mode 100644 web/app/cad/craft/loft/LoftForm.jsx delete mode 100644 web/app/cad/craft/loft/loftOperation.js delete mode 100644 web/app/cad/craft/loft/loftPreviewer.js delete mode 100644 web/app/cad/craft/loft/schema.js delete mode 100644 web/app/cad/craft/primitives/booleanOptionHelper.js delete mode 100644 web/app/cad/craft/primitives/booleanOptionSchema.js delete mode 100644 web/app/cad/craft/primitives/box/BoxWizard.jsx delete mode 100644 web/app/cad/craft/primitives/box/boxOpSchema.js delete mode 100644 web/app/cad/craft/primitives/box/boxOperation.js delete mode 100644 web/app/cad/craft/primitives/cone/ConeWizard.jsx delete mode 100644 web/app/cad/craft/primitives/cone/coneOpSchema.js delete mode 100644 web/app/cad/craft/primitives/cone/coneOperation.js delete mode 100644 web/app/cad/craft/primitives/cylinder/CylinderWizard.jsx delete mode 100644 web/app/cad/craft/primitives/cylinder/cylinderOpSchema.js delete mode 100644 web/app/cad/craft/primitives/cylinder/cylinderOperation.js delete mode 100644 web/app/cad/craft/primitives/datumConsumingOperation.js delete mode 100644 web/app/cad/craft/primitives/primitivePreviewer.js delete mode 100644 web/app/cad/craft/primitives/sphere/SphereWizard.jsx delete mode 100644 web/app/cad/craft/primitives/sphere/sphereOpSchema.js delete mode 100644 web/app/cad/craft/primitives/sphere/sphereOperation.js delete mode 100644 web/app/cad/craft/primitives/torus/TorusWizard.jsx delete mode 100644 web/app/cad/craft/primitives/torus/torusOpSchema.js delete mode 100644 web/app/cad/craft/primitives/torus/torusOperation.js delete mode 100644 web/app/cad/craft/revolve/RevolveForm.jsx delete mode 100644 web/app/cad/craft/revolve/revolveOperation.js delete mode 100644 web/app/cad/craft/revolve/revolvePreviewer.js delete mode 100644 web/app/cad/craft/revolve/schema.js diff --git a/modules/workbenches/modeler/index.ts b/modules/workbenches/modeler/index.ts index 4219c12c..3be54b65 100644 --- a/modules/workbenches/modeler/index.ts +++ b/modules/workbenches/modeler/index.ts @@ -58,7 +58,7 @@ export const ModelerWorkspace: WorkbenchConfig = { "SHELL_TOOL", "FILLET_TOOL", "SCALE_BODY","-", "MIRROR_BODY", "PATTERN_LINEAR", "PATTERN_RADIAL", "-", "CYLINDER", "BOX", "CONE", "SPHERE", "TORUS", "-", - "HOLE_TOOL", "-", 'GET_VOLUME', "IMPORT_MODEL","DELETE_BODY" + "HOLE_TOOL", "-", 'GET_VOLUME', "IMPORT_MODEL","DELETE_BODY", ] }, icon: GiCubes diff --git a/web/app/cad/craft/boolean/BooleanWizard.jsx b/web/app/cad/craft/boolean/BooleanWizard.jsx deleted file mode 100644 index 3a6806a6..00000000 --- a/web/app/cad/craft/boolean/BooleanWizard.jsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import {Group} from '../wizard/components/form/Form'; -import EntityList from '../wizard/components/form/EntityList'; -import Entity from '../wizard/components/form/Entity'; - -export default function BooleanWizard() { - return - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/boolean/booleanOpSchema.js b/web/app/cad/craft/boolean/booleanOpSchema.js deleted file mode 100644 index b2ae15b6..00000000 --- a/web/app/cad/craft/boolean/booleanOpSchema.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - operandA: { - type: 'shell', - markColor: 0xC9FFBC, - initializeBySelection: 0 - }, - operandB: { - type: 'shell', - markColor: 0xFFBEB4, - initializeBySelection: 1 - } -}; diff --git a/web/app/cad/craft/boolean/booleanOperation.js b/web/app/cad/craft/boolean/booleanOperation.js deleted file mode 100644 index 9ffc238d..00000000 --- a/web/app/cad/craft/boolean/booleanOperation.js +++ /dev/null @@ -1,45 +0,0 @@ -import schema from './booleanOpSchema'; -import BooleanWizard from './BooleanWizard'; - -const run = type => (params, services) => { - return services.craftEngine.boolean({ - type, - operandsA: [services.cadRegistry.findShell(params.operandA)], - operandsB: [services.cadRegistry.findShell(params.operandB)] - }); -}; - -const paramsInfo = ({operandA, operandB}) => `(${operandA}, ${operandB})`; - -export const intersectionOperation = { - id: 'INTERSECTION', - label: 'intersection', - icon: 'img/cad/intersection', - info: 'intersection operation on two shells', - paramsInfo, - form: BooleanWizard, - schema, - run: run('INTERSECTION'), -}; - -export const subtractOperation = { - id: 'SUBTRACT', - label: 'subtract', - icon: 'img/cad/subtract', - info: 'subtract operation on two shells', - paramsInfo, - form: BooleanWizard, - schema, - run: run('SUBTRACT'), -}; - -export const unionOperation = { - id: 'UNION', - label: 'union', - icon: 'img/cad/union', - info: 'union operation on two shells', - paramsInfo, - form: BooleanWizard, - schema, - run: run('UNION'), -}; diff --git a/web/app/cad/craft/cutExtrude/cutOperation.js b/web/app/cad/craft/cutExtrude/cutOperation.js deleted file mode 100644 index d117cffd..00000000 --- a/web/app/cad/craft/cutExtrude/cutOperation.js +++ /dev/null @@ -1,23 +0,0 @@ -import {roundValueForPresentation as r} from '../operationHelper'; -import form from './form'; -import {createPreviewGeomProvider} from './previewer'; -import {Cut} from './cutExtrude'; -import {requiresFaceSelection} from '../../actions/actionHelpers'; -import schema from './schema'; -import {onParamsUpdate} from './extrudeOperation'; - -export default { - id: 'CUT', - label: 'Cut', - icon: 'img/cad/cut', - info: 'makes a cut based on 2D sketch', - paramsInfo: ({value}) => `(${r(value)})`, - onParamsUpdate, - previewGeomProvider: createPreviewGeomProvider(true), - run: Cut, - actionParams: { - ...requiresFaceSelection(1) - }, - form: form('depth'), - schema -}; diff --git a/web/app/cad/craft/cutExtrude/extrudeOperation.js b/web/app/cad/craft/cutExtrude/extrudeOperation.js deleted file mode 100644 index dda12b91..00000000 --- a/web/app/cad/craft/cutExtrude/extrudeOperation.js +++ /dev/null @@ -1,34 +0,0 @@ -import {roundValueForPresentation as r} from '../operationHelper'; -import {createPreviewGeomProvider} from './previewer'; -import {Extrude} from './cutExtrude'; -import {requiresFaceSelection} from '../../actions/actionHelpers'; -import form from './form'; -import schema from './schema'; - -export default { - id: 'EXTRUDE', - label: 'Extrude', - icon: 'img/cad/extrude', - info: 'extrudes 2D sketch', - paramsInfo: ({value}) => `(${r(value)})`, - onParamsUpdate, - previewGeomProvider: createPreviewGeomProvider(false), - run: Extrude, - actionParams: { - ...requiresFaceSelection(1) - }, - form: form('height'), - schema -}; - -const INVARIANT = ['datumAxisVector', 'edgeVector', 'sketchSegmentVector']; - -export function onParamsUpdate(params, name, value) { - if (INVARIANT.includes(name)) { - INVARIANT.forEach(param => { - if (param !== name) { - delete params[param]; - } - }) - } -} \ No newline at end of file diff --git a/web/app/cad/craft/cutExtrude/form.js b/web/app/cad/craft/cutExtrude/form.js deleted file mode 100644 index f264cfcf..00000000 --- a/web/app/cad/craft/cutExtrude/form.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; -import {CheckboxField, NumberField} from '../wizard/components/form/Fields'; -import {Group} from '../wizard/components/form/Form'; -import Entity from '../wizard/components/form/Entity'; -import {StackSection} from 'ui/components/controls/FormSection'; - -export default function (valueLabel) { - return function PrismForm() { - return - - - - - - - - - - ; - }; -} \ No newline at end of file diff --git a/web/app/cad/craft/cutExtrude/previewer.js b/web/app/cad/craft/cutExtrude/previewer.js deleted file mode 100644 index 58de2b36..00000000 --- a/web/app/cad/craft/cutExtrude/previewer.js +++ /dev/null @@ -1,55 +0,0 @@ - -import {getEncloseDetails, resolveExtrudeVector} from './cutExtrude'; -import {curveTessParams} from "geom/impl/curve/curve-tess"; -import Vector from "math/vector"; -import {TriangulatePolygons} from "../../tess/triangulation"; -import {createMeshGeometry} from "scene/geoms"; - - -export function createPreviewGeomProvider(inversed) { - - return function previewGeomProvider(params, services) { - - const face = services.cadRegistry.findFace(params.face); - if (!face || !face.sketch) return null; - let sketch = face.sketch.fetchContours(); - let vector = resolveExtrudeVector(services.cadRegistry, face, params, !inversed); - const encloseDetails = getEncloseDetails(params, sketch, vector, face.csys, face.surface, !inversed); - const triangles = []; - - for (let {basePath, lidPath, baseSurface, lidSurface} of encloseDetails) { - const basePoints = []; - const lidPoints = []; - for (let i = 0; i < basePath.length; ++i) { - let baseNurbs = basePath[i]; - let lidNurbs = lidPath[i]; - - let tessCurve = params.prism > 1 ? lidNurbs : baseNurbs; - - const us = curveTessParams(tessCurve.impl, tessCurve.uMin, tessCurve.uMax); - const base = us.map(u => baseNurbs.point(u)); - const lid = us.map(u => lidNurbs.point(u)); - const n = base.length; - for (let p = n - 1, q = 0; q < n; p = q++) { - triangles.push([base[p], base[q], lid[q]]); - triangles.push([lid[q], lid[p], base[p]]); - } - for (let j = 0; j < base.length - 1; j++) { - basePoints.push(base[j]); - lidPoints.push(base[j]); - } - } - - function collectOnSurface(points, normal) { - TriangulatePolygons([points], normal, (v) => v.toArray(), (arr) => new Vector().set3(arr)) - .forEach(tr => triangles.push(tr)); - } - - collectOnSurface(basePoints, baseSurface.normal); - collectOnSurface(lidPoints, lidSurface.normal); - } - - return createMeshGeometry(triangles); - } -} - diff --git a/web/app/cad/craft/cutExtrude/schema.js b/web/app/cad/craft/cutExtrude/schema.js deleted file mode 100644 index a1d77fd3..00000000 --- a/web/app/cad/craft/cutExtrude/schema.js +++ /dev/null @@ -1,41 +0,0 @@ -export default { - value: { - type: 'number', - defaultValue: 50 - }, - prism: { - type: 'number', - min: 0, - defaultValue: 1 - }, - angle: { - type: 'number', - defaultValue: 0 - }, - rotation: { - type: 'number', - defaultValue: 0 - }, - face: { - type: 'face', - initializeBySelection: 0 - }, - datumAxisVector: { - type: 'datumAxis', - optional: true - }, - edgeVector: { - type: 'edge', - optional: true, - accept: edge => edge.brepEdge.curve.degree === 1 - }, - sketchSegmentVector: { - type: 'sketchObject', - optional: true, - accept: obj => obj.isSegment - }, - flip: { - type: 'boolean', - defaultValue: false, - } -} diff --git a/web/app/cad/craft/fillet/FilletForm.jsx b/web/app/cad/craft/fillet/FilletForm.jsx deleted file mode 100644 index 6618ea73..00000000 --- a/web/app/cad/craft/fillet/FilletForm.jsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import {NumberField} from '../wizard/components/form/Fields'; -import EntityList from '../wizard/components/form/EntityList'; -import {Group} from '../wizard/components/form/Form'; - -export default function FilletWizard() { - return - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/fillet/filletOperation.js b/web/app/cad/craft/fillet/filletOperation.js deleted file mode 100644 index 16cf3fa0..00000000 --- a/web/app/cad/craft/fillet/filletOperation.js +++ /dev/null @@ -1,15 +0,0 @@ -import FilletForm from './FilletForm'; -import schema from './schema'; - -export default { - id: 'FILLET', - label: 'Fillet', - icon: 'img/cad/fillet', - info: 'creates a fillet on selected edges', - paramsInfo: ({edges}) => edges.map(o => o.thikness).join(' ,'), - previewGeomProvider: () => new THREE.Geometry(), - run: (request, ctx) => ctx.craftEngine.fillet(request), - form: FilletForm, - schema -}; - diff --git a/web/app/cad/craft/fillet/schema.js b/web/app/cad/craft/fillet/schema.js deleted file mode 100644 index c4eec0e2..00000000 --- a/web/app/cad/craft/fillet/schema.js +++ /dev/null @@ -1,21 +0,0 @@ -export default { - edges: { - type: 'array', - itemType: ['edge', 'face'], - - max: 1, - initializeBySelection: true, - ui: { - - } - }, - thickness: { - type: 'number', - defaultValue: 20, - min: 10, - max: 30, - ui: { - widget: 'slider' - } - } -} diff --git a/web/app/cad/craft/loft/LoftForm.jsx b/web/app/cad/craft/loft/LoftForm.jsx deleted file mode 100644 index 654caae0..00000000 --- a/web/app/cad/craft/loft/LoftForm.jsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import {Group} from '../wizard/components/form/Form'; -import Entity from '../wizard/components/form/Entity'; -import BooleanChoice from '../wizard/components/form/BooleanChioce'; - -export default function LoftForm() { - - return - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/loft/loftOperation.js b/web/app/cad/craft/loft/loftOperation.js deleted file mode 100644 index a1bd6f53..00000000 --- a/web/app/cad/craft/loft/loftOperation.js +++ /dev/null @@ -1,24 +0,0 @@ -import schema from './schema'; -import {loftPreviewGeomProvider} from './loftPreviewer'; -import {assignBooleanParams} from '../primitives/booleanOptionHelper'; -import LoftForm from './LoftForm'; - -export default { - id: 'LOFT', - label: 'Loft', - icon: 'img/cad/loft', - info: 'creates a loft cross selected sections shape', - paramsInfo: () => '', - previewGeomProvider: loftPreviewGeomProvider, - run: runLoft, - form: LoftForm, - schema -}; - - -function runLoft(params, services) { - return services.craftEngine.loft({ - sections: params.sections.map(services.cadRegistry.findLoop) - }); -} - diff --git a/web/app/cad/craft/loft/loftPreviewer.js b/web/app/cad/craft/loft/loftPreviewer.js deleted file mode 100644 index 20e6a4b5..00000000 --- a/web/app/cad/craft/loft/loftPreviewer.js +++ /dev/null @@ -1,10 +0,0 @@ -import {createSmoothMeshGeometryFromData} from 'scene/geoms'; - -export function loftPreviewGeomProvider(params, services) { - - const tessInfo = services.craftEngine.loftPreview({ - sections: params.sections.map(services.cadRegistry.findLoop) - }); - - return createSmoothMeshGeometryFromData(tessInfo); -} diff --git a/web/app/cad/craft/loft/schema.js b/web/app/cad/craft/loft/schema.js deleted file mode 100644 index ae1aa3d3..00000000 --- a/web/app/cad/craft/loft/schema.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - sections: { - type: 'array', - itemType: 'loop', - initializeBySelection: true, - min: 2 - }, - boolean: { - type: 'enum', - values: ['INTERSECT', 'SUBTRACT', 'UNION'], - defaultValue: 'UNION', - optional: true - } -} diff --git a/web/app/cad/craft/primitives/booleanOptionHelper.js b/web/app/cad/craft/primitives/booleanOptionHelper.js deleted file mode 100644 index 1f6c2c38..00000000 --- a/web/app/cad/craft/primitives/booleanOptionHelper.js +++ /dev/null @@ -1,10 +0,0 @@ - -export function assignBooleanParams(execParams, rawParams, getAllShells) { - if (rawParams.boolean) { - execParams.boolean = { - type: rawParams.boolean, - operands: getAllShells() - } - } - return execParams; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/booleanOptionSchema.js b/web/app/cad/craft/primitives/booleanOptionSchema.js deleted file mode 100644 index f34ff11f..00000000 --- a/web/app/cad/craft/primitives/booleanOptionSchema.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - type: 'enum', - optional: true, - values: ['INTERSECT', 'SUBTRACT', 'UNION'] -}; \ No newline at end of file diff --git a/web/app/cad/craft/primitives/box/BoxWizard.jsx b/web/app/cad/craft/primitives/box/BoxWizard.jsx deleted file mode 100644 index 5a9ab518..00000000 --- a/web/app/cad/craft/primitives/box/BoxWizard.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import {Group} from '../../wizard/components/form/Form'; -import {NumberField} from '../../wizard/components/form/Fields'; -import BooleanChoice from '../../wizard/components/form/BooleanChioce'; -import Entity from '../../wizard/components/form/Entity'; - -export default function BoxWizard() { - return - - - - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/box/boxOpSchema.js b/web/app/cad/craft/primitives/box/boxOpSchema.js deleted file mode 100644 index c2813878..00000000 --- a/web/app/cad/craft/primitives/box/boxOpSchema.js +++ /dev/null @@ -1,25 +0,0 @@ -import booleanOptionSchema from '../booleanOptionSchema'; - -export default { - datum: { - type: 'datum', - optional: true, - initializeBySelection: 0 - }, - width: { - type: 'number', - defaultValue: 500, - min: 0 - }, - height: { - type: 'number', - defaultValue: 500, - min: 0 - }, - depth: { - type: 'number', - defaultValue: 500, - min: 0 - }, - boolean: booleanOptionSchema -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/box/boxOperation.js b/web/app/cad/craft/primitives/box/boxOperation.js deleted file mode 100644 index 20465777..00000000 --- a/web/app/cad/craft/primitives/box/boxOperation.js +++ /dev/null @@ -1,31 +0,0 @@ -import BoxWizard from './BoxWizard'; -import {BoxGeometry} from 'three'; -import schema from './boxOpSchema'; -import primitivePreviewer from '../primitivePreviewer'; -import datumConsumingOperation from '../datumConsumingOperation'; -import {assignBooleanParams} from '../booleanOptionHelper'; - -function run(params, services) { - return datumConsumingOperation(params, services, csys => services.craftEngine.createBox( - assignBooleanParams({ - csys, - width: params.width, - height: params.height, - depth: params.depth - }, params, services.cadRegistry.getAllShells) - )); -} - -export default { - id: 'BOX', - label: 'Box', - icon: 'img/cad/cube', - info: 'creates new object box', - paramsInfo: ({width, height, depth}) => `(${width}, ${height}, ${depth})`, - previewer: primitivePreviewer(() => new BoxGeometry(), - ({width: dx, height: dy, depth: dz}) => ({dx, dy, dz}), [0.5, 0.5, 0.5]), - form: BoxWizard, - schema, - run -}; - diff --git a/web/app/cad/craft/primitives/cone/ConeWizard.jsx b/web/app/cad/craft/primitives/cone/ConeWizard.jsx deleted file mode 100644 index 14941139..00000000 --- a/web/app/cad/craft/primitives/cone/ConeWizard.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import {Group} from '../../wizard/components/form/Form'; -import {NumberField} from '../../wizard/components/form/Fields'; -import BooleanChoice from '../../wizard/components/form/BooleanChioce'; -import Entity from '../../wizard/components/form/Entity'; - -export default function TorusWizard() { - return - - - - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/cone/coneOpSchema.js b/web/app/cad/craft/primitives/cone/coneOpSchema.js deleted file mode 100644 index 4c0da17f..00000000 --- a/web/app/cad/craft/primitives/cone/coneOpSchema.js +++ /dev/null @@ -1,25 +0,0 @@ -import booleanOptionSchema from '../booleanOptionSchema'; - -export default { - datum: { - type: 'datum', - optional: true, - initializeBySelection: 0 - }, - radius: { - type: 'number', - defaultValue: 100, - min: 0 - }, - frustum: { - type: 'number', - defaultValue: 0, - min: 0 - }, - height: { - type: 'number', - defaultValue: 250, - min: 0 - }, - boolean: booleanOptionSchema -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/cone/coneOperation.js b/web/app/cad/craft/primitives/cone/coneOperation.js deleted file mode 100644 index 5bce71c5..00000000 --- a/web/app/cad/craft/primitives/cone/coneOperation.js +++ /dev/null @@ -1,87 +0,0 @@ -import {Mesh, ConeGeometry, Matrix4, CylinderGeometry} from 'three'; -import schema from './coneOpSchema'; -import ConeWizard from './ConeWizard'; -import {IMAGINARY_SURFACE_MATERIAL} from '../../../preview/scenePreviewer'; -import CSys from 'math/csys'; -import * as SceneGraph from 'scene/sceneGraph'; -import datumConsumingOperation from '../datumConsumingOperation'; -import {assignBooleanParams} from '../booleanOptionHelper'; - -function run(params, services) { - return datumConsumingOperation(params, services, csys => services.craftEngine.createCone( - assignBooleanParams({ - csys, - radius: params.radius, - frustum: params.frustum, - height: params.height - }, params, services.cadRegistry.getAllShells) - )); -} - -function previewer(ctx, initialParams) { - let mDatum = initialParams.datum && ctx.services.cadRegistry.findDatum(initialParams.datum); - let cs = mDatum ? mDatum.csys : CSys.ORIGIN; - let o = cs.origin; - - let mesh = null; - let auxMatrix = new Matrix4(); - - function update(params) { - - dispose(); - - let geometry; - if (params.frustum) { - geometry = new CylinderGeometry(params.frustum, params.radius, params.height, 50, 1); - } else { - geometry = new ConeGeometry(params.radius, params.height, 50, 1) - } - - mesh = new Mesh(geometry, IMAGINARY_SURFACE_MATERIAL); - mesh.matrixAutoUpdate = false; - - mesh.matrix.set( - cs.x.x, cs.y.x, cs.z.x, o.x, - cs.x.y, cs.y.y, cs.z.y, o.y, - cs.x.z, cs.y.z, cs.z.z, o.z, - 0, 0, 0, 1 - ); - auxMatrix.set( - 1, 0, 0, 0, - 0, 1, 0, params.height * 0.5, - 0, 0, 1, 0, - 0, 0, 0, 1 - ); - mesh.matrix.multiplyMatrices(mesh.matrix, auxMatrix); - mesh.matrixWorldNeedsUpdate = true; - - SceneGraph.addToGroup(ctx.services.cadScene.workGroup, mesh); - } - - function dispose() { - if (mesh !== null ) { - SceneGraph.removeFromGroup(ctx.services.cadScene.workGroup, mesh); - mesh.geometry.dispose(); - mesh = null; - } - } - - update(initialParams); - - return { - update, dispose - } -} - -export default { - id: 'CONE', - label: 'Cone', - icon: 'img/cad/cone', - info: 'creates new cone', - paramsInfo: ({radius, frustum, height}) => `(${radius}, ${frustum}, ${height})`, - previewer, - form: ConeWizard, - schema, - run -}; - diff --git a/web/app/cad/craft/primitives/cylinder/CylinderWizard.jsx b/web/app/cad/craft/primitives/cylinder/CylinderWizard.jsx deleted file mode 100644 index aeeb7c19..00000000 --- a/web/app/cad/craft/primitives/cylinder/CylinderWizard.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import {Group} from '../../wizard/components/form/Form'; -import {NumberField} from '../../wizard/components/form/Fields'; -import BooleanChoice from '../../wizard/components/form/BooleanChioce'; -import Entity from '../../wizard/components/form/Entity'; - -export default function CylinderWizard() { - return - - - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/cylinder/cylinderOpSchema.js b/web/app/cad/craft/primitives/cylinder/cylinderOpSchema.js deleted file mode 100644 index 47ad5a65..00000000 --- a/web/app/cad/craft/primitives/cylinder/cylinderOpSchema.js +++ /dev/null @@ -1,20 +0,0 @@ -import booleanOptionSchema from '../booleanOptionSchema'; - -export default { - datum: { - type: 'datum', - optional: true, - initializeBySelection: 0 - }, - radius: { - type: 'number', - defaultValue: 100, - min: 0 - }, - height: { - type: 'number', - defaultValue: 250, - min: 0 - }, - boolean: booleanOptionSchema -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/cylinder/cylinderOperation.js b/web/app/cad/craft/primitives/cylinder/cylinderOperation.js deleted file mode 100644 index f090710a..00000000 --- a/web/app/cad/craft/primitives/cylinder/cylinderOperation.js +++ /dev/null @@ -1,30 +0,0 @@ -import {CylinderGeometry} from 'three'; -import schema from './cylinderOpSchema'; -import primitivePreviewer from '../primitivePreviewer'; -import CylinderWizard from './CylinderWizard'; -import datumConsumingOperation from '../datumConsumingOperation'; -import {assignBooleanParams} from '../booleanOptionHelper'; - -function run(params, services) { - return datumConsumingOperation(params, services, csys => services.craftEngine.createCylinder( - assignBooleanParams({ - csys, - radius: params.radius, - height: params.height - }, params, services.cadRegistry.getAllShells) - )); -} - -export default { - id: 'CYLINDER', - label: 'Cylinder', - icon: 'img/cad/cylinder', - info: 'creates new cylinder', - paramsInfo: ({radius, height}) => `(${radius}, ${height})`, - previewer: primitivePreviewer(() => new CylinderGeometry(1, 1, 1, 50, 1), - ({radius: dx, height: dy, radius:dz}) => ({dx, dy, dz}), [0, 0.5, 0]), - form: CylinderWizard, - schema, - run -}; - diff --git a/web/app/cad/craft/primitives/datumConsumingOperation.js b/web/app/cad/craft/primitives/datumConsumingOperation.js deleted file mode 100644 index 8d77bc7c..00000000 --- a/web/app/cad/craft/primitives/datumConsumingOperation.js +++ /dev/null @@ -1,10 +0,0 @@ -import CSys from 'math/csys'; - -export default function datumConsumingOperation(params, services, run) { - let mDatum = params.datum && services.cadRegistry.findDatum(params.datum); - let res = run(mDatum ? mDatum.csys : CSys.ORIGIN); - if (mDatum) { - res.consumed.push(mDatum); - } - return res; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/primitivePreviewer.js b/web/app/cad/craft/primitives/primitivePreviewer.js deleted file mode 100644 index c3454eec..00000000 --- a/web/app/cad/craft/primitives/primitivePreviewer.js +++ /dev/null @@ -1,53 +0,0 @@ -import {BoxGeometry, Matrix4, Mesh} from 'three'; -import {IMAGINARY_SURFACE_MATERIAL} from '../../preview/scenePreviewer'; -import CSys from 'math/csys'; -import * as SceneGraph from 'scene/sceneGraph'; - -export default function primitivePreviewer(createThreePrimitiveGeometry, paramsToScales, shift) { - return function previewer(ctx, initialParams) { - - let geometry = createThreePrimitiveGeometry(); - let mesh = new Mesh(geometry, IMAGINARY_SURFACE_MATERIAL); - mesh.matrixAutoUpdate = false; - SceneGraph.addToGroup(ctx.services.cadScene.workGroup, mesh); - - let auxMatrix = new Matrix4(); - - function update(params) { - let mDatum = params.datum && ctx.services.cadRegistry.findDatum(params.datum); - let cs = mDatum ? mDatum.csys : CSys.ORIGIN; - let o = cs.origin; - - let {dx, dy, dz} = paramsToScales(params); - mesh.matrix.set( - dx*cs.x.x, dy*cs.y.x, dz*cs.z.x, o.x, - dx*cs.x.y, dy*cs.y.y, dz*cs.z.y, o.y, - dx*cs.x.z, dy*cs.y.z, dz*cs.z.z, o.z, - 0, 0, 0, 1 - ); - - if (shift) { - auxMatrix.set( - 1, 0, 0, shift[0], - 0, 1, 0, shift[1], - 0, 0, 1, shift[2], - 0, 0, 0, 1 - ); - mesh.matrix.multiplyMatrices(mesh.matrix, auxMatrix); - } - - mesh.matrixWorldNeedsUpdate = true - } - - function dispose() { - SceneGraph.removeFromGroup(ctx.services.cadScene.workGroup, mesh); - geometry.dispose(); - } - - update(initialParams); - - return { - update, dispose - } - } -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/sphere/SphereWizard.jsx b/web/app/cad/craft/primitives/sphere/SphereWizard.jsx deleted file mode 100644 index 1201fabd..00000000 --- a/web/app/cad/craft/primitives/sphere/SphereWizard.jsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import {Group} from '../../wizard/components/form/Form'; -import {NumberField} from '../../wizard/components/form/Fields'; -import BooleanChoice from '../../wizard/components/form/BooleanChioce'; -import Entity from '../../wizard/components/form/Entity'; - -export default function SphereWizard() { - return - - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/sphere/sphereOpSchema.js b/web/app/cad/craft/primitives/sphere/sphereOpSchema.js deleted file mode 100644 index 91ed1114..00000000 --- a/web/app/cad/craft/primitives/sphere/sphereOpSchema.js +++ /dev/null @@ -1,15 +0,0 @@ -import booleanOptionSchema from '../booleanOptionSchema'; - -export default { - datum: { - type: 'datum', - optional: true, - initializeBySelection: 0 - }, - radius: { - type: 'number', - defaultValue: 250, - min: 0 - }, - boolean: booleanOptionSchema -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/sphere/sphereOperation.js b/web/app/cad/craft/primitives/sphere/sphereOperation.js deleted file mode 100644 index 0802fde6..00000000 --- a/web/app/cad/craft/primitives/sphere/sphereOperation.js +++ /dev/null @@ -1,28 +0,0 @@ -import {SphereGeometry} from 'three'; -import schema from './sphereOpSchema'; -import primitivePreviewer from '../primitivePreviewer'; -import SphereWizard from './SphereWizard'; -import datumConsumingOperation from '../datumConsumingOperation'; -import {assignBooleanParams} from '../booleanOptionHelper'; - -function run(params, services) { - return datumConsumingOperation(params, services, csys => services.craftEngine.createSphere( - assignBooleanParams({ - csys, - radius: params.radius, - }, params, services.cadRegistry.getAllShells) - )); -} - -export default { - id: 'SPHERE', - label: 'Sphere', - icon: 'img/cad/sphere', - info: 'creates new sphere', - paramsInfo: ({radius}) => `(${radius})`, - previewer: primitivePreviewer(() => new SphereGeometry(1, 50, 50), ({radius: dx, radius: dy, radius: dz}) => ({dx, dy, dz})), - form: SphereWizard, - schema, - run -}; - diff --git a/web/app/cad/craft/primitives/torus/TorusWizard.jsx b/web/app/cad/craft/primitives/torus/TorusWizard.jsx deleted file mode 100644 index 7df664f6..00000000 --- a/web/app/cad/craft/primitives/torus/TorusWizard.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import {Group} from '../../wizard/components/form/Form'; -import {NumberField} from '../../wizard/components/form/Fields'; -import BooleanChoice from '../../wizard/components/form/BooleanChioce'; -import Entity from '../../wizard/components/form/Entity'; - -export default function TorusWizard() { - return - - - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/torus/torusOpSchema.js b/web/app/cad/craft/primitives/torus/torusOpSchema.js deleted file mode 100644 index dcfe6f14..00000000 --- a/web/app/cad/craft/primitives/torus/torusOpSchema.js +++ /dev/null @@ -1,20 +0,0 @@ -import booleanOptionSchema from '../booleanOptionSchema'; - -export default { - datum: { - type: 'datum', - optional: true, - initializeBySelection: 0 - }, - radius: { - type: 'number', - defaultValue: 250, - min: 0 - }, - tube: { - type: 'number', - defaultValue: 50, - min: 0 - }, - boolean: booleanOptionSchema -} \ No newline at end of file diff --git a/web/app/cad/craft/primitives/torus/torusOperation.js b/web/app/cad/craft/primitives/torus/torusOperation.js deleted file mode 100644 index 5f2e7ec9..00000000 --- a/web/app/cad/craft/primitives/torus/torusOperation.js +++ /dev/null @@ -1,72 +0,0 @@ -import {Mesh, TorusGeometry} from 'three'; -import schema from './torusOpSchema'; -import TorusWizard from './TorusWizard'; -import {IMAGINARY_SURFACE_MATERIAL} from '../../../preview/scenePreviewer'; -import CSys from 'math/csys'; -import * as SceneGraph from 'scene/sceneGraph'; -import datumConsumingOperation from '../datumConsumingOperation'; -import {assignBooleanParams} from '../booleanOptionHelper'; - -function run(params, services) { - return datumConsumingOperation(params, services, csys => services.craftEngine.createTorus( - assignBooleanParams({ - csys, - radius: params.radius, - tube: params.tube - }, params, services.cadRegistry.getAllShells) - )); -} - -function previewer(ctx, initialParams) { - let mDatum = initialParams.datum && ctx.services.cadRegistry.findDatum(initialParams.datum); - let cs = mDatum ? mDatum.csys : CSys.ORIGIN; - let o = cs.origin; - - let mesh = null; - - function update(params) { - - dispose(); - - mesh = new Mesh(new TorusGeometry(params.radius, params.tube, 50, 50), IMAGINARY_SURFACE_MATERIAL); - mesh.matrixAutoUpdate = false; - - mesh.matrix.set( - cs.x.x, cs.y.x, cs.z.x, o.x, - cs.x.y, cs.y.y, cs.z.y, o.y, - cs.x.z, cs.y.z, cs.z.z, o.z, - 0, 0, 0, 1 - ); - - mesh.matrixWorldNeedsUpdate = true; - - SceneGraph.addToGroup(ctx.services.cadScene.workGroup, mesh); - } - - function dispose() { - if (mesh !== null ) { - SceneGraph.removeFromGroup(ctx.services.cadScene.workGroup, mesh); - mesh.geometry.dispose(); - mesh = null; - } - } - - update(initialParams); - - return { - update, dispose - } -} - -export default { - id: 'TORUS', - label: 'Torus', - icon: 'img/cad/torus', - info: 'creates new torus', - paramsInfo: ({radius, tube}) => `(${radius} - ${tube})`, - previewer, - form: TorusWizard, - schema, - run -}; - diff --git a/web/app/cad/craft/revolve/RevolveForm.jsx b/web/app/cad/craft/revolve/RevolveForm.jsx deleted file mode 100644 index 68cf7f05..00000000 --- a/web/app/cad/craft/revolve/RevolveForm.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import {CheckboxField, NumberField} from '../wizard/components/form/Fields'; -import {Group} from '../wizard/components/form/Form'; -import Entity from '../wizard/components/form/Entity'; -import BooleanChoice from '../wizard/components/form/BooleanChioce'; - -export default function RevolveForm() { - - return - - - - - ; -} \ No newline at end of file diff --git a/web/app/cad/craft/revolve/revolveOperation.js b/web/app/cad/craft/revolve/revolveOperation.js deleted file mode 100644 index ea9da9e2..00000000 --- a/web/app/cad/craft/revolve/revolveOperation.js +++ /dev/null @@ -1,17 +0,0 @@ -import RevolveForm from './RevolveForm'; -import schema from './schema'; -import {revolvePreviewGeomProvider} from './revolvePreviewer'; - -export default { - id: 'REVOLVE', - label: 'Revolve', - icon: 'img/cad/revolve', - info: 'creates a solid based on revolve surfaces', - paramsInfo: ({angle}) => angle, - previewGeomProvider: revolvePreviewGeomProvider, - run: (request, ctx) => ctx.craftEngine.revolve(request), - form: RevolveForm, - schema -}; - - diff --git a/web/app/cad/craft/revolve/revolvePreviewer.js b/web/app/cad/craft/revolve/revolvePreviewer.js deleted file mode 100644 index da32105c..00000000 --- a/web/app/cad/craft/revolve/revolvePreviewer.js +++ /dev/null @@ -1,36 +0,0 @@ -import {createMeshGeometry} from 'scene/geoms'; -import {DEG_RAD} from 'math/commons'; -import {revolveToTriangles} from '../../legacy/mesh/revolve'; - -let cache = {}; - -export function revolvePreviewGeomProvider(params, services) { - - const face = services.cadRegistry.findFace(params.face); - const axisModel = services.cadRegistry.findSketchObject(params.axis); - const axis = axisModel.sketchPrimitive; - if (!face || !face.sketch || !axis) return null; - let contours = face.sketch.fetchContours(); - - let polygons = []; - for (let contour of contours) { - const curves = contour.transferInCoordinateSystem(face.csys); - let polygon = []; - for (let curve of curves) { - let points = curve.tessellate(); - for (let i = 0; i < points.length - 1; i++) { - polygon.push(points[i]); - } - } - polygons.push(polygon); - } - - let angle = params.angle * DEG_RAD; - let tr = face.csys.outTransformation.apply; - const triangles = revolveToTriangles(polygons, [tr(axis.a), tr(axis.b)], angle, defaultResolution(params.angle), true); - return createMeshGeometry(triangles); -} - -function defaultResolution(angle) { - return Math.max(2, Math.round(Math.abs(angle) / 4.0)); -} diff --git a/web/app/cad/craft/revolve/schema.js b/web/app/cad/craft/revolve/schema.js deleted file mode 100644 index 33721394..00000000 --- a/web/app/cad/craft/revolve/schema.js +++ /dev/null @@ -1,20 +0,0 @@ -export default { - angle: { - type: 'number', - defaultValue: 45 - }, - face: { - type: 'face', - initializeBySelection: 0 - }, - axis: { - type: 'sketchObject', - initializeBySelection: 0 - }, - boolean: { - type: 'enum', - values: ['INTERSECT', 'SUBTRACT', 'UNION'], - defaultValue: 'UNION', - optional: true - } -} diff --git a/web/app/cad/workbench/workbenchesLoaderPlugin.ts b/web/app/cad/workbench/workbenchesLoaderPlugin.ts index 70f5460f..1620983b 100644 --- a/web/app/cad/workbench/workbenchesLoaderPlugin.ts +++ b/web/app/cad/workbench/workbenchesLoaderPlugin.ts @@ -1,20 +1,10 @@ import {WorkbenchRegistry} from "workbenches/registry"; import planeOperation from "cad/craft/primitives/simplePlane/simplePlaneOperation"; -import boxOperation from "cad/craft/primitives/box/boxOperation"; -import cutOperation from "cad/craft/cutExtrude/cutOperation"; -import revolveOperation from "cad/craft/revolve/revolveOperation"; -import filletOperation from "cad/craft/fillet/filletOperation"; 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 sphereOperation from "cad/craft/primitives/sphere/sphereOperation"; -import cylinderOperation from "cad/craft/primitives/cylinder/cylinderOperation"; -import torusOperation from "cad/craft/primitives/torus/torusOperation"; -import coneOperation from "cad/craft/primitives/cone/coneOperation"; import spatialCurveOperation from "cad/craft/spatialCurve/spatialCurveOperation"; -import loftOperation from "cad/craft/loft/loftOperation"; -import {intersectionOperation, subtractOperation, unionOperation} from "cad/craft/boolean/booleanOperation"; import {Plugin} from "plugable/pluginSystem"; import {WorkbenchService} from "cad/workbench/workbenchService"; import {OperationService} from "cad/craft/operationPlugin"; @@ -45,23 +35,10 @@ function registerCoreOperations(ctx: WorkbenchesLoaderInputContext) { ctx.operationService.registerOperations([ planeOperation, - // boxOperation, - // extrudeOperation, - // cutOperation, - revolveOperation, - filletOperation, createDatumOperation, moveDatumOperation, rotateDatumOperation, datumOperation, - // sphereOperation, - // cylinderOperation, - // torusOperation, - // coneOperation, spatialCurveOperation, - loftOperation, - intersectionOperation, - subtractOperation, - unionOperation, ] as any); } \ No newline at end of file