UNPKG

snapsvg

Version:
75 lines (74 loc) 1.75 kB
/** * @object Vector4 * @author Matthew Wagerfield */ FSS.Vector4 = { create: function(x, y, z, w) { var vector = new FSS.Array(4); this.set(vector, x, y, z); return vector; }, set: function(target, x, y, z, w) { target[0] = x || 0; target[1] = y || 0; target[2] = z || 0; target[3] = w || 0; return this; }, setX: function(target, x) { target[0] = x || 0; return this; }, setY: function(target, y) { target[1] = y || 0; return this; }, setZ: function(target, z) { target[2] = z || 0; return this; }, setW: function(target, w) { target[3] = w || 0; return this; }, add: function(target, a) { target[0] += a[0]; target[1] += a[1]; target[2] += a[2]; target[3] += a[3]; return this; }, multiplyVectors: function(target, a, b) { target[0] = a[0] * b[0]; target[1] = a[1] * b[1]; target[2] = a[2] * b[2]; target[3] = a[3] * b[3]; return this; }, multiplyScalar: function(target, s) { target[0] *= s; target[1] *= s; target[2] *= s; target[3] *= s; return this; }, min: function(target, value) { if (target[0] < value) { target[0] = value; } if (target[1] < value) { target[1] = value; } if (target[2] < value) { target[2] = value; } if (target[3] < value) { target[3] = value; } return this; }, max: function(target, value) { if (target[0] > value) { target[0] = value; } if (target[1] > value) { target[1] = value; } if (target[2] > value) { target[2] = value; } if (target[3] > value) { target[3] = value; } return this; }, clamp: function(target, min, max) { this.min(target, min); this.max(target, max); return this; } };