function SweepAndPrune(targets) {
    this._sweepVolumes = [];
    this._entityRegistry = {};
    this._boundingVolumeRegistry = {};
    this.endpoints = {x: [], y: [], z: []};

    this.overlaps = [];
    this.overlapsMatrix = {};
    this._IDPool = [];
    targets = targets || [];
    for (var i = 0; i < targets.length; i++) {
        this.add(targets[i]);
    }
}
Persistant object maintaining sorted lists of AABB endpoints used in a sweep-and-prune broadphase.
Used to accelerate collision detection.
http://en.wikipedia.org/wiki/Sweep_and_prune

@class SweepAndPrune
@param {Particle[]} targets The bodies to track.