From 1807e7752960ac229cddd34b100e92cadbac9459 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 26 Jun 2019 21:39:11 -0400 Subject: [PATCH] Fix perfo Venice (shadow). --- GroupEditor.java | 86 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 69 insertions(+), 17 deletions(-) diff --git a/GroupEditor.java b/GroupEditor.java index d57f0f7..aa482be 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -605,10 +605,12 @@ copyOptionsPanel.add(undoButton = GetButton("icons/undo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); undoButton.setToolTipText("Undo changes"); undoButton.addActionListener(this); + undoButton.setEnabled(false); copyOptionsPanel.add(redoButton = GetButton("icons/redo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); redoButton.setToolTipText("Redo changes"); redoButton.addActionListener(this); + redoButton.setEnabled(false); copyOptionsPanel.add(saveButton = GetButton("icons/down_arrow.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); saveButton.setToolTipText("Save changes"); @@ -743,17 +745,29 @@ lightButton.setToolTipText("Create light"); lightButton.addActionListener(this); + for (int i=6; --i>=0;) + { + oe.toolboxPanel.Return(); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + } + // EDIT panel - editCommandsPanel.add(editButton = new cButton("+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - editButton.setToolTipText("Edit selection"); + editCommandsPanel.add(editButton = GetButton("icons/controls.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); + editButton.setToolTipText("Pin selection controls"); editButton.addActionListener(this); - editCommandsPanel.add(uneditButton = new cButton("-", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - uneditButton.setToolTipText("Unedit selection"); + editCommandsPanel.add(uneditButton = GetButton("icons/remove.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); + uneditButton.setToolTipText("Remove selection controls"); uneditButton.addActionListener(this); editCommandsPanel.add(allParamsButton = new JCheckBox("All", allparams)); //, oe.aConstraints); - allParamsButton.setToolTipText("Edit all params"); + allParamsButton.setToolTipText("Show all controle"); allParamsButton.addActionListener(this); editCommandsPanel.add(clearPanelButton = new cButton("C", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); @@ -770,6 +784,7 @@ editCommandsPanel.preferredHeight = 1; + SetPinStates(false); // oe.treePanel.add(commandsPanel); // oe.treePanel.Return(); @@ -843,7 +858,7 @@ boxCB.addItemListener(this); panel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE)); //, constraints); - zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel"); + zoomBoxCB.setToolTipText("Display only for wheel"); zoomBoxCB.addItemListener(this); if (true) // Globals.ADVANCED) @@ -905,7 +920,7 @@ oeilCB.addItemListener(this); panel.add(shadowCB = new cCheckBox("Shadow", Globals.COMPUTESHADOWWHENLIVE)); //, constraints); - shadowCB.setToolTipText("Compute shadows when live"); + shadowCB.setToolTipText("When live compute shadows"); shadowCB.addItemListener(this); panel.Return(); @@ -918,7 +933,7 @@ toggleSwitchCB.addItemListener(this); panel.add(autosaveCB = new cCheckBox("Auto-save", Globals.SAVEONMAKE)); //, constraints); - autosaveCB.setToolTipText("Auto-save on structure change"); + autosaveCB.setToolTipText("On structure change"); autosaveCB.addItemListener(this); panel.Return(); @@ -1614,6 +1629,20 @@ makeSomething(shadow); } + + private void ClearUnpinned() + { + //for (Object3D obj : listUI) + for (int i=listUI.size(); --i>=0;) + { + Object3D obj = listUI.elementAt(i); + if (!obj.pinned) + { + obj.CloseUI(); + listUI.remove(i); + } + } + } /** * applyExample @@ -3326,6 +3355,12 @@ } else if (source == editItem || source == editButton) { + for (Enumeration e = group.selection.elements(); e.hasMoreElements();) + { + Object3D child = (Object3D)e.nextElement(); + child.pinned = true; + } + EditSelection(false); } else if (source == uneditButton) @@ -3335,6 +3370,7 @@ Object3D child = (Object3D)e.nextElement(); if(child.editWindow != null) objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); + child.pinned = false; child.CloseUI(); listUI.remove(child); @@ -3351,6 +3387,7 @@ //copy.ClearUI(); for (Object3D obj : listUI) { + obj.pinned = false; obj.CloseUI(); } listUI.clear(); @@ -3360,7 +3397,7 @@ { assert(copy == group); - objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); + //objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); for (Object3D obj : listUI) { @@ -3435,6 +3472,11 @@ currentLayout = sevenButton; */ radio.layout.doClick(); + + ClearUnpinned(); + SetPinStates(group.selection.size() > 0); + if (group.selection.size() == 1) + EditSelection(false); keepparent = group.parent; // PARENT = NULL or not??? //group.parent = null; // ROOT @@ -4502,10 +4544,6 @@ // } // } - static boolean allparams = true; - - static Vector<Object3D> listUI = new Vector<Object3D>(); - void EditSelection(boolean newWindow) { // aConstraints.gridy = 0; @@ -4598,7 +4636,8 @@ //new Exception().printStackTrace(); freezemodel = true; - + ClearUnpinned(); + /**/ //switch (event.id) { @@ -4631,7 +4670,7 @@ if (tps != null && tps.length > 0 && tps[0].getLastPathComponent() instanceof Camera) // a camera { - if (tps[0].getLastPathComponent() != Globals.theRenderer.LightCamera()) + if (tps[0].getLastPathComponent() != Globals.theRenderer.LightCamera()) // Crash the camera because of invalid lightspace { CameraPane.camerachangeframe = 0; // don't refuse it Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent()); @@ -4640,6 +4679,13 @@ // Globals.theRenderer.eyeCamera = Globals.theRenderer.manipCamera; } + if (tps != null && tps.length == 1) + { + EditSelection(false); + } + + SetPinStates(tps != null && tps.length > 0); + refreshContents(); //return true; } @@ -4649,6 +4695,14 @@ freezemodel = false; } + void SetPinStates(boolean enabled) + { + editButton.setEnabled(enabled); + uneditButton.setEnabled(enabled); + unselectButton.setEnabled(enabled); + flashSelectionButton.setEnabled(enabled); + } + void refreshContents(boolean cp) { if (objectPanel.getSelectedIndex() == objectPanel.indexOfTab("Info")) @@ -5475,8 +5529,6 @@ cButton minButton; cButton maxButton; cButton fullButton; - cButton undoButton; - cButton redoButton; cButton saveButton; cButton oneStepButton; -- Gitblit v1.6.2