From 6b8213519ed1e50ad3c29d51eb29c545cf674a05 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Thu, 28 Jul 2022 20:32:40 -0700 Subject: [PATCH] use add location instead of set location --- .../patternLinear/patternLinear.operation.ts | 4 +-- .../patternRadial/patternRadial.operation.ts | 4 +-- package-lock.json | 14 ++++---- package.json | 2 +- web/app/cad/craft/e0/interact.d.ts | 2 ++ web/app/cad/craft/e0/interact.js | 33 +++++++++++++++++++ 6 files changed, 47 insertions(+), 12 deletions(-) diff --git a/modules/workbenches/modeler/features/patternLinear/patternLinear.operation.ts b/modules/workbenches/modeler/features/patternLinear/patternLinear.operation.ts index 32e19182..0de3dc59 100644 --- a/modules/workbenches/modeler/features/patternLinear/patternLinear.operation.ts +++ b/modules/workbenches/modeler/features/patternLinear/patternLinear.operation.ts @@ -8,7 +8,7 @@ import { OperationDescriptor } from "cad/craft/operationPlugin"; import { MShell } from 'cad/model/mshell'; import { MDatum } from "cad/model/mdatum"; import {Matrix3x4} from "math/matrix"; -import {SetLocation} from "cad/craft/e0/interact"; +import {AddLocation, SetLocation} from "cad/craft/e0/interact"; interface patternLinearParams { inputBodies: MShell[]; @@ -45,7 +45,7 @@ export const PatternLinearOperation: OperationDescriptor = const newShellName = shellToPatern.id + ":patern/" + index + "/" +i; oci.copy(shellToPatern, newShellName); - SetLocation(newShellName, tr.toFlatArray()); + AddLocation(newShellName, tr.toFlatArray()); created.push(occ.io.getShell(newShellName)); } diff --git a/modules/workbenches/modeler/features/patternRadial/patternRadial.operation.ts b/modules/workbenches/modeler/features/patternRadial/patternRadial.operation.ts index 38ef20cd..56b8a00a 100644 --- a/modules/workbenches/modeler/features/patternRadial/patternRadial.operation.ts +++ b/modules/workbenches/modeler/features/patternRadial/patternRadial.operation.ts @@ -6,7 +6,7 @@ import Axis from "math/axis"; import {OperationDescriptor} from "cad/craft/operationPlugin"; import {MShell} from 'cad/model/mshell'; import {Matrix3x4} from "math/matrix"; -import {SetLocation} from "cad/craft/e0/interact"; +import {AddLocation, SetLocation} from "cad/craft/e0/interact"; import {DEG_RAD} from "math/commons"; interface patternRadialParams { @@ -49,7 +49,7 @@ export const PatternRadialOperation: OperationDescriptor = const newShellName = shellToPatern.id + ":pattern/" + index + "/" +i; oci.copy(shellToPatern, newShellName); - SetLocation(newShellName, tr.toFlatArray()); + AddLocation(newShellName, tr.toFlatArray()); created.push(occ.io.getShell(newShellName)); } diff --git a/package-lock.json b/package-lock.json index 8a78f440..13488c0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "earcut": "2.1.1", "font-awesome": "4.7.0", "immer": "^9.0.12", - "jsketcher-occ-engine": "1.0.1-56d3ea00d3847efc527b0197be5c5b28b89e421e", + "jsketcher-occ-engine": "1.0.1-055e9551d187d751bf4850255121de8971c1c7bc", "jszip": "^3.10.0", "less": "^3.11.1", "libtess": "1.2.2", @@ -9164,9 +9164,9 @@ } }, "node_modules/jsketcher-occ-engine": { - "version": "1.0.1-56d3ea00d3847efc527b0197be5c5b28b89e421e", - "resolved": "https://registry.npmjs.org/jsketcher-occ-engine/-/jsketcher-occ-engine-1.0.1-56d3ea00d3847efc527b0197be5c5b28b89e421e.tgz", - "integrity": "sha512-nGkfHX6KvyV+2JZkzzynZsbDZ78MK2Y+MWPmeepLGEeVfuHWG97qW66c3g9MzWVM5vEoMwHXpiRncIqr0gOz6w==" + "version": "1.0.1-055e9551d187d751bf4850255121de8971c1c7bc", + "resolved": "https://registry.npmjs.org/jsketcher-occ-engine/-/jsketcher-occ-engine-1.0.1-055e9551d187d751bf4850255121de8971c1c7bc.tgz", + "integrity": "sha512-Uqf5cJovjdBXfoKuL+hquiWQAr7OP4AeVWeIdHYVMXkMpuZW01BjTkhKucyrwV7odWpDrzZsJrDtoYCjS6X2yw==" }, "node_modules/json-parse-better-errors": { "version": "1.0.2", @@ -23437,9 +23437,9 @@ "dev": true }, "jsketcher-occ-engine": { - "version": "1.0.1-56d3ea00d3847efc527b0197be5c5b28b89e421e", - "resolved": "https://registry.npmjs.org/jsketcher-occ-engine/-/jsketcher-occ-engine-1.0.1-56d3ea00d3847efc527b0197be5c5b28b89e421e.tgz", - "integrity": "sha512-nGkfHX6KvyV+2JZkzzynZsbDZ78MK2Y+MWPmeepLGEeVfuHWG97qW66c3g9MzWVM5vEoMwHXpiRncIqr0gOz6w==" + "version": "1.0.1-055e9551d187d751bf4850255121de8971c1c7bc", + "resolved": "https://registry.npmjs.org/jsketcher-occ-engine/-/jsketcher-occ-engine-1.0.1-055e9551d187d751bf4850255121de8971c1c7bc.tgz", + "integrity": "sha512-Uqf5cJovjdBXfoKuL+hquiWQAr7OP4AeVWeIdHYVMXkMpuZW01BjTkhKucyrwV7odWpDrzZsJrDtoYCjS6X2yw==" }, "json-parse-better-errors": { "version": "1.0.2", diff --git a/package.json b/package.json index 02c16f79..665373c5 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "earcut": "2.1.1", "font-awesome": "4.7.0", "immer": "^9.0.12", - "jsketcher-occ-engine": "1.0.1-56d3ea00d3847efc527b0197be5c5b28b89e421e", + "jsketcher-occ-engine": "1.0.1-055e9551d187d751bf4850255121de8971c1c7bc", "jszip": "^3.10.0", "less": "^3.11.1", "libtess": "1.2.2", diff --git a/web/app/cad/craft/e0/interact.d.ts b/web/app/cad/craft/e0/interact.d.ts index e2059e19..ba211b91 100644 --- a/web/app/cad/craft/e0/interact.d.ts +++ b/web/app/cad/craft/e0/interact.d.ts @@ -17,3 +17,5 @@ export function IsEdgesOverlap(e1Ptr: number, e2Ptr: number, tol: number): boole export function UpdateTessellation(shapePtr: number, deflection: number): number; export function SetLocation(shapeName: string, matrixArray: number[]); + +export function AddLocation(shapeName: string, matrixArray: number[]); diff --git a/web/app/cad/craft/e0/interact.js b/web/app/cad/craft/e0/interact.js index 6cb91976..c187ab73 100644 --- a/web/app/cad/craft/e0/interact.js +++ b/web/app/cad/craft/e0/interact.js @@ -95,3 +95,36 @@ export function SetLocation(shapeName, matrixArray) { ); _free(shapeNamePtr); } + +export function AddLocation(shapeName, matrixArray) { + const shapeNamePtr = toCString(shapeName); + const [ + mx0, + mx1, + mx2, + mx3, + mx4, + mx5, + mx6, + mx7, + mx8, + mx9, + mx10, + mx11 + ] = matrixArray; + Module._AddLocation(shapeNamePtr, + mx0, + mx1, + mx2, + mx3, + mx4, + mx5, + mx6, + mx7, + mx8, + mx9, + mx10, + mx11 + ); + _free(shapeNamePtr); +}