2
0
Эх сурвалжийг харах

added equals and hashcode to gltf and scene keys

codex 1 жил өмнө
parent
commit
a9fbf3c5c8

+ 24 - 0
jme3-plugins/src/fbx/java/com/jme3/scene/plugins/fbx/SceneKey.java

@@ -32,6 +32,7 @@
 package com.jme3.scene.plugins.fbx;
 
 import com.jme3.asset.ModelKey;
+import java.util.Objects;
 
 public class SceneKey extends ModelKey {
 
@@ -50,5 +51,28 @@ public class SceneKey extends ModelKey {
     public AnimationList getAnimations() {
         return this.animList;
     }
+    
+    @Override
+    public boolean equals(Object object) {
+        if (object == null) {
+            return false;
+        }
+        if (getClass() != object.getClass()) {
+            return false;
+        }
+        final SceneKey other = (SceneKey)object;
+        if (!super.equals(other)) {
+            return false;
+        }
+        if (animList != other.animList && (animList == null || !animList.equals(other.animList))) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return 413 + Objects.hashCode(animList);
+    }
 
 }

+ 32 - 0
jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfModelKey.java

@@ -35,6 +35,7 @@ import com.jme3.asset.ModelKey;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * An optional key to use when loading a glTF file
@@ -114,4 +115,35 @@ public class GltfModelKey extends ModelKey {
     public void setExtrasLoader(ExtrasLoader extrasLoader) {
         this.extrasLoader = extrasLoader;
     }
+    
+    @Override
+    public boolean equals(Object object) {
+        if (object == null) {
+            return false;
+        }
+        if (getClass() != object.getClass()) {
+            return false;
+        }
+        final GltfModelKey other = (GltfModelKey)object;
+        if (!super.equals(other)) {
+            return false;
+        }
+        if (materialAdapters != other.materialAdapters && !materialAdapters.equals(other.materialAdapters)) {
+            return false;
+        }
+        if (extrasLoader != other.extrasLoader && (extrasLoader == null || !extrasLoader.equals(other.extrasLoader))) {
+            return false;
+        }
+        return keepSkeletonPose == other.keepSkeletonPose;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 5;
+        hash = 37 * hash + materialAdapters.hashCode();
+        hash = 37 * hash + Objects.hashCode(this.extrasLoader);
+        hash = 37 * hash + (this.keepSkeletonPose ? 1 : 0);
+        return hash;
+    }
+    
 }