Added isSimilar() to Quaternion, Vector2f, Vector3f and Vector4f (#1015)
* Added isSimilar() to Quaternion. * Added isSimilar() to Vector2f. * Added isSimilar() to Vector3f. * Added isSimilar() to Vector4f. * Modified isSimilar() to consider NaN.
This commit is contained in:
		
							parent
							
								
									637162e484
								
							
						
					
					
						commit
						7363662f21
					
				| @ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * Copyright (c) 2009-2018 jMonkeyEngine | ||||
|  * Copyright (c) 2009-2019 jMonkeyEngine | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
| @ -1279,6 +1279,29 @@ public final class Quaternion implements Savable, Cloneable, java.io.Serializabl | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Returns true if this quaternion is similar to the specified quaternion | ||||
|      * within some value of epsilon. | ||||
|      */ | ||||
|     public boolean isSimilar(Quaternion other, float epsilon) { | ||||
|         if (other == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.x - x), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.y - y), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.z - z), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.w - w), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      *  | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * Copyright (c) 2009-2018 jMonkeyEngine | ||||
|  * Copyright (c) 2009-2019 jMonkeyEngine | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
| @ -693,6 +693,23 @@ public final class Vector2f implements Savable, Cloneable, java.io.Serializable | ||||
|             return false; | ||||
|         return true; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Returns true if this vector is similar to the specified vector within | ||||
|      * some value of epsilon. | ||||
|      */ | ||||
|     public boolean isSimilar(Vector2f other, float epsilon) { | ||||
|         if (other == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.x - x), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.y - y), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * <code>toString</code> returns the string representation of this vector | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * Copyright (c) 2009-2018 jMonkeyEngine | ||||
|  * Copyright (c) 2009-2019 jMonkeyEngine | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
| @ -969,6 +969,26 @@ public final class Vector3f implements Savable, Cloneable, java.io.Serializable | ||||
|         if (Float.compare(z,comp.z) != 0) return false; | ||||
|         return true; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Returns true if this vector is similar to the specified vector within | ||||
|      * some value of epsilon. | ||||
|      */ | ||||
|     public boolean isSimilar(Vector3f other, float epsilon) { | ||||
|         if (other == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.x - x), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.y - y), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.z - z), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * <code>hashCode</code> returns a unique code for this vector object based | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * Copyright (c) 2009-2018 jMonkeyEngine | ||||
|  * Copyright (c) 2009-2019 jMonkeyEngine | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
| @ -874,6 +874,29 @@ public final class Vector4f implements Savable, Cloneable, java.io.Serializable | ||||
|         if (Float.compare(w,comp.w) != 0) return false; | ||||
|         return true; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Returns true if this vector is similar to the specified vector within | ||||
|      * some value of epsilon. | ||||
|      */ | ||||
|     public boolean isSimilar(Vector4f other, float epsilon) { | ||||
|         if (other == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.x - x), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.y - y), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.z - z), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Float.compare(Math.abs(other.w - w), epsilon) > 0) { | ||||
|             return false; | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * <code>hashCode</code> returns a unique code for this vector object based | ||||
| @ -1001,4 +1024,4 @@ public final class Vector4f implements Savable, Cloneable, java.io.Serializable | ||||
|         throw new IllegalArgumentException("index must be either 0, 1, 2 or 3"); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user