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