From b1d79b74514041a059b454a9f6fc3970773c0cb8 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 12 Aug 2019 18:19:30 -0400 Subject: [PATCH] Compact toolbar. --- Grafreed.java | 133 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 124 insertions(+), 9 deletions(-) diff --git a/Grafreed.java b/Grafreed.java index 088a313..1726670 100644 --- a/Grafreed.java +++ b/Grafreed.java @@ -23,6 +23,8 @@ static float epsvertex2 = 0.001f; static boolean linkUV = false; // not uniform at load time + static boolean smoothmode = false; + static Wav wav = new Wav("/Users/nbriere/0ut/wavs/monoformat"); // output"); static boolean hassound = false; static boolean savesound = false; @@ -47,6 +49,79 @@ } } + + public static String RemovePrefix(String s, String prefix) + { + if (s != null && prefix != null && s.startsWith(prefix)) + { + return s.substring(prefix.length()); + } + + return s; + } + + static void ParseFileSystem(java.io.File dir, iResourceCallBack callback, String prefix) + { + callback.ResourceCallBack(RemovePrefix(dir.toString(),prefix).split("/")); + File[] listFiles = dir.listFiles(); + if (listFiles != null) + { + for (java.io.File file : listFiles) + { + ParseFileSystem(file, callback, prefix); + } + } + } + + static interface iResourceCallBack + { + void ResourceCallBack(String[] path); + } + + static void ParseResources(String path, iResourceCallBack callback) + { + java.io.File jarFile = new java.io.File(Grafreed.class.getProtectionDomain().getCodeSource().getLocation().getPath()); + + if (jarFile.isFile()) + { + // Run with JAR file + try + { + java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile); + java.util.Enumeration<java.util.jar.JarEntry> entries = jar.entries(); //gives ALL entries in jar + while (entries.hasMoreElements()) + { + String name = entries.nextElement().getName(); + + if (name.startsWith(path + "/")) + callback.ResourceCallBack(RemovePrefix(name, path + "/").split("/")); + } + jar.close(); + } catch (Exception ex) + { + ex.printStackTrace(); + } + } else + { + // Run with IDE + final java.net.URL url = Object3D.class.getResource("/" + path); + if (url != null) + { + try + { + java.io.File apps = new java.io.File(url.toURI()); + ParseFileSystem(apps, callback, RemovePrefix(url.toString() + "/", "file:")); +// for (java.io.File app : apps.listFiles()) +// { +// //System.out.println(RemovePrefix(app.toString(), RemovePrefix(url.toString(), "file:") + "/")); +// } + } catch (Exception ex) + { + ex.printStackTrace(); + } + } + } + } public void init() { @@ -56,7 +131,7 @@ universe.material = new cMaterial(); //god.addChild(universe); universe.name = "Applet"; - grafreeD = this; + grafreed = this; } /**/ @@ -847,19 +922,59 @@ //Monitor mon=MonitorFactory.start("myFirstMonitor"); standAlone = true; - grafreeD = new Grafreed(); - grafreeD.universe = new cGroup(); - grafreeD.universe.name = "Grafreed"; - grafreeD.universe.material = new cMaterial(); + grafreed = new Grafreed(); + grafreed.materials = ReadGFD(grafreed.getClass().getClassLoader().getResourceAsStream("gfd/materials.gfd")); + + grafreed.universe = new cGroup(); + grafreed.universe.name = "Grafreed"; + grafreed.universe.material = new cMaterial(); // theApplet3D.universe.textures = CameraPane.DEFAULT_TEXTURE; - grafreeD.universe.root = true; - grafreeD.universe.openEditWindow(null, true); //, true); + grafreed.universe.root = true; + grafreed.universe.openEditWindow(null, true); //, true); //mon.stop(); //System.out.println(mon); //timeflow.app.TimeflowAppLauncher.GetTimeFlow(); } + static Object3D materials; + + static Object3D ReadGFD(java.io.InputStream istream) + { + Object3D readobj = null; + + try + { + // Try compressed version first. + 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(); + + readobj.ResetDisplayList(); + } catch (Exception e) + { + if (!e.toString().contains("GZIP")) + e.printStackTrace(); + + try + { + java.io.ObjectInputStream p = new java.io.ObjectInputStream(istream); + + readobj = (Object3D) p.readObject(); + istream.close(); + + readobj.ResetDisplayList(); + } catch (Exception e2) + { + e2.printStackTrace(); + } + } + + return readobj; + } + // Timer callback public void actionPerformed(ActionEvent e) { @@ -874,7 +989,7 @@ static int depth = 0; static java.util.Stack stack = new java.util.Stack(); static boolean traceoff = false; // true; - static float[] colorV = new float[5]; + static float[] colorV = new float[4]; // 5]; static void traceon() { @@ -1083,7 +1198,7 @@ } while (avail > 0 && numRead >= 0); return new String(data, 0, pos, "US-ASCII"); } - public static Grafreed grafreeD; + public static Grafreed grafreed; public static boolean standAlone = true; public Composite universe; public static Object3D clipboard = new Object3D(); -- Gitblit v1.6.2