quadtree2
Version:
JavaScript implementation of quadtree datastructure for collision detection.
73 lines (60 loc) • 1.97 kB
JavaScript
var Vec2 = require('vec2'),
Quadtree2Helper = require('./quadtree2helper'),
Quadtree2Validator = function Quadtree2Validator() {};
Quadtree2Validator.prototype = {
isNumber : function isNumber(param, key) {
if ('number' !== typeof param) {
Quadtree2Helper.thrower('NaN', 'Not a Number', key);
}
},
isString : function isString(param, key) {
if (!(typeof param === 'string' || param instanceof String)) {
Quadtree2Helper.thrower('NaS', 'Not a String', key);
}
},
isVec2 : function isVec2(param, key) {
var throwIt = false;
throwIt = 'object' !== typeof param || param.x === undefined || param.y === undefined;
if(throwIt) {
Quadtree2Helper.thrower('NaV', 'Not a Vec2', key);
}
},
isDefined : function isDefined(param, key) {
if (param === undefined) {
Quadtree2Helper.thrower('ND', 'Not defined', key);
}
},
isObject : function isObject(param, key) {
if ('object' !== typeof param) {
Quadtree2Helper.thrower('NaO', 'Not an Object', key);
}
},
hasKey : function hasKey(obj, k, key) {
this.isDefined(obj, 'obj');
if ( Object.keys(obj).indexOf(k.toString()) === -1 ) {
Quadtree2Helper.thrower('OhnK', 'Object has no key', key + k);
}
},
hasNoKey : function hasNoKey(obj, k, key) {
this.isDefined(obj, 'obj');
if ( Object.keys(obj).indexOf(k.toString()) !== -1 ) {
Quadtree2Helper.thrower('OhK', 'Object has key', key + k);
}
},
fnFalse : function fn(cb) {
if(cb()) {
Quadtree2Helper.thrower('FarT', 'function already returns true', Quadtree2Helper.fnName(cb));
}
},
byCallbackObject : function byCallbackObject(obj, cbObj, keyTable) {
var key;
for (key in cbObj) {
if (keyTable !== undefined) {
cbObj[key](obj[keyTable[key]], keyTable[key]);
} else {
cbObj[key](obj[key], key);
}
}
}
};
module.exports = Quadtree2Validator;