diff --git a/jme3-core/src/main/java/com/jme3/texture/Texture.java b/jme3-core/src/main/java/com/jme3/texture/Texture.java index 27a7783e92..d5c5bf8ec7 100644 --- a/jme3-core/src/main/java/com/jme3/texture/Texture.java +++ b/jme3-core/src/main/java/com/jme3/texture/Texture.java @@ -497,14 +497,9 @@ public void setWrap(WrapMode mode) { * if axis is null or invalid for this type of texture */ public WrapMode getWrap(WrapAxis axis) { - switch (axis) { - case S: - return wrapS; - case T: - return wrapT; - default: - throw new IllegalArgumentException("invalid WrapAxis: " + axis); - } + if (axis == WrapAxis.S) return wrapS; + else if (axis == WrapAxis.T) return wrapT; + throw new IllegalArgumentException("invalid WrapAxis: " + axis); } public abstract Type getType(); @@ -556,6 +551,11 @@ public boolean equals(Object obj) { return false; } final Texture other = (Texture) obj; + + if (this.getWrap(WrapAxis.S) != other.getWrap(WrapAxis.S)) + return false; + if (this.getWrap(WrapAxis.T) != other.getWrap(WrapAxis.T)) + return false; // NOTE: Since images are generally considered unique assets in jME3, // using the image's equals() implementation is not neccessary here diff --git a/jme3-core/src/main/java/com/jme3/texture/Texture2D.java b/jme3-core/src/main/java/com/jme3/texture/Texture2D.java index e8d17d7cd8..cdce2e5f01 100644 --- a/jme3-core/src/main/java/com/jme3/texture/Texture2D.java +++ b/jme3-core/src/main/java/com/jme3/texture/Texture2D.java @@ -145,18 +145,13 @@ public void setWrap(WrapMode mode) { * the axis to return for * @return the wrap mode of the texture. * @throws IllegalArgumentException - * if axis is null + * if axis is null or invalid for this type */ public WrapMode getWrap(WrapAxis axis) { - if (axis == null) { - throw new IllegalArgumentException("axis can not be null."); - } - switch (axis) { - case R: - throw new IllegalArgumentException("invalid WrapAxis: " + axis); - default: - return super.getWrap(axis); + if (axis == WrapAxis.R) { + throw new IllegalArgumentException("invalid WrapAxis: " + axis); } + return super.getWrap(axis); } @Override diff --git a/jme3-core/src/main/java/com/jme3/texture/Texture3D.java b/jme3-core/src/main/java/com/jme3/texture/Texture3D.java index a63198c48f..8e5b068bfd 100644 --- a/jme3-core/src/main/java/com/jme3/texture/Texture3D.java +++ b/jme3-core/src/main/java/com/jme3/texture/Texture3D.java @@ -153,15 +153,10 @@ public void setWrap(WrapMode mode) { * if axis is null */ public WrapMode getWrap(WrapAxis axis) { - if (axis == null) { - throw new IllegalArgumentException("axis can not be null."); - } - switch (axis) { - case R: - return wrapR; - default: - return super.getWrap(axis); + if (axis == WrapAxis.R) { + return wrapR; } + return super.getWrap(axis); } @Override diff --git a/jme3-core/src/main/java/com/jme3/texture/TextureArray.java b/jme3-core/src/main/java/com/jme3/texture/TextureArray.java index 7cbab8df14..cf583a47ee 100644 --- a/jme3-core/src/main/java/com/jme3/texture/TextureArray.java +++ b/jme3-core/src/main/java/com/jme3/texture/TextureArray.java @@ -113,15 +113,10 @@ public Type getType() { @Override public WrapMode getWrap(WrapAxis axis) { - if (axis == null) { - throw new IllegalArgumentException("axis can not be null."); - } - switch (axis) { - case R: - throw new IllegalArgumentException("invalid WrapAxis: " + axis); - default: - return super.getWrap(axis); + if (axis == WrapAxis.R) { + throw new IllegalArgumentException("invalid WrapAxis: " + axis); } + return super.getWrap(axis); } @Override diff --git a/jme3-core/src/main/java/com/jme3/texture/TextureCubeMap.java b/jme3-core/src/main/java/com/jme3/texture/TextureCubeMap.java index 1f03bc9649..1b7e3f6365 100644 --- a/jme3-core/src/main/java/com/jme3/texture/TextureCubeMap.java +++ b/jme3-core/src/main/java/com/jme3/texture/TextureCubeMap.java @@ -145,15 +145,10 @@ public void setWrap(WrapMode mode) { * if axis is null */ public WrapMode getWrap(WrapAxis axis) { - if (axis == null) { - throw new IllegalArgumentException("axis can not be null."); - } - switch (axis) { - case R: - return wrapR; - default: - return super.getWrap(axis); + if (axis == WrapAxis.R) { + return wrapR; } + return super.getWrap(axis); } @Override diff --git a/jme3-core/src/test/java/com/jme3/texture/Texture2DTest.java b/jme3-core/src/test/java/com/jme3/texture/Texture2DTest.java index fe0c0de4b0..38be96afb5 100644 --- a/jme3-core/src/test/java/com/jme3/texture/Texture2DTest.java +++ b/jme3-core/src/test/java/com/jme3/texture/Texture2DTest.java @@ -34,6 +34,31 @@ public void testGetWrapSetAllAxisR() { tex.getWrap(Texture.WrapAxis.R); } + /** + Test equals(Object) + **/ + + @Test + public void testEqualsSameAxises() { + Texture2D tex1 = new Texture2D(); + Texture2D tex2 = new Texture2D(); + + tex1.setWrap(Texture.WrapMode.EdgeClamp); + tex2.setWrap(Texture.WrapMode.EdgeClamp); + assert tex1.equals(tex2) == true; + assert tex2.equals(tex1) == true; + } + + @Test + public void testEqualsDiffAxises() { + Texture2D tex1 = new Texture2D(); + Texture2D tex2 = new Texture2D(); + tex1.setWrap(Texture.WrapAxis.S, Texture.WrapMode.EdgeClamp); + tex2.setWrap(Texture.WrapAxis.S, Texture.WrapMode.MirroredRepeat); + + assert tex1.equals(tex2) == false; + assert tex2.equals(tex1) == false; + } } diff --git a/jme3-core/src/test/java/com/jme3/texture/Texture3DTest.java b/jme3-core/src/test/java/com/jme3/texture/Texture3DTest.java index 91dd78fa89..98403af83a 100644 --- a/jme3-core/src/test/java/com/jme3/texture/Texture3DTest.java +++ b/jme3-core/src/test/java/com/jme3/texture/Texture3DTest.java @@ -54,4 +54,32 @@ public void testGetWrapSetOneAxisR() { tex.setWrap(wrapAxis, wrapMode); assert tex.getWrap(wrapAxis) == wrapMode; } + + /** + Test equals(Object) + **/ + + @Test + public void testEqualsSameAxises() { + Texture3D tex1 = new Texture3D(); + Texture3D tex2 = new Texture3D(); + + tex1.setWrap(Texture.WrapMode.EdgeClamp); + tex2.setWrap(Texture.WrapMode.EdgeClamp); + + assert tex1.equals(tex2) == true; + assert tex2.equals(tex1) == true; + } + + @Test + public void testEqualsDiffAxises() { + Texture3D tex1 = new Texture3D(); + Texture3D tex2 = new Texture3D(); + + tex1.setWrap(Texture.WrapAxis.R, Texture.WrapMode.Repeat); + tex2.setWrap(Texture.WrapAxis.R, Texture.WrapMode.MirroredRepeat); + + assert tex1.equals(tex2) == false; + assert tex2.equals(tex1) == false; + } } diff --git a/jme3-core/src/test/java/com/jme3/texture/TextureCubeMapTest.java b/jme3-core/src/test/java/com/jme3/texture/TextureCubeMapTest.java index 09e17c2123..a8fec65526 100644 --- a/jme3-core/src/test/java/com/jme3/texture/TextureCubeMapTest.java +++ b/jme3-core/src/test/java/com/jme3/texture/TextureCubeMapTest.java @@ -54,4 +54,32 @@ public void testGetWrapSetOneAxisR() { tex.setWrap(wrapAxis, wrapMode); assert tex.getWrap(wrapAxis) == wrapMode; } + + /** + Test equals(Object) + **/ + + @Test + public void testEqualsDiffAxises() { + TextureCubeMap tex1 = new TextureCubeMap(); + TextureCubeMap tex2 = new TextureCubeMap(); + + tex1.setWrap(Texture.WrapMode.EdgeClamp); + tex2.setWrap(Texture.WrapMode.EdgeClamp); + + assert tex1.equals(tex2) == true; + assert tex2.equals(tex1) == true; + } + + @Test + public void testEqualsSameAxises() { + TextureCubeMap tex1 = new TextureCubeMap(); + TextureCubeMap tex2 = new TextureCubeMap(); + + tex1.setWrap(Texture.WrapAxis.T, Texture.WrapMode.Repeat); + tex2.setWrap(Texture.WrapAxis.T, Texture.WrapMode.EdgeClamp); + + assert tex1.equals(tex2) == false; + assert tex2.equals(tex1) == false; + } } diff --git a/jme3-core/src/test/java/com/jme3/texture/TextureTest.java b/jme3-core/src/test/java/com/jme3/texture/TextureTest.java index 0113c7e4a4..9da2965037 100644 --- a/jme3-core/src/test/java/com/jme3/texture/TextureTest.java +++ b/jme3-core/src/test/java/com/jme3/texture/TextureTest.java @@ -84,4 +84,6 @@ public void testGetWrapSetOneAxisT() { tex.setWrap(wrapAxis, wrapMode); assert tex.getWrap(wrapAxis) == wrapMode; } + + }