1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
function save_graph(g,data)
// Copyright INRIA
[lhs,rhs]=argn(0)
select rhs
case 1 then
data=" "
else
if rhs<>2 then error(39), end
end
// g
check_graph(g)
// making defaults
n=g('node_number')
ma=prod(size(g('tail')))
// node_name
if size(g('node_name'))==0 then
g('node_name')=string(1:n)
end
// node_type
if size(g('node_type'))==0 then
g('node_type')=0*(1:n)
end
// node_x
if size(g('node_x'))==0 then
g('node_x')=0*(1:n)
end
// node_y
if size(g('node_y'))==0 then
g('node_y')=0*(1:n)
end
// node_color
if size(g('node_color'))==0 then
g('node_color')=0*(1:n)
end
// node_diam
if size(g('node_diam'))==0 then
g('node_diam')=0*(1:n)
end
// node_border
if size(g('node_border'))==0 then
g('node_border')=0*(1:n)
end
// node_font_size
if size(g('node_font_size'))==0 then
g('node_font_size')=0*(1:n)
end
// node_demand
if size(g('node_demand'))==0 then
g('node_demand')=0*(1:n)
end
// edge_name
if size(g('edge_name'))==0 then
g('edge_name')=string(1:ma)
end
// edge_color
if size(g('edge_color'))==0 then
g('edge_color')=0*(1:ma)
end
// edge_width
if size(g('edge_width'))==0 then
g('edge_width')=0*(1:ma)
end
// edge_hi_width
if size(g('edge_hi_width'))==0 then
g('edge_hi_width')=0*(1:ma)
end
// edge_font_size
if size(g('edge_font_size'))==0 then
g('edge_font_size')=0*(1:ma)
end
// edge_length
if size(g('edge_length'))==0 then
g('edge_length')=0*(1:ma)
end
// edge_cost
if size(g('edge_cost'))==0 then
g('edge_cost')=0*(1:ma)
end
// edge_min_cap
if size(g('edge_min_cap'))==0 then
g('edge_min_cap')=0*(1:ma)
end
// edge_max_cap
if size(g('edge_max_cap'))==0 then
g('edge_max_cap')=0*(1:ma)
end
// edge_q_weight
if size(g('edge_q_weight'))==0 then
g('edge_q_weight')=0*(1:ma)
end
// edge_q_orig
if size(g('edge_q_orig'))==0 then
g('edge_q_orig')=0*(1:ma)
end
// edge_weight
if size(g('edge_weight'))==0 then
g('edge_weight')=0*(1:ma)
end
// default_node_diam
if size(g('default_node_diam'))==0 then
g('default_node_diam')=0
end
// default_node_border
if size(g('default_node_border'))==0 then
g('default_node_border')=0
end
// default_edge_width
if size(g('default_edge_width'))==0 then
g('default_edge_width')=0
end
// default_edge_hi_width
if size(g('default_edge_hi_width'))==0 then
g('default_edge_hi_width')=0
end
// default_font_size
if size(g('default_font_size'))==0 then
g('default_font_size')=0
end
// data
if type(data)<>10|prod(size(data))<>1 then
error('Second argument must be a string')
end
m6saveg(g,g('name'),ma,data)
|