From b6171533c5bb9ad8a57a93db4cb39c832df0edce Mon Sep 17 00:00:00 2001 From: Robbie Gleichman Date: Tue, 18 Jul 2017 19:11:57 -0700 Subject: [PATCH] Use a variable for the set of rotation angles. --- app/Rendering.hs | 25 ++++++++++++++----------- app/Translate.hs | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/Rendering.hs b/app/Rendering.hs index e21beb9..f025879 100644 --- a/app/Rendering.hs +++ b/app/Rendering.hs @@ -241,21 +241,24 @@ bestAngleForIcon :: (SpecialNum n, ING.Graph gr) => -> Bool -> (Angle n, n) bestAngleForIcon positionMap graph key@(NodeName nodeId, _) reflected = - minimumBy (compare `on` snd) $ (\angle -> (angle, scoreAngle iconPosition edges reflected angle)) <$> fmap (@@ turn) [0,(1/24)..1] where - iconPosition = positionMap Map.! key - edges = getPositionAndAngles <$> fmap getSucEdge (ING.lsuc graph nodeId) <> fmap getPreEdge (ING.lpre graph nodeId) - - getPositionAndAngles (node, nameAndPort) = (positionMap Map.! nodeLabel, portAngles) where - nodeLabel = fromMaybeError "getPositionAndAngles: node not found" $ ING.lab graph node - portAngles = findPortAngles key nameAndPort + minimumBy (compare `on` snd) $ (\angle -> (angle, scoreAngle iconPosition edges reflected angle)) <$> fmap (@@ turn) possibleAngles + where + possibleAngles = [0,(1/24)..1] + -- possibleAngles = [0, 1/2] -- (uncomment this line and comment out the line above to disable rotation) + iconPosition = positionMap Map.! key + edges = getPositionAndAngles <$> fmap getSucEdge (ING.lsuc graph nodeId) <> fmap getPreEdge (ING.lpre graph nodeId) + + getPositionAndAngles (node, nameAndPort) = (positionMap Map.! nodeLabel, portAngles) where + nodeLabel = fromMaybeError "getPositionAndAngles: node not found" $ ING.lab graph node + portAngles = findPortAngles key nameAndPort -- Edge points from id to otherNode - getSucEdge (otherNode, edge) = (otherNode, nameAndPort) where - (nameAndPort, _) = edgeConnection edge + getSucEdge (otherNode, edge) = (otherNode, nameAndPort) where + (nameAndPort, _) = edgeConnection edge -- Edge points from otherNode to id - getPreEdge (otherNode, edge) = (otherNode, nameAndPort) where - (_, nameAndPort) = edgeConnection edge + getPreEdge (otherNode, edge) = (otherNode, nameAndPort) where + (_, nameAndPort) = edgeConnection edge findIconRotation :: (SpecialNum n, ING.Graph gr) => Map.Map (NodeName, Icon) (Point V2 n) diff --git a/app/Translate.hs b/app/Translate.hs index 4403422..8953f9b 100644 --- a/app/Translate.hs +++ b/app/Translate.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE NoMonomorphismRestriction, FlexibleContexts, TypeFamilies, TupleSections #-} +{-# LANGUAGE NoMonomorphismRestriction, TupleSections #-} module Translate( translateStringToSyntaxGraph, translateStringToCollapsedGraphAndDecl,