]> granicus.if.org Git - graphviz/commitdiff
add icurve arrow shape
authorJohn Ellson <ellson@research.att.com>
Tue, 12 Aug 2014 16:35:06 +0000 (12:35 -0400)
committerJohn Ellson <ellson@research.att.com>
Tue, 12 Aug 2014 16:35:06 +0000 (12:35 -0400)
73 files changed:
doc/info/a_box.gif
doc/info/a_crow.gif
doc/info/a_curve.gif
doc/info/a_diamond.gif
doc/info/a_dot.gif
doc/info/a_ediamond.gif
doc/info/a_empty.gif
doc/info/a_forward.dot [new file with mode: 0644]
doc/info/a_forward.gif
doc/info/a_halfopen.gif
doc/info/a_icurve.gif [new file with mode: 0644]
doc/info/a_inv.gif
doc/info/a_invdot.gif
doc/info/a_invempty.gif
doc/info/a_invodot.gif
doc/info/a_lteeoldiamond.gif
doc/info/a_nohead.dot [new file with mode: 0644]
doc/info/a_nohead.gif
doc/info/a_none.gif
doc/info/a_normal.gif
doc/info/a_obox.gif
doc/info/a_odiamond.gif
doc/info/a_odot.gif
doc/info/a_open.gif
doc/info/a_tee.gif
doc/info/aa_box.gif
doc/info/aa_crow.gif
doc/info/aa_curve.gif
doc/info/aa_diamond.gif
doc/info/aa_dot.gif
doc/info/aa_icurve.gif [new file with mode: 0644]
doc/info/aa_inv.gif
doc/info/aa_lbox.gif
doc/info/aa_lcrow.gif
doc/info/aa_lcurve.gif
doc/info/aa_ldiamond.gif
doc/info/aa_licurve.gif [new file with mode: 0644]
doc/info/aa_linv.gif
doc/info/aa_lnormal.gif
doc/info/aa_ltee.gif
doc/info/aa_lvee.gif
doc/info/aa_none.gif
doc/info/aa_normal.gif
doc/info/aa_obox.gif
doc/info/aa_odiamond.gif
doc/info/aa_odot.gif
doc/info/aa_oinv.gif
doc/info/aa_olbox.gif
doc/info/aa_oldiamond.gif
doc/info/aa_olinv.gif
doc/info/aa_olnormal.gif
doc/info/aa_onormal.gif
doc/info/aa_orbox.gif
doc/info/aa_ordiamond.gif
doc/info/aa_orinv.gif
doc/info/aa_ornormal.gif
doc/info/aa_rbox.gif
doc/info/aa_rcrow.gif
doc/info/aa_rcurve.gif
doc/info/aa_rdiamond.gif
doc/info/aa_ricurve.gif [new file with mode: 0644]
doc/info/aa_rinv.gif
doc/info/aa_rnormal.gif
doc/info/aa_rtee.gif
doc/info/aa_rvee.gif
doc/info/aa_tee.gif
doc/info/aa_vee.gif
doc/info/arrowgen.tcl
doc/infosrc/Makefile.old
doc/infosrc/arrow_grammar
doc/infosrc/arrows.2
graphs/directed/arrows.gv
lib/common/arrows.c

index f49639f1968866716482deeae971d4fde81fdc42..6e4daef7b84e317a1ab35ffa345f64b3186f18bf 100644 (file)
Binary files a/doc/info/a_box.gif and b/doc/info/a_box.gif differ
index 624d7b0b5b84d6b25069240679fe1c2599d6b815..b2f2a3c59314bb2530e1dabf5661b35a5399a63f 100644 (file)
Binary files a/doc/info/a_crow.gif and b/doc/info/a_crow.gif differ
index 86c4cac4cf2db0adb72d2491bab32880326b75a0..0fe67bc7401ad77c2d9c84af5bd6f099211efbbf 100644 (file)
Binary files a/doc/info/a_curve.gif and b/doc/info/a_curve.gif differ
index 7b69d6921c89b130e889306f7883b6cdb1e3a25b..ab183994cf0580b003f826b73546dfa101c24cb6 100644 (file)
Binary files a/doc/info/a_diamond.gif and b/doc/info/a_diamond.gif differ
index f48be06aaae63c3856e208c4be8ad278bd0aef19..c98a4d5ff555ac5cbd5062454a71d5ac1f9e8094 100644 (file)
Binary files a/doc/info/a_dot.gif and b/doc/info/a_dot.gif differ
index a65aa06bd91b290847ec64c6a7df781cf6ff2bb0..35ec06696aa1807bd33ac3a8ded192ef249e337e 100644 (file)
Binary files a/doc/info/a_ediamond.gif and b/doc/info/a_ediamond.gif differ
index 42f372fc8188a6d0fcc8c7c26b766f64c3c7dd30..f6d71e78346704136a251296c0b5e7ab2a4c51c0 100644 (file)
Binary files a/doc/info/a_empty.gif and b/doc/info/a_empty.gif differ
diff --git a/doc/info/a_forward.dot b/doc/info/a_forward.dot
new file mode 100644 (file)
index 0000000..d6132a5
--- /dev/null
@@ -0,0 +1,6 @@
+digraph G {
+graph [pad="0.05" rankdir=LR]
+a [label="" shape=point]
+b [label=""]
+a -> b [arrowhead=forward]
+}
index 23c365c07112550685a3b97d8fd32e69f8d786fe..46832501591dc8ff8e4e438fb26119b41e989468 100644 (file)
Binary files a/doc/info/a_forward.gif and b/doc/info/a_forward.gif differ
index 0abefbd35c7917b9d4703615c51d434f88b4a4af..3b351afd999855987238e0110278f40e68216fb5 100644 (file)
Binary files a/doc/info/a_halfopen.gif and b/doc/info/a_halfopen.gif differ
diff --git a/doc/info/a_icurve.gif b/doc/info/a_icurve.gif
new file mode 100644 (file)
index 0000000..80f7950
Binary files /dev/null and b/doc/info/a_icurve.gif differ
index 6eaaa4278ca7de611088d54dc574e1a858408b14..8347de63e189b2f9b1ef483527a42ff15366223b 100644 (file)
Binary files a/doc/info/a_inv.gif and b/doc/info/a_inv.gif differ
index 933ced311c74a96256bbb9267e0da34fb33f4b73..ecfae0edaae3249e4e140ca480c87ad702f4b8cc 100644 (file)
Binary files a/doc/info/a_invdot.gif and b/doc/info/a_invdot.gif differ
index c2a823a8857b2135c809a63ee9b5ad76660e95ef..665937e6f18cce1b418349a48490a8eef0b252fd 100644 (file)
Binary files a/doc/info/a_invempty.gif and b/doc/info/a_invempty.gif differ
index 68feb151818b7105d6ac0e30e541ddb0e9ef3a28..f3e5ae10cd6e3402a5dbf8706ae2925f9508e7c8 100644 (file)
Binary files a/doc/info/a_invodot.gif and b/doc/info/a_invodot.gif differ
index 7de42ac7c02458854ae68eca34a64865f24fd8c5..ec4c8aeb53610e6107930dd0ea32c012051b6360 100644 (file)
Binary files a/doc/info/a_lteeoldiamond.gif and b/doc/info/a_lteeoldiamond.gif differ
diff --git a/doc/info/a_nohead.dot b/doc/info/a_nohead.dot
new file mode 100644 (file)
index 0000000..31fc1a0
--- /dev/null
@@ -0,0 +1,6 @@
+digraph G {
+graph [pad="0.05" rankdir=LR]
+a [label="" shape=point]
+b [label=""]
+a -> b [arrowhead=nohead]
+}
index 23c365c07112550685a3b97d8fd32e69f8d786fe..46832501591dc8ff8e4e438fb26119b41e989468 100644 (file)
Binary files a/doc/info/a_nohead.gif and b/doc/info/a_nohead.gif differ
index 63544d04d4842964ba37b4886236f8d7ddcff10d..46832501591dc8ff8e4e438fb26119b41e989468 100644 (file)
Binary files a/doc/info/a_none.gif and b/doc/info/a_none.gif differ
index 9a1d54fd046be593fdb61b0054d0dc8e2023eab3..98472a2d40ccc9950f542f45436629aa192005a7 100644 (file)
Binary files a/doc/info/a_normal.gif and b/doc/info/a_normal.gif differ
index 19939d7ff2d4c3ef4f1970318c339eb4480ccb08..fac61661d0491eff2a0e1fc8eff64d2641e4ded0 100644 (file)
Binary files a/doc/info/a_obox.gif and b/doc/info/a_obox.gif differ
index a65aa06bd91b290847ec64c6a7df781cf6ff2bb0..35ec06696aa1807bd33ac3a8ded192ef249e337e 100644 (file)
Binary files a/doc/info/a_odiamond.gif and b/doc/info/a_odiamond.gif differ
index 3e26ad0d051c0b338d8deb3d2c5f7d0661c09eb6..84d3e36114ffb7738b62d286d16e83ebfee565ee 100644 (file)
Binary files a/doc/info/a_odot.gif and b/doc/info/a_odot.gif differ
index a61e06d4c8922082140d069dbbebd32b566e6976..394fe2a4f53de4a5182af84a048adf15a1092cf4 100644 (file)
Binary files a/doc/info/a_open.gif and b/doc/info/a_open.gif differ
index bbe8bc368f0a6dc8ad5a67218c34c7e8ed4d5444..fd06967936b52916d45af0cd2e999a2072a45d18 100644 (file)
Binary files a/doc/info/a_tee.gif and b/doc/info/a_tee.gif differ
index 6afb89cb97871f7529817485fd822c3e7fbcc43b..974bcd7b5d33d03d5b8a50b308cf6196bd3cf0f7 100644 (file)
Binary files a/doc/info/aa_box.gif and b/doc/info/aa_box.gif differ
index ca2bafef41f92daa897f5227a1abee313398619d..e4dd24e1cf1a13b8a6ae7ce980ba333b9ced347d 100644 (file)
Binary files a/doc/info/aa_crow.gif and b/doc/info/aa_crow.gif differ
index 5e97a301e541967e9c0876e2daa48a2a15f52616..7c892783e8d229e2913f65e95e23d854dc1795f5 100644 (file)
Binary files a/doc/info/aa_curve.gif and b/doc/info/aa_curve.gif differ
index 140eeb65c9c4a6a9c43fef4abdf705f0a24c57e8..d40a4c47be6e67adfd428e0b707364ca597873ab 100644 (file)
Binary files a/doc/info/aa_diamond.gif and b/doc/info/aa_diamond.gif differ
index 8ac4ecefdd4fa449dd955544979ae476152c1566..8615e280c251874e3820cb0eebe6286f5e8f97dd 100644 (file)
Binary files a/doc/info/aa_dot.gif and b/doc/info/aa_dot.gif differ
diff --git a/doc/info/aa_icurve.gif b/doc/info/aa_icurve.gif
new file mode 100644 (file)
index 0000000..e613814
Binary files /dev/null and b/doc/info/aa_icurve.gif differ
index 4ade7b582a8dc4ebc8036df1103bf9a0bd29f860..21a24676f04230b4b6a61bcac13e5affee58d907 100644 (file)
Binary files a/doc/info/aa_inv.gif and b/doc/info/aa_inv.gif differ
index 120eeb86f11869701d8034cb13eebb0ce8fdc23a..d3af77efaade67bcb9f259d584a37a91d9150323 100644 (file)
Binary files a/doc/info/aa_lbox.gif and b/doc/info/aa_lbox.gif differ
index e4dc88efee7217abd4273e10240bdb990a48f293..52933a00e9c8363c0915a0ef5b5f2952c06e221e 100644 (file)
Binary files a/doc/info/aa_lcrow.gif and b/doc/info/aa_lcrow.gif differ
index 8fa598156ad98198c658175ade40db208cbc5798..d18ba53b0c1f1bfde2d72ced8ce21cfa1b5bf277 100644 (file)
Binary files a/doc/info/aa_lcurve.gif and b/doc/info/aa_lcurve.gif differ
index 421ff6a2a7dc1dbb8bf2f5b29f11e14d95756c13..c094009db01592aac9cdc7bfea2101f72a8886fe 100644 (file)
Binary files a/doc/info/aa_ldiamond.gif and b/doc/info/aa_ldiamond.gif differ
diff --git a/doc/info/aa_licurve.gif b/doc/info/aa_licurve.gif
new file mode 100644 (file)
index 0000000..7b8c185
Binary files /dev/null and b/doc/info/aa_licurve.gif differ
index 82d02d13982e9a25bb713aec995b10df67363ebd..f31629a121a1109a78c4e6004ad77fb69b072094 100644 (file)
Binary files a/doc/info/aa_linv.gif and b/doc/info/aa_linv.gif differ
index b60bb2ba84eb045a1b555e91bbe1477e8db72054..3538540736f66adab02e499ef35ba294bb3d909e 100644 (file)
Binary files a/doc/info/aa_lnormal.gif and b/doc/info/aa_lnormal.gif differ
index 471f01ce4907179d088c6b1fda87db7b377f1d8b..325bf22dbba3574bacc9707d73bb3c3fefccfb6d 100644 (file)
Binary files a/doc/info/aa_ltee.gif and b/doc/info/aa_ltee.gif differ
index fbc20c36a01a9f2a5eec36253889d224529fb109..6c99b80260429a15ed431cf103e5fc3d73641594 100644 (file)
Binary files a/doc/info/aa_lvee.gif and b/doc/info/aa_lvee.gif differ
index 9910e0e61e067aff435a33bb1f22127d21e3fc04..dbe95dc12000a908c0f80a8878be9dd4b7f91d0e 100644 (file)
Binary files a/doc/info/aa_none.gif and b/doc/info/aa_none.gif differ
index 0f27bf3bc35fc202eaae683c004c3e71bda14df7..67d0db3751dac2046e028c6b7ee45ab7a91e6f42 100644 (file)
Binary files a/doc/info/aa_normal.gif and b/doc/info/aa_normal.gif differ
index 7a64fe029bfb718b7befc6bde2552bb29941b6b6..7573b77e3c79258335b28fae92d5b6e2832a59c6 100644 (file)
Binary files a/doc/info/aa_obox.gif and b/doc/info/aa_obox.gif differ
index 590fcfed7d24449c4408c9ba359581e10615aee2..e731dc0fc79bf3563c57c957f0bc9e94fee4c7eb 100644 (file)
Binary files a/doc/info/aa_odiamond.gif and b/doc/info/aa_odiamond.gif differ
index f235019cbcb51c608a2161f321be6de5187e7941..d0474f3a01c9afc7dd668dbe2f5a804ffd1f829e 100644 (file)
Binary files a/doc/info/aa_odot.gif and b/doc/info/aa_odot.gif differ
index 70f014f68a6c014d12b60c16b5f8151d985a6e7b..ced179e65de110529a405acf6106fb0f201c2ac3 100644 (file)
Binary files a/doc/info/aa_oinv.gif and b/doc/info/aa_oinv.gif differ
index 3e5506ca1cc6a8645c8b1ea6bcb5fc3d1f4f0807..b1166c1dff52bbe2ed39a3cd302945d01f63b672 100644 (file)
Binary files a/doc/info/aa_olbox.gif and b/doc/info/aa_olbox.gif differ
index 00ba07bf0493e7e71e7df937936bd49222510bfd..2521a7ffc88afd568c8d8716dc4e479f5ab4c40b 100644 (file)
Binary files a/doc/info/aa_oldiamond.gif and b/doc/info/aa_oldiamond.gif differ
index cbef41bcb576e0fa02a1ea5a841871929d90a332..2e2384561be39b0d4e4c654ae3199138bd7f50ee 100644 (file)
Binary files a/doc/info/aa_olinv.gif and b/doc/info/aa_olinv.gif differ
index 3e51b3f8a197facbaf9f3c5546fa1a2542baf416..14e43123b8df897715360b59b56ac7c6e43286a0 100644 (file)
Binary files a/doc/info/aa_olnormal.gif and b/doc/info/aa_olnormal.gif differ
index 8784657a9f4bdccc273f6a010cdcad29e7a1cb9c..7af649735b32667e1e0e40e56e9729f528c11990 100644 (file)
Binary files a/doc/info/aa_onormal.gif and b/doc/info/aa_onormal.gif differ
index 0c8621797f854b8b6eec0450de58b3d4c42c05dd..32f35e9591626a424db8428e305122368a8e530e 100644 (file)
Binary files a/doc/info/aa_orbox.gif and b/doc/info/aa_orbox.gif differ
index 161e999f93cd5772bfb8d2e4c876ff36c793cace..5bdcdf23626ceaf25f871e1cc283d5c20e5eb960 100644 (file)
Binary files a/doc/info/aa_ordiamond.gif and b/doc/info/aa_ordiamond.gif differ
index 51236cbf8e6502c9d36ccbc9bbcb202dfc8b8ad6..ce5fc47c61d1973e519995cdac921f6898df62e6 100644 (file)
Binary files a/doc/info/aa_orinv.gif and b/doc/info/aa_orinv.gif differ
index 1b46ed4315a0c2a4cec76956b9e3aadf4ddd5874..800e5eafc2c11c0a53b97969b0f0d7dc61f58d4c 100644 (file)
Binary files a/doc/info/aa_ornormal.gif and b/doc/info/aa_ornormal.gif differ
index 5f3a032061b3e01a4f9eff1f56f77af1d6040ab9..5660515ace35a53fd5011d3873ed45e33a8c4024 100644 (file)
Binary files a/doc/info/aa_rbox.gif and b/doc/info/aa_rbox.gif differ
index a623fc52e50eb7109d00e4a58dcf2a6f3481251a..876a48963365c564f529560143ad5dcbb7c688f3 100644 (file)
Binary files a/doc/info/aa_rcrow.gif and b/doc/info/aa_rcrow.gif differ
index 680605089d5b53b130c226ac4fce6e3f4fa9741b..ab3a2a07e5e10939640027330055669a0fe2d49f 100644 (file)
Binary files a/doc/info/aa_rcurve.gif and b/doc/info/aa_rcurve.gif differ
index 5303d6fa826619ad5b2e264a13a541b3bcc0f8d9..6f78f3ab81e09398f33557ecf60bf25176b3a4de 100644 (file)
Binary files a/doc/info/aa_rdiamond.gif and b/doc/info/aa_rdiamond.gif differ
diff --git a/doc/info/aa_ricurve.gif b/doc/info/aa_ricurve.gif
new file mode 100644 (file)
index 0000000..03230d1
Binary files /dev/null and b/doc/info/aa_ricurve.gif differ
index 2e70b43ca6936a204fa0b6e52a1dc41453e8ec25..cc60b30fb4e884424629dcf8c7c434557396502d 100644 (file)
Binary files a/doc/info/aa_rinv.gif and b/doc/info/aa_rinv.gif differ
index af19dc6c1f0058cb8e30c96320e21e05ffa5821c..6b9414c392efa1b78a6432137b49d34cb96fa4e7 100644 (file)
Binary files a/doc/info/aa_rnormal.gif and b/doc/info/aa_rnormal.gif differ
index 95d6ba5f1539f30de3af08f6674f711a83439d19..ba1de16efa0a308704691df7340422e5c43e8029 100644 (file)
Binary files a/doc/info/aa_rtee.gif and b/doc/info/aa_rtee.gif differ
index 0e5735d2eb2a14fe1b6670320ed05bc4b56c0c94..6ff7fe4465285332d465ad18edf276c82a402281 100644 (file)
Binary files a/doc/info/aa_rvee.gif and b/doc/info/aa_rvee.gif differ
index b374634a4310871bbd5d6342bf77da1c3359fa6a..cde2a2dfdbe75984ce9624ec7401295af72202f8 100644 (file)
Binary files a/doc/info/aa_tee.gif and b/doc/info/aa_tee.gif differ
index 4f5d73d28b2f0e84c805e8b13c25f990ac8e9efe..6b3c347ad10f6343ebc8b10633334ddefc5f77ae 100644 (file)
Binary files a/doc/info/aa_vee.gif and b/doc/info/aa_vee.gif differ
index a2c95dd89c10de66b66b1ae3271e6d8492a8199e..5c2df7240fab5a80afff0b6835175d81850750c5 100755 (executable)
@@ -3,12 +3,16 @@
 set arrows {
     box
     crow
+    curve
     diamond
     dot
+    icurve
     inv
     lbox
     lcrow
+    lcurve
     ldiamond
+    licurve
     linv
     lnormal
     ltee
@@ -30,7 +34,9 @@ set arrows {
     ornormal
     rbox
     rcrow
+    rcurve
     rdiamond
+    ricurve
     rinv
     rnormal
     rtee
@@ -42,18 +48,18 @@ set arrows {
 set arrowexamples {
     box
     crow
+    curve
     diamond
     dot
     ediamond
     empty
-    forward
     halfopen
+    icurve
     inv
     invdot
     invempty
     invodot
     lteeoldiamond
-    nohead
     none
     normal
     obox
index 42c4b681aea7ee3b7ed7b4f07741cc10b89ab7fd..744c65f5b5e8255a82f92f0c7b7b9f69fe13d33d 100644 (file)
@@ -61,7 +61,7 @@ SGIF = Mcircle.gif Mdiamond.gif Msquare.gif box.gif \
       proteinstab.gif rpromoter.gif rarrow.gif larrow.gif lpromoter.gif
 
 AGIF = a_normal.gif a_inv.gif a_dot.gif a_invdot.gif a_odot.gif \
-       a_invodot.gif a_curve.gif a_none.gif \
+       a_invodot.gif a_curve.gif a_icurve.gif a_none.gif \
        a_tee.gif a_empty.gif a_invempty.gif a_open.gif \
        a_diamond.gif a_odiamond.gif a_box.gif a_obox.gif a_crow.gif \
        a_halfopen.gif a_ediamond.gif a_lteeoldiamond.gif
@@ -75,7 +75,9 @@ A2GIF= aa_box.gif aa_lbox.gif aa_rbox.gif aa_obox.gif aa_olbox.gif aa_orbox.gif\
        aa_normal.gif aa_lnormal.gif aa_rnormal.gif aa_onormal.gif aa_olnormal.gif aa_ornormal.gif\
        aa_tee.gif aa_ltee.gif aa_rtee.gif \
        aa_vee.gif aa_lvee.gif aa_rvee.gif \
-       aa_curve.gif aa_lcurve.gif aa_rcurve.gif
+       aa_curve.gif aa_lcurve.gif aa_rcurve.gif \
+       aa_icurve.gif aa_licurve.gif aa_ricurve.gif
+
        
 
 GIF = $(SGIF) $(AGIF) $(MGIF) $(A2GIF) $(XGIF)
index 1cb3fad30610cd6e1cf37ecbed3157739ec193bc..10714ac433cb9672c2e6f73a5112dda943e6d267 100644 (file)
@@ -2,4 +2,4 @@ arrowname =  aname [ aname  [ aname  [ aname ] ] ]
 aname = [ modifiers ] shape
 modifiers = [ 'o' ] [ side ]
 side = 'l' | 'r'
-shape = T_box | T_crow | T_curve | T_diamond | T_dot | T_inv | T_none | T_normal | T_tee | T_vee 
+shape = T_box | T_crow | T_curve | T_icurve | T_diamond | T_dot | T_inv | T_none | T_normal | T_tee | T_vee 
index cd17351b51c34897ede1a88d92f8f15a93d5da08..7986d74b59080a839de900d165df395595b49f5c 100644 (file)
@@ -8,13 +8,18 @@ The primitive shapes are:
     <TD>"crow"<TD><IMG SRC="a_crow.gif">
     <TD>"curve"<TD><IMG SRC="a_curve.gif">
     <TD>"diamond"<TD><IMG SRC="a_diamond.gif">
-    <TD>"dot"<TD><IMG SRC="a_dot.gif">
   </TR>
   <TR>
   </TR>
   <TR>
+    <TD>"dot"<TD><IMG SRC="a_dot.gif">
+    <TD>"icurve"<TD><IMG SRC="a_icurve.gif">
     <TD>"inv"<TD><IMG SRC="a_inv.gif">
     <TD>"none"<TD><IMG SRC="a_none.gif">
+  </TR>
+  <TR>
+  </TR>
+  <TR>
     <TD>"normal"<TD><IMG SRC="a_normal.gif">
     <TD>"tee"<TD><IMG SRC="a_tee.gif">
     <TD>"vee"<TD><IMG SRC="a_open.gif">
@@ -58,6 +63,7 @@ The following table indicates which modifiers are allowed with which shapes.
  <TH>curve
  <TH>diamond
  <TH>dot
+ <TH>icurve
  <TH>inv
  <TH>none
  <TH>normal
@@ -69,13 +75,13 @@ The following table indicates which modifiers are allowed with which shapes.
 </TABLE>
 </CENTER>
 <P>
-This yields 39 different arrow shapes. The optional second, third, fourth shapes
-can independently be any of the 39, except the last cannot be <TT>none</TT> as
+This yields 42 different arrow shapes. The optional second, third, fourth shapes
+can independently be any of the 42, except the last cannot be <TT>none</TT> as
 this would create a redundant shape.
-Thus, there are 38 &middot; 39<sup>3</sup> + 38 &middot; 39<sup>2</sup> + 38 &middot; 39 + 39 = 2,313,441 different combinations.
+Thus, there are 41 &middot; 42<sup>3</sup> + 41 &middot; 42<sup>2</sup> + 41 &middot; 42 + 42 = 3,111,696 different combinations.
 
 <P>
-The following display contains the 39 combinations possible with a single
+The following display contains the 42 combinations possible with a single
 arrow shape. The node attached to the arrow is not drawn but would appear
 on the right side of the edge.
 <P>
index a05f566c49e7ea75d53db24faaf583e760146dd6..1fcb3eff850e75adab7b9c9a9c51e48c3a4b4e15 100644 (file)
@@ -80,4 +80,10 @@ digraph G {
        lcurve -> lcurvelcurve [arrowhead=lcurvelcurve label=lcurvelcurve]
        _curve -> rcurve [arrowhead=rcurve label=rcurve]
        rcurve -> rcurvercurve [arrowhead=rcurvercurve label=rcurvercurve]
+       _icurve -> icurve [arrowhead=icurve label=icurve]
+       icurve -> icurveicurve [arrowhead=icurveicurve label=icurveicurve]
+       _icurve -> licurve [arrowhead=licurve label=licurve]
+       licurve -> licurvelicurve [arrowhead=licurvelicurve label=licurvelicurve]
+       _icurve -> ricurve [arrowhead=ricurve label=ricurve]
+       ricurve -> ricurvericurve [arrowhead=ricurvericurve label=ricurvericurve]
 }
index 5dedb1ad6da6b9148c84c77ee14a36111e229728..989eb9e55a1fefa0380a332f511cff9d6be8bcda 100644 (file)
@@ -103,6 +103,7 @@ static arrowname_t Arrownames[] = {
     /* Note that ARR_MOD_OPEN has expected meaning for ARR_TYPE_NORM shape */
     {"mpty", ARR_TYPE_NORM},
     {"curve", ARR_TYPE_CURVE},
+    {"icurve", (ARR_TYPE_CURVE | ARR_MOD_INV)},
     {(char *) 0, ARR_TYPE_NONE}
 };
 
@@ -644,11 +645,20 @@ static void arrow_type_curve(GVJ_t* job, pointf p, pointf u, double arrowsize, d
     AF[3].x = p.x - v.x + w.x;
     AF[3].y = p.y - v.y + w.y;
 
-    AF[1].x = p.x + 0.95 * v.x + w.x - w.x * 4.0 / 3.0;
-    AF[1].y = AF[0].y - w.y * 4.0 / 3.0;
+    if (flag & ARR_MOD_INV) {  /* ----(-| */
+        AF[1].x = p.x + 0.95 * v.x + w.x + w.x * 4.0 / 3.0;
+        AF[1].y = AF[0].y + w.y * 4.0 / 3.0;
 
-    AF[2].x = p.x - 0.95 * v.x + w.x - w.x * 4.0 / 3.0;
-    AF[2].y = AF[3].y - w.y * 4.0 / 3.0;
+        AF[2].x = p.x - 0.95 * v.x + w.x + w.x * 4.0 / 3.0;
+        AF[2].y = AF[3].y + w.y * 4.0 / 3.0;
+    }
+    else {  /* ----)-| */
+        AF[1].x = p.x + 0.95 * v.x + w.x - w.x * 4.0 / 3.0;
+        AF[1].y = AF[0].y - w.y * 4.0 / 3.0;
+
+        AF[2].x = p.x - 0.95 * v.x + w.x - w.x * 4.0 / 3.0;
+        AF[2].y = AF[3].y - w.y * 4.0 / 3.0;
+    }
 
     gvrender_polyline(job, a, 2);
     if (flag & ARR_MOD_LEFT)