Arrow on principal ports
Tue Feb 21 15:50:34 WET 2006 Miguel Vilaca <jmvilaca@di.uminho.pt>
* Arrow on principal ports
{
hunk ./src/Network.hs 53
+
+ , isPrincipalPort
hunk ./src/Network.hs 644
- [_$_]
+
+isPrincipalPort :: Network g n e -> NodeNr -> Port -> Bool
+isPrincipalPort network nodeNr port = [_$_]
+ case getNodePorts network nodeNr of
+ Just (x:_) -> x `isTheSameAs` port [_$_]
+ _ -> False [_$_]
hunk ./src/NetworkView.hs 168
+ isPrincipalPort' (Just (nodeNr, port)) = [_$_]
+ isPrincipalPort network nodeNr port && not (isInterfacePort port) [_$_]
+ isPrincipalPort' _ = False
+
hunk ./src/NetworkView.hs 177
+ [_$_]
+ -- arrow(s) on principal ports
+ ; when hasPrincipalPorts [_$_]
+ $ do when (isPrincipalPort' fromPort)
+ $ logicalLine ppi dc [tw1, pw1, tw2] options [_$_]
+ when (isPrincipalPort' toPort) [_$_]
+ $ logicalLine ppi dc [tw3, pw2, tw4] options
hunk ./src/NetworkView.hs 239
+ pw1 = translatePolar fstAngle (radius + kARROW_SIZE) fromPoint
+ pw2 = translatePolar endAngle (endTotalLen - radius - kARROW_SIZE) penultimatePt
+
+ tw1 = translatePolar (fstAngle + pi + pi / 6) kARROW_SIZE pw1
+ tw2 = translatePolar (fstAngle + pi - pi / 6) kARROW_SIZE pw1
+
+ tw3 = translatePolar (endAngle + pi / 6) kARROW_SIZE pw2
+ tw4 = translatePolar (endAngle - pi / 6) kARROW_SIZE pw2
+
hunk ./src/NetworkView.hs 405
+
+logicalLine :: Size -> DC () -> [DoublePoint] -> [Prop (DC ())] -> IO ()
+logicalLine ppi dc points options =
+ polyline dc (map (logicalToScreenPoint ppi) points) options
}