From d7bc8865056ea0d35df261e719f92e1422af7c6e Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 05 May 2019 09:00:26 -0400
Subject: [PATCH] Fix Windows issues.
---
CameraPane.java | 16 +++--
GroupEditor.java | 4 +
GrafreeD.java | 4
cFileSystemPane.java | 2
Mocap.java | 35 ++++++++---
Object3D.java | 68 ++++++++++++++++++++--
6 files changed, 102 insertions(+), 27 deletions(-)
diff --git a/CameraPane.java b/CameraPane.java
index e5811ae..83bde94 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -8075,12 +8075,16 @@
{
String texname = tex;
- String[] split = tex.split("Textures");
- if (split.length > 1)
- texname = "/Users/nbriere/Textures" + split[split.length-1];
- else
- if (!texname.startsWith("/"))
- texname = "/Users/nbriere/Textures/" + texname;
+// String[] split = tex.split("Textures");
+// if (split.length > 1)
+// texname = "/Users/nbriere/Textures" + split[split.length-1];
+// else
+// if (!texname.startsWith("/"))
+// texname = "/Users/nbriere/Textures/" + texname;
+ if (!new File(tex).exists())
+ {
+ texname = javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDirectory() + "/Textures/" + texname;
+ }
if (CACHETEXTURE)
texture = textures.get(texname); // TEXTURE CACHE
diff --git a/GrafreeD.java b/GrafreeD.java
index d82d57e..6485281 100644
--- a/GrafreeD.java
+++ b/GrafreeD.java
@@ -612,7 +612,7 @@
System.out.println("jarfile0 = " + jarfile);
- String jarpath = u.toString().split("file:")[1].split("GrafreeD.jar")[0];
+ String jarpath = u.toString().split("file:")[1].split("Grafreed.jar")[0];
System.out.println("jarpath0 = " + jarpath);
@@ -845,7 +845,7 @@
standAlone = true;
grafreeD = new GrafreeD();
grafreeD.universe = new Composite();
- grafreeD.universe.name = "Scene";
+ grafreeD.universe.name = "Grafreed";
grafreeD.universe.material = new cMaterial();
// theApplet3D.universe.textures = CameraPane.DEFAULT_TEXTURE;
diff --git a/GroupEditor.java b/GroupEditor.java
index 6995fb1..cbd2ec6 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -940,7 +940,9 @@
// objEditor.DropFile((java.io.File[]) object, true);
// return;
// }
- if (string.charAt(0) == '/')
+
+ // File path for Mac and Windows
+ if (string.charAt(0) == '/' || string.charAt(1) == ':')
{
// file(s)
String[] names = string.split("\n");
diff --git a/Mocap.java b/Mocap.java
index 0bbe7d9..fc0ff2e 100644
--- a/Mocap.java
+++ b/Mocap.java
@@ -3299,23 +3299,40 @@
// SetPositionDelta(false, true, false); // ?? false);
{
if (support == null)
- ObjEditor.LoadBVHFile(fullname, this, false, beginframe, lastframetest);
+ {
+ if (new File(fullname).exists())
+ ObjEditor.LoadBVHFile(fullname, this, false, beginframe, lastframetest);
+ else
+ {
+ SetGlobalTransform();
+ Rewind();
+ Fade();
+ }
+ }
else
{
- try
- {
+// try
+// {
bvh = ((Mocap)support.get(mocapsupport++ % support.Size())).bvh;
// SetPositionDelta(false, true, true, true);
LoadData();
Rewind();
Fade();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- ObjEditor.LoadBVHFile(fullname, this, false, beginframe, lastframetest);
- }
+// }
+// catch (Exception e)
+// {
+// System.err.println("An error occured while loading data. Use fallback by loading the file.");
+// //e.printStackTrace();
+// try
+// {
+// ObjEditor.LoadBVHFile(fullname, this, false, beginframe, lastframetest);
+// }
+// catch (Exception e2)
+// {
+// System.err.println("Motion file not found: " + fullname);
+// }
+// }
}
}
diff --git a/Object3D.java b/Object3D.java
index 1478589..2b543d0 100644
--- a/Object3D.java
+++ b/Object3D.java
@@ -5159,10 +5159,34 @@
// System.out.println("Fullname = " + fullname);
- if (fullname.name.indexOf(":") == -1)
- return fullname.name;
+ // Does not work on Windows due to C:
+// if (fullname.name.indexOf(":") == -1)
+// return fullname.name;
+//
+// return fullname.name.substring(0,fullname.name.indexOf(":"));
- return fullname.name.substring(0,fullname.name.indexOf(":"));
+ String[] split = fullname.name.split(":");
+
+ if (split.length == 0)
+ {
+ return "";
+ }
+
+ if (split.length <= 2)
+ {
+ if (fullname.name.endsWith(":"))
+ {
+ // Windows
+ return fullname.name.substring(0, fullname.name.length()-1);
+ }
+
+ return split[0];
+ }
+
+ // Windows
+ assert(split.length == 4);
+
+ return split[0] + ":" + split[1];
}
static String GetBump(cTexture fullname)
@@ -5171,10 +5195,38 @@
return "";
// System.out.println("Fullname = " + fullname);
- if (fullname.name.indexOf(":") == -1)
- return "";
-
- return fullname.name.substring(fullname.name.indexOf(":")+1,fullname.name.length());
+ // Does not work on Windows due to C:
+// if (fullname.name.indexOf(":") == -1)
+// return "";
+//
+// return fullname.name.substring(fullname.name.indexOf(":")+1,fullname.name.length());
+ String[] split = fullname.name.split(":");
+
+ if (split.length == 0)
+ {
+ return "";
+ }
+
+ if (split.length == 1)
+ {
+ return "";
+ }
+
+ if (split.length == 2)
+ {
+ if (fullname.name.endsWith(":"))
+ {
+ // Windows
+ return "";
+ }
+
+ return split[1];
+ }
+
+ // Windows
+ assert(split.length == 4);
+
+ return split[2] + ":" + split[3];
}
String GetPigmentTexture()
@@ -5248,7 +5300,7 @@
System.out.print("; textures = " + textures);
System.out.println("; usedtextures = " + usedtextures);
- if (GetTextures() == null)
+ if (GetTextures() == null) // What is that??
GetTextures().name = ":";
String texname = tex;
diff --git a/cFileSystemPane.java b/cFileSystemPane.java
index a446d0f..9b42459 100644
--- a/cFileSystemPane.java
+++ b/cFileSystemPane.java
@@ -136,7 +136,7 @@
jTree.setModel(new cFileSystemModel(
//java.io.File.listRoots()[1])
- javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDirectory(),
+ javax.swing.filechooser.FileSystemView.getFileSystemView().getHomeDirectory(),
filter
));
}
--
Gitblit v1.6.2