From 83d0c2fa0bd2e96448f776144e1a89cdb1bb6998 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Fri, 16 Aug 2019 18:22:19 -0400 Subject: [PATCH] Save version table. --- ObjEditor.java | 43 ++++++++++++++++++++++++++----------------- BoundaryRep.java | 4 ++++ GroupEditor.java | 11 +++++++---- Object3D.java | 2 ++ 4 files changed, 39 insertions(+), 21 deletions(-) diff --git a/BoundaryRep.java b/BoundaryRep.java index 5e5371f..3d93ef4 100644 --- a/BoundaryRep.java +++ b/BoundaryRep.java @@ -686,6 +686,7 @@ void RecomputeBasis(BoundaryRep other, double[][] toRoot, Vertex v) { + CameraPane.CreateSelectedPoint(); CameraPane.selectedpoint. getAverage(cStatic.point1, true); @@ -1003,6 +1004,7 @@ v.closestsupport = -1; + CameraPane.CreateSelectedPoint(); CameraPane.selectedpoint. getAverage(cStatic.point1, true); @@ -1261,6 +1263,7 @@ for (int wi = v0.weights.length; --wi>=0;) v[wi] = 0; + CameraPane.CreateSelectedPoint(); CameraPane.selectedpoint. getAverage(cStatic.point1, true); @@ -1398,6 +1401,7 @@ v0.x = v0.y = v0.z = 0; v0.norm.x = v0.norm.y = v0.norm.z = 0; + CameraPane.CreateSelectedPoint(); CameraPane.selectedpoint. getAverage(cStatic.point1, true); diff --git a/GroupEditor.java b/GroupEditor.java index cff60a6..b81fe93 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -415,12 +415,14 @@ this.copy = this.group = group; //selectees = this.group.selectees; + assert(false); + if (copy.versionlist == null) { copy.versionlist = new Object3D[100]; copy.versionindex = -1; - Save(true); + //Save(true); } if(ui) @@ -449,7 +451,7 @@ copy.versionlist = new Object3D[100]; copy.versionindex = -1; - Save(true); + //Save(true); } } @@ -1111,6 +1113,7 @@ copyOptionsPanel.add(deleteVersionButton = GetButton("icons/trash.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); deleteVersionButton.setToolTipText("Delete current version"); deleteVersionButton.addActionListener(this); + deleteVersionButton.setEnabled(false); copyOptionsPanel.add(previousVersionButton = GetButton("icons/undo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); previousVersionButton.setToolTipText("Previous version"); @@ -1121,12 +1124,12 @@ updown.add(restoreButton = GetButton("icons/restore.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); restoreButton.setToolTipText("Undo (restore current version)"); restoreButton.addActionListener(this); - //restoreButton.setEnabled(false); + restoreButton.setEnabled(false); updown.add(replaceButton = GetButton("icons/replace.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); replaceButton.setToolTipText("Save (replace current version)"); replaceButton.addActionListener(this); - //replaceButton.setEnabled(false); + replaceButton.setEnabled(false); copyOptionsPanel.add(updown); diff --git a/ObjEditor.java b/ObjEditor.java index 8e35dec..16de211 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -951,18 +951,24 @@ boolean temp = CameraPane.SWITCH; CameraPane.SWITCH = false; - object.ExtractBigData(versiontable); + if (Grafreed.grafreed.universe.versiontable == null) + Grafreed.grafreed.universe.versiontable = new java.util.Hashtable<java.util.UUID, Object3D>(); + + object.ExtractBigData(Grafreed.grafreed.universe.versiontable); // if (copy == client) Object3D versions[] = object.versionlist; + java.util.Hashtable<java.util.UUID, Object3D> versiontable = object.versiontable; // if Grafreed.grafreed.universe object.versionlist = null; + object.versiontable = null; //byte[] compress = Compress(copy); Object3D compress = (Object3D)Grafreed.clone(object); object.versionlist = versions; + object.versiontable = versiontable; // if Grafreed.grafreed.universe - object.RestoreBigData(versiontable); + object.RestoreBigData(Grafreed.grafreed.universe.versiontable); CameraPane.SWITCH = temp; @@ -1659,14 +1665,14 @@ //JScrollPane tmp = new JScrollPane(ctrlPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); //tmp.setName("Edit"); - objectPanel.add(materialPanel); - objectPanel.setIconAt(0, GetIcon("icons/material.png")); - objectPanel.setToolTipTextAt(0, "Material"); - objectPanel.add(toolboxPanel); - objectPanel.setIconAt(1, GetIcon("icons/primitives.png")); - objectPanel.setToolTipTextAt(1, "Objects & textures"); + objectPanel.setIconAt(0, GetIcon("icons/primitives.png")); + objectPanel.setToolTipTextAt(0, "Objects & textures"); + objectPanel.add(materialPanel); + objectPanel.setIconAt(1, GetIcon("icons/material.png")); + objectPanel.setToolTipTextAt(1, "Material"); + objectPanel.add(skyboxPanel); objectPanel.setIconAt(2, GetIcon("icons/skybox.jpg")); objectPanel.setToolTipTextAt(2, "Backgrounds"); @@ -3913,7 +3919,7 @@ //System.out.println("ObjEditor " + event); applySelf0(true); //parent.applySelf(); - objEditor.refreshContents(); + // conflicts with requestFocus objEditor.refreshContents(); } else if (source == resetButton) { CameraPane.fullreset = true; @@ -4225,8 +4231,6 @@ return true; } - java.util.Hashtable<java.util.UUID, Object3D> versiontable = new java.util.Hashtable<java.util.UUID, Object3D>(); - void DeleteVersion() { for (int i = copy.versionindex; i < copy.versionlist.length-1; i++) @@ -4234,7 +4238,11 @@ copy.versionlist[i] = copy.versionlist[i+1]; } - CopyChanged(); + if (copy.versionlist[copy.versionindex] == null) + copy.versionindex -= 1; + + if (copy.versionindex != -1) + CopyChanged(); SetVersionStates(); } @@ -4347,7 +4355,7 @@ boolean temp = CameraPane.SWITCH; CameraPane.SWITCH = false; - copy.ExtractBigData(versiontable); + copy.ExtractBigData(Grafreed.grafreed.universe.versiontable); copy.clear(); @@ -4359,7 +4367,7 @@ copy.add(obj.get(i)); } - copy.RestoreBigData(versiontable); + copy.RestoreBigData(Grafreed.grafreed.universe.versiontable); CameraPane.SWITCH = temp; @@ -4422,8 +4430,8 @@ previousVersionButton.setEnabled(copy.versionindex > 0); nextVersionButton.setEnabled(copy.versionlist[copy.versionindex + 1] != null); - deleteVersionButton.setEnabled(//copy.versionindex > 0 && - copy.versionlist[copy.versionindex + 1] != null); + deleteVersionButton.setEnabled(copy.versionindex != -1); + //copy.versionlist[copy.versionindex + 1] != null); muteSlider = true; versionSlider.setMinimum(0); @@ -4488,7 +4496,7 @@ public boolean Replace() { - System.err.println("Replace"); + //System.err.println("Replace"); //cRadio tab = GetCurrentTab(); @@ -5578,6 +5586,7 @@ copy.versionlist = readobj.versionlist; copy.versionindex = readobj.versionindex; + copy.versiontable = readobj.versiontable; if (copy.versionlist == null) { diff --git a/Object3D.java b/Object3D.java index 054b3c1..c1e3334 100644 --- a/Object3D.java +++ b/Object3D.java @@ -36,6 +36,8 @@ Object3D versionlist[]; int versionindex = -1; + java.util.Hashtable<java.util.UUID, Object3D> versiontable; // = new java.util.Hashtable<java.util.UUID, Object3D>(); + ScriptNode scriptnode; void InitOthers() -- Gitblit v1.6.2