Making RTree's find more efficient

By doing the type check before the intersection check, we can
save he intersection check for cases where we don't care about
type or have the specified type in a node.
This commit is contained in:
ahocevar
2013-05-17 12:54:06 +02:00
parent 921aa28b42
commit ecea771801

View File

@@ -59,8 +59,8 @@ ol.structs.RTreeNode_ = function(bounds, parent, level) {
* @param {string=} opt_type Type for another indexing dimension.
*/
ol.structs.RTreeNode_.prototype.find = function(bounds, results, opt_type) {
if (ol.extent.intersects(this.bounds, bounds) &&
(!goog.isDef(opt_type) || this.types[opt_type] === true)) {
if ((!goog.isDef(opt_type) || this.types[opt_type] === true) &&
ol.extent.intersects(this.bounds, bounds)) {
var numChildren = this.children.length;
if (numChildren === 0) {
if (goog.isDef(this.object)) {