From 8e4e76c3a8cdbd32973d1fd6f336915ba630b72c Mon Sep 17 00:00:00 2001 From: Scott Vorthmann Date: Fri, 31 Jan 2025 21:17:21 -0800 Subject: [PATCH] Implemented "used in model" for online orbit panel --- .../app/classic/components/strutbuilder.jsx | 7 ++++++- .../src/worker/legacy/controllers/editor.js | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/online/src/app/classic/components/strutbuilder.jsx b/online/src/app/classic/components/strutbuilder.jsx index f7ca191ca..ac018625e 100644 --- a/online/src/app/classic/components/strutbuilder.jsx +++ b/online/src/app/classic/components/strutbuilder.jsx @@ -14,7 +14,7 @@ import { useSymmetry } from "../context/symmetry.jsx"; export const StrutBuildPanel = () => { - const { controllerAction } = useEditor(); + const { controllerAction, rootController } = useEditor(); const { showOrbitsDialog, symmetryController, symmetryDefined } = useSymmetry(); const availableOrbits = () => subController( symmetryController(), 'availableOrbits' ); const buildOrbits = () => subController( symmetryController(), 'buildOrbits' ); @@ -32,6 +32,10 @@ export const StrutBuildPanel = () => setAnchorEl( null ); setOrbitNames( action ); } + const setUsedOrbits = () => { + setAnchorEl( null ); + controllerAction( rootController(), 'usedOrbits' ); + } const showConfiguration = evt => { setAnchorEl( null ); showOrbitsDialog(); @@ -59,6 +63,7 @@ export const StrutBuildPanel = () => > real Zome predefined + used in model all configure... reset orbit colors diff --git a/online/src/worker/legacy/controllers/editor.js b/online/src/worker/legacy/controllers/editor.js index 1dc242c1a..f3607496e 100644 --- a/online/src/worker/legacy/controllers/editor.js +++ b/online/src/worker/legacy/controllers/editor.js @@ -1,5 +1,6 @@ import { com } from '../core-java.js'; +import { java } from '../candies/j4ts-2.1.0-SNAPSHOT/bundle.js'; import { JsProperties } from '../jsweet2js.js'; import { PickingController } from './picking.js'; import { BuildPlaneController } from './buildplane.js'; @@ -194,6 +195,26 @@ export class EditorController extends com.vzome.desktop.controller.DefaultContro break; } + case "usedOrbits": { + const { renderedModel } = this.legacyDesign; + const usedOrbits = new java.util.HashSet(); + const rMans = renderedModel .iterator(); + while ( rMans .hasNext() ) { + const rm = rMans .next(); + const shape = rm .getShape(); + const orbit = shape .getOrbit(); + if ( orbit != null ) + usedOrbits .add( orbit ); + } + this.symmController .availableController .doAction( "setNoDirections" ); + const orbits = usedOrbits .iterator(); + while ( orbits .hasNext() ) { + const orbit = orbits .next(); + this.symmController .availableController .doAction( "enableDirection." + orbit .getName() ); + } + break; + } + case "setBuildOrbitAndLength": { const { picked } = params.getConfig(); const rm = picked .getRenderedObject();