Skip to content

Commit bc6cdf5

Browse files
JNightRiderwil
authored andcommitted
Fix bug #2277 - GltfLoader (#2309)
* fix bug #2277 * update * script error * module implementation * corrections... --------- Co-authored-by: wil <wil@debian>
1 parent 5cadb88 commit bc6cdf5

File tree

15 files changed

+62
-32
lines changed

15 files changed

+62
-32
lines changed

jme3-examples/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ dependencies {
2424
implementation project(':jme3-networking')
2525
implementation project(':jme3-niftygui')
2626
implementation project(':jme3-plugins')
27-
// implementation project(':jme3-plugins-json')
28-
// implementation project(':jme3-plugins-json-gson')
27+
implementation project(':jme3-plugins-json')
28+
implementation project(':jme3-plugins-json-gson')
2929
implementation project(':jme3-terrain')
3030
implementation project(':jme3-awt-dialogs')
3131
runtimeOnly project(':jme3-testdata')

jme3-plugins-json-gson/src/main/java/com/jme3/plugins/gson/GsonElement.java

+19
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import com.jme3.plugins.json.JsonObject;
3737
import com.jme3.plugins.json.JsonPrimitive;
3838

39+
import java.util.Objects;
40+
3941
/**
4042
* GSON implementation of {@link JsonElement}
4143
*/
@@ -46,6 +48,23 @@ class GsonElement implements JsonElement {
4648
this.element = element;
4749
}
4850

51+
@Override
52+
public int hashCode() {
53+
return Objects.hashCode(this.element);
54+
}
55+
56+
@Override
57+
public boolean equals(Object obj) {
58+
if (this == obj) {
59+
return true;
60+
}
61+
if (obj == null || getClass() != obj.getClass()) {
62+
return false;
63+
}
64+
final GsonElement other = (GsonElement) obj;
65+
return Objects.equals(this.element, other.element);
66+
}
67+
4968
protected boolean isNull(com.google.gson.JsonElement element) {
5069
if (element == null) return true;
5170
if (element.isJsonNull()) return true;

jme3-plugins-json/src/main/java/com/jme3/plugins/json/JsonElement.java

-1
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,4 @@ public interface JsonElement {
9898
* @return the casted JsonElement
9999
*/
100100
public <T extends JsonElement> T autoCast();
101-
102101
}

jme3-plugins/build.gradle

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ sourceSets {
1111

1212
dependencies {
1313
api project(':jme3-core')
14-
api 'com.google.code.gson:gson:2.9.1'
14+
15+
implementation project(':jme3-plugins-json')
16+
implementation project(':jme3-plugins-json-gson')
1517
testRuntimeOnly project(':jme3-desktop')
1618
}

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/CustomContentManager.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonArray;
35-
import com.google.gson.JsonElement;
34+
import com.jme3.plugins.json.JsonArray;
35+
import com.jme3.plugins.json.JsonElement;
3636
import com.jme3.asset.AssetLoadException;
3737
import java.io.IOException;
3838
import java.lang.reflect.InvocationTargetException;

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/ExtensionLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonElement;
34+
import com.jme3.plugins.json.JsonElement;
3535
import java.io.IOException;
3636

3737
/**

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/ExtrasLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonElement;
34+
import com.jme3.plugins.json.JsonElement;
3535

3636
/**
3737
* Interface to handle a glTF extra.

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,10 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonArray;
35-
import com.google.gson.JsonObject;
36-
import com.google.gson.JsonPrimitive;
37-
import com.google.gson.JsonElement;
38-
import com.google.gson.JsonParser;
39-
import com.google.gson.stream.JsonReader;
34+
import com.jme3.plugins.json.JsonArray;
35+
import com.jme3.plugins.json.JsonObject;
36+
import com.jme3.plugins.json.JsonPrimitive;
37+
import com.jme3.plugins.json.JsonElement;
4038
import com.jme3.anim.*;
4139
import com.jme3.asset.*;
4240
import com.jme3.material.Material;
@@ -123,7 +121,7 @@ protected Object loadFromStream(AssetInfo assetInfo, InputStream stream) throws
123121
defaultMat.setFloat("Roughness", 1f);
124122
}
125123

126-
docRoot = JsonParser.parseReader(new JsonReader(new InputStreamReader(stream))).getAsJsonObject();
124+
docRoot = parse(stream);
127125

128126
JsonObject asset = docRoot.getAsJsonObject().get("asset").getAsJsonObject();
129127
getAsString(asset, "generator");

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonArray;
35-
import com.google.gson.JsonElement;
36-
import com.google.gson.JsonObject;
34+
import com.jme3.plugins.json.JsonArray;
35+
import com.jme3.plugins.json.JsonElement;
36+
import com.jme3.plugins.json.JsonObject;
3737
import com.jme3.asset.AssetInfo;
3838
import com.jme3.asset.AssetLoadException;
3939
import com.jme3.math.*;
40+
import com.jme3.plugins.json.Json;
41+
import com.jme3.plugins.json.JsonParser;
4042
import com.jme3.scene.*;
4143
import com.jme3.texture.Texture;
4244
import com.jme3.util.*;
@@ -58,8 +60,18 @@ public class GltfUtils {
5860
*/
5961
private GltfUtils() {
6062
}
63+
64+
/**
65+
* Parse a json input stream and returns a {@link JsonObject}
66+
* @param stream the stream to parse
67+
* @return the JsonObject
68+
*/
69+
public static JsonObject parse(InputStream stream) {
70+
JsonParser parser = Json.create();
71+
return parser.parse(stream);
72+
}
6173

62-
public static Mesh.Mode getMeshMode(Integer mode) {
74+
public static Mesh.Mode getMeshMode(Integer mode) {
6375
if (mode == null) {
6476
return Mesh.Mode.Triangles;
6577
}

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/LightsPunctualExtensionLoader.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonArray;
35-
import com.google.gson.JsonElement;
36-
import com.google.gson.JsonObject;
34+
import com.jme3.plugins.json.JsonArray;
35+
import com.jme3.plugins.json.JsonElement;
36+
import com.jme3.plugins.json.JsonObject;
3737
import com.jme3.asset.AssetLoadException;
3838
import com.jme3.light.DirectionalLight;
3939
import com.jme3.light.Light;

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/PBREmissiveStrengthExtensionLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
package com.jme3.scene.plugins.gltf;
3333

3434
import com.jme3.asset.AssetKey;
35-
import com.google.gson.JsonElement;
35+
import com.jme3.plugins.json.JsonElement;
3636
import java.io.IOException;
3737

3838
/**

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/PBRSpecGlossExtensionLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import com.jme3.asset.AssetKey;
3535

3636
import java.io.IOException;
37-
import com.google.gson.JsonElement;
37+
import com.jme3.plugins.json.JsonElement;
3838
import static com.jme3.scene.plugins.gltf.GltfUtils.getAsColor;
3939
import static com.jme3.scene.plugins.gltf.GltfUtils.getAsFloat;
4040

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TextureTransformExtensionLoader.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonArray;
35-
import com.google.gson.JsonElement;
36-
import com.google.gson.JsonObject;
34+
import com.jme3.plugins.json.JsonArray;
35+
import com.jme3.plugins.json.JsonElement;
36+
import com.jme3.plugins.json.JsonObject;
3737
import com.jme3.asset.AssetLoadException;
3838
import com.jme3.math.Matrix3f;
3939
import com.jme3.math.Vector3f;

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/UnlitExtensionLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*/
3232
package com.jme3.scene.plugins.gltf;
3333

34-
import com.google.gson.JsonElement;
34+
import com.jme3.plugins.json.JsonElement;
3535
import com.jme3.asset.AssetKey;
3636

3737
/**

jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/UserDataLoader.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232

3333
package com.jme3.scene.plugins.gltf;
3434

35-
import com.google.gson.JsonArray;
36-
import com.google.gson.JsonElement;
37-
import com.google.gson.JsonObject;
38-
import com.google.gson.JsonPrimitive;
35+
import com.jme3.plugins.json.JsonArray;
36+
import com.jme3.plugins.json.JsonElement;
37+
import com.jme3.plugins.json.JsonObject;
38+
import com.jme3.plugins.json.JsonPrimitive;
3939
import com.jme3.scene.Spatial;
4040

4141
import java.lang.reflect.Array;

0 commit comments

Comments
 (0)