Move makeMBR into private static function

This commit is contained in:
Tom Payne
2013-05-25 18:16:54 -05:00
parent 7f22455eed
commit 476e35c276

View File

@@ -59,27 +59,6 @@ ol.structs.RTree = function(opt_width) {
var rootTree = /** @type {ol.structs.RTreeNode} */
({extent: [0, 0, 0, 0], nodes: []});
/**
* Generates a minimally bounding rectangle for all rectangles in
* array "nodes". `rect` is modified into the MBR.
*
* @param {Array} nodes Nodes.
* @param {ol.structs.RTreeNode} rect Rectangle.
* @return {ol.structs.RTreeNode} Rectangle.
*/
var makeMBR = function(nodes, rect) {
if (nodes.length < 1) {
return {extent: [0, 0, 0, 0]};
}
rect.extent = nodes[0].extent.concat();
for (var i = nodes.length - 1; i > 0; --i) {
ol.extent.extend(rect.extent, nodes[i].extent);
}
return rect;
};
/**
* Find the best specific node(s) for object to be deleted from.
*
@@ -129,7 +108,7 @@ ol.structs.RTree = function(opt_width) {
returnArray = tree.nodes.splice(i, 1);
}
// Resize MBR down...
makeMBR(tree.nodes, tree);
ol.structs.RTree.makeMBR_(tree.nodes, tree);
workingObject.target = undefined;
if (tree.nodes.length < minWidth) { // Underflow
workingObject.nodes = /** @type {Array} */
@@ -153,7 +132,7 @@ ol.structs.RTree = function(opt_width) {
// workingObject.nodes contains a list of elements removed from the
// tree so far
if (tree.nodes.length > 0) {
makeMBR(tree.nodes, tree);
ol.structs.RTree.makeMBR_(tree.nodes, tree);
}
for (var t = 0, tt = workingObject.nodes.length; t < tt; ++t) {
insertSubtree(workingObject.nodes[t], tree);
@@ -175,7 +154,7 @@ ol.structs.RTree = function(opt_width) {
workingObject.nodes = undefined; // Just start resizing
}
} else { // we are just resizing
makeMBR(tree.nodes, tree);
ol.structs.RTree.makeMBR_(tree.nodes, tree);
}
currentDepth -= 1;
} while (hitStack.length > 0);
@@ -590,6 +569,29 @@ ol.structs.RTree = function(opt_width) {
};
/**
* Generates a minimally bounding rectangle for all rectangles in
* array "nodes". `rect` is modified into the MBR.
*
* @param {Array} nodes Nodes.
* @param {ol.structs.RTreeNode} rect Rectangle.
* @private
* @return {ol.structs.RTreeNode} Rectangle.
*/
ol.structs.RTree.makeMBR_ = function(nodes, rect) {
if (nodes.length < 1) {
return {extent: [0, 0, 0, 0]};
}
rect.extent = nodes[0].extent.concat();
for (var i = nodes.length - 1; i > 0; --i) {
ol.extent.extend(rect.extent, nodes[i].extent);
}
return rect;
};
/**
* This is Jon-Carlos Rivera's special addition to the world of r-trees.
* Every other (simple) method he found produced poor trees.