API Docs for: 0.6.1
Show:

File: src/collision/NaiveBroadphase.js

module.exports = NaiveBroadphase;
var Broadphase = require('./Broadphase');
var AABB = require('./AABB');
/**
 * Naive broadphase implementation, used in lack of better ones.
 * @class NaiveBroadphase
 * @constructor
 * @description The naive broadphase looks at all possible pairs without restriction, therefore it has complexity N^2 (which is bad)
 * @extends Broadphase
 */
function NaiveBroadphase(){
 Broadphase.apply(this);
}
NaiveBroadphase.prototype = new Broadphase();
NaiveBroadphase.prototype.constructor = NaiveBroadphase;
/**
 * Get all the collision pairs in the physics world
 * @method collisionPairs
 * @param {World} world
 * @param {Array} pairs1
 * @param {Array} pairs2
 */
NaiveBroadphase.prototype.collisionPairs = function(world,pairs1,pairs2){
 var bodies = world.bodies,
 n = bodies.length,
 i,j,bi,bj;
 // Naive N^2 ftw!
 for(i=0; i!==n; i++){
 for(j=0; j!==i; j++){
 bi = bodies[i];
 bj = bodies[j];
 if(!this.needBroadphaseCollision(bi,bj)){
 continue;
 }
 this.intersectionTest(bi,bj,pairs1,pairs2);
 }
 }
};
var tmpAABB = new AABB();
/**
 * Returns all the bodies within an AABB.
 * @method aabbQuery
 * @param {World} world
 * @param {AABB} aabb
 * @param {array} result An array to store resulting bodies in.
 * @return {array}
 */
NaiveBroadphase.prototype.aabbQuery = function(world, aabb, result){
 result = result || [];
 for(var i = 0; i < world.bodies.length; i++){
 var b = world.bodies[i];
 if(b.aabbNeedsUpdate){
 b.computeAABB();
 }
 // Ugly hack until Body gets aabb
 if(b.aabb.overlaps(aabb)){
 result.push(b);
 }
 }
 return result;
};
 

AltStyle によって変換されたページ (->オリジナル) /