From 0c7b833be7d86598a6813cd1c6db0ca9e1b17966 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 21 Aug 2019 23:22:47 -0400 Subject: [PATCH] Clear versions. --- ObjEditor.java | 22 ++++------ CameraPane.java | 2 Globals.java | 3 + GroupEditor.java | 47 +++++++++++++++-------- Object3D.java | 38 +++++++++++++++++- 5 files changed, 78 insertions(+), 34 deletions(-) diff --git a/CameraPane.java b/CameraPane.java index f2785e4..c9b2423 100644 --- a/CameraPane.java +++ b/CameraPane.java @@ -15504,7 +15504,7 @@ repaint(); break; case 'O': - Globals.drawMode = OCCLUSION; // WARNING + // Too dangerous. Use menu. Globals.drawMode = OCCLUSION; // WARNING repaint(); break; case 'o': diff --git a/Globals.java b/Globals.java index ab47916..7832547 100644 --- a/Globals.java +++ b/Globals.java @@ -1,10 +1,11 @@ public class Globals { + static boolean ADVANCED = false; // false; + static boolean NIMBUSLAF = false; // false; static boolean TOOLTIPS = true; // true; - static boolean ADVANCED = false; // false; static boolean DEBUG = false; // false static iCameraPane theRenderer; diff --git a/GroupEditor.java b/GroupEditor.java index 0ac356b..8d5ddbb 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -417,13 +417,13 @@ assert(false); - if (copy.versionlist == null) - { - copy.versionlist = new Object3D[100]; - copy.versionindex = -1; - - //Save(true); - } +// if (copy.versionlist == null) +// { +// copy.versionlist = new Object3D[100]; +// copy.versionindex = -1; +// +// //Save(true); +// } if(ui) SetupUI(objEditor); @@ -446,13 +446,13 @@ ((cRadio)radioPanel.getComponent(0)).SetCamera(cameraView.renderCamera, true); - if (copy.versionlist == null) - { - copy.versionlist = new Object3D[100]; - copy.versionindex = -1; - - //Save(true); - } +// if (copy.versionlist == null) +// { +// copy.versionlist = new Object3D[100]; +// copy.versionindex = -1; +// +// //Save(true); +// } } void CloneSelection(boolean supports) @@ -835,6 +835,8 @@ } oe.menuBar.add(menu = new Menu("Attributes")); + clearVersionsItem = menu.add(new MenuItem("Clear Versions")); + clearVersionsItem.addActionListener(this); clearMaterialsItem = menu.add(new MenuItem("Clear Materials")); clearMaterialsItem.addActionListener(this); resetAllItem = menu.add(new MenuItem("Reset All")); @@ -3466,6 +3468,10 @@ { ClearMaterials(); } else + if (source == clearVersionsItem) + { + ClearVersions(); + } else if (source == liveleavesItem) { LiveLeaves(true); @@ -4142,12 +4148,14 @@ // and check if any of these nodes are reachable below the root. Grafreed.grafreed.universe.TagObjects(copy, true); - if (!copy.HasTags()) + if (copy.versionlist == null && !copy.HasTags()) { copy.versionlist = new Object3D[100]; - Save(true); + //Save(true); } + else + copy.versionindex = -2; Grafreed.grafreed.universe.TagObjects(copy, false); } @@ -5110,6 +5118,12 @@ void ClearMaterials() { group.selection.ClearMaterials(); + refreshContents(); + } + + void ClearVersions() + { + group.selection.ClearVersions(); refreshContents(); } @@ -6354,6 +6368,7 @@ private MenuItem clipMeshItem; private MenuItem smoothMeshItem; private MenuItem clearMaterialsItem; + private MenuItem clearVersionsItem; private MenuItem liveleavesItem; private MenuItem unliveleavesItem; diff --git a/ObjEditor.java b/ObjEditor.java index 728fabc..83bebe7 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -383,14 +383,6 @@ client = inClient; copy = client; - if (copy.versionlist == null) - { - copy.versionlist = new Object3D[100]; - copy.versionindex = -1; - -// Save(true); - } - SetupUI2(callee.GetEditor()); } @@ -1884,9 +1876,9 @@ if (Globals.ADVANCED) { - tabbedPane.add(infoPanel); - tabbedPane.setIconAt(4, GetIcon("icons/info.png")); - tabbedPane.setToolTipTextAt(4, "Information"); + objectPanel.add(infoPanel); + objectPanel.setIconAt(5, GetIcon("icons/info.png")); + objectPanel.setToolTipTextAt(4, "Information"); } /* @@ -4475,7 +4467,11 @@ System.err.println("Save"); Replace(); - //cRadio tab = GetCurrentTab(); + if (copy.versionlist == null) + { + copy.versionlist = new Object3D[100]; + copy.versionindex = -1; + } Object3D compress = Duplicate(copy); // Saved version. No need for "Replace"? @@ -4649,7 +4645,7 @@ //cRadio tab = GetCurrentTab(); - if (copy.versionlist == null) + if (copy.versionindex == -2) { saveVersionButton.setEnabled(false); restoreButton.setEnabled(false); diff --git a/Object3D.java b/Object3D.java index aba2406..5df575e 100644 --- a/Object3D.java +++ b/Object3D.java @@ -3622,15 +3622,47 @@ void ClearMaterials() { + if (blockloop) + return; + + blockloop = true; + ClearMaterial(); - for (int i = 0; i < size(); i++) + for (int i = 0; i < Size(); i++) { - Object3D child = (Object3D) reserve(i); + Object3D child = (Object3D) get(i); if (child == null) continue; child.ClearMaterials(); - release(i); } + + blockloop = false; + } + + void ClearVersionList() + { + this.versionlist = null; + this.versionindex = -1; + this.versiontable = null; + } + + void ClearVersions() + { + if (blockloop) + return; + + blockloop = true; + + ClearVersionList(); + for (int i = 0; i < Size(); i++) + { + Object3D child = (Object3D) get(i); + if (child == null) + continue; + child.ClearVersions(); + } + + blockloop = false; } void FlipV(boolean flip) -- Gitblit v1.6.2