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. |  * All rights reserved. | ||||||
|  * |  * | ||||||
|  * Redistribution and use in source and binary forms, with or without |  * 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; |         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. |  * All rights reserved. | ||||||
|  * |  * | ||||||
|  * Redistribution and use in source and binary forms, with or without |  * 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 false; | ||||||
|         return true; |         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 |      * <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. |  * All rights reserved. | ||||||
|  * |  * | ||||||
|  * Redistribution and use in source and binary forms, with or without |  * 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; |         if (Float.compare(z,comp.z) != 0) return false; | ||||||
|         return true; |         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 |      * <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. |  * All rights reserved. | ||||||
|  * |  * | ||||||
|  * Redistribution and use in source and binary forms, with or without |  * 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; |         if (Float.compare(w,comp.w) != 0) return false; | ||||||
|         return true; |         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 |      * <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"); |         throw new IllegalArgumentException("index must be either 0, 1, 2 or 3"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user