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