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

added more vec2/3/4 methods

parent 021a95ac
No related branches found
No related tags found
No related merge requests found
...@@ -93,6 +93,33 @@ namespace Vec2 { ...@@ -93,6 +93,33 @@ namespace Vec2 {
return out; return out;
} }
/**
* Math.round the components of a Vec2
*/
export function round(out: Vec2, a: Vec2) {
out[0] = Math.round(a[0]);
out[1] = Math.round(a[1]);
return out;
}
/**
* Math.ceil the components of a Vec2
*/
export function ceil(out: Vec2, a: Vec2) {
out[0] = Math.ceil(a[0]);
out[1] = Math.ceil(a[1]);
return out;
}
/**
* Math.floor the components of a Vec2
*/
export function floor(out: Vec2, a: Vec2) {
out[0] = Math.floor(a[0]);
out[1] = Math.floor(a[1]);
return out;
}
export function distance(a: Vec2, b: Vec2) { export function distance(a: Vec2, b: Vec2) {
const x = b[0] - a[0], const x = b[0] - a[0],
y = b[1] - a[1]; y = b[1] - a[1];
...@@ -116,6 +143,15 @@ namespace Vec2 { ...@@ -116,6 +143,15 @@ namespace Vec2 {
y = a[1]; y = a[1];
return x * x + y * y; return x * x + y * y;
} }
/**
* Returns the inverse of the components of a Vec2
*/
export function inverse(out: Vec2, a: Vec2) {
out[0] = 1.0 / a[0];
out[1] = 1.0 / a[1];
return out;
}
} }
export default Vec2 export default Vec2
\ No newline at end of file
...@@ -130,6 +130,36 @@ namespace Vec3 { ...@@ -130,6 +130,36 @@ namespace Vec3 {
return out; return out;
} }
/**
* Math.round the components of a Vec3
*/
export function round(out: Vec3, a: Vec3) {
out[0] = Math.round(a[0]);
out[1] = Math.round(a[1]);
out[2] = Math.round(a[2]);
return out;
}
/**
* Math.ceil the components of a Vec3
*/
export function ceil(out: Vec3, a: Vec3) {
out[0] = Math.ceil(a[0]);
out[1] = Math.ceil(a[1]);
out[2] = Math.ceil(a[2]);
return out;
}
/**
* Math.floor the components of a Vec3
*/
export function floor(out: Vec3, a: Vec3) {
out[0] = Math.floor(a[0]);
out[1] = Math.floor(a[1]);
out[2] = Math.floor(a[2]);
return out;
}
export function distance(a: Vec3, b: Vec3) { export function distance(a: Vec3, b: Vec3) {
const x = b[0] - a[0], const x = b[0] - a[0],
y = b[1] - a[1], y = b[1] - a[1],
...@@ -162,6 +192,16 @@ namespace Vec3 { ...@@ -162,6 +192,16 @@ namespace Vec3 {
return Vec3.scale(out, Vec3.normalize(out, a), l) return Vec3.scale(out, Vec3.normalize(out, a), l)
} }
/**
* Returns the inverse of the components of a Vec3
*/
export function inverse(out: Vec3, a: Vec3) {
out[0] = 1.0 / a[0];
out[1] = 1.0 / a[1];
out[2] = 1.0 / a[2];
return out;
}
export function normalize(out: Vec3, a: Vec3) { export function normalize(out: Vec3, a: Vec3) {
const x = a[0], const x = a[0],
y = a[1], y = a[1],
......
...@@ -108,6 +108,47 @@ namespace Vec4 { ...@@ -108,6 +108,47 @@ namespace Vec4 {
return Math.sqrt(x * x + y * y + z * z + w * w); return Math.sqrt(x * x + y * y + z * z + w * w);
} }
export function scale(out: Vec4, a: Vec4, b: number) {
out[0] = a[0] * b;
out[1] = a[1] * b;
out[2] = a[2] * b;
out[4] = a[4] * b;
return out;
}
/**
* Math.round the components of a Vec4
*/
export function round(out: Vec4, a: Vec4) {
out[0] = Math.round(a[0]);
out[1] = Math.round(a[1]);
out[2] = Math.round(a[2]);
out[3] = Math.round(a[3]);
return out;
}
/**
* Math.ceil the components of a Vec4
*/
export function ceil(out: Vec4, a: Vec4) {
out[0] = Math.ceil(a[0]);
out[1] = Math.ceil(a[1]);
out[2] = Math.ceil(a[2]);
out[3] = Math.ceil(a[3]);
return out;
}
/**
* Math.floor the components of a Vec3
*/
export function floor(out: Vec4, a: Vec4) {
out[0] = Math.floor(a[0]);
out[1] = Math.floor(a[1]);
out[2] = Math.floor(a[2]);
out[3] = Math.floor(a[3]);
return out;
}
export function squaredDistance(a: Vec4, b: Vec4) { export function squaredDistance(a: Vec4, b: Vec4) {
const x = b[0] - a[0], const x = b[0] - a[0],
y = b[1] - a[1], y = b[1] - a[1],
...@@ -144,6 +185,17 @@ namespace Vec4 { ...@@ -144,6 +185,17 @@ namespace Vec4 {
export function dot(a: Vec4, b: Vec4) { export function dot(a: Vec4, b: Vec4) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
} }
/**
* Returns the inverse of the components of a Vec4
*/
export function inverse(out: Vec4, a: Vec4) {
out[0] = 1.0 / a[0];
out[1] = 1.0 / a[1];
out[2] = 1.0 / a[2];
out[3] = 1.0 / a[3];
return out;
}
} }
export default Vec4 export default Vec4
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment