Graphviz Issue Tracker
Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000815graphvizDotpublic2005-02-09 12:152011-04-28 04:03
ReporterAnthony Lansbergen 
Assigned Toerg 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOS*-*-OS Version
Summary0000815: Flat edges with labels prevent chains from being straight
Description



I want to use Dot for drawing an UML statechart.
I'd like dot to place points on the same rank, vertical and horizontal.
Problem is that I can only specify one rank.
When I draw edges between these points, they get out of line.
Does anyone know a solution for this problem?
Steps To Reproduce

digraph G{
    ranksep=.1; size = "7.5,7.5";
    node [fontsize=10, shape=point, label=""];
    edge [arrowhead=none, style=dashed];

    CMP_MAIN -> HTTPMEDIATOR [style=invis]
    HTTPMEDIATOR -> HTTPSERVER [style=invis]

   /**
    * CMP_MAIN
    **/
    CMP_MAIN [color=black, shape=box, label="CMP_MAIN"];
    CMP_MAIN -> CMP_MAIN0;
    CMP_MAIN0 -> CMP_MAIN1;
    CMP_MAIN1 -> CMP_MAIN2;
    CMP_MAIN2 -> CMP_MAIN3;
    CMP_MAIN3 -> CMP_MAIN4;
    CMP_MAIN4 -> CMP_MAIN5;
    CMP_MAIN5 -> CMP_MAIN6;
    CMP_MAIN6 -> CMP_MAIN7;
    CMP_MAIN7 -> CMP_MAIN8;
    CMP_MAIN8 -> CMP_MAIN9;
    CMP_MAIN9 -> CMP_MAIN10;
    CMP_MAIN10 -> CMP_MAIN11;
    CMP_MAIN11 -> CMP_MAIN12;
    CMP_MAIN12 -> CMP_MAIN13;

   /**
    * HTTPMEDIATOR
    **/
    HTTPMEDIATOR [color=black, shape=box, label="HTTPMEDIATOR"];
    HTTPMEDIATOR -> HTTPMEDIATOR0;
    HTTPMEDIATOR0 -> HTTPMEDIATOR1;
    HTTPMEDIATOR1 -> HTTPMEDIATOR2;
    HTTPMEDIATOR2 -> HTTPMEDIATOR3;
    HTTPMEDIATOR3 -> HTTPMEDIATOR4;
    HTTPMEDIATOR4 -> HTTPMEDIATOR5;
    HTTPMEDIATOR5 -> HTTPMEDIATOR6;
    HTTPMEDIATOR6 -> HTTPMEDIATOR7;
    HTTPMEDIATOR7 -> HTTPMEDIATOR8;
    HTTPMEDIATOR8 -> HTTPMEDIATOR9;
    HTTPMEDIATOR9 -> HTTPMEDIATOR10;
    HTTPMEDIATOR10 -> HTTPMEDIATOR11;
    HTTPMEDIATOR11 -> HTTPMEDIATOR12;
    HTTPMEDIATOR12 -> HTTPMEDIATOR13;

   /**
    * HTTPSERVER
    **/
    HTTPSERVER [color=black, shape=box, label="HTTPSERVER"];
    HTTPSERVER -> HTTPSERVER0;
    HTTPSERVER0 -> HTTPSERVER1;
    HTTPSERVER1 -> HTTPSERVER2;
    HTTPSERVER2 -> HTTPSERVER3;
    HTTPSERVER3 -> HTTPSERVER4;
    HTTPSERVER4 -> HTTPSERVER5;
    HTTPSERVER5 -> HTTPSERVER6;
    HTTPSERVER6 -> HTTPSERVER7;
    HTTPSERVER7 -> HTTPSERVER8;
    HTTPSERVER8 -> HTTPSERVER9;
    HTTPSERVER9 -> HTTPSERVER10;
    HTTPSERVER10 -> HTTPSERVER11;
    HTTPSERVER11 -> HTTPSERVER12;
    HTTPSERVER12 -> HTTPSERVER13;

    { rank = same; CMP_MAIN; HTTPMEDIATOR; HTTPSERVER; }
    { rank = same; CMP_MAIN0; HTTPMEDIATOR0; HTTPSERVER0; }
    { rank = same; CMP_MAIN1; HTTPMEDIATOR1; HTTPSERVER1; }
    { rank = same; CMP_MAIN2; HTTPMEDIATOR2; HTTPSERVER2; }
    { rank = same; CMP_MAIN3; HTTPMEDIATOR3; HTTPSERVER3; }
    { rank = same; CMP_MAIN4; HTTPMEDIATOR4; HTTPSERVER4; }
    { rank = same; CMP_MAIN5; HTTPMEDIATOR5; HTTPSERVER5; }
    { rank = same; CMP_MAIN6; HTTPMEDIATOR6; HTTPSERVER6; }
    { rank = same; CMP_MAIN7; HTTPMEDIATOR7; HTTPSERVER7; }
    { rank = same; CMP_MAIN8; HTTPMEDIATOR8; HTTPSERVER8; }
    { rank = same; CMP_MAIN9; HTTPMEDIATOR9; HTTPSERVER9; }
    { rank = same; CMP_MAIN10; HTTPMEDIATOR10; HTTPSERVER10; }
    { rank = same; CMP_MAIN11; HTTPMEDIATOR11; HTTPSERVER11; }
    { rank = same; CMP_MAIN12; HTTPMEDIATOR12; HTTPSERVER12; }
    { rank = same; CMP_MAIN13; HTTPMEDIATOR13; HTTPSERVER13; }

    /*events and transitions*/
    edge [style=filled, fontsize=8, weight=0, arrowtail=none,
arrowhead=normal];
    HTTPMEDIATOR0 -> HTTPMEDIATOR0 [label="HMEDREADY->HMEDBUSY"];
    HTTPMEDIATOR1 -> HTTPMEDIATOR1 [label="HMEDBUSY->HMEDREADY"];
    HTTPMEDIATOR2 -> HTTPSERVER2 [label="DRV_REQUEST"];
    HTTPMEDIATOR3 -> CMP_MAIN3 [label="HMED_TESTREPLY"];
    CMP_MAIN4 -> HTTPMEDIATOR6 [label="HMED_TESTMULTIACTION"];
    HTTPMEDIATOR5 -> HTTPSERVER5 [label="DRV_REQUEST"];
    HTTPMEDIATOR6 -> HTTPMEDIATOR6 [label="HMEDREADY->HMEDBUSY"];
    HTTPMEDIATOR7 -> HTTPMEDIATOR7 [label="HMEDBUSY->HMEDREADY"];
    CMP_MAIN8 -> HTTPMEDIATOR9 [label="HMED_TESTTRANINTERNAL"];
    HTTPMEDIATOR9 -> HTTPMEDIATOR9 [label="internal"];
    CMP_MAIN10 -> HTTPMEDIATOR11 [label="HMED_TESTTRANDONE"];
    HTTPMEDIATOR11 -> HTTPMEDIATOR11 [label="HMEDREADY->done"];
    CMP_MAIN12 -> HTTPMEDIATOR13 [label="HMED_TESTTRANERROR"];
    HTTPMEDIATOR13 -> HTTPMEDIATOR13 [label="HMEDDRIVER->error"];
}
Additional Information

[erg] The chain going down from HTTPMEDIATOR bends because of the flat
edges with labels. Remove the labels or make the edges non-flat, and
the problem goes away. Even using an extremely high edge weight doesn't
help. Also, not that the labels DRV_REQUEST labels, which belong to the
flat edges, seem to appear rather on the curved edge above. This is an
old problem, predating 1.9.

In addition, flat multiedges with labels are drawn separately but the
make_flat_label code ignores the label if appears the 2 nodes can be
connected with a line segment. And using label positions doesn't help
since the labels appear to be given the same position.
TagsNo tags attached.
AUXILLARY-FILES
DATE-FIXED
FIX-COMMENT
FORMER-ID628
INPUT-FILE
OUTPUT-FILEhttp://www.graphviz.org/bugs/b628.ps [^]
STATUS-COMMENTFixed (21 June 2005)
VERSION     2.3
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2011-04-28 04:03 user1 New Issue
2011-04-28 04:03 user1 Assigned To => erg


MantisBT 1.2.5[^]
Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker