Commit Graph

68 Commits

Author SHA1 Message Date
6b873e9e5c
ALGO: try to implement y-monotonization 2015-01-08 01:44:47 +01:00
550957da13
ALGO: rm junk 2015-01-08 01:37:49 +01:00
211731af0c
ALGO: add isYmonotone function 2015-01-07 19:16:12 +01:00
2bc3aec80a
ALGO: fix spelling 2015-01-07 19:15:51 +01:00
013dfd054b
Implement vertex categorisation for Polygon Triangulation 2015-01-07 18:55:16 +01:00
2ccb52eb62
VEC: Fix the inRange function
It now takes a PROPER square, as in ((xmin, ymin), (xmax, ymax))
instead of ((xmin, xmax), (ymin, ymax)) and also works
with negative values.

Because the meaning of the arguments has changed, we also
had to fix all uses of it.
2014-12-17 03:35:33 +01:00
f16fe7738a
ALGO: rm empty 'where' in KDTree 2014-12-07 04:47:19 +01:00
3c1a34e4af
Merge VectorTypes.hs into Vector.hs 2014-12-03 21:41:00 +01:00
9d6af63b46
Move test objs into test_objs subdir 2014-12-03 21:30:21 +01:00
73e1673c63
Restructure Algorithms subdir and module names
No subdirs in Algorithms, just the module files
2014-12-03 21:26:35 +01:00
9fca3ccaa9
Add HACK notes 2014-12-03 21:20:34 +01:00
0f0362322e
ALGO: rename QuadTree Zipper and rm Breadcrumbs type 2014-12-03 21:18:15 +01:00
899afc7287
ALGO: fix runtime complexity in KDTree
The old code in fact increased the complexity to O(n^2), because
we applied 'elem' which is O(n) to every element of xs.

Instead we compare (in case of partitioning against Y) the y-value
of every element of xs with the y-value of the pivot which tells us
if x lies within ys.
2014-12-02 19:01:04 +01:00
78a3dd8b95
ALGO: avoid printing KTNil for both childs 2014-11-30 20:04:02 +01:00
8cf9d93580
ALGO: don't export all functions in KDTree 2014-11-29 23:51:41 +01:00
9867d25c4a
ALGO: add haddock ignore-exports in KDTree 2014-11-29 23:51:23 +01:00
26221f3046
ALGO: add goLeft/goRight in KDTree 2014-11-29 23:49:39 +01:00
543b08df2c
GUI/DIAG: allow visualizing the rangeSearch and the tree 2014-11-29 23:45:53 +01:00
d195d3f11d
ALGO: save direction in KDTree and refactor 2014-11-29 18:06:07 +01:00
7dbd3a1352
ALGO: initial implementation of KDTree
No visualization yet.
2014-11-29 05:11:15 +01:00
b5a56ea7b0
ALGO: fix spelling in QuadTree 2014-11-29 05:09:13 +01:00
7527e0bec3
ALGO: generalize the QuadTree folds
Now we traverse over all nodes (TNode, TLeaf, TNil),
not just TLeaf.
2014-11-18 00:56:24 +01:00
ea88ef84ea
Improve code prettiness 2014-11-16 16:45:51 +01:00
8c1d54d97a
ALGO: add TODO note in PolygonIntersection about Zippers 2014-11-16 04:49:34 +01:00
62583d82a5
Improve prettiness further 2014-11-16 04:49:13 +01:00
26337d437e
ALGO: expose lookupByNeighbors in QuadTree 2014-11-15 16:04:31 +01:00
60d7dca2c8
DIAG: make the current node in the tree red 2014-11-15 15:26:43 +01:00
50fc0c3d01
ALGO: add test obj to quadtree 2014-11-15 14:24:46 +01:00
0b3c7d2100
ALGO: rename wrongly named RangeSearch to QuadTree 2014-11-15 14:24:24 +01:00
f3cabab280
Implement visualizing the quad tree in a separate window
This window creation still sucks a bit, we should realize it
without actually showing it.
2014-11-15 03:58:38 +01:00
5fa5afc073
ALGO: rm obsolete test array 2014-11-15 03:55:52 +01:00
75c45149d9
Rename Algorithms.RangeSearch.Core to Algorithms.RangeSearch.QuadTree 2014-11-15 00:49:44 +01:00
068ea04d56
ALGO: fix bug when a pointer is between multiple quads
We have to set a priority, otherwise a point might belong to
multiple quads (max 4 if it's in the very middle).
2014-11-14 22:45:12 +01:00
534f0f9609
Add getSquareByZipper function 2014-11-14 21:26:02 +01:00
76afaae38e
ALGO: export constructors and Zipper in RangeSearch 2014-11-14 21:25:25 +01:00
af2e1b59cd
ALGO: add missing Show instances to RangeSearch 2014-11-14 21:24:14 +01:00
62d7c9ffcd
ALGO: implement the quad tree 2014-11-13 23:05:56 +01:00
c765c63125
POLYINT: run rmdups only once 2014-10-31 17:49:08 +01:00
61e0063d78
POLYINT: fix comparison for different-length polygons 2014-10-28 18:51:11 +01:00
d81b6b1cec
POLYINT: improve haddock doc 2014-10-26 14:58:43 +01:00
c8914c8272
POLYINT: small refactor
Get predecessors and successors in the beginning instead of
figuring them out for every single point separetely.
This is still O(n), butt should be a lot quicker than the previous
approach.
2014-10-26 04:22:05 +01:00
fd931db7e0
Improve readability 2014-10-25 20:39:34 +02:00
c4c397e12f
POLYINT: small refactor, abstract some stuff out 2014-10-25 20:23:34 +02:00
7965443aa6
Fix example mesh 2014-10-25 03:15:00 +02:00
9a101d68a5
POLYINT: first try of polygon intersection algorithm in O(n) 2014-10-25 01:44:13 +02:00
a31e1ff578
ALGO: improve haddock doc 2014-10-15 22:50:56 +02:00
077d0442f5
ALGO: improve style 2014-10-13 22:30:19 +02:00
8300929fd7
ALGO: refactor
Move sortedXY to Vector.hs, fix shadowing of scanH.
Simplified grahamCHSteps by making use of a more generalized scanH
function.
2014-10-13 22:06:12 +02:00
edde93ec77
ALGO: improve function names 2014-10-13 19:50:02 +02:00
7cdb867cf4
ALGO: Split scanH out and make the graham API more modular 2014-10-13 19:49:53 +02:00