From d9e0cb8fefca9b206820b7d80541fbc2a70fc53f Mon Sep 17 00:00:00 2001 From: hasufell Date: Tue, 10 Feb 2015 04:10:14 +0100 Subject: [PATCH] HALFEDGE: improve pseudo-code --- Graphics/HalfEdge.hs | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/Graphics/HalfEdge.hs b/Graphics/HalfEdge.hs index d0ea46b..7740279 100644 --- a/Graphics/HalfEdge.hs +++ b/Graphics/HalfEdge.hs @@ -138,26 +138,29 @@ indirectHeVerts hes' = go hes' Map.empty 0 -- pseudo-code: -- -- @ --- indirectToDirect :: [a] -> [IndirectHeEdge] -> [IndirectHeFace] --- -> Map.IntMap IndirectHeVert -> HeEdge a --- indirectToDirect points edgelist facelist vertmap --- = thisEdge (head edgelist) +-- indirectToDirect :: [a] -- parsed vertices, e.g. 2d points (Double, Double) +-- -> [IndirectHeEdge] +-- -> [IndirectHeFace] +-- -> [IndirectHeVert] +-- -> HeEdge a +-- indirectToDirect points edges faces vertices +-- = thisEdge (head edges) -- where -- thisEdge edge --- = HeEdge (thisVert (vertmap ! svindex edge) $ svindex edge) --- (getOppEdge (svindex edge) $ indexf edge) --- (thisFace $ facelist !! indexf edge) --- (thisEdge $ edgelist !! (edgeindex edge + offsetedge edge)) --- thisFace face = HeFace $ thisEdge (edgelist !! (snd . head $ face)) +-- = HeEdge (thisVert (vertices !! svindex edge) $ svindex edge) +-- (thisOppEdge (svindex edge) $ indexf edge) +-- (thisFace $ faces !! indexf edge) +-- (thisEdge $ edges !! (edgeindex edge + offsetedge edge)) +-- thisFace face = HeFace $ thisEdge (edges !! (head . snd $ face)) -- thisVert vertice coordindex -- = HeVert (points !! (coordindex - 1)) -- (thisEdge $ points !! (emedgeindex vertice - 1)) --- getOppEdge startverticeindex faceindex +-- thisOppEdge startverticeindex faceindex -- = case headMay --- . filter ((/=) faceindex . indexf) --- . fmap (edgelist !!) --- . edgelist --- $ vertmap ! startverticeindex +-- . filter ((/=) faceindex . indexf) +-- . fmap (edges !!) +-- . edgelist -- getter +-- $ vertices !! startverticeindex -- of Just x -> thisEdge x -- Nothing -> NoEdge -- @