From 989407a46041b80c71fd906bff6b97528e6f3350 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sat, 08 Jun 2019 23:58:21 -0400
Subject: [PATCH] Fix ZIP issue

---
 ObjEditor.java |  137 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 96 insertions(+), 41 deletions(-)

diff --git a/ObjEditor.java b/ObjEditor.java
index afb7487..00cc42b 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -319,8 +319,21 @@
         toggleTextureItem.addItemListener(this);
         toggleTextureItem.setState(CameraPane.textureon);
         
+        cameraMenu.add(toggleSwitchItem = new CheckboxMenuItem("Switch"));
+        toggleSwitchItem.addItemListener(this);
+        toggleSwitchItem.setState(CameraPane.SWITCH);
+        
+        cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Handles"));
+        toggleHandleItem.addItemListener(this);
+        toggleHandleItem.setState(CameraPane.HANDLES);
+        
+        cameraMenu.add(togglePaintItem = new CheckboxMenuItem("Paint mode"));
+        togglePaintItem.addItemListener(this);
+        togglePaintItem.setState(CameraPane.PAINTMODE);
+        
         if (Globals.ADVANCED)
         {
+        cameraMenu.add("-");
                 cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));
                 toggleLiveItem.addItemListener(this);
                 toggleLiveItem.setState(Globals.isLIVE());
@@ -350,18 +363,6 @@
                 cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
                 toggleTimelineItem.addItemListener(this);
         }
-        
-        cameraMenu.add(toggleSwitchItem = new CheckboxMenuItem("Switch"));
-        toggleSwitchItem.addItemListener(this);
-        toggleSwitchItem.setState(CameraPane.SWITCH);
-        
-        cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Handles"));
-        toggleHandleItem.addItemListener(this);
-        toggleHandleItem.setState(CameraPane.HANDLES);
-        
-        cameraMenu.add(togglePaintItem = new CheckboxMenuItem("Paint mode"));
-        togglePaintItem.addItemListener(this);
-        togglePaintItem.setState(CameraPane.PAINTMODE);
         
 //		cameraMenu.add(toggleRootItem = new CheckboxMenuItem("Alternate Root"));
 //		toggleRootItem.addItemListener(this);
@@ -500,13 +501,13 @@
         //SendInfo("Name:", "bold");
         if (sel.GetTextures() != null || debug)
         {
-            si.SendInfo(sel.toString(), "bold");
+            si.SendInfo(sel.toString() + (Globals.ADVANCED?"":" " + System.identityHashCode(sel)), "bold");
             //SendInfo("#children virtual = " + sel.size() + "; real = " + sel.Size() + newline, "regular");
             if (sel.Size() > 0)
             {
                 si.SendInfo("#children = " + sel.Size(), "regular");
             }
-            si.SendInfo((debug ? "    Parent: " : "    ") + sel.parent, "regular");
+            si.SendInfo((debug ? "    Parent: " : "    ") + sel.parent + (Globals.ADVANCED?"":" " + System.identityHashCode(sel.parent)), "regular");
             if (debug)
             {
                 try
@@ -548,7 +549,7 @@
                 }
                 if (sel.support != null)
                 {
-                    si.SendInfo("    support: " + sel.support, "regular");
+                    si.SendInfo("    support: " + sel.support + (Globals.ADVANCED?"":" " + System.identityHashCode(sel.support)), "regular");
                 }
                 if (sel.scriptnode != null)
                 {
@@ -751,7 +752,7 @@
     protected static ImageIcon createImageIcon(String path,
             String description)
     {
-        java.net.URL imgURL = GrafreeD.class.getResource(path);
+        java.net.URL imgURL = Grafreed.class.getResource(path);
         if (imgURL != null)
         {
             return new ImageIcon(imgURL, description);
@@ -783,6 +784,7 @@
 //    NumberSlider vDivsField;
 //    JCheckBox endcaps;
     JCheckBox liveCB;
+    JCheckBox selectCB;
     JCheckBox hideCB;
     JCheckBox link2masterCB;
     JCheckBox markCB;
@@ -985,9 +987,11 @@
             
         liveCB = AddCheckBox(setupPanel, "Live", copy.live);
                 liveCB.setToolTipText("Animate object");
+        selectCB = AddCheckBox(setupPanel, "Select", !copy.dontselect);
+                selectCB.setToolTipText("Make object selectable");
+//            Return();
         hideCB = AddCheckBox(setupPanel, "Hide", copy.hide);
                 hideCB.setToolTipText("Hide object");
-//            Return();
         markCB = AddCheckBox(setupPanel, "Mark", copy.marked);
         markCB.setToolTipText("Set the animation target transform");
         
@@ -1027,7 +1031,7 @@
         oe.ctrlPanel.add(commandsPanel);
         oe.ctrlPanel.Return();
 
-    pushPanel = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, 1);
+    pushPanel = AddSlider(oe.ctrlPanel, "Push", -1, 1, copy.NORMALPUSH, 1.1); // To have the buttons
     normalpushField = (cNumberSlider)pushPanel.getComponent(1);
     //Return();
 
@@ -1329,7 +1333,7 @@
         scrollpane.addMouseWheelListener(this); // Default not fast enough
 
         /*JTabbedPane*/ scenePanel = new cGridBag();
-        scenePanel.preferredWidth = 7;
+        scenePanel.preferredWidth = 6;
         
         JTabbedPane tabbedPane = new JTabbedPane();
         tabbedPane.add(scrollpane);
@@ -1435,8 +1439,8 @@
 
 //            aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
 
-        frame.setSize(1024, 768);
-        frame.show();
+        frame.setSize(1280, 860);
+        frame.setVisible(true);
 
         gridPanel.setDividerLocation(1.0);
 
@@ -1475,19 +1479,19 @@
 
         cGridBag editBar = new cGridBag().setVertical(false);
             
-        editBar.add(createMaterialButton = new cButton("Create", !GrafreeD.NIMBUSLAF)); // , aConstraints);
+        editBar.add(createMaterialButton = new cButton("Create", !Grafreed.NIMBUSLAF)); // , aConstraints);
                 createMaterialButton.setToolTipText("Create material");
 
         /*
         ctrlPanel.add(resetSlidersButton = new cButton("Reset All"), aConstraints);
          */
 
-        editBar.add(clearMaterialButton = new cButton("Clear", !GrafreeD.NIMBUSLAF)); // , aConstraints);
+        editBar.add(clearMaterialButton = new cButton("Clear", !Grafreed.NIMBUSLAF)); // , aConstraints);
                 clearMaterialButton.setToolTipText("Clear material");
         
         if (Globals.ADVANCED)
         {
-                editBar.add(resetSlidersButton = new cButton("Reset", !GrafreeD.NIMBUSLAF)); // , aConstraints);
+                editBar.add(resetSlidersButton = new cButton("Reset", !Grafreed.NIMBUSLAF)); // , aConstraints);
                 editBar.add(propagateToggle = new cCheckBox("Prop", propagate)); // , aConstraints);
                 editBar.add(multiplyToggle = new cCheckBox("Mult", false)); // , aConstraints);
         }
@@ -1938,7 +1942,7 @@
 
         //? flashIt = false;
         CameraPane pane = (CameraPane) cameraView;
-        pane.clickStart(location.x, location.y, 0);
+        pane.clickStart(location.x, location.y, 0, 0);
         pane.clickEnd(location.x, location.y, 0, true);
 
         if (group.selection.size() == 1)
@@ -2395,11 +2399,11 @@
 
     void ImportJME(com.jmex.model.converters.FormatConverter converter, String ext, String dialogName)
     {
-        if (GrafreeD.standAlone)
+        if (Grafreed.standAlone)
         {
             /**/
             FileDialog browser = new FileDialog(frame, dialogName, FileDialog.LOAD);
-            browser.show();
+            browser.setVisible(true);
             String filename = browser.getFile();
             if (filename != null && filename.length() > 0)
             {
@@ -3006,6 +3010,10 @@
         {
             copy.live ^= true;
             return;
+        } else if (event.getSource() == selectCB)
+        {
+            copy.dontselect ^= true;
+            return;
         } else if (event.getSource() == hideCB)
         {
             copy.hide ^= true;
@@ -3254,8 +3262,8 @@
 
                 Globals.ANIMATION ^= true;
 
-                GrafreeD.wav.cursor = 0;
-                GrafreeD.wav.loop = 0;
+                Grafreed.wav.cursor = 0;
+                Grafreed.wav.loop = 0;
             }
         } else
         {
@@ -3276,7 +3284,6 @@
             callee.refreshContents();
         } else
         {
-                new Exception().printStackTrace();
             System.exit(0);
         }
     }
@@ -3443,6 +3450,36 @@
             {
                 //System.out.println("Propagate = " + propagate);
                 copy.UpdateMaterial(anchor, current, propagate);
+                
+                if (copy.material != null)
+                {
+                    cMaterial mat = copy.material;
+                            
+                    colorField.SetToolTipValue((mat.color));
+                    modulationField.SetToolTipValue((mat.modulation));
+                    metalnessField.SetToolTipValue((mat.metalness));
+                    diffuseField.SetToolTipValue((mat.diffuse));
+                    specularField.SetToolTipValue((mat.specular));
+                    shininessField.SetToolTipValue((mat.shininess));
+                    shiftField.SetToolTipValue((mat.shift));
+                    ambientField.SetToolTipValue((mat.ambient));
+                    lightareaField.SetToolTipValue((mat.lightarea));
+                    diffusenessField.SetToolTipValue((mat.factor));
+                    velvetField.SetToolTipValue((mat.velvet));
+                    sheenField.SetToolTipValue((mat.sheen));
+                    subsurfaceField.SetToolTipValue((mat.subsurface));
+                    backlitField.SetToolTipValue((mat.bump));
+                    anisoField.SetToolTipValue((mat.aniso));
+                    anisoVField.SetToolTipValue((mat.anisoV));
+                    cameraField.SetToolTipValue((mat.cameralight));
+                    selfshadowField.SetToolTipValue((mat.diffuseness));
+                    shadowField.SetToolTipValue((mat.shadow));
+                    textureField.SetToolTipValue((mat.texture));
+                    opacityField.SetToolTipValue((mat.opacity));
+                    fakedepthField.SetToolTipValue((mat.fakedepth));
+                    shadowbiasField.SetToolTipValue((mat.shadowbias));
+                }
+                
                 if (copy.material != null && copy.projectedVertices.length > 0 && copy.projectedVertices[0] != null)
                 {
                     copy.projectedVertices[0].x = (int) (bumpField.getFloat() * 1000);
@@ -3558,7 +3595,7 @@
         }
         
         if (normalpushField != null)
-                copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
+                copy.NORMALPUSH = (float)normalpushField.getFloat()/100;
     }
 
         void SnapObject()
@@ -4025,6 +4062,7 @@
             }
         }
     }
+    
     LoadGFDThread loadGFDThread;
 
     void ReadGFD(String fullname, iCallBack cb)
@@ -4045,7 +4083,8 @@
         try
         {
             java.io.FileInputStream istream = new java.io.FileInputStream(fullname);
-            java.io.ObjectInputStream p = new java.io.ObjectInputStream(istream);
+            java.util.zip.GZIPInputStream zstream = new java.util.zip.GZIPInputStream(istream);
+            java.io.ObjectInputStream p = new java.io.ObjectInputStream(zstream);
 
             readobj = (Object3D) p.readObject();
             istream.close();
@@ -4053,7 +4092,20 @@
             readobj.ResetDisplayList();
         } catch (Exception e)
         {
-            e.printStackTrace();
+            //e.printStackTrace();
+            try
+            {
+                java.io.FileInputStream istream = new java.io.FileInputStream(fullname);
+                java.io.ObjectInputStream p = new java.io.ObjectInputStream(istream);
+
+                readobj = (Object3D) p.readObject();
+                istream.close();
+
+                readobj.ResetDisplayList();
+            } catch (Exception e2)
+            {
+                e2.printStackTrace();
+            }
         }
 //            catch(java.io.StreamCorruptedException e) { e.printStackTrace(); }
 //            catch(java.io.IOException e) { System.out.println("IOexception"); e.printStackTrace(); }
@@ -4170,7 +4222,7 @@
 
     void load() // throws ClassNotFoundException
     {
-        if (GrafreeD.standAlone)
+        if (Grafreed.standAlone)
         {
             FileDialog browser = new FileDialog(frame, "Load", FileDialog.LOAD);
             browser.show();
@@ -4257,11 +4309,13 @@
         try
         {
             FileOutputStream ostream = new FileOutputStream(lastname);
-            ObjectOutputStream p = new ObjectOutputStream(ostream);
+            java.util.zip.GZIPOutputStream zstream = new java.util.zip.GZIPOutputStream(ostream);
+            ObjectOutputStream p = new ObjectOutputStream(zstream);
 
             p.writeObject(copy);
             p.flush();
 
+            zstream.close();
             ostream.close();
 
             //FileOutputStream fos = new FileOutputStream(fullname);
@@ -4271,11 +4325,12 @@
         {
         }
     }
+    
     String lastname;
 
     void saveAs()
     {
-        if (GrafreeD.standAlone)
+        if (Grafreed.standAlone)
         {
             FileDialog browser = new FileDialog(frame, "Save As", FileDialog.SAVE);
             browser.setVisible(true);
@@ -4380,13 +4435,13 @@
         try
         {
             FileOutputStream ostream = new FileOutputStream(filename);
-            // ??        java.util.zip.GZIPOutputStream zstream = new java.util.zip.GZIPOutputStream(ostream);
-            ObjectOutputStream p = new ObjectOutputStream(/*z*/ostream);
+            java.util.zip.GZIPOutputStream zstream = new java.util.zip.GZIPOutputStream(ostream);
+            ObjectOutputStream p = new ObjectOutputStream(zstream);
 
             Object3D objectparent = obj.parent;
             obj.parent = null;
 
-            Object3D object = (Object3D) GrafreeD.clone(obj);
+            Object3D object = (Object3D) Grafreed.clone(obj);
 
             obj.parent = objectparent;
 
@@ -4398,8 +4453,8 @@
             p.writeObject(object);
             p.flush();
 
+            zstream.close();
             ostream.close();
-            //       zstream.close();
 
 //                                    group.selection.get(0).parent = parent;
             //FileOutputStream fos = new FileOutputStream(fullname);
@@ -4420,7 +4475,7 @@
         buffer.append("background { color rgb <0.8,0.8,0.8> }\n\n");
         cameraView.renderCamera.generatePOV(buffer, bnds.width, bnds.height);
         copy.generatePOV(buffer);
-        if (GrafreeD.standAlone)
+        if (Grafreed.standAlone)
         {
             FileDialog browser = new FileDialog(frame, "Export POV", 1);
             browser.show();

--
Gitblit v1.6.2