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