Commit Graph

87 Commits

Author SHA1 Message Date
Tom Payne
7b7ebb8609 Add missing "new"s in ol.structs.RBush 2013-12-12 13:01:25 +01:00
Tom Payne
2be40a1ae6 Add ol.structs.RBush#isEmpty 2013-12-04 15:05:43 +01:00
ahocevar
d4bdac715b Get rid of ol.structs.RTree 2013-11-28 16:17:17 +01:00
Tim Schaub
1877f92d46 Add forEach method to rtree, use it in feature cache
This saves having to create feature lookup objects and iterate through lookup properties multiple times.
2013-11-27 12:22:33 -07:00
Tom Payne
5d3a5ae68e Fix infinite loop bug in ol.structs.RBush 2013-11-27 15:10:18 +01:00
Tom Payne
f847b37261 Rename ol.structs.RBush#allInExtent to getAllInExtent 2013-11-27 15:10:18 +01:00
Tom Payne
828456d18e Rename ol.structs.RBush#all to getAll 2013-11-27 15:10:18 +01:00
Tom Payne
978041b68c Only activate ol.structs.RBush conflict checks when goog.DEBUG is true 2013-11-27 15:10:18 +01:00
Tom Payne
665781ee03 Throw an exception if an ol.structs.RBush is modified while reading 2013-11-27 15:10:17 +01:00
ahocevar
96c6cd0ab0 Documenting limitations of forEach and forEachInExtent
Because the tree's structure changes when nodes are inserted,
updated or deleted, no modifications are allowed in a forEach
loop.
2013-11-27 14:21:56 +01:00
Tom Payne
92469901f7 Clone extents in ol.structs.RBush to prevent modification 2013-11-26 12:03:00 -07:00
Tom Payne
880f098f0f Add ol.structs.RBush#update 2013-11-26 12:02:59 -07:00
Tom Payne
7ec456fa70 Add FIXME 2013-11-26 12:02:59 -07:00
Tom Payne
1293294d40 Implement ol.structs.RBush#remove_ 2013-11-26 12:02:59 -07:00
Tom Payne
b865a7c0e1 Don't check for under-full nodes when validating ol.structs.RBush
Removal can lead to under-full nodes.
2013-11-26 12:02:59 -07:00
Tom Payne
a76eba34e8 Add ol.structs.RBush#assertValid 2013-11-26 12:02:59 -07:00
Tom Payne
e823e7fde3 Add ol.structs.RBush 2013-11-26 12:02:59 -07:00
Tom Payne
353555f740 Use templates in ol.structs.PriorityQueue 2013-11-19 21:19:22 +01:00
Tom Payne
9d92b9ee37 Use templates in ol.structs.LRUCache 2013-11-19 21:19:22 +01:00
ahocevar
292b851a74 Adding ModifyFeature interaction
This is a first draft. The way geometry changes are handled for
now is a bit clumsy. Both updating the feature cache RTree and
making the layer aware of feature and geometry changes could be
handled in a smarter way if these changes would be made through
the layer instead of directly on the geometry or feature.
2013-11-13 00:44:36 +01:00
Frederic Junod
01cc19af80 More precise {function} jsdoc definition 2013-11-07 16:03:19 +01:00
Frederic Junod
3efc810ca9 Quote values in apidoc 2013-10-29 11:01:49 +01:00
Paul Spencer
bada596b45 Add default stability level to docs of exported things. 2013-10-24 18:20:24 -04:00
Tim Schaub
e806f51b3d Changing extent structure back to single array: [minX, minY, maxX, maxY]
This means we'll have to have a new structure and new methods for 3D envelopes.
2013-09-15 00:31:32 -06:00
Tim Schaub
6955499534 Update rtree to use new extent structure 2013-09-14 21:11:52 -06:00
Tom Payne
0467222e46 Fix various type errors in ol.structs.RTree 2013-07-22 17:42:47 +02:00
Tom Payne
db2f805ed9 Return split values in a single interleaved Float32Array 2013-06-01 18:16:43 +02:00
Tom Payne
42f15f000b Add ol.structs.Buffer#getSplit32 2013-06-01 18:16:43 +02:00
Tom Payne
7fd2e1ffca Factor out ol.structs.Buffer#allocate 2013-06-01 18:09:29 +02:00
Tom Payne
bcf7707b01 Factor out ol.structs.Buffer#markDirty 2013-06-01 18:09:28 +02:00
Tom Payne
f4d54ace1d Remove unused variables in structs 2013-05-28 16:01:34 +02:00
Tom Payne
a162b6fab3 Use empty extents and refactor for clarity 2013-05-25 20:39:55 -05:00
Tom Payne
18b1789512 Sort methods alphabetically 2013-05-25 19:50:44 -05:00
Tom Payne
d80ded31ee Clean up some comments 2013-05-25 19:46:40 -05:00
Tom Payne
aaa4fec141 Move insert into method 2013-05-25 19:39:51 -05:00
Tom Payne
a871f29e75 Move remove into method 2013-05-25 19:35:59 -05:00
Tom Payne
ea1ee73392 Move search and searchReturningObject into methods 2013-05-25 19:33:46 -05:00
Tom Payne
32c663cf2c Move more functions into private methods 2013-05-25 19:24:45 -05:00
Tom Payne
3cdb9f130b Make minWidth and maxWidth private member variables 2013-05-25 18:27:38 -05:00
Tom Payne
476e35c276 Move makeMBR into private static function 2013-05-25 18:17:38 -05:00
Tom Payne
7f22455eed Move squarifiedRatio into private static function 2013-05-25 18:14:52 -05:00
ahocevar
10e3a16f40 RTree API improvements and more tests
This change reverts the RTree API back to the original one (i.e.
insert() instead of put(), search() instead of find()), and
creates a new searchReturningObject() method that returns an
object keyed by UIDs.

It also adds missing tests for type restricted search and
searchReturningObject().
2013-05-22 18:25:40 -05:00
ahocevar
a2927a0dd9 Addressing @tschaub's review comments 2013-05-21 15:00:50 -05:00
ahocevar
0f4a5c09af Porting tests from http://github.com/imbcmdth/RTree/
Also fixes some issues that were revealed by the new tests.
2013-05-20 17:47:04 +02:00
ahocevar
2b410cf2d0 More performance and size optimizations
Not using Math.max and Math.min increases performance, and by
using ol.extent functions instead of RTree's rectangle
structures and calculations we can get rid of several functions.
2013-05-20 16:20:21 +02:00
ahocevar
9dd4dc3730 Better optimization for advanced compilation mode 2013-05-20 08:50:15 +02:00
ahocevar
bf510b570a Making RTree work in advanced compilation mode 2013-05-19 23:59:21 +02:00
ahocevar
958ee7af51 Use strings, like with other indices 2013-05-19 11:16:24 +02:00
ahocevar
79e4ee2717 More sophisticated RTree implementation
This new implementation is based on
http://github.com/imbcmdth/RTree/, with only a few modifications
to add the optional type and provide the API of the previous
implementation.

There is still room for optimization, but this is such an
improvement over the previous RTree already that it's worth
bringing it in now.
2013-05-19 01:47:21 +02:00
ahocevar
ecea771801 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.
2013-05-17 12:54:06 +02:00