Commit Graph

90 Commits

Author SHA1 Message Date
d9e0cb8fef
HALFEDGE: improve pseudo-code 2015-11-25 22:51:40 +01:00
26e7817cfa
HALFEDGE: fix module doc 2015-11-25 22:51:40 +01:00
e010c03398
HALFEDGE: improve readability 2015-11-25 22:51:40 +01:00
d45412ca3c
HALFEDGE: add pseudo-code for 'indirectToDirect' 2015-11-25 22:51:40 +01:00
70ce5ca511
HALFEDGE: make 'indirectToDirect' a safe function
We had to add NoFace/NoEdge/NoVert constructors to our half-edge
data structures, because using "Maybe HeEdge a" as the result value
of 'indirectToDirect' causes an infinite recursion, since the whole
data structure (which is cyclic and infinite) has to be evaluated
in order to know which constructor to use.

Unfortunately this makes the code quite hard to read.

TODO: add pseudo-code
2015-11-25 22:51:39 +01:00
0151df162c
HALFEDGE: use Data.IntMap instead of Array 2015-11-25 22:51:39 +01:00
c22c00cb2d
HALFEDGE: optimize buildHeEdgeFromStr
It's faster this way than using buildHeEdge.
2015-11-25 22:51:39 +01:00
4ebd842d2b
HALFEDGE: fix haddock comment 2015-11-25 22:51:39 +01:00
8b9908ebae
HALFEDGE: initial implementation for half-edge data structures
See http://www.flipcode.com/archives/The_Half-Edge_Data_Structure.shtml
2015-11-25 22:51:31 +01:00
984ed40c63
Port to diagrams >1.3
# Conflicts:
#	Algebra/Vector.hs
#	CG2.cabal
#	Graphics/Diagram/Core.hs
#	Graphics/Diagram/Gif.hs
#	Graphics/Diagram/Gtk.hs
#	Test/Vector.hs
2015-05-21 02:14:15 +02:00
5120a44d0f
Remove almost all 'type' usage to make types more transparent 2015-01-14 18:17:35 +01:00
70e6ada121
DIAG: improve style 2015-01-09 04:05:43 +01:00
8058a43ee4
DIAG: draw the monotone, triangled polygon 2015-01-09 04:04:23 +01:00
54284193cd
ALGO: improve naming of functions 2015-01-09 03:58:05 +01:00
25abe39a18
DIAG: rm obsolete import 2015-01-08 01:45:14 +01:00
6b873e9e5c
ALGO: try to implement y-monotonization 2015-01-08 01:44:47 +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
c33827b63e
DIAG: use newtype for DiagAlgo 2014-12-17 00:52:07 +01:00
c6ca5fa7da
DIAG: add haddock comment 2014-12-07 20:30:51 +01:00
34ba3bbfa2
DIAG: fix plotter, rm moveTo if possible
Scaling the dimensions should now work better, including
scaled coordinate text and point thickness depending
on the diagram dimensions.
2014-12-07 20:09:48 +01:00
899e71ab03
DIAG: fix diagHeightOffset 2014-12-07 20:00:54 +01:00
3398c6d9e3
DIAG: rm polyLines from quadTree algorithm 2014-12-07 19:30:31 +01:00
f8fb61e80a
DIAG: consistently use [[PT]] for all Diags
Also simplify a few things like needless strokeTrail usage.
2014-12-07 18:55:49 +01:00
8abe795add
DIAG: be more consistent about Diag constructor parameter naming 2014-12-07 04:41:45 +01:00
70a6dd1766
DIAG: dump the Object data type, it's useless 2014-12-07 04:33:45 +01:00
9c1121d941
DIAG: rm unused import 2014-12-04 03:28:57 +01:00
d2dc5dee02
DIAG: rm whiteRect function, it's only used once 2014-12-03 22:11:10 +01:00
a7774b69a4
Restructure Graphics/Diagram subdir, rename modules 2014-12-03 22:02:42 +01:00
3c1a34e4af
Merge VectorTypes.hs into Vector.hs 2014-12-03 21:41:00 +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
f1f3f20a26
DIAG: improve readability 2014-12-03 21:20:46 +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
4a0c9ff58d
DIAG: improve readability 2014-12-03 01:36:12 +01:00
5123abfd99
DIAG: rm Debug import 2014-12-03 01:35:55 +01:00
a332f3f3c3
DIAG: add missing kdRange to algo 5 2014-12-02 19:01:01 +01:00
d5d7209039
DIAG: simplify plotter 2014-12-02 19:00:50 +01:00
a23842bf82
DIAG: eta-reduce 2014-12-01 02:27:42 +01:00
cc9b7b6365
DIAG: use proper introspection in Gtk logic 2014-12-01 02:19:11 +01:00
562f7a58e8
DIAG: simplify by using drawP 2014-11-30 20:24:10 +01:00
543b08df2c
GUI/DIAG: allow visualizing the rangeSearch and the tree 2014-11-29 23:45:53 +01:00
fd4f135efa
DIAG: improve function naming and return value in kdSquares 2014-11-29 19:27:19 +01:00
3b61d21549
GUI: allow to draw kdSquares 2014-11-29 19:21:46 +01:00
0b36b4acb9
DIAG: add kdSquares to draw kd-tree sections 2014-11-29 19:21:17 +01:00
e673fee652
Read the obj file as ByteString and pass ByteString to the Parser 2014-11-21 04:49:17 +01:00
8d7ed598e2
DIAG: rm unused parameter 2014-11-16 17:25:58 +01:00
ea88ef84ea
Improve code prettiness 2014-11-16 16:45:51 +01:00
562fdbe26f
DIAG: filter valid points earlier
This saves us some code duplication.
2014-11-16 16:44:26 +01:00
9c7acc6dce
DIAG: improve code prettiness 2014-11-16 04:37:34 +01:00