Commit Graph

5 Commits

Author SHA1 Message Date
hasufell 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
hasufell 0151df162c
HALFEDGE: use Data.IntMap instead of Array 2015-11-25 22:51:39 +01:00
hasufell c22c00cb2d
HALFEDGE: optimize buildHeEdgeFromStr
It's faster this way than using buildHeEdge.
2015-11-25 22:51:39 +01:00
hasufell 4ebd842d2b
HALFEDGE: fix haddock comment 2015-11-25 22:51:39 +01:00
hasufell 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