forked from 0ad/0ad
40 lines
746 B
JavaScript
40 lines
746 B
JavaScript
function VectorDistance(a, b)
|
|
{
|
|
var dx = a[0] - b[0];
|
|
var dz = a[1] - b[1];
|
|
return Math.sqrt(dx*dx + dz*dz);
|
|
}
|
|
|
|
function SquareVectorDistance(a, b)//A sqrtless vector calculator, to see if that improves speed at all.
|
|
{
|
|
var dx = a[0] - b[0];
|
|
var dz = a[1] - b[1];
|
|
return (dx*dx + dz*dz);
|
|
}
|
|
|
|
function MemoizeInit(obj)
|
|
{
|
|
obj._memoizeCache = {};
|
|
}
|
|
|
|
function Memoize(funcname, func)
|
|
{
|
|
return function() {
|
|
var args = funcname + '|' + Array.prototype.join.call(arguments, '|');
|
|
if (args in this._memoizeCache)
|
|
return this._memoizeCache[args];
|
|
|
|
var ret = func.apply(this, arguments);
|
|
this._memoizeCache[args] = ret;
|
|
return ret;
|
|
};
|
|
}
|
|
|
|
function ShallowClone(obj)
|
|
{
|
|
var ret = {};
|
|
for (var k in obj)
|
|
ret[k] = obj[k];
|
|
return ret;
|
|
}
|