Commit Graph

88 Commits

Author SHA1 Message Date
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
dd9bfc530d DIAG: fix Gif build 2014-11-16 01:42:48 +01:00
8f911247c7 DIAG: fix haddock comment 2014-11-16 01:28:20 +01:00