Skip to content
Snippets Groups Projects
Commit dc2b0bf3 authored by Alexander Rose's avatar Alexander Rose
Browse files

added hasNaN methods to vec, mat, quat

parent 1944457a
No related branches found
No related tags found
No related merge requests found
...@@ -97,6 +97,11 @@ namespace Mat3 { ...@@ -97,6 +97,11 @@ namespace Mat3 {
return out; return out;
} }
export function hasNaN(m: Mat3) {
for (let i = 0; i < 9; i++) if (isNaN(m[i])) return true
return false
}
/** /**
* Creates a new Mat3 initialized with values from an existing matrix * Creates a new Mat3 initialized with values from an existing matrix
*/ */
......
...@@ -102,6 +102,11 @@ namespace Mat4 { ...@@ -102,6 +102,11 @@ namespace Mat4 {
return areEqual(m, _id, typeof eps === 'undefined' ? EPSILON.Value : eps); return areEqual(m, _id, typeof eps === 'undefined' ? EPSILON.Value : eps);
} }
export function hasNaN(m: Mat4) {
for (let i = 0; i < 16; i++) if (isNaN(m[i])) return true
return false
}
export function areEqual(a: Mat4, b: Mat4, eps: number) { export function areEqual(a: Mat4, b: Mat4, eps: number) {
for (let i = 0; i < 16; i++) { for (let i = 0; i < 16; i++) {
if (Math.abs(a[i] - b[i]) > eps) return false; if (Math.abs(a[i] - b[i]) > eps) return false;
......
...@@ -53,6 +53,10 @@ namespace Quat { ...@@ -53,6 +53,10 @@ namespace Quat {
out[3] = 1; out[3] = 1;
} }
export function hasNaN(q: Quat) {
return isNaN(q[0]) || isNaN(q[1]) || isNaN(q[2]) || isNaN(q[3])
}
export function create(x: number, y: number, z: number, w: number) { export function create(x: number, y: number, z: number, w: number) {
const out = identity(); const out = identity();
out[0] = x; out[0] = x;
......
...@@ -40,6 +40,10 @@ namespace Vec2 { ...@@ -40,6 +40,10 @@ namespace Vec2 {
return out; return out;
} }
export function hasNaN(a: Vec2) {
return isNaN(a[0]) || isNaN(a[1])
}
export function toArray(a: Vec2, out: Helpers.NumberArray, offset: number) { export function toArray(a: Vec2, out: Helpers.NumberArray, offset: number) {
out[offset + 0] = a[0]; out[offset + 0] = a[0];
out[offset + 1] = a[1]; out[offset + 1] = a[1];
......
...@@ -38,6 +38,10 @@ namespace Vec3 { ...@@ -38,6 +38,10 @@ namespace Vec3 {
return out; return out;
} }
export function hasNaN(a: Vec3) {
return isNaN(a[0]) || isNaN(a[1]) || isNaN(a[2])
}
export function fromObj(v: { x: number, y: number, z: number }): Vec3 { export function fromObj(v: { x: number, y: number, z: number }): Vec3 {
return create(v.x, v.y, v.z); return create(v.x, v.y, v.z);
} }
......
...@@ -48,6 +48,10 @@ namespace Vec4 { ...@@ -48,6 +48,10 @@ namespace Vec4 {
return out; return out;
} }
export function hasNaN(a: Vec4) {
return isNaN(a[0]) || isNaN(a[1]) || isNaN(a[2]) || isNaN(a[3])
}
export function toArray(a: Vec4, out: Helpers.NumberArray, offset: number) { export function toArray(a: Vec4, out: Helpers.NumberArray, offset: number) {
out[offset + 0] = a[0]; out[offset + 0] = a[0];
out[offset + 1] = a[1]; out[offset + 1] = a[1];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment