digraph SigC {
ranksep=2
node [shape=record,style=filled];
@
function toGraphvizText(sText : value) {
sText = sText.replaceString(" < ", "\\n<\\n");
sText = sText.replaceString(" > ", "\\n>\\n");
sText = sText.replaceString(' ', "\\ ");
sText = sText.replaceString('"', "\\\"");
return sText;
}
function writeAction<"duration">(action : node) {
@|@
local sStreet = toGraphvizText('"' + action.crossroad_entry.street + '"');
if action.crossroad_entry.direction == "c->s" {
@@action.crossroad_entry.crossroad@-\>@sStreet@\n@
} else {
@@sStreet@-\>@action.crossroad_entry.crossroad@\n@
}
foreach i in action.durations {
if !i.first() {
@/@
}
local iSec = $i%60$;
if iSec.length() == 1 iSec = '0' + iSec;
@@floor($i/60$)@min@iSec@@
}
}
function writeAction<"activate">(action : node) {
@|@action.strategy@@
}
function writeAction<"desactivate">(action : node) {}
@ @this.name@ [style=filled, fillcolor="#A1E1FF",fontname="Arial-Narrow"];
@this.name@_start [label="@toGraphvizText(this.start)@",fontname="Arial-Narrow",shape=box];
@this.name@ -> @this.name@_start [label="start",fontname="Arial-Narrow",fontcolor="red",color="red",style="bold"];
ranksep=4
@
foreach rule in this.rules {
@
@this.name@_rule@rule.key()@ [label="@toGraphvizText(rule.condition)@",fontname="Arial-Narrow",shape=box];
@this.name@ -> @this.name@_rule@rule.key()@ [color="purple",style="bold"];
@
foreach action in rule.actions {
@ @this.name@_rule@rule.key()@_@action.key()@ [shape=record,label="{@action@@
writeAction<action>(action);
@}",fontname="Arial-Narrow",fillcolor=yellow];
@this.name@_rule@rule.key()@ -> @this.name@_rule@rule.key()@_@action.key()@ [color="orange",style="bold"];
@
}
}
@}
Generated by CodeWorker v3.11.0.1 from CWscript2HTML.cwp.